Ace map · questions

Questions

Open questions for Nate. Annotate a question to answer it.

  1. Q1

    Is ^N the id format you want?

    Integers from one counter, shown as ^42, linked as <area>.html#42. Flows and steps share the counter. The first pass used blocks per writer (1–299, 300–599, 600–899), so numbers jump between areas.

    1. Keep ^N.
    2. Another sigil (&N, ~N).

    Answer: Keep ^. ~ reads as "about" and & breaks URLs.

  2. Q2

    Should the deployed map be public?

    It's on ace-map.iamnbutler.workers.dev, readable by anyone with the link, like the onboarding page. Cloudflare Access could limit it to you and the team.

    1. Public is fine.
    2. Put it behind Access.

    Answer: Public is fine; Ace is open source.

  3. Q3

    What does works have to mean?

    Now it means someone did the step on a real host in this pass. Steps only traced in code are untested. Should works expire, say after a release, so coverage reflects the current build?

    Answer: For now, status means "works for the universe release". Scale: planned → untested → visual (an agent saw it work on a real host) → tested (a human or an automated research study did it).

  4. Q5

    Bring back or retire the team setup dialog?

    Since first run became Welcome (#569), nothing opens team setup, so Ask to join (^120) and deploying a directory from the app (^122, ^123) are unreachable. docs/setup.md still describes them. Invite… and invite links still work.

    1. Retire them; deployed directories are set up from a checkout.
    2. Reach them from Settings → Team (a Deploy… and an Ask to join button).

    Answer: Bring it back: an item at the bottom of the sidebar, and a way to open it from Settings.

  5. Q6

    What should the account menu's Sign out do?

    It's always disabled (^23), and Download app (^2) never shows. In the desktop app there's nothing to sign out of; in a browser it could forget the host token.

    1. Remove both items from the app.
    2. Wire them up for browsers only.

    Answer: Remove both items from the app.

  6. Q250

    Should the phone tab bar keep the account button on screen?

    At 390px wide the account button (Settings, Sign out) is past the right edge and needs a sideways scroll of the tab bar (^800).

    1. Fit it in the tab bar.
    2. Move Settings somewhere else on phones.
    3. Scrolling is fine.

    Answer: Fit it in the tab bar. And expect a broader pass on phone layout.

  7. Q251

    Should the home-screen app work offline?

    The manifest makes Ace installable, but there's no service worker, so an installed Ace shows the browser's error page when the host is off (^787).

    1. Add an offline page that says the host is unreachable.
    2. Leave it.
  8. Q252

    Should Settings → Host show the HTTP address when tailnet HTTPS is off?

    Without HTTPS certificates the Phone group only says to turn HTTPS on, though http://<machine>.<tailnet>.ts.net:<port> works (minus the microphone) (^781, ^785).

    1. Show the HTTP address and its QR as a fallback.
    2. Keep HTTPS only.

    Answer: Show the HTTP address and its QR as a fallback.

  9. Q260

    What should ace restore name a channel whose name is taken?

    It keeps the original name, so restoring next to the source gives two channels with the same name and name-based commands then ask for an ID. ace new and ace import refuse a taken name instead.

    1. Refuse, like ace new.
    2. Add a suffix (cli-one-2).
    3. Keep duplicates; IDs disambiguate.

    Answer: Add a suffix (cli-one-2). As <name>-1, like Finder.

  10. Q240

    Should the terminal let people pick its font?

    The font stack is fixed to system monospace fonts, so Nerd Font prompts (yours uses LilexNerdFontMono in Ghostty) show boxes. Ace could add a font setting, try known Nerd Fonts first, or read the font from the person's terminal config.

    1. Add a terminal font setting.
    2. Put common Nerd Fonts first in the stack.
    3. Leave it.

    Answer: Leave it. Noise.

  11. Q241

    Should terminal tabs follow you across devices?

    Tabs (and the terminal ids they reattach to) live in each browser's localStorage. A shell opened on the desktop keeps running on the host but doesn't appear on the phone or in another browser.

    1. Keep tabs per browser.
    2. Store window layouts on the host so every device sees them.

    Answer: Keep tabs per browser.

  12. Q220

    May I test pull request actions against a scratch GitHub repo?

    Create PR, Update PR, Address review, Ready, Merge, Close and Fix checks all have the agent write to GitHub, so this pass left them untested. Testing them needs a throwaway repository with checks and a reviewer, for example a private iamnbutler/ace-map-sandbox.

    1. Yes, create a private sandbox repo and test there.
    2. No, leave them untested.

    Answer: Yes, create a private sandbox repo and test there. A durable testing repo agents may do anything in.

  13. Q221

    Should Push work without a pull request, or for non-GitHub remotes?

    Work leaves the Mac only through Create PR or Update PR. A project whose origin isn't on GitHub gets Commit and Rebase but no way to push from the app.

    1. Add Push.
    2. GitHub only is intended.

    Answer: Add Push. Not every project uses PRs.

  14. Q222

    Should people see and switch lanes without the agent?

    Only the agent's lane tool lists, starts or switches lanes. The app shows the current lane only in the Diff header.

    1. Add a lane list or switcher, in the Diff header or details.
    2. Asking the agent is enough.

    Answer: Asking the agent is enough.

  15. Q100

    Should removing a project ask first, and where should Remove live?

    Remove project is only in All Projects' header context menu and acts on one click; the picker's built-in remove is never wired up. Removing only forgets the folder and refuses while channels exist.

    1. Keep one-click remove in All Projects only (removal is harmless and reversible by reopening).
    2. Wire the picker's remove too, still without confirmation.
    3. Add a confirmation and offer remove from the picker and the project's own Channels page.

    Answer: Add a confirmation and offer remove from the picker and the project's own Channels page. With "Don't ask again".

  16. Q101

    What should Share project do on a team without a directory?

    The Share dialog opens and lets you confirm, then fails with Join a team directory to share projects. The Channels sidebar already promotes Create directory.

    1. Keep it; the toast explains.
    2. Show the directory requirement inside the Share dialog with a Create/Join directory action.
    3. Hide Share project until a directory is joined.

    Answer: Hide Share project until a directory is joined. Or a standard upsell dialog for setting up a directory.

  17. Q102

    How should Open a folder treat a relative path?

    Relative paths resolve against Ace Helper's working directory, which a person can't see (relative/x looked inside the Ace source tree on the smoke host).

    1. Reject it, as Clone from URL does: Enter a full folder path.
    2. Resolve it against the home folder.
    3. Resolve it against the projects folder (Settings → General).

    Answer: Reject it, as Clone from URL does: Enter a full folder path.

  18. Q103

    Should Initialize Git work for a folder that already has a .gitignore?

    Ace refuses so it never commits under someone else's ignore rules, but the card still offers the button and only the error says to do it by hand.

    1. Keep refusing, but say so on the card instead of offering Initialize Git.
    2. Init and commit under the folder's own .gitignore after showing what will be committed.
    3. Append Ace's secret rules to the existing .gitignore, then commit.

    Answer: Keep refusing, but say so on the card instead of offering Initialize Git.

  19. Q120

    Should ace delete require archiving first, like the app?

    The app offers Delete only on archived channels, behind a confirmation. ace delete x2 deleted a live, unarchived channel at once, while the app had it open.

    1. Keep the CLI direct; it's for people who mean it.
    2. Refuse live channels with Archive it first, or add --force.
    3. Let the app delete live channels too (with the same dialog).

    Answer: Keep the CLI direct; it's for people who mean it.

  20. Q121

    Should archiving confirm, or offer undo?

    Archive channel acts on one click with no toast; the row vanishes into a footer list. Archive inactive does toast a count.

    1. Keep it silent; Unarchive is one step away.
    2. Toast Archived <name> with Undo.
    3. Confirm first.

    Answer: Keep it silent; Unarchive is one step away.

  21. Q122

    Should teammates' messages mark a channel unread?

    Unread and needs-attention light only for runs you invoked; sam's message in shared-room never marked it, and mention counts are always 0.

    1. Keep it to your own runs.
    2. Mark unread for any new message, and count @mentions of you.
    3. Only count @mentions of you.

    Answer: Mark unread for any new message, and count @mentions of you.

  22. Q123

    Where should renaming a channel live?

    Rename is only in the sidebar row's right-click menu and the CLI. The channel's header tab menu shows Rename disabled, and the details sidebar has no name field.

    1. Sidebar only.
    2. Enable Rename on the chat tab's menu for the channel.
    3. Make the name editable in the details sidebar.

    Answer: Sidebar only.

  23. Q124

    How should All Projects reach older and archived channels?

    All Projects shows the 10 most recent channels per project and no archived ones; an archived channel opened there says to unarchive it from the sidebar, where it isn't listed.

    1. Keep All Projects as a recent overview; open the project for the rest.
    2. Add Show all per project and an Archived footer.

    Answer: Keep All Projects as a recent overview; open the project for the rest.

  24. Q125

    How should existing hosted channels look now that new ones are gone?

    #567 stopped creating and moving channels to hosted, but channels already hosted still exist and can only move back (ace move <channel> --local). They show a globe in the sidebar and a cloud in the header chip, and cloud compute channels also show a cloud.

    1. Mark them legacy (one icon) and offer Move back to this Mac.
    2. Move every existing hosted channel back and drop the hosted UI.
    3. Globe for hosted, cloud for cloud compute, as is.
  25. Q126

    Should the app choose a model when creating a channel?

    No app entry point asks for a model; the composer's picker (Automatic) sets the first run's model. The CLI has ace new --model.

    1. Keep the composer picker as the place to choose.
    2. Add a model choice to New channel.

    Answer: Keep the composer picker as the place to choose.

  26. Q7

    Open folder… or Open Folder…?

    The picker and empty state say Open folder…; the palette and desktop menu say Open Folder… (^301).

    Answer: Make them consistent.

  27. Q150

    How should an edited message show it was edited?

    Today edited shows only on the last row of a group, or as a bare time on hover, so an edited message in the middle of a group looks untouched.

    1. Always show edited after the text, on every row
    2. Show edited on hover only, but with the word, not just a time
    3. Keep it as it is
  28. Q151

    Where should Stop sit on touch screens?

    Stop hides behind Send and slides out on hover or focus. Touch has no hover, so during a run only a sliver of Stop shows.

    1. Replace Send with Stop while a run is going and the composer is empty
    2. Show Stop beside Send on touch devices
    3. Keep the peek everywhere
  29. Q152

    Should the app show chats other than the channel's first?

    ace chat and subagents make chats the app never shows; New tab → Chat only refocuses chat 1. Work done there is invisible to everyone in the app.

    1. List a channel's chats and open each in a tab
    2. Show only child chats inside their parent's run
    3. Keep extra chats a CLI-only feature
  30. Q153

    Should Needs you list runs that finished while you were away?

    Needs you lists pending questions and failed runs; a finished run only leaves an unread dot in the sidebar.

    1. Add finished, unread runs to Needs you
    2. Keep Needs you for questions and failures only

    Answer: Remove Needs you from the Dashboard. The Dashboard is a prototype; don't try to fix it.

  31. Q154

    Should a failed run offer Retry?

    Run failed: … has no action, and the failing model stays picked for the chat, so the next ask fails too.

    1. Add Retry, with a model picker when the model was the cause
    2. Reset the chat to Automatic after a model error
    3. Both
    4. Neither

    Answer: Nate left it to the map lead. Add Retry on a failed run; when the model or its key caused the failure, Retry resets the chat to Automatic and says so.

  32. Q155

    Should Esc Esc toggle both ways?

    Esc leaves Ace for Chat; Esc Esc enters Ace from Chat. From Ace, Esc Esc ends in Chat, not back where you started. A mistyped Esc Esc sent an Ace prompt as a plain message.

    1. Keep it (Esc always leaves Ace)
    2. Make Esc Esc a toggle in both modes
    3. Drop Esc Esc and keep the dropdown and @ace
  33. Q156

    How should people decline an agent's question or answer it elsewhere?

    The question card has Submit answers only; the run waits until someone answers or stops it. The CLI shows the raw tool call and cannot answer.

    1. Add Skip, which tells the agent no answer was given
    2. Add ace answer <channel> to the CLI
    3. Both
    4. Stop is enough

    Answer: Add Skip, which tells the agent no answer was given, and let the CLI answer with free text (ace answer <channel> <text>).

  34. Q157

    Should @ mention people in the channel?

    @ suggests only ace, even with teammates in the channel. On the Dashboard any @word becomes a chip for a name that doesn't exist.

    1. Suggest channel members and notify them
    2. Keep @ for agents only, and stop the Dashboard from making unknown chips
  35. Q158

    Should Copy message link work?

    The toolbar shows Copy message link, always disabled.

    1. Build message links that open the channel at that message
    2. Remove the button until links exist
  36. Q159

    Should agents ask before running tools?

    Agents run every tool without approval; there is no approval request in the channel, the app or the CLI.

    1. Add approvals for risky tools, set per channel
    2. Rely on agent access and the lane sandbox, no approvals
  37. Q201

    Do you want a desktop pass?

    These steps only exist in the desktop app (updates, the Ace Helper menu and Login Items, computer use). Testing them means launching a desktop build, which takes focus on your screen, so they stay untested.

    1. Yes: schedule a pass when you're away from the Mac.
    2. Yes, on a second Mac.
    3. No: leave them untested for now.