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
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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: