7fe301a17: Console panel (onboarding.js), Quick Setup "Start onboarding interview", GET /api/onboarding/interview, POST /api/north-star/approve (owner-only; the one org-fence exception is exactly this path).
205154e8d (lead, roles): roles/assistant.md named "no write tool" against the existing record.write grant; it now names write_record and keeps spec/ human-only. Grant unchanged.
5937a977f (lead, review fixes): a refused interview start threw on a null currentTarget and left Start disabled (Sol P2); the panel cached /api/config for the page's life, so Approve outlived the capability (Sol P3). Hold the button before the await; reread config each offer. Quick Setup's interview button gets the primary fill. New onboarding-retry-browser test: 0/2 on the old source, 2/0 now.
Review: Codex Sol, CHANGES 0/1/1 on 205154e8d, 205/0 on the 19 requested files. No P1: tester, granted user, unnamed user, read-only Console, cross-origin, extra keys and agent-marked CLI runs all refuse; draft-stale and stale-base write nothing; offline org fails closed. Both findings fixed above.
Lead run on bad760ce0, one file at a time: 24 files, 260 pass, 0 fail (the 19 review files, the new retry test, organization-imports, rename-b-commands, rename-b-identity, console-relative-launch). The live scratch-instance file was not run.
F2 (#1873): the onboarding interview after Quick Setup and on the project page, with human approval of the assistant's north-star draft.
- 00ae2c718: interview template (`packages/project/templates/onboarding-interview.json`), loader and validator, `approveNorthStarDraft`, CLI `mosaic project interview|north-star`, `thread create --instance`.
- 7fe301a17: Console panel (`onboarding.js`), Quick Setup "Start onboarding interview", `GET /api/onboarding/interview`, `POST /api/north-star/approve` (owner-only; the one org-fence exception is exactly this path).
- 205154e8d (lead, roles): `roles/assistant.md` named "no write tool" against the existing record.write grant; it now names write_record and keeps `spec/` human-only. Grant unchanged.
- 5937a977f (lead, review fixes): a refused interview start threw on a null currentTarget and left Start disabled (Sol P2); the panel cached `/api/config` for the page's life, so Approve outlived the capability (Sol P3). Hold the button before the await; reread config each offer. Quick Setup's interview button gets the primary fill. New `onboarding-retry-browser` test: 0/2 on the old source, 2/0 now.
- cc9f6edcc and bad760ce0: merges onto c9c409ac4 and fbf2f6fc8 (stage B; serve.mjs import conflict resolved onto organization paths).
Review: Codex Sol, CHANGES 0/1/1 on 205154e8d, 205/0 on the 19 requested files. No P1: tester, granted user, unnamed user, read-only Console, cross-origin, extra keys and agent-marked CLI runs all refuse; draft-stale and stale-base write nothing; offline org fails closed. Both findings fixed above.
Lead run on bad760ce0, one file at a time: 24 files, 260 pass, 0 fail (the 19 review files, the new retry test, organization-imports, rename-b-commands, rename-b-identity, console-relative-launch). The live scratch-instance file was not run.
REQ-SETUP-2 (PRD 1.20 draft), unified workspace direction ruling 14 and
phase F2.
- packages/project/templates/onboarding-interview.json: the interview's
conversation name, four questions, draft paths and first message.
loadInterviewTemplate(url) reads it and validateInterviewTemplate checks
it, so an organization file or a plug-in can pass a replacement later.
- approveNorthStarDraft: agents never write spec/, so the assistant
proposes docs/north-star-draft.md with its existing record.write grant
and the human approves. The approval copies the exact reviewed draft
commit into spec/north-star.md through the human save verb, pinned to
the reviewed spec commit. A rewritten draft or a moved spec writes
nothing. No new verb, grant or role change.
- mosaic project north-star <project> [--approve <draft> --base <spec>]
shows the spec and the draft and approves as the human; mosaic project
interview <project> prints the first message; mosaic thread create
takes --instance.
- Quick Setup's done state offers Start onboarding interview next to Open
organization. It opens a conversation with the assistant and sends the
template's first message; Open organization skips it.
- The project overview offers the interview while the north star is the
init template, then shows the assistant's draft with Approve as north
star and the equivalent CLI command.
- GET /api/onboarding/interview serves the template and the assistant
instance. POST /api/north-star/approve runs approveNorthStarDraft with
the save's boundary (header user, exact Origin, same-origin Fetch
Metadata, strict JSON). In an organization it is the one project write
the fence lets through; the tester and granted users never reach it.
/api/config says northStarApprove where the route can pass.
- GET /api/project-file adds `committed`, the file's last commit time; `at`
stays the read time.
roles/assistant.json grants record.write and the harness exposes it
as write_record, but the prose said 'You have no write tool', which
could make a model refuse the onboarding draft. The grant is
unchanged; spec/ stays human-only.
Sol's F2 review: a refused interview start threw on the null
currentTarget after the await and left Start disabled (P2); the panel
cached /api/config for the life of the page, so Approve outlived the
capability (P3). Hold the button before the await; reread config on
each offer. Lead P3: on Quick Setup done, Start onboarding interview
gets the accent fill; Open organization stays secondary.
onboarding-retry-browser is red 0/2 on the old source, 2/0 now.
Conflict in packages/webui/src/serve.mjs imports: kept F2's
THREAD_DEFINITION and onboarding imports on stage B's organization path.
The F2 assistant test edit followed the move to packages/organization;
onboarding-browser now imports the organization service directly.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
F2 (#1873): the onboarding interview after Quick Setup and on the project page, with human approval of the assistant's north-star draft.
00ae2c718: interview template (packages/project/templates/onboarding-interview.json), loader and validator,approveNorthStarDraft, CLImosaic project interview|north-star,thread create --instance.7fe301a17: Console panel (onboarding.js), Quick Setup "Start onboarding interview",GET /api/onboarding/interview,POST /api/north-star/approve(owner-only; the one org-fence exception is exactly this path).205154e8d(lead, roles):roles/assistant.mdnamed "no write tool" against the existing record.write grant; it now names write_record and keepsspec/human-only. Grant unchanged.5937a977f(lead, review fixes): a refused interview start threw on a null currentTarget and left Start disabled (Sol P2); the panel cached/api/configfor the page's life, so Approve outlived the capability (Sol P3). Hold the button before the await; reread config each offer. Quick Setup's interview button gets the primary fill. Newonboarding-retry-browsertest: 0/2 on the old source, 2/0 now.cc9f6edccandbad760ce0: merges ontoc9c409ac4andfbf2f6fc8(stage B; serve.mjs import conflict resolved onto organization paths).Review: Codex Sol, CHANGES 0/1/1 on
205154e8d, 205/0 on the 19 requested files. No P1: tester, granted user, unnamed user, read-only Console, cross-origin, extra keys and agent-marked CLI runs all refuse; draft-stale and stale-base write nothing; offline org fails closed. Both findings fixed above.Lead run on
bad760ce0, one file at a time: 24 files, 260 pass, 0 fail (the 19 review files, the new retry test, organization-imports, rename-b-commands, rename-b-identity, console-relative-launch). The live scratch-instance file was not run.fbf2f6fc8(rename stage B) into F2 bad760ce08