feat(app): add channel header agent and desktop access toggles #161
- IA
Closes #158 (tracked by #5). Revised per owner feedback: use two channel-header toggle buttons immediately left of **+**, rather than a details-sidebar checkbox.
- **Collaborator agent access** allows teammates to invoke agents. Turning it off blocks new collaborator invocations, not human chat or active runs. Invoking drafts and attachments are held intact by the teammate composer. Composer notices sit below the composer, clear of the attachment tray. - **Channel desktop tools** independently gates native desktop dispatch throughout the channel, including owner/collaborator runs, other chats and subagents. Turning it off refuses subsequent desktop calls without cancelling already-dispatched operations. Shell tools remain available; this is not a shell security sandbox. - Both controls are owner-editable and read-only for collaborators, with pressed styling, accessible states, tooltips, pending states and error toasts. The sidebar sharing section is removed. - Metadata watch events carry both settings on initial watch and committed changes without changing name/summary revisions. Older hosts retain their existing behavior; unsupported controls are unavailable. SettingsDoc v2 preserves existing `shared` values and adds `desktop: true` through a versioned migration.
The header revision was briefly opened as #169; its commit is now included directly here and #169 is superseded.
### Validation
- `bun types`, `bun run ci`, and `git diff --check` pass on e3bb405. The original agent-access implementation also passed React Doctor with no new rule. - Signed lane-local Ace-dev build, real native desktop inspection/clicks: agent → monitor → + placement, all four independent toggle combinations, both-off and both-on persistence through full app/host restarts, and absence of the sidebar checkbox. Isolated profile/channel only; development processes stopped afterward. - Real Anthropic runs verified owner/subagent desktop refusal, mid-run disabling in a collaborator's second chat, re-enabled native inventory, and persisted refusal after worker restart. - Two isolated backups reopened (absent settings and v1 sharing off); sharing preserved and desktop enabled. All 175 original entries remained byte-for-byte unchanged; integrity checks and source-backup checksums passed. - Earlier #161 validation covered real-provider owner/teammate agent enforcement, human chat while off, live updates, active-run continuity and persistence. Headless React checks covered three clients, held text/image drafts, Chat submission, reconnect and reload. Worker-restart watch recovery remains the #153 baseline addressed in #159. - Remaining native checks: collaborator read-only view, older/disconnected hosts, hover tooltips and split-pane layouts. Hosted desktop forwarding was type/code reviewed, not deployed; no second-person/tailnet-machine check.
### Built in Ace
The header/desktop-toggle revision was entirely built in Ace using its lane, shell/build tools, subagents and native desktop tools; no external editor, terminal, browser automation or agent was used for that revision.
The original implementation, shell work, smokes and browser validation runs were done in Ace by an Anthropic-model agent. Codex coordinated from outside Ace and independently reviewed the original head b30e9f6 there (#9). Ace had no browser inspection tools (#50), so those original React checks used an installed external Playwright 1.63.0 driver with chromium_headless_shell-1243.
iamnbutlerreferenced this in Show and change collaborator agent invocation in the app #158last month on GitHub
iamnbutlerreferenced this in Finish native window, menu, and dialog workflows #73last month on GitHub
iamnbutlerreferenced this in [Meta] Dogfood Ace end to end #5last month on GitHub
iamnbutlerreferenced this in Verify Ace with two machines on the tailnet #10last month on GitHub
iamnbutlerreferenced this in feat(app): put agent and desktop access toggles in the channel header #169last month on GitHub
- IA
Follow-up UI revision requested by @iamnbutler is ready in #169, stacked on this branch. It replaces the sidebar checkbox with two toggle buttons immediately left of +: collaborator agent access and channel-wide native desktop tools. Native signed-dev clicks/restarts, real-provider gate checks, backup migration, types and lint passed. #169 is separate to keep this branch undisturbed; merge/retarget the follow-up after #161, or incorporate it before landing.
iamnbutlermentionedlast month on GitHub
iamnbutlersubscribedlast month on GitHub
iamnbutlerrenamed feat(app): show and change collaborator agent invocation to feat(app): add channel header agent and desktop access toggleslast month on GitHub
iamnbutlerready-for-reviewlast month on GitHub
- IA
Resolved the conflict with current main (5194bf7): retained the native desktop permission gate and main’s independent browser-tool registration. Also reviewed the automatic transcript merge to preserve both watch recovery and live access settings. Local `bun types`, `bun run ci`, app production build, and diff checks pass. Awaiting the refreshed CI before merging as requested.
iamnbutlermerged 10f06d2c3c89last month on GitHub
iamnbutlerreferenced this in [Meta] Complete native computer use in Ace #8last month on GitHub