Add local AI group naming - #69
Open
johnpierson wants to merge 9 commits into
Open
johnpierson wants to merge 9 commits into
johnpierson wants to merge 9 commits into
Conversation
- Only AI-name newly created groups: recoloring an existing group no longer overwrites its user-authored title, and created annotations are resolved by id instead of Annotations.Last() - Let the rename go through UpdateModelValueCommand alone so undo restores the pre-rename title, and skip it when the group was deleted, undone, or the workspace changed during inference - Make the server client thread-safe: session-scoped cancellation, atomic Disable/startup handoff, no restart after disable, no UI-thread WaitForExit, and safe teardown of process and HttpClient - Tie llama-server to the host process with a kill-on-close job object so crashes cannot orphan the ~2.5 GB model process - Scope the FOCA guard to naming only so group creation keeps working while a suggestion is in flight - Clamp the naming indicator to the owner's real on-screen bounds so it follows the cursor when Dynamo is maximized - Dismiss progress UI before error dialogs and silence errors caused by turning the feature off mid-request - Provisioning: cross-process install lock, marker invalidation before reinstall, stale download cleanup before the disk check, model size cap, and a download URL pinned to an immutable revision - Keep Monocle loading when the local naming env vars are misconfigured - Drop the GroupNodeSummary wrapper; prompts take node names directly Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
johnpierson
force-pushed
the
codex/experiment-local-group-naming
branch
from
September 9, 2026 18:30
ef78e4b to
0fae3b1
Compare
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.
What this does
Adds an opt-in local group naming experiment to Monocle: a menu toggle downloads a pinned llama.cpp CPU runtime + Qwen3-4B-Q4_K_M (with license acceptance, SHA-256 verification, and an immutable-revision download URL) and runs it on localhost. While enabled, groups created from the FOCA flyout get an AI-suggested 3-7 word title, with a cursor-following indicator during inference. Node names never leave the machine.
Hardening on top of the original experiment
The branch was rebased onto master (post-#67) and went through a multi-agent review; 28 verified findings were fixed:
Annotations.Last(); the rename goes throughUpdateModelValueCommandalone so Ctrl+Z restores the previous title; renames are skipped if the group was deleted/undone or the workspace changed mid-inference.MONOCLE_LOCAL_AI_*env vars disable only this feature instead of aborting Monocle'sLoaded.Verification
tests/Monocle.LocalGroupNaming.Testspasses and now runs in CINotes for review
artifacts/Monocle-LocalNaming-Dynamo4.1.zip(10 MB test bundle) is committed on this branch past.gitignore— consider moving it to a release attachment before merge.🤖 Generated with Claude Code