Workspace starting-branch repair acceptance
This fixture uses a real Git repository with a master branch and no main
branch. It runs a deterministic process adapter, with no external model calls.
Use a disposable local-trusted instance. The seed changes that instance's
experimental workspace and task-interface flags and creates a test company.
- Start a disposable Paperclip instance from this checkout. Set a separate
PAPERCLIP_HOMEand port. Keep it bound to loopback inlocal_trustedmode. - Run
node tests/e2e/workspace-base-ref/seed.mjs http://127.0.0.1:PORT. - Open the returned issue in the browser. Wait for it to become blocked.
- Confirm the thread says the starting branch is unavailable and shows the branch repair card. It must not claim that secrets are missing or offer a generic retry of the same broken setting.
- Click Use master & retry. The task must reach Done. Its agent comment
must report that it ran in an isolated worktree at the
origin/mastercommit. - Reload. Confirm the task remains Done, its task-specific base ref is
master, and its recovery action is resolved. There should be exactly two runs: the initial configuration failure and a successful process run.
To test custom input, seed another company and task. Choose Choose another
branch. Enter bad..branch and submit: the inline error must keep the task
blocked. Change it to master and submit. Verify the same durable result.
The worker uses its authenticated run API to obtain its actual workspace and mark its own task complete. It checks both the fixture file and the Git commit before doing so. A saved setting or simulated Storybook success alone does not satisfy this acceptance check.
The component stories are under Workspace branch recovery. Their save and retry callbacks are simulated; use this fixture for the real server journey.
Pass --agent-defaults to the seed command to put the missing base branch,
setup command, branch template, and worktree directory in agent defaults.
The task has no strategy override. On repair, the worker also verifies that
inherited setup ran and the branch template and worktree directory survived.