Ace map · gaps

Gaps

Every finding on an open id, by area or ranked: decisions only Nate can make, then the fix queue agents work through without asking.

Needs Nate

  1. A teammate's offline channel

    #607
    ^104 partial^103 tested

    When the owner's Mac is asleep, a teammate sees "nate16-1 is offline" with no history and a Send button disabled with no reason. Keep a read-only copy of history on teammates' Macs and queue sends, or just say why and show nothing? Caching is the bigger change: it means a second copy of a channel's messages outside pi-durable.

  2. Where the team directory lives

    #603#608
    ^109 untested^112 tested^901 tested

    The directory is served by one Mac, so when it sleeps, everyone's directory goes down (since #644 the error names that Mac). A Mac that chose another directory never finds this one, even though the setup dialog says teammates find it on the tailnet. Keep one serving Mac and word it honestly, or move the directory to a shared service (Cloudflare, Fly)?

  3. Projects shared with you

    #606#633
    ^902 partial^355 partial^869 partial

    How should a teammate's shared project show before it has a channel (in the picker and All Projects, marked "shared by <owner>"?), and how does ace project access name a teammate's folder project, which has no GitHub owner/name? Both fix-train workers skipped it as needing this decision.

  4. Terminals and the host's page for teammates

    #629#630
    ^779 tested^798 tested

    Since #662 a teammate's channel offers no Terminal and says terminals open on its host, for its owner only; since #660 a teammate's browser on your host is told whose host it is. Should teammates get a terminal on your channel, and should another person's host page do more than refuse?

  5. Lost shares look offline

    #631
    ^113 tested^104 partial

    When the directory stops, its shares are deleted (the warning now names them), but teammates see the owner's host as Offline. A reachable host that withholds a channel needs its own listing state, or the channel drops with a "no longer shared with you" notice.

  6. Join requests while Ace is quit

    #632
    ^120 partial

    With only Ace Helper running, the owner isn't told someone asked to join. A notice from the helper itself is new desktop and infra work.

  7. Existing hosted channels

    Q125 open
    ^391 partial^440 tested

    Hosted channels still show a globe and a cloud, and both icons appear in any demo that has old channels.

  8. Phone layout pass

    Q250
    ^800 partial^803 tested^804 tested^807 tested^769 tested

    #581 fixed the overflow at 390px. You said to expect a broader pass, so its scope and look are yours.

  9. Stop on touch screens

    Q151 open
    ^533 tested

    Only a sliver of Stop shows during a run on a phone. This belongs with the phone pass if phone is in the demos.

  10. All Projects beyond Channels

    #617
    ^611 visual

    Switching from All Projects to Dashboard, Issues or PRs falls back to the last single project. Should those views aggregate too, or should All Projects be a Channels-only mode?

  11. Whether running means a channel with live work

    #625
    ^422 tested^449 tested

    ace ls calls a channel whose worker is up with no run running. docs/terms.md defines only Dormant and avoids "idle"; it needs to name that state before the CLI can stop saying running.

  12. Binary and large-folder rows in the Diff

    #620
    ^688 tested

    The Binary and large untracked-folder rows are inert. A preview or file list for them is a product choice.

  13. Window buttons in the collapsed rail

    #626
    ^652 tested

    The yellow and green buttons report disabled; Window → Minimize and Zoom now exist (#656). Showing working buttons in the collapsed rail is a layout choice.

  14. Show chats other than the first

    Q152 open
    ^581 tested^582 missing

    Subagent and ace chat work is invisible in the app.

  15. Back button and keyboard shortcuts

    ^607 missing^635 missing^653 missing^662 missing

    Back leaves the app, tabs have no keys and there's no shortcut list (#656 added a Window menu). Pick which ones are worth building.

  16. Tool approvals

    Q159 open
    ^598 missing

    Agents run every tool without asking. A product stance question, not a demo blocker.

  17. How edits show

    Q150 open
    ^558 tested
  18. Esc Esc

    Q155 open
    ^473 tested
  19. Copy message link

    Q158 open
    ^567 missing
  20. Notifications outside the desktop app

    ^624 untested
  21. Rename or reorder projects

    ^339 missing
  22. Offline home-screen page

    Q251 open
    ^787 untested
  23. Warn before Restart

    #626
    ^17 tested

    Restart closes open terminals and interrupts runs (they resume). Always ask first, or only when runs or terminals are active? Workers can't test it without restarting the real Ace Helper.

  24. Where to say the GitHub CLI is missing

    #540
    ^742 visual

    Without gh a teammate silently sees none of the team's private projects and no avatars; Issues and PRs already say so when opened. A banner, a Settings badge, or a line on the sidebar's empty state?

  25. Worker restarts mid-run

    #442
    ^595 tested

    ace kill and Stop are now recorded and told to the agent (#664, #675). A worker restart isn't: writing a marker into a run that's still going could split a tool call from its result. Where should "the run resumed after a restart" live: in the run, on the next turn, or only in the UI?

Fix queue

  1. Default model by provider, and the last-used model

    #618
    ^46 partial^378 partial

    Settings → Default model groups models by provider and marks ones without a key; the Dashboard composer names the model; a new channel starts on the last-used model.

Not ranked

Gaps that are coverage notes or too minor to queue: ^3 ^5 ^7 ^13 ^14 ^15 ^664 ^18 ^663 ^305 ^311 ^313 ^332 ^333 ^343 ^346 ^348 ^349 ^351 ^354 ^361 ^362 ^377 ^379 ^386 ^387 ^389 ^395 ^415 ^418 ^421 ^425 ^427 ^432 ^437 ^486 ^492 ^511 ^525 ^526 ^534 ^559 ^561 ^577 ^903 ^587 ^588 ^592 ^601 ^602 ^616 ^617 ^619 ^622 ^633 ^638 ^646 ^648 ^650 ^651 ^655 ^656 ^657 ^658 ^660 ^661 ^684 ^692 ^706 ^708 ^710 ^713 ^718 ^728 ^732 ^735 ^738 ^753 ^757 ^765 ^768 ^776 ^100 ^101 ^105 ^106 ^111 ^116 ^118 ^119 ^122 ^123 ^124 ^125 ^126 ^48 ^49 ^50 ^51 ^52 ^53 ^58 ^59 ^60 ^61 ^62 ^64 ^65 ^66 ^781 ^785 ^790 ^792 ^830 ^833 ^837 ^840 ^845 ^853 ^856 ^858 ^862 ^867 ^870 ^871 ^875 ^878 ^879 ^881 ^882 ^883 ^897

Install and first run

  • ^3 tested Open Ace and let Ace Helper start

    3 Tested on Canary 0.0.51.85 (2026-10-22 study), with Ace Helper already running, so not a true first launch.

  • ^5 visual First run

    4 First run appears only on a host with no projects, and nothing reopens it; the 2026-10-22 study's hosts had projects, so ^6–^11 need a fresh host.

  • ^7 partial Add a model key

    5 Not saved in this pass: the smoke host has no Keychain of its own to write to without a prompt.

  • ^13 tested Check for updates

    6 Tested on Canary 0.0.51.85 (2026-10-22 study).

  • ^14 untested Install a downloaded update

    7 Blocked in the 2026-10-22 study: needs a newer Canary build to install.

  • ^15 tested Turn automatic checks on or off

    8 Tested on Canary 0.0.51.85 (2026-10-22 study).

  • ^664 untested Resume Ace Helper after a failed update

    9 Blocked in the 2026-10-22 study: needs an update that fails.

  • ^17 tested Start, restart or stop Ace Helper

    10 Restart doesn't warn about running work (rest of githubnext/ace#626).

  • ^18 tested Show Ace Helper's log

    11 Canary 0.0.51.85: reveals the log in Finder; Ace has no viewer.

  • ^663 tested Allow Ace Helper in Login Items

    12 Tested on Canary 0.0.51.85 (2026-10-22 study).

Projects

  • ^305 untested Open while Ace Helper is unreachable

    1 Cmd+O returns silently while disconnected, with no message saying why (apps/app/src/app.tsx:553).

    2 Blocked in the 2026-10-22 study: needs a Mac where Ace Helper can be stopped.

  • ^311 tested See the Initialize Git card

    3 A folder that already has .git but no commits still reads Initialize a Git repository to get started (left by githubnext/ace#646).

  • ^313 tested Initialize a folder that already has a .gitignore

    4 The card gives no commands to copy.

  • ^332 tested Set up while starting a channel

    5 Pair study, Canary 0.0.53.88: it never asked for a name and started keen-delta in Ace mode on Automatic rather than Settings' default model. Re-check, Canary 0.0.54.93: + still made hazy-ladder with no name prompt.

  • ^333 tested See a folder project on another host

    6 Sits in your own Projects group as <project> · <host>, with nothing saying who shared it.

    7 Pair study, Canary 0.0.53.88: the Dashboard says to Open a checkout on this host but offers no way to, and the project has no Channels header, + or ⋯.

  • ^339 missing Rename or reorder a project

    8 Nothing renames a project or changes its order; the label is always the folder or repository name.

  • ^343 tested Collapse a project

    9 All Projects orders Hello-World among the folders, while the picker puts it last under octocat (not re-checked).

  • ^346 tested Remove a project

    10 Projects that appear only through CLI channels never offer it (not re-checked).

  • ^348 tested Remove a project from the picker

    11 Each row's × shows beside the name as soon as the picker opens, so a stray click opens Remove (rest of githubnext/ace#616).

  • ^349 tested Only the host's owner removes its projects

    12 Pair study, Canary 0.0.53.88: a teammate's project has no Remove in the picker, the All Projects header or the channel menu, and nothing says why, so the gateway's owner-only check (githubnext/ace#571) can't be reached from the app.

  • ^351 tested Open Share project

    13 Not on the Dashboard or in All Projects, and absent until a folder has a commit, since the ⋯ menu and header aren't shown before.

    14 Mac A's list named Sam by a stale GitHub login (githubnext/ace#610).

  • ^354 tested Unshare, or turn off team sharing

    15 The person losing access gets no notice: the project and its channels just disappear (githubnext/ace#606).

  • ^355 partial See a project you can't share

    16 Pair study, Canary 0.0.53.88: a teammate's folder project has no Channels header or ⋯, so there's no Share entry and this sentence never shows in the app; only ace project access prints it.

  • ^361 partial See who can access a project

    17 Pair study, Canary 0.0.53.88: a teammate's folder project can't be named (b-sandbox is neither a project, a folder here, nor a GitHub owner/name), and samechocolixir/b-sandbox is looked up on GitHub and lists everyone, owner included, as no access.

  • ^362 tested Share with the team or a person

    18 Without a directory it fails with Join a team directory to share projects.; an unknown login says No one on the team is rivera yet; their Ace must be running.

Channels

  • ^377 tested Create with the command line

    1 --model nope/model, which names no provider at all, gets the same Add its provider key first.

  • ^378 partial Choose the model at creation

    2 No create entry point in the app asks for a model; it can only be picked afterwards in the composer.

    3 New channels don't start on the last-used model (left by githubnext/ace#640).

  • ^379 tested Start from an issue or pull request

    4 Starts a paid run at once, with no chance to edit the prompt.

  • ^386 tested See an unread channel

    5 Pair study saw the mention count live (1 direct mention); the plain unread dot went unseen because each tester turn used a fresh browser profile, which also forgets mentions across reloads.

  • ^387 tested See a channel that needs you

    6 A browser profile only counts runs that end after its first visit: a question already waiting when a new profile opened read Busy in the palette until another question was asked.

  • ^389 tested See a teammate's section

    7 Pair study, Canary 0.0.53.88: in All Projects a shared section reads pair-sandbox · natembp · iamnbutler, truncated and sorted last, with no Shared with you heading; Archived and Inactive weren't seen.

  • ^391 partial See a hosted, cloud or PR channel

    8 A hosted channel shows a globe in the sidebar but a cloud in the header chip (apps/app/src/channel-access.tsx:53).

    9 Canary 0.0.51.85: a renamed cloud channel kept its old name in the sidebar until opened, and a PR channel shows no PR mark.

  • ^395 tested Unpin

    10 Pins live in one browser's localStorage, so another device or the desktop app doesn't share them.

  • ^415 tested Read an archived channel

    11 In All Projects an archived channel has no row anywhere, yet still says to unarchive it from the sidebar; All Projects also shows only the 10 most recent channels per project (apps/app/src/app.tsx:130, apps/app/src/app.tsx:455).

  • ^418 visual Archive inactive channels

    12 Runs at once with no preview; the 2026-10-22 study had no inactive channel to archive.

  • ^421 tested Delete an archived channel

    13 A live channel's menu has no Delete at all; the Delete channel — Archive first hint in the code is never shown (packages/ui/src/components/session-item/session-item-actions.tsx:323, session-item.tsx:217).

  • ^425 partial Choose a destination

    14 Canary 0.0.51.85: only Move to cloud workspace is offered, and a cloud channel can't move back.

  • ^427 tested Stop or start compute

    15 Tested on Canary 0.0.51.85 (2026-10-22 study).

  • ^432 tested Turn agent access off

    16 Nothing in the channel tells teammates; a guest only sees the composer lose Ace mode.

  • ^437 tested Set it with the command line

    17 off prints nothing, while on confirms.

  • ^449 tested List this host's channels

    18 Channels whose worker is up with no run still read running; the word waits on a docs/terms.md decision.

Conversation

  • ^486 tested Type @ in the Dashboard composer

    1 Not reproduced here: @, Backspace, then typing did not leave the popup armed, and Enter still sent, in headless Chromium on both the Dashboard and the channel composer. The reported dead Enter may be WebKit-only.

  • ^492 tested Format with shortcuts

    2 Markdown typing converts ` code , - lists and ` fences, but ~~strike~~ and bold` stay literal.

  • ^511 visual Record a message by voice

    3 Canary 0.0.51.85: both macOS prompts and the level meter worked; with the Mac muted nothing was transcribed, and silence gave no feedback.

  • ^525 visual See a failed run

    4 Unverified in the 2026-10-22 study: it couldn't cause a whole-run failure; a stopped run and a failed tool showed no run-level failure.

  • ^526 visual Retry a failed run

    5 Unverified in the 2026-10-22 study: no run failed, and a stopped run offers no Retry.

  • ^533 tested Stop the run

    6 Stop sits mostly behind Send and only slides out on hover or focus (by design); on touch there is no hover, so only a sliver shows.

  • ^534 tested Get queued messages back after Stop

    7 The Returned … as a draft line was gone after a reload; only Stopped. remained.

  • ^558 tested See that a message was edited

    8 An edited message in the middle of a group looked unedited until hovered, and the hover shows a bare time with no edited label.

  • ^559 tested Delete a message

    9 Re-check, Canary 0.0.54.93: Message deleted appeared at once on both Macs. Its hover toolbar still offers an enabled More whose only item, Delete, is disabled.

  • ^561 tested Add a reaction

    10 Pills show no count, and the emoji picker's search text is unreadable on its black field (githubnext/ace#619).

  • ^577 visual See Needs you on the Dashboard

    11 Not shown when nothing needs you; the 2026-10-22 study had only a finished run, and testers looked for a Needs you heading.

  • ^903 tested See where new messages start

    12 Re-check, Canary 0.0.54.93: the divider and mention tint worked within one browser session, but unread state lives in the browser: after a fresh sign-in only mention counts remained, with no divider (githubnext/ace#677).

    13 Messages grouped under one header still show only the last one's time (rest of githubnext/ace#602).

  • ^587 tested See a teammate invoke @ace

    14 The chat's cost isn't split by who asked.

    15 Re-check, Canary 0.0.54.93: the byline worked on both Macs (asked by samechocolixir · ran on your natembp with your key; asked by you · ran on iamnbutler's natembp with their key), but in the owner's browser nothing outside the channel said a teammate had used the agent (the desktop notification wasn't observable), and a teammate's channel showed the owner's Cannot access ANTHROPIC_API_KEY in the keychain… without saying it was on the owner's Mac.

  • ^588 tested Be a teammate without agent access

    16 The composer was Chat only with no @ace, but @ace what branch is this repo on? typed by hand posted as a green ace chip and was ignored, with no notice to either side.

    17 Pair study, Canary 0.0.53.88: a typed @ace is now refused with Agent access is off… Remove @ace to send this as a message. and the text kept; ace ask refuses with Only the owner can invoke agents here, naming neither agent access nor the owner.

  • ^592 tested Ask the agent

    18 A failed run prints (run ended) and exits 0, so a script can't tell it failed.

  • ^595 tested Stop a run

    19 ace kill and worker restarts aren't recorded or told to the agent, and a resumed run doesn't say it resumed (rest of githubnext/ace#442).

Workspace

  • ^601 visual Open Dashboard, Channels, Issues or PRs from the rail

    1 While projects load, the account avatar still shows a placeholder A (left by githubnext/ace#639).

  • ^602 partial Switch views with ⌘1–⌘4

    2 ⌘3 and ⌘4 do nothing in a project without GitHub, with no hint.

  • ^607 missing Go back to the previous view

    3 Views and channel picks never touch browser history (no pushState anywhere in apps/app/src), so Back leaves the app instead of going back a view.

  • ^611 visual See every project at once

    4 All Projects only applies to Channels: switching to Dashboard, Issues or PRs shows the last single project (proj) again.

  • ^616 tested See your open PRs and assigned issues

    7 Only the empty state was seen; the host's GitHub account had no open PRs or assigned issues in githubnext/ace.

  • ^617 tested Start a channel from a PR or issue

    8 Continue is missed when the channel works the PR under another local branch: after Open in a channel on githubnext/ace-testbed#2, its lane glad-orbit/add-moon pushed to add-moon, and the dashboard still offered Open #2 in a channel, inviting a second channel. Continue on #6 opened mars-greeting as expected.

  • ^619 tested See what teammates are doing

    9 Re-check, Canary 0.0.54.93: Hello-World's pulse credited the teammate (samechocolixir / #b-hello / Finished in #pair-hello-2), but entries carry no time or description, and the Finished in line vanished on a reload before the owner opened the channel.

  • ^622 partial See the window glow

    10 With the window focused the study saw no glow; coming back from another tab showed a brief green tint.

  • ^624 untested Get a desktop notification

    11 Only the desktop app notifies; a browser or phone gets no notification.

  • ^633 tested Get a Diff tab when changes appear

    12 Still logged after #587: React error #185 (Maximum update depth exceeded) fired once about 0.2 s after sending an Ace message in a channel with a Diff tab open; the page kept working. Three Chat-mode sends in a channel without a Diff tab logged none.

    13 Closed while changes remained, it stayed closed through two new changes, as designed; testers expected it back.

  • ^635 missing Open, close or cycle tabs from the keyboard

    14 No tab shortcuts exist: the only window-level keys are ⌘1–4, ⌘B, ⌘⇧B, ⌘K, ⌘O and ⌘, (navigation.tsx:152, palette.tsx:103).

  • ^638 tested Fill a blank pane

    15 Chat in a blank pane closes the blank when the chat is already open, without saying so.

  • ^646 tested Open the palette

    16 ⌘K in the composer adds a link and in a terminal clears it, so the palette needs focus elsewhere first.

  • ^648 tested Run a window action

    17 New Channel in <project>, Clone from URL… and Check for Updates… weren't run from the palette in this pass.

  • ^650 tested Open a new window

    18 Tested on Canary 0.0.51.85 (2026-10-22 study).

  • ^651 tested Keep each window's own view

    19 Tested on Canary 0.0.51.85 (2026-10-22 study).

  • ^652 tested Zoom the window from the title bar

    20 Canary 0.0.51.85: the green and yellow buttons report disabled; only double-clicking the top strip zooms.

  • ^653 missing Close or minimize a window from the keyboard

    21 The desktop menu has no Window menu and no Close or Minimize items (apps/desktop/src/index.ts:175); traced only, not tried in the app.

  • ^655 tested Ace menu

    22 Tested on Canary 0.0.51.85 (2026-10-22 study).

  • ^656 tested File menu

    23 Tested on Canary 0.0.51.85 (2026-10-22 study).

  • ^657 tested Edit menu

    24 Tested on Canary 0.0.51.85 (2026-10-22 study).

  • ^658 partial View menu

    25 Canary 0.0.51.85: Issues (⌘3) did nothing in a project without GitHub; 0.0.53 hides it (githubnext/ace#591).

  • ^660 partial Window shortcuts

    26 The keys work, but nothing lists them: no shortcut page, ⌘/ does nothing, and only palette entries show keys.

  • ^661 visual Tab and pane keys

    27 The 2026-10-22 study found no keys for new tab, close, split or pane focus (⌘T, ⌘W, ⌘\), and nothing lists the tab-list keys.

  • ^662 missing See all shortcuts in one place

    28 Shortcuts only show as hints in the rail tooltips and the palette; nothing lists tab and pane keys.

Changes and review

  • ^684 tested Read the header and the changed files

    1 It refreshes every 2 s, but only while the tab is visible and the window is focused (apps/app/src/panels/diff.tsx:95).

    2 With the details sidebar open at 1280px, the header's totals run under the toolbar: the lane name scrolls away and Untracked's +1 -0 overlaps Rebase.

  • ^688 tested See binary files and large untracked folders

    3 The Binary and folder rows are inert: no preview or file list.

  • ^692 partial Read the summary, changes, branch and pull request

    4 The summary is cut at four lines with no way to expand.

  • ^706 visual See Rebase when the base moves ahead

    5 Blocked in the 2026-10-22 study: needs a base on origin that moves ahead, such as a teammate's push.

  • ^708 visual Push a lane

    6 With uncommitted and untracked work in the lane, lane push refused, and the agent ran git add -A and committed everything (a binary and a 150-file folder) as Lane context to push, without asking.

  • ^710 visual Open a pull request

    7 Create PR is offered only when the project's origin is on GitHub (channel.repo); a local or other remote shows no PR row at all (apps/app/src/channel.tsx:227).

    8 After the PR was closed on GitHub the sidebar kept offering Merge PR for 25 s; a reload showed Create PR.

  • ^713 tested Create a draft PR

    9 The UI kit's menu also has Manually create PR, but the app never passes onManualCreatePr, so it never shows (apps/app/src/panels/diff.tsx:200).

  • ^718 tested Address review

    10 No review state or Address review control; the agent addressed the reviews only when asked.

  • ^728 partial Switch project

    11 All Projects from Issues jumps to Channels without saying why.

  • ^732 partial Refresh from GitHub

    12 The first Refresh missed an issue created seconds before, and nothing shows when the list was loaded.

  • ^735 partial See a project without a GitHub remote

    13 Switching to a project without a remote drops you on Channels with no message.

  • ^738 tested Continue a pull request in a channel

    14 The PR channel's sidebar says No pull request and offers Create PR.

  • ^742 visual See whether GitHub is signed in

    15 Without a signed-in gh, private projects' access checks, avatars and Issues/PRs still fail only when used (rest of githubnext/ace#540).

Terminal

  • ^753 tested Run commands

    1 The font stack is fixed (terminal.tsx:150: ui-monospace, SFMono, Menlo…), so Nerd Font prompt glyphs show as boxes; Nate's Ghostty uses LilexNerdFontMono and his prompt renders □ in every shot here.

  • ^757 partial Copy and paste

    2 A copied screen pasted as many commands and ran each line, with no multi-line paste warning; the headless clipboard couldn't be read.

  • ^769 tested Use a terminal at phone width

    3 Tried in Playwright's mobile emulation at 390×844 with a hardware-style keyboard; a real phone's on-screen keyboard is untested.

    4 With three tabs (chat, Diff, Terminal) the Terminal title is cut to Termina under the machine icon.

  • ^765 partial Jump to a terminal from the palette

    5 The palette lists only tabs not on screen, and ⌘K in a focused terminal clears it instead.

  • ^768 tested Reload or reopen the window

    6 Tabs are saved in each browser's localStorage (ace:channel-layout:<id>), so a terminal opened in one browser or device isn't listed in another, although its shell keeps running on the host.

  • ^776 tested Archive, kill or delete the channel

    7 Archive kills running terminals without asking (left by githubnext/ace#651).

  • ^779 tested Open a terminal on a teammate's or cloud channel

    8 Re-check, Canary 0.0.54.93: a teammate's channel's New tab menu offers only Chat and Diff, with nothing saying why; no old Terminal tab was left to check its message.

Team

  • ^100 partial See your team

    1 Pair study 2026-10-22 (two Macs on Canary 0.0.51.85): people, presence and teammates' channels worked across Macs; a peer's stale GitHub login and offline channels fell short.

  • ^101 tested See people on the tailnet

    2 Mac A kept naming nate16-1 by its owner's previous GitHub login, in People, message authors and the share list, until A's Ace Helper restarted: named in peers.ts keeps a hello sent before gh resolved and stops re-greeting once a directory is chosen.

    3 Pair study, Canary 0.0.53.88: no stale login after githubnext/ace#611, but People said Sam Online while the sidebar said samechocolixir · Offline, and with no directory and Sam's helper stopped Sam vanished from People instead of showing Offline.

  • ^103 tested See teammates' channels while their host is online

    4 Pair study, Canary 0.0.53.88: a teammate's shared folder project vanished from the picker without a word each time this Mac left the directory or it stopped, and a teammate's channel in a repository you also have is listed inside your own project.

  • ^104 partial Open a channel whose host is offline

    5 Shows nate16-1 is offline — b-chan runs on that Mac. with none of the history already read; Send is disabled with no reason and nothing queued; the project picker has no offline mark.

    6 Pair study, Canary 0.0.53.88: while Sam was online but the share was gone (directory stopped), b-sandbox read samechocolixir · Offline / Offline: nate16-1 is unreachable, so lost access looks like the host being offline.

  • ^105 visual Create the team's directory

    7 Pair study 2026-10-22: creating it on This Mac took two clicks; the teammate already on another directory had to paste the URL by hand.

  • ^106 tested Start from the sidebar card

    8 Re-check, Canary 0.0.54.93: after leaving, the card read nate16-1 serves your team's directory. This Mac isn't in it… with Join and Change…, but it stayed after rejoining through Ask to join until a reload.

  • ^109 untested Teammates' hosts join on their own

    9 Pair study: the teammate's Mac was already on another, failing directory, so it never adopted this one while the creation dialog said There's nothing to send. and Joins now. The never-chosen case is still untested.

    10 Blocked in the 2026-10-22 pair study: no host that has never chosen a directory; both Macs had chosen and left one, and resetting that means editing Ace's stored settings.

    11 Pair study, Canary 0.0.53.88: the creation dialog again said Joins now for a Mac that had left the directory; it stayed on None yet after Refresh and had to join by hand.

  • ^111 partial Manage the directory

    12 Pair study 2026-10-22: nothing on the serving Mac shows that a teammate joined.

  • ^112 tested See the directory's state

    13 Re-check, Canary 0.0.54.93: with the serving Mac's helper stopped it read Sync failed at 6:58:24 PM: nate16-1, which serves the directory, is offline. Channels stay listed as they were., but says nothing of what to do, a member Mac names the server only in that error, and In the directory kept old sync times with no down mark.

  • ^113 tested Stop serving it

    14 Teammates who lose a share when it stops still see the owner's host as Offline (rest of githubnext/ace#631, ^104).

  • ^116 missing See team services

    15 Pair study, Canary 0.0.53.88: nothing in Settings, Team setup or the CLI mentions team services, not even none for a tailnet directory.

  • ^118 tested Join with a URL or invite link

    16 Both join forms still ask for an invite link, which a tailnet directory can't make (rest of githubnext/ace#635).

  • ^119 untested Open an invite link

    17 Blocked in the 2026-10-22 pair study: a tailnet directory makes no invite link (There's nothing to send.), and opening one hands off to the desktop app, which was off limits.

    18 Pair study, Canary 0.0.53.88: Join your team asks for the invite link they sent you though a tailnet directory has none to send.

  • ^120 partial Ask a teammate's host to let you in

    19 Reachable again through Team setup in the sidebar and Settings → Team (githubnext/ace#578). Asking itself needs a teammate's host that is already in a team.

    20 Re-check, Canary 0.0.54.93: the owner's dialog arrived live (…The request lapses at 7:08 PM.) and Approve confirmed Let iamnbutler in; the asker saw Waiting… with the lapse time, but on approval Team setup just closed with no let you in toast, and a fully quit Ace still can't tell the owner (githubnext/ace#632).

  • ^122 untested Deploy to Cloudflare from the app

    21 Team setup → Get your team started → Hosted directory reaches Deploy to Cloudflare again (githubnext/ace#578); no deploy has been run from it.

    22 Canary 0.0.51.85: reached the dialog and Show the command (bun services/deploy.ts cloudflare); not deployed over the existing directory.

  • ^123 missing Deploy to Fly.io from the app

    23 Reaches the Fly.io command again (githubnext/ace#578); no deploy has been run from it.

    24 Canary 0.0.51.85: the app only shows bun services/deploy.ts fly to run from an Ace checkout, then a join form.

  • ^124 untested Invite a teammate

    25 Canary 0.0.51.85: with a Mac-served directory, Add a teammate shows the tailnet steps and download link, no invite link.

  • ^125 untested Save or remove the team secret

    26 Canary 0.0.51.85: Remove… and Directory → Change… reached their confirms; the secret row itself has no Change.

  • ^126 untested Deploy from a checkout

    27 Blocked in the 2026-10-22 study: needs an Ace checkout.

Settings

  • ^46 partial Set the default model for new chats

    1 The list doesn't mark providers without a key, and the Dashboard composer shows no model.

  • ^48 partial Add a key

    2 Form opened; not saved in this pass (no Keychain write without a prompt on the smoke host).

  • ^49 untested Replace a key

    3 Canary 0.0.51.85: reached the form and Cancel; nothing saved, since the rig keeps the real keys.

  • ^50 untested Remove a key

    4 Canary 0.0.51.85: reached the confirmation and Cancel; nothing removed.

  • ^51 tested Check a connection

    5 Tested on Canary 0.0.51.85 (2026-10-22 study).

  • ^52 visual See an environment override

    6 Blocked in the 2026-10-22 study: needs Ace Helper started with a provider key in its environment.

  • ^53 partial Refresh after unlocking Keychain

    7 A key the provider rejects still reads Saved in Keychain (rest of githubnext/ace#626).

  • ^58 tested See Ace Helper's status and stop it

    8 Canary 0.0.51.85, desktop app: Running. Starts at login. with Restart and Stop… (Stop reached its warning). The browser's Settings → Host has none of this and doesn't say so.

  • ^59 tested Read Ace Helper's log

    9 Canary 0.0.51.85, desktop app: Log → Show reveals helper.log in Finder. The browser's Host page has no log.

  • ^60 tested Open Ace on your phone

    10 Tested on Canary 0.0.51.85 (2026-10-22 study).

  • ^61 tested Check tools

    11 Tested on Canary 0.0.51.85 (2026-10-22 study).

  • ^62 tested Install or remove the command line tool

    12 Canary 0.0.51.85, desktop app: Install put ~/.local/bin/ace-canary in place with a Remove button. The browser's Host page doesn't offer it.

  • ^64 tested See whether agents can use this Mac

    13 Tested on Canary 0.0.51.85 (2026-10-22 study).

  • ^65 untested Grant macOS permissions

    14 Blocked in the 2026-10-22 study: needs a Mac with a permission not yet granted.

  • ^66 tested See clipboard access

    15 Tested on Canary 0.0.51.85 (2026-10-22 study).

Phone and web

  • ^781 visual Find the phone address

    1 Not re-checked after #581 (HTTP address and QR when tailnet HTTPS is off): it needs a host on the tailnet, and this pass ran loopback only.

  • ^785 visual Open the plain HTTP address

    2 Not re-checked after #581 (Voice input needs HTTPS toast): a loopback host refuses any other Host name (Forbidden), so an insecure origin needs a tailnet host.

  • ^787 untested Add the HTTPS page to the home screen

    3 The manifest and Apple meta tags are served (/manifest.webmanifest returns 200 on the HTTPS listener), but there is no service worker, so a home-screen Ace has no offline page when the host is unreachable.

  • ^790 visual Open a link that names the host

    4 The 2026-10-22 study's headless browser never connected (no local-network prompt), and nothing documents the #host= link.

  • ^792 tested Let the host accept the web app

    5 Done here with ACE_WEB_APP on a second host and the app served over the tailnet certificate; ace web itself is covered under Command line.

    6 Only ace web shows or sets it; the app has no web-app row.

  • ^798 tested A teammate's browser is refused

    7 Re-check, Canary 0.0.54.93: Sam's browser on Nate's host read This is iamnbutler@gmail.com's host. Open Ace from your own host. It shows the owner's full email to anyone on the tailnet and offers no link to your own host.

  • ^800 partial Switch areas with the bottom tab bar

    8 While the Channels drawer is open the bottom bar can't be tapped.

  • ^804 tested Open a Terminal tab

    9 With three tabs (chat, Diff, Terminal) the Terminal title is still cut to Termina and runs under the machine icon at 390px.

    10 On-screen keyboard input to the terminal is untested.

Command line

  • ^830 visual Add teammates' channels

    1 It needs the running host; with the host on a non-default port it says Open Ace or start this host with ace serve first unless --port or ACE_PORT is given, and help lists --port only for tabs, serve and open.

  • ^833 tested Show a teammate's channel

    2 Pair study, Canary 0.0.53.88: the JSON doesn't name the host, and the owner is an email (same.chocolixir@gmail.com) where the app says samechocolixir.

  • ^837 tested Start a sibling channel

    3 Cloud compute channels are refused: Cloud compute channels can't be forked yet: their lanes are in the container. (apps/host/src/manage.ts:96)

  • ^840 tested Rename a tab

    4 The chat tab can't be renamed (The Chat tab follows the channel name and cannot be renamed); names over 80 characters and closed tabs are refused.

  • ^845 visual Restore into another project

    5 Restore errors are raw ENOENT/EEXIST, and the restored channel can't be named (rest of githubnext/ace#624).

  • ^853 tested Pick the model for one ask

    6 ace chat --model anthropic/… was accepted, then ran on gpt-6-astra: the rig's CLI had no Anthropic key.

  • ^856 tested Open another chat

    7 Chat IDs aren't sequential: a channel with one chat got chats 10 and then 15.

  • ^858 tested Use a teammate's channel

    8 Pair study, Canary 0.0.53.88: say prints nothing, and a refused ask says Only the owner can invoke agents here without naming agent access.

    9 Pair study, Canary 0.0.53.88: watch replays the whole history with no mark where live output begins; chat and stop weren't tried.

  • ^862 untested Bring a hosted channel back to this host

    10 Only the refusals were checked: a local channel gives The channel is already on this host, and no flag or both flags print the usage.

    11 Canary 0.0.51.85: a cloud compute channel refuses with A cloud compute channel's workspace is its container, so it cannot move; needs a hosted directory to try.

  • ^867 tested Turn desktop tools on or off

    12 Like ace agents, any word but on turns it off silently.

    13 Tested on Canary 0.0.51.85 (2026-10-22 study).

  • ^869 partial See who can see a project

    14 Pair study, Canary 0.0.53.88: a teammate's folder project can't be named, and its owner/name form lists everyone, owner included, as no access.

  • ^870 tested Share a project with the team

    15 Without a team directory both share and unshare refuse with Join a team directory to share projects.

  • ^871 tested Share a project with one person

    16 Pair study, Canary 0.0.53.88: project unshare <project> <login> wasn't tried.

  • ^875 tested Set the default model

    17 An unknown model on a provider that has a key gives This model is unavailable. Add its provider key first. (openai/does-not-exist with an OpenAI key set).

  • ^878 tested Store a key in the keychain

    18 Tested on Canary 0.0.51.85 (2026-10-22 study).

  • ^879 tested Remove a key

    19 Tested on Canary 0.0.51.85 (2026-10-22 study).

  • ^881 tested Show the directory

    20 Pair study, Canary 0.0.53.88: it never says this Mac is the one serving it, or whether the last sync worked.

  • ^882 tested Join a directory

    21 An unreachable URL gives Could not reach https://example.invalid. Check the URL and your connection. and saves nothing.

    22 Pair study, Canary 0.0.53.88: it echoes the URL with no joined, and an open Settings → Team shows it only after Refresh.

  • ^883 tested Leave the directory

    23 Pair study, Canary 0.0.53.88: an open Settings → Team kept the URL, Synced… and Leave… until a reload.

  • ^897 tested Open this host's app

    24 After an Ace Helper restart a reload sticks on Disconnected from your host. Reconnecting… (WebSocket 401) with nothing saying to sign in again.

    25 ace open prints nothing (left by githubnext/ace#652).

}