Context-tree top panel, vault browser, zoom fixes, framed paste fallback (Aaron's feedback) - #65
Merged
Merged
Conversation
Aaron's 2026-07-26 feedback, all three items: 1. Knowledge graph moves from the inline timeline strip to a pinned top panel, redesigned as the agent's interactive context tree (ADR 0003). 2. The vault and all its files live in the interface: read-only Vault panel over new /amicode/vault-files + /amicode/vault-file routes. 3. Command zoom fixes across hosts: in-app zoom + palette commands for the web/amicode host, canvas DPR-staleness blur fix, desktop zoom persistence, macOS menu-role collision, setZoom notify. Plus the agentic-surfaces design proposal. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Review findings: the vault listing no longer follows symlinks out of the mount (metadata leak), and duplicate mount names resolve to the dir named like the id instead of silently shadowing. Paste fix (Kate's report): in any framed host WITHOUT the amicode relay (VS Code Simple Browser at :3002, plain embeds), the clipboard fallback preventDefaulted native paste, posted into the void, timed out, and inserted nothing — API-key fields pasted dead. An empty/timed-out bridge reply now falls through to navigator.clipboard.readText(), restoring paste wherever the host grants clipboard-read; the VS Code webview bridge path is unchanged and still wins when it answers. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
kateebonner
marked this pull request as ready for review
July 27, 2026 15:17
…l renders The sticky header's pb-4 exists to seat the entity-chip rail; sessions with no amicode tool parts kept the full reserved band under the title. The rail's session gate is now exported and shared, so the header drops to a slim pb-2 fade tail exactly when the rail will not mount. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Upload PDF and Discuss latest sat side by side; Kate wants them stacked. Applied to the live dashboard widget (widgets-src/library.ts) AND the app-side LibraryCard so the two renderings stay in parity. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… prompt The tree was its own card above the timeline; it now closes the sticky header block beneath the title row and entity chips, on the header's solid ground, and only renders once the session holds context. Turn grouping bug (Kate): one ask spanning several assistant messages charted duplicate roman-numeral branches with the same excerpt — turns now group by the parent user message. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Vault contents are proprietary knowledge (team mounts hold unpublished results); browsing is a local-researcher capability, not a server API. The routes now refuse on any non-loopback bind — the same bind signal the credential-mutation guard rides — with AMICO_VAULT_BROWSER=1/0 as the explicit override, and a mount can opt out entirely via browse = false in its .amico-vault.toml. Agent read grants unaffected. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This was referenced Jul 27, 2026
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.
Implements all three items of Aaron Trowbridge's 2026-07-26 feedback, plus the API-key paste fix Kate requested overnight.
1 · Knowledge graph → top panel, redesigned as the agent's context tree (ADR 0003)
TimelineRow.Braindeleted; ADR 0002's background direction marked superseded).context-tree-engine.ts(declarative setTree, hit-testing, DPR-change-aware, reduced-motion) + purecontext-tree-data.tsbuilder — 20 headless tests.2 · The vault lives in the interface
GET /amicode/vault-files(recursive listing; skips dotfiles/machinery; symlinks that escape the mount are not listed) andGET /amicode/vault-file(single read; real-path traversal guard; 512 KB cap; binaries listed but marked unreadable). 14 server tests incl. traversal/symlink adversarial cases.3 · Command zoom fixes (all hosts)
webviewZoomforplatform: webwith palette commands Zoom in / out / reset (⌘= / ⌘− / ⌘0), persisted per-window; titlebar + terminal already consume the signal.devicePixelRatiochanges (webview zoom changes DPR without a resize) and re-arm per change.setZoomnow notifies the renderer.4 · API-key paste fix (Kate, overnight report)
In any framed host without the amicode relay (VS Code Simple Browser at :3002, plain embeds), the clipboard fallback preventDefaulted native paste, posted a clipboard-request into the void, timed out, and inserted nothing — credential fields pasted dead, silently. An empty/timed-out bridge reply now falls through to
navigator.clipboard.readText()— restores paste wherever the host grants clipboard-read; the VS Code webview bridge is unchanged and still wins when it answers. If your repro was elsewhere (e.g. the native Connect Cloud input box, which only appears when no server is up), say where and I'll chase that path too.Also
docs/design/agentic-surfaces.md— the agentic-static-elements proposal for you and Aaron to react to (tiered architecture, surface inventory, open questions). No implementation.Verification
🤖 Generated with Claude Code