Skip to content

Rebuild + reinstall Craft Agents Mac app to pick up the ⌘K palette fix (Model group now lists Opus 5 from the live connection list). - #993

Open
kiancjy wants to merge 6 commits into
craft-ai-agents:mainfrom
kiancjy:integration/cmdk-and-branch-fix
Open

Rebuild + reinstall Craft Agents Mac app to pick up the ⌘K palette fix (Model group now lists Opus 5 from the live connection list).#993
kiancjy wants to merge 6 commits into
craft-ai-agents:mainfrom
kiancjy:integration/cmdk-and-branch-fix

Conversation

@kiancjy

@kiancjy kiancjy commented Jul 27, 2026

Copy link
Copy Markdown

The fix is committed + pushed: branch integration/cmdk-and-branch-fix (commit b7a4853) on github.com/kiancjy/craft-agents-oss. This branch also carries the palette itself and other 0.11.x backports.

=== 1. Update the build checkout ===

If ~/craft-agents-oss-build exists from last time:

cd ~/craft-agents-oss-build
git fetch fork || git fetch origin
git checkout integration/cmdk-and-branch-fix
git pull

If it does NOT exist, clone fresh:

git clone https://github.com/kiancjy/craft-agents-oss ~/craft-agents-oss-build

cd ~/craft-agents-oss-build && git checkout integration/cmdk-and-branch-fix

=== 2. Build ===
bun install
bun run electron:dist:mac # -> apps/electron/release/Craft-Agents-arm64.dmg (few min)
ls -lh apps/electron/release/Craft-Agents-arm64.dmg # confirm it built

=== 3. Install (back up first) ===
sudo cp -R "/Applications/Craft Agents.app" "/Applications/Craft Agents.prev.app.bak"
osascript -e 'quit app "Craft Agents"' 2>/dev/null; sleep 2
hdiutil attach apps/electron/release/Craft-Agents-arm64.dmg
rm -rf "/Applications/Craft Agents.app"
cp -R "/Volumes/Craft Agents/Craft Agents.app" /Applications/
hdiutil detach "/Volumes/Craft Agents"
xattr -dr com.apple.quarantine "/Applications/Craft Agents.app" # unsigned build

=== 4. Launch + verify ===
ssh -L 9100:localhost:9100 kian@devbox-kian.tail170a7f.ts.net -fN 2>/dev/null # backend tunnel
open -a "Craft Agents"

In the app: ⌘K -> Model group should now include "Opus 5". Selecting it sets the session model.

=== Rollback if needed ===
osascript -e 'quit app "Craft Agents"'; sleep 2
rm -rf "/Applications/Craft Agents.app"
mv "/Applications/Craft Agents.prev.app.bak" "/Applications/Craft Agents.app"
xattr -dr com.apple.quarantine "/Applications/Craft Agents.app"; open -a "Craft Agents"

Notes:

  • Full detail: /home/kian/.craft-agent/workspaces/work/sessions/260722-fine-panther/plans/mac-build-install-runbook.md on the box (read via SSH).
  • Prereqs if missing: bun, and Xcode CLT (xcode-select --install).
  • The box server does NOT need touching for this — it's a renderer-only change; only the Mac app must be rebuilt.

kiancjy and others added 6 commits June 1, 2026 13:51
Branching an sdk-fork session on a remote/RPC deployment threw
"Browser pane manager unavailable despite passing the gate — this is a bug."

createSession ran the eager branch-preflight getOrCreateAgent() BEFORE
inserting the session into this.sessions. getOrCreateAgent's browser-pane
wiring resolves the per-session RemoteBrowserPaneManager via
this.sessions.get(sid) to read workspace.id; with the session not yet
registered the lookup returned undefined and the resolver returned null,
tripping the "passed the gate" invariant. Local Electron was unaffected
(returns the in-process BPM before touching this.sessions); normal session
creation was unaffected (agent built lazily, after registration).

- Register the session and init permission mode before the branch-preflight
  block, so eager agent creation can resolve its own session. (Also makes
  the existing rollback this.sessions.delete effective instead of a no-op.)
- Harden getBrowserPaneManagerForSession with a workspaceId fallback and
  pass managed.workspace.id from the wiring site, so the resolver can't
  return null while an RPC server exists.
- Add a regression test for the workspaceId fallback path.

Co-Authored-By: Craft Agent <agents-noreply@craft.do>
Add a glassy ⌘K command palette over the existing action registry.

- app.commandPalette action bound to mod+k; opened via the registry's
  global keydown dispatcher (no separate listener)
- CommandPaletteHost: self-contained, lists actionsByCategory and runs
  commands through registry.execute
- Session-scoped commands when a session is active:
  - Set status (all workspace statuses, checkmark on current)
  - Archive / Unarchive (state-aware)
  - Model (Anthropic models, checkmark on current)
  - Reasoning depth (thinking levels, checkmark on current)
- Reuses existing backend paths (sessionCommand, setSessionModel,
  handleSessionOptionsChange); i18n via t(); theme-safe glass styling

Verified end-to-end in the web UI: palette renders, checkmarks reflect
live state, status write round-trips.

Co-Authored-By: Craft Agent <agents-noreply@craft.do>
Cherry-pick only the three renderer UX improvements from the squashed
v0.11.2 release (a60ebc1), leaving out session transfer, create_task,
and their server-core changes to keep the live deployment low-risk.

- Up arrow in a truly empty chat input cancels the running turn and
  restores the last prompt for editing (input-event-guards, FreeFormInput)
- "Background session finished" alerts default off (atoms/background-finished)
- Background task chips are dismissable without stopping the task; a chip
  with no signal goes 'stale' (Unknown) instead of falsely claiming stopped
  (background-task-chip-state, ActiveTasksBar, TaskActionMenu, sessions atom,
  App.tsx signal tracking, chat.taskStaleHint i18n key across 7 locales)

Co-Authored-By: Craft Agent <agents-noreply@craft.do>
The Model group hardcoded the static ANTHROPIC_MODELS registry, so newer
models (e.g. Opus 5) that arrive via the active connection's live model
list never appeared. Resolve the effective connection and use its
.models list (falling back to ANTHROPIC_MODELS), mirroring
CompactModelSelector. Model entries may be ModelDefinition objects or
bare id strings; normalize by id.

Verified in the web UI: Model group now lists Opus 5 / Sonnet 5 / Fable 5
etc., checkmark on the current model.

Co-Authored-By: Craft Agent <agents-noreply@craft.do>
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