7.8 KiB
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-qaAgent 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 |