Repository navigation
[Meta] Dogfood Ace end to end #5
Description
Pre-Universe focus (October 13): #218 is the current priority list for team dogfooding, packaging, and the stable release. Native engine items moved to githubnext/desktop-tools; #8 is closed. This issue stays the standing dogfooding policy and backlog.
All Ace development happens in Ace. Record external-tool escapes in each PR's Built in Ace section and link the gap. Items are ordered by importance within each list.
Dogfooding MVP
- [Meta] Complete native computer use in Ace #8 — Inspect, operate, and verify Ace's native windows and dialogs.
- Inspect and debug browser pages from an Ace channel #50 — Reproduce, debug, and verify browser UI changes. First slice (exact tabs, navigation, bounded inspection) landed in feat: list, inspect, and navigate tabs in a dedicated browser #163; DOM input, diagnostics, uploads, emulation, browser lifecycle and the end-to-end defect workflow remain.
- Verify native development and recovery end to end in Ace #55 — Verify the native development loop and recovery after the native/browser paths work.
Dogfooding core/QOL
- Default to agent mode and retain composer mode per channel #59 — Agent-send by default, sticky per-channel mode, and the existing Esc/double-Esc shortcut.
- Verify unsent composer drafts survive a signed desktop quit and relaunch #77 — Retain unsent composer drafts across desktop restart. Storage fix landed in fix(ui): keep unsent composer drafts across restart #165; signed desktop quit/relaunch verification remains.
- Attach images pasted into the composer #91 — Attach images pasted into the composer.
- Pasted command gets a stray 1R prefix after returning to a terminal #48 — Reliable input after restoring a terminal.
- Run and resume Codex and Claude Code in Ace channels #9 — Run and resume Codex and Claude Code inside Ace.
- Show typing and participant presence in chats #35 — See who's in a chat and who's typing.
- Show GitHub profile avatars for participants #92 — Show participants' GitHub avatars.
- Align timeline avatars with the sender's byline #93 — Align timeline avatars with the sender's byline.
- Add project lobbies for presence and channel lifecycle #17 — Project presence and channel lifecycle.
- Manage background and interactive jobs from channel tools #53 — Manage background and interactive jobs.
- Show live tool progress in the channel #54 — See live tool progress and full logs.
- Show desktop release phases and notarization submissions while a build runs #167 — Show desktop release phases and notarization submissions while a build runs.
- [Meta] Help participants follow and understand agent work #98 — Follow and understand agent work in plain language (visibility → explainer pane → personalization).
- Show mixed or multi-file diff tool output as text instead of a blank "Invalid or empty patch" block #102 — Show mixed or multi-file diff tool output as readable text instead of a blank "Invalid or empty patch" block.
- Keep literal braces in timeline message text #94 — Keep literal braces in timeline message text.
- Exclude trailing punctuation from linkified URLs in the timeline #95 — Exclude trailing punctuation from linkified timeline URLs.
- Long chat messages clip their final rendered line #168 — Long chat messages clip their final rendered line (display only; stored text is complete).
- Attach every image from a multi-file Finder paste #105 — Attach every image from a multi-file Finder paste.
- Expose several chats in a channel's UI #19 — Open and continue child chats.
- Let agents ask participants questions in the chat #21 — Answer agent questions in the chat.
- Edit, delete, and steer queued messages #24 — Inspect, edit, cancel, and steer pending input.
- Wake waiting agents on channel handoffs instead of blocking in shell polling loops #108 — Wake waiting agents on channel handoffs instead of blocking in shell polling loops; show queued or blocked handoffs.
- Let agents supervise and follow up with subagents #52 — Supervise subagents and send follow-up work.
- Notify participants when an agent finishes #12 — Get attention for finished, failed, or waiting work.
- Let native agents inspect image files by path #51 — Inspect saved screenshots and renders directly.
- Add a File tab for browsing and editing files #22 — Browse and edit files in Ace.
- Start work from issues, PRs, and existing branches #28 — Continue existing branch and PR work.
- Open a lane's dev server from its channel #16 — Open a lane's dev-server preview.
- Keep window navigation and saved layouts from overwriting each other #45 — Preserve independent window navigation and layouts.
- Hide collapsed sidebar controls from accessibility navigation #44 — Keep collapsed controls out of accessibility navigation.
- Verify Ace with two machines on the tailnet #10 — Verify baseline collaboration on two real hosts.
- Show and change collaborator agent invocation in the app #158 — Show and change collaborator agent invocation in the app (draft feat(app): add channel header agent and desktop access toggles #161; native owner UI and second-person check remain).
- Verify repository-based project identity in the native app and across two hosts #15 — Identify projects across hosts by repository, with owner-labeled teammate channel sections. Implementation merged in feat(app): group projects by repository with teammate channel sections #157; native and two-host verification remain (tracked in [Meta] Extend work across hosts and devices #58).
- Opening a non-Git folder adds a project that cannot start channels #162 — Opening a non-Git folder adds a project that cannot start channels (found validating feat(app): group projects by repository with teammate channel sections #157).
- Archive inactive archives every idle channel, not only those shown as Inactive #164 — Archive inactive archives every idle channel, not only those shown as Inactive (found validating feat(app): group projects by repository with teammate channel sections #157).
- Rebuild Settings and top-anchor every modal #170 — Rebuild Settings and top-anchor every modal so async content cannot move dialogs.
- Keep keyboard focus inside open modal dialogs #172 — Keep keyboard focus inside open modal dialogs (Tab briefly escapes to the app navigation; found validating Rebuild Settings and top-anchor every modal #170).
- Paired hosts echo channel listings forever, starving the gateway #200 — Paired hosts echo channel listings forever, so opening channels takes 20–60 s locally and remotely.
- Operate a teammate host's desktop from an Ace channel #202 — Operate a teammate host's desktop from an Ace channel (Screen Sharing was needed to verify Paired hosts echo channel listings forever, starving the gateway #200 on a second Mac).
Development loop findings
- Finish development-run isolation: helper conflict diagnostics, loopback test hosts, and reload #97 — Finish development-run isolation: conflicting-helper diagnostics, loopback test hosts, reload.
- Desktop tools unavailable when a source CLI starts a worker in an installed app's data directory #128 — Desktop tools unavailable when a source CLI starts a worker in an installed app's data directory.
- Ace-dev crashes shortly after launch with SIGTRAP in bundled Bun worker #150 — Ace-dev crashes shortly after launch with SIGTRAP in the bundled Bun worker.
- Make stale worker.pid reclaim atomic so two workers cannot own a channel #166 — Make stale
worker.pidreclaim atomic (static review finding, not reproduced). - Hosted idle hibernation interrupts active tools while local shell keeps running #183 — Hosted idle hibernation interrupts active tools while the original local shell continues (reproduced in deployed pilot Verify a deployed hosted channel with a local workspace #176; hosted meta [Meta] Run hosted channels in the cloud with local workspaces #13).
Related capability, not an MVP gate: #56 — required skills and tool integrations in native channels.
Related hosted-channel work: #13 tracks cloud cells with local workspaces; #176 is the deployed-path dogfooding pilot. Record its deployed model/tool, recovery and second-machine evidence there and link discovered bugs here. Local Workers checks and baseline #10 do not certify hosted deployment, and this separate pilot does not expand the native dogfooding MVP gates above.
Scope decisions and supporting evidence.
Native dogfooding findings
-
Find applications omitted by bounded desktop inventory #83 — Find applications omitted by bounded native inventory; fixed in Search desktop applications before bounding inventory results #84.
-
Do not reject editable text areas when AXEnabled is absent #66 — Do not treat an absent AXEnabled flag as a disabled editable text area.
-
Explain native inspection failure when the desktop or target window becomes unavailable desktop-tools#1 — Explain native inspection failure when the desktop or window becomes unavailable (via [Meta] Complete native computer use in Ace #8).
-
Native button click can take effect but time out waiting for completion #61 — Button press completion; fixed in feat(desktop): add targeted native actions #63.
-
Preserve native preflight refusal evidence after focus changes #69 — Preserve native preflight refusal evidence after focus changes (found during Validate native text insertion on hosted channels and under interruption #65 keyboard validation).
-
Report moved-window coordinate clicks rejected before dispatch as refused #155 — Report moved-window coordinate clicks rejected before dispatch as refused (via [Meta] Complete native computer use in Ace #8).
-
githubnext/ace2#113 — Inspect Chrome windows with Accessibility when the page title changes (via [Meta] Complete native computer use in Ace #8).
-
Avoid macOS Automation prompts when agents drive other apps #103 — Agent guidance for native-first app control (found during Attach images pasted into the composer #91 validation); sub-issue of [Meta] Complete native computer use in Ace #8.
-
Focus and paste into WebKit composers with native desktop tools desktop-tools#5 — WebKit focus/paste failures (found during Attach images pasted into the composer #91 validation); sub-issue of [Meta] Complete native computer use in Ace #8.
Activity
56 remaining items
iamnbutler commentedon Oct 7, 2026
Development-loop finding: githubnext/desktop-tools#7 —
bun desktop devhides the native patch-drift diagnostic behind workspace-filter output. Read-only verification found the main checkout’s cached Peekaboo tree matches no accepted pinned patch prefix; recovery should preserve the cache and recreate dependencies, not discard unknown edits.iamnbutler commentedon Oct 7, 2026
New All Projects sidebar gap: #184 — add a + beside each project so channels can be created without switching to the single-project view.
iamnbutler commentedon Oct 7, 2026
Top-edge window dragging reported while dogfooding is tracked in #189; adding a dedicated native drag strip that is independent of panel no-drag regions.
iamnbutler commentedon Oct 7, 2026
Queue UI restoration for #24 uncovered/reconfirmed two separate dogfooding issues: #192 (gpt-4.1-mini rejects the existing clipboard-write schema; added as a sub-issue) and githubnext/desktop-tools#5 (AX value writes to the native WebKit composer can be accepted without changing the draft; fresh observation confirmed no change). Queue protocol smoke checks succeeded using gpt-6-astra, and signed Ace-dev visual checks succeeded with real admissions through Ace CLI.
iamnbutler commentedon Oct 7, 2026
Release dogfooding finding: #197 tracks the missing versioned GitHub releases and DMG attachments for shipped canaries. The current publisher only writes to R2/Sparkle.
iamnbutler commentedon Oct 13, 2026
Composer: literal backslashes before list-like lines after Shift+Enter — #223 (fix in #224).
iamnbutler commentedon Oct 13, 2026
Composer rich-text bugs (stray backslashes, doubled caret, typing lag) → replacing it with a markdown editor: #226