Skip to content

Fix CI: add missing terminal settings from PR #11#12

Open
max4c wants to merge 18 commits intomainfrom
dev
Open

Fix CI: add missing terminal settings from PR #11#12
max4c wants to merge 18 commits intomainfrom
dev

Conversation

@max4c
Copy link
Copy Markdown
Owner

@max4c max4c commented Apr 4, 2026

Summary

  • Adds TerminalColorSchemeMode enum and terminal theme properties to AppSettings
  • Adds applyColorScheme and applyTheme methods to TerminalManager
  • Adds TerminalSettingsView and wires it into sidebar/settings navigation
  • Updates README

These files were referenced by ContentView changes merged in PR #11 but never committed, causing CI build failures on main.

Test plan

  • CI build passes (the primary goal — currently broken on main)
  • Terminal settings tab appears in sidebar and renders
  • Color scheme selection (Light/Dark/System) persists

🤖 Generated with Claude Code

ContentView references TerminalColorSchemeMode, terminalLightTheme,
terminalDarkTheme, applyTheme, and applyColorScheme — all introduced
in the PR #11 merge but never committed. This adds the missing pieces:
AppSettings terminal properties, TerminalManager theme/color-scheme
methods, TerminalSettingsView, and sidebar/settings wiring.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c8ed6acee0

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +160 to +162
guard let app = ghosttyApp else {
pendingColorScheme = scheme
return
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Clear stale pending theme when queuing plain color scheme

When the terminal runtime has not been initialized yet, applyColorScheme only updates pendingColorScheme and leaves any previously queued pendingTheme intact. Because ensureInitialized prioritizes pendingTheme over pendingColorScheme, a user can pick a custom theme, switch back to default themes before opening Terminal, and still get the old custom theme applied on first launch. Clearing pendingTheme in this branch (or changing initialization precedence) would prevent applying outdated settings.

Useful? React with 👍 / 👎.

max4c and others added 17 commits April 3, 2026 18:06
Adds `bugbook settings list|get|set` subcommands that read/write
app-settings.json directly via JSONSerialization. Secrets are
redacted on read and blocked on write. Type coercion matches
existing value types (bool, number, string).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The icon was saved to disk (<!-- icon:VALUE -->) but never restored on
startup. Workspace restore loaded pane layout without re-parsing file
metadata. Added restoreWorkspaceDocumentsIfNeeded() to reload page
content from disk after workspace restore, and replaceMarkdown() on
BlockDocument so reloads preserve icon/cover metadata. Extracted shared
helpers for loadPageContent and injectChildPageLinks.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
beginMarqueeBlockSelection() didn't clear focusedBlockId, so stale
async attemptFocus retries could steal focus after marquee completed,
triggering handleBecomeFirstResponder which cleared selectedBlockIds
before delete could process them. Fixed by: clearing focusedBlockId
on marquee start, adding staleness guard to attemptFocus retries,
and removing redundant focusedBlockId check from editor delete handler.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Frees Cmd+B for bold text formatting in the editor. Updated the
keyboard shortcut in BugbookApp and the shortcuts settings label.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
DatabaseFullPageView was the only full-page content view without an
explicit background. Added .background(Color.fallbackEditorBg) so
empty space below short content blends seamlessly with the editor
canvas instead of showing a jarring boundary.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds PaneFindBar view between chrome bar and content. Per-pane find
state with real-time block text search, match count, Enter/Shift+Enter
cycling, Escape dismiss. Scrolls to matched block via existing
scrollToBlockId. V1: block-level navigation without per-character
highlighting.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Merge duplicate .onKeyPress(.delete) and .onKeyPress(backspace) into
a single .onKeyPress(keys:) call with a static key set.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- TerminalManager write_clipboard_cb: dispatch to main thread before
  accessing NSPasteboard (matches read_clipboard_cb pattern)
- SettingsCommand coerceValue: add Int check before Double to prevent
  integer settings from being stored as strings

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Filter bar now shows clickable "and"/"or" label between filter pills.
Click toggles the filter group conjunction. DatabaseViewState syncs
filterGroup from flat filters on every mutation. CLI adds --filter-json
flag to bugbook query for FilterGroup JSON blobs.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds mentionPageNameKey custom attribute to mention spans during
parsing, and mouseDown hit detection in BlockTextView to navigate
on click. Prior attempts styled mentions visually but missed
click interaction. Uses characterIndexForInsertion + attribute
lookup — no SwiftUI overlays needed.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Extract evaluateFormula to DatabaseViewHelpers (was duplicated in
  TableView and RowPageView)
- Fix double evaluateFormula call per property in RowPageView
- Cache findMatches in @State, recompute only on query change instead
  of on every SwiftUI render

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds .lookup PropertyType that follows a relation and mirrors a target
property from linked rows. Config UI with two pickers (relation +
target property). Values computed at render time, displayed as
comma-separated text. Full coverage across table, row detail, CLI,
and mobile views.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds .rollup PropertyType that follows a relation, extracts a target
property from linked rows, and applies an aggregation function (sum,
count, average, min, max). Config UI with three pickers. Values
computed at render time via AggregationEngine. Full coverage across
table, row detail, property manager, CLI, and mobile views.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant