Skip to content

docs(crews): say why a preview goes stale and why ACP seats lack auto modes - #307

Open
bryantderosier wants to merge 2 commits into
j5/mainfrom
j5/crews-preview-binding
Open

bryantderosier wants to merge 2 commits into
j5/mainfrom
j5/crews-preview-binding

Conversation

@bryantderosier

Copy link
Copy Markdown
Collaborator

Problem

Two correct behaviors at the roster gate surprised a person the first time (#231). The approval preview token binds the Captain's project, branch, worktree, and interaction mode (crewRuntimePreview.ts), so switching the Captain's branch between preview and approval failed with "preview has changed" and nothing said why. And seats on an ACP registry harness can't use Accept edits or Auto, because the harness can't enforce them, but the seat editor hid those options without explanation.

What I changed

  • docs/j5/product/features/crews.md AC3: one sentence that the preview binds the Captain's project, branch, worktree, and interaction mode, plus a History line.
  • docs/user/personas.md, Crews section: one sentence each for the branch binding and the missing access modes on ACP harnesses.
  • apps/server/src/j5/a2a/CrewProposalService.ts: the stale-preview refusal names the roster, a seat's runtime, and the Captain's branch or worktree as what may have changed. Message text only.

Why this shape

The binding is correct: approval must launch exactly what was shown. So the fix is saying why, in the card message the person already sees and in the docs, not changing the behavior.

Invariants

  • No behavior change; the refusal still fires on the same token mismatch.

Surfaces

Surface Decision
Entry points (chat, Settings, command palette, keybinding) Unaffected.
Clients (web, desktop, mobile) The card shows the server's message, so web and desktop get the clearer text with no client change.
Providers Unaffected.
Contracts (packages/contracts) Unchanged.
Reverse states n/a.
Connection modes (local, remote, tunnel) Unaffected.
Upstream files / FORK.md None.
Docs crews.md AC3 and History, docs/user/personas.md.

Out of scope

  • The server's ACP seat error still says "Approval required", while the composer's label is "Supervised". The seat editor itself says "Approval required", so I left it.

Upgrade and data

None.

Verification

  • CrewProposalService.test.ts: 15 passed. No test pins the message text, and I didn't add one that would only mirror the string.
  • Server typecheck clean.

Review focus

  • Whether the refusal should also name the interaction mode. I kept it to the causes a person can actually change from the card.

Closes #231

Claude Opus 5.5 via Claude Code

🤖 Generated with Claude Code

… modes

Two correct behaviors at the roster gate surprised a person the first time.
The approval preview binds the Captain's branch and worktree, so a branch
switch between preview and approval failed with "preview has changed" and
nothing said why. And the seat editor hides Accept edits and Auto on ACP
registry harnesses, which cannot enforce them, with no explanation.

crews.md AC3 and the Crews section of the personas guide now say both, and
the stale-preview refusal names the roster, a seat's runtime, and the
Captain's branch or worktree as what may have changed. Message text only;
no behavior change.

Closes #231

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Repository: Jacksondr5/j5code/.coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: 31fb7aa6-65e0-44d9-9a51-87a69be7e78a


Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XS 0-9 effective changed lines (test files excluded in mixed PRs). labels Sep 25, 2026
Conflict in crews.md History: kept this branch's AC3 entry beside the sync's handoff artifact entry.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@Jacksondr5

Copy link
Copy Markdown
Owner

[Review panel: Opus 5.5 + coordinator (Opus 5.5)]

Rebase needed. The CrewProposalService.ts hunk conflicts with #313, which rewrites resolve. On #313's branch the stale-preview refusal still carries the old text, so re-apply the new message after rebasing.

Docs: the new crews.md History line has no attribution, while every other line names who decided and links a record; suggest "(Bryant; #231)". It also sits after the out-of-order 2026-09-16 line. Once #306 restores date order, it belongs with the other 2026-09-24 lines.

@Jacksondr5

Copy link
Copy Markdown
Owner

Decision (Jackson, 2026-09-26): use upstream's access-mode names everywhere. Upstream's composer labels the modes Supervised, Auto-accept edits, Auto and Full access. J5's copies say "Approval required" and "Accept edits". Please fold the rename into this PR, since it's the same topic:

  • apps/web/src/j5/crew/crewSeatRuntime.ts CREW_ACCESS_OPTIONS: use upstream's labels and descriptions verbatim ("Ask before commands and file changes.", "Auto-approve edits, ask before other actions.", …). Keep the J5 copy rather than exporting upstream's module-private list: an upstream edit isn't worth it.
  • The server strings that name the mode: crewRuntimePreview.ts ("Approval required") and both ACP messages in CrewLaunchService.ts ("Choose Approval required or Full access" → "Choose Supervised or Full access").
  • The docs: docs/user/personas.md and crews.md should use Supervised and Auto-accept edits, so the "Out of scope" note in this PR's description goes away.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XS 0-9 effective changed lines (test files excluded in mixed PRs). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Document the approval token's branch binding and the ACP access restriction

2 participants