Files
stack/docs/TASKS.md
jason.woltje 62b2ce2da1
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
docs: orchestrator close-out IUV-M02 (#445)
2026-04-05 23:50:55 +00:00

7.8 KiB

Tasks — Install UX v2

Single-writer: orchestrator only. Workers read but never modify.

Mission: install-ux-v2-20260405 Schema: | id | status | description | issue | agent | branch | depends_on | estimate | notes | Status values: not-started | in-progress | done | blocked | failed | needs-qa Agent values: codex | sonnet | haiku | opus | (auto)

Milestone 1 — Hotfix: bootstrap DTO + wizard failure + port prefill + copy (IUV-M01)

id status description issue agent branch depends_on estimate notes
IUV-01-01 done Fix apps/gateway/src/admin/bootstrap.controller.ts:16 — switch import type { BootstrapSetupDto } to a value import so Nest's @Body() binds the real class #436 sonnet fix/bootstrap-hotfix 3K PR #440 merged 0ae932ab
IUV-01-02 done Add integration / e2e test that POSTs /api/bootstrap/setup with {name,email,password} against a real Nest app instance and asserts 201 — NOT a mocked controller unit test #436 sonnet fix/bootstrap-hotfix IUV-01-01 10K apps/gateway/src/admin/bootstrap.e2e.spec.ts — 4 tests; unplugin-swc added for vitest
IUV-01-03 done packages/mosaic/src/wizard.ts:147 — propagate !bootstrapResult.completed as a wizard failure in interactive mode too (not only headless); non-zero exit + no ✔ Wizard complete line #436 sonnet fix/bootstrap-hotfix IUV-01-02 5K removed && headlessRun guard
IUV-01-04 done Gateway port prompt prefills 14242 in the input buffer — investigate why promptPort's defaultValue isn't reaching the user-visible input #436 sonnet fix/bootstrap-hotfix IUV-01-03 5K added initialValue through prompter interface → clack
IUV-01-05 done "What is Mosaic?" intro copy updated to mention Pi SDK as the underlying agent runtime (alongside Claude Code / Codex / OpenCode) #436 sonnet fix/bootstrap-hotfix IUV-01-04 2K packages/mosaic/src/stages/welcome.ts
IUV-01-06 done Tests + code review + PR merge + tag mosaic-v0.0.26 + Gitea release + npm registry republish #436 sonnet fix/bootstrap-hotfix IUV-01-05 10K PRs #440/#441/#442 merged; tag mosaic-v0.0.26; registry latest=0.0.26 ✓

Milestone 2 — UX polish: CORS/FQDN, skill installer rework (IUV-M02)

id status description issue agent branch depends_on estimate notes
IUV-02-01 done Replace CORS origin prompt with FQDN / hostname input; derive the CORS value internally; default to localhost with clear help text #437 sonnet feat/install-ux-polish 10K deriveCorsOrigin() pure fn; MOSAIC_HOSTNAME headless var; PR #444
IUV-02-02 done Diagnose and document the concrete failure modes of the current skill / additional feature install section end-to-end #437 sonnet feat/install-ux-polish IUV-02-01 8K selection→install gap, silent catch{}, no whitelist concept
IUV-02-03 done Rework the skill installer so it is usable end-to-end (selection, install, verify, failure reporting) #437 sonnet feat/install-ux-polish IUV-02-02 20K MOSAIC_INSTALL_SKILLS env var whitelist; SyncSkillsResult typed return
IUV-02-04 done Tests + code review + PR merge #437 sonnet feat/install-ux-polish IUV-02-03 10K 18 new tests (13 CORS + 5 skills); PR #444 merged 172bacb3

Milestone 3 — Provider-first intelligent flow + drill-down main menu (IUV-M03)

id status description issue agent branch depends_on estimate notes
IUV-03-01 not-started Design doc: new first-run state machine — main menu (Plugins / Providers / …), Quick Start vs Custom paths, provider-first flow, intent intake + naming loop #438 opus feat/install-ux-intent 15K scratchpad + explicit non-goals
IUV-03-02 not-started Implement drill-down main menu (Plugins: Recommended / Custom, Providers, …) as the top-level entry point of mosaic wizard #438 opus feat/install-ux-intent IUV-03-01 25K
IUV-03-03 not-started Quick Start path: curated minimum question set — define the exact baseline, delete everything else from the fast path #438 opus feat/install-ux-intent IUV-03-02 15K
IUV-03-04 not-started Provider-first natural-language intake: user describes intent → agent expounds → agent proposes a name (confirmable / overridable) — OpenClaw-style #438 opus feat/install-ux-intent IUV-03-03 25K offline fallback required (deterministic default name + path)
IUV-03-05 not-started Preserve backward-compat: headless path (MOSAIC_ASSUME_YES=1 + env vars) still works end-to-end; tools/install.sh --yes unchanged #438 opus feat/install-ux-intent IUV-03-04 10K
IUV-03-06 not-started Tests + code review + PR merge + mosaic-v0.0.27 release #438 opus feat/install-ux-intent IUV-03-05 15K