docs(sprint-a): record build restoration and refreshed sprint plan

- Commit previously untracked docs/NEXT_SPRINT_ROADMAP.md with refreshed
  May 22 status; mark Sprint 1 (backend build) and Sprint 2 (lint) as
  resolved by Sprint A workspace-path fix
- Add post-Sprint-A re-verification section to
  docs/PRODUCTION_READINESS_HANDOFF_ROADMAP.md documenting the
  workspace-path regression and the re-verified gates
- Update README quick-start to reference the canonical common-platform
  checkout path with BYTELYST_COMMON_PLAT_ROOT override note
This commit is contained in:
saravanakumardb1 2026-05-22 15:08:42 -07:00
parent b2d824c8c6
commit c75ed3dc25
3 changed files with 221 additions and 1 deletions

View File

@ -7,7 +7,7 @@ Structured notes platform for humans and AI agents — part of the ByteLyst ecos
Prerequisites: Prerequisites:
- pnpm 10.6.5 - pnpm 10.6.5
- sibling common-platform checkout at `../learning_ai/learning_ai_common_plat` - sibling common-platform checkout at `../learning_ai_common_plat` (override with `BYTELYST_COMMON_PLAT_ROOT` if your layout differs)
- optional local ByteLyst services from common platform: - optional local ByteLyst services from common platform:
- `platform-service` on port 4003 for auth, flags, telemetry, diagnostics, billing, and blob - `platform-service` on port 4003 for auth, flags, telemetry, diagnostics, billing, and blob
- `extraction-service` on port 4005 for URL/task extraction - `extraction-service` on port 4005 for URL/task extraction

209
docs/NEXT_SPRINT_ROADMAP.md Normal file
View File

@ -0,0 +1,209 @@
# NoteLett — Next Sprint Roadmap
> **Date:** May 22, 2026 (refreshed)
> **Last verified commit:** Sprint A workspace-path fix (pending) — `pnpm run verify` passes end-to-end (backend 373/373, web 96/96, mobile 97/97).
> **Context:** Core product (Phases 04) is complete. UI/UX migration (UI0UI4) is done. Sprint A restored the green build after the May 12 Docker/UI regression. Remaining work is UI5UI8 migration plus production-hardening.
---
## Current State
### Product Phases
| Phase | Status | Summary |
|-------|--------|---------|
| **Phase 0** | ✅ Complete | Foundations, identity, repo structure |
| **Phase 1** | ✅ Complete | Core skeleton — web, backend, mobile auth + CRUD |
| **Phase 2** | ✅ Complete | Notes MVP — relationships, tasks, artifacts, agent actions |
| **Phase 3** | ✅ Complete | Agentic layer — 8 MCP tools, approval/audit, extraction |
| **Phase 4** | ✅ Complete | Search + knowledge — saved views, Palace, RAG scoping |
| **Phase 5** | ✅ Re-verified | Production readiness — `pnpm run verify` green after Sprint A workspace-path repair |
### UI/UX Migration
| Phase | Status | Summary |
|-------|--------|---------|
| **UI0** | ✅ Complete | Baseline audit + rules |
| **UI1** | ✅ Complete | Common-platform core UI hardened |
| **UI2** | ✅ Complete | NoteLett UI adapter expanded |
| **UI3** | ✅ Complete | Review UX migrated to platform primitives |
| **UI4** | ✅ Complete | App shell + navigation migrated |
| **UI5** | ❌ Not started | Forms, modals, settings |
| **UI6** | ❌ Not started | Search, workspaces, dashboard |
| **UI7** | ❌ Not started | Notes, Smart Actions, Palace |
| **UI8** | ❌ Not started | Remove legacy globals |
### Production Readiness (refreshed May 22, 2026 after Sprint A)
| Check | Status |
|-------|--------|
| Backend typecheck | ✅ Pass |
| Backend build | ✅ Pass |
| Backend tests | ✅ 373/373 pass (54 files) |
| Backend lint | ✅ 0 errors, 14 warnings |
| Web typecheck | ✅ Pass |
| Web build | ✅ Pass |
| Web tests | ✅ 96/96 pass (22 files) |
| Web lint | ✅ 0 errors, 23 warnings (React-compiler advisories) |
| Mobile typecheck | ✅ Pass |
| Mobile tests | ✅ 97/97 pass (25 files) |
| Mobile lint | ✅ 0 errors, 30 warnings |
| Release-guard audit | ✅ Secret scan + color/token audit pass |
| Docker compose smoke | ⏸ Deferred — no Docker runtime on this host |
| Shared-service live smoke | ⏸ Deferred — needs running platform-service/extraction-service/mcp-server + Cosmos creds |
### Sprint A (May 22, 2026) — Build Restoration
Sprint A resolved the May 12 regression. Root cause: `pnpm-workspace.yaml` referenced a sibling path (`../learning_ai/learning_ai_common_plat/...`) that did not exist on dev/CI hosts. `.pnpmfile.cjs` fell back to `../learning_ai_common_plat` for some packages but missed others, so `@bytelyst/ui` came from a stale Gitea 0.1.0 tarball with no exports (breaking web typecheck + 26 tests) and `@bytelyst/monitoring` failed to install entirely (breaking backend typecheck + 2 test suites).
Fix:
- `pnpm-workspace.yaml` now references `../learning_ai_common_plat/packages/*` directly.
- `.pnpmfile.cjs` swaps `DEFAULT_COMMON_PLAT_ROOT` and `LEGACY_COMMON_PLAT_ROOT` so the canonical path is the default and the older nested path is the fallback.
- Clean reinstall regenerated `pnpm-lock.yaml` with `@bytelyst/ui@0.1.9` and `@bytelyst/monitoring@0.1.5` linked to the local checkout.
Verification: `pnpm run verify` end-to-end, plus backend/web/mobile lint and `pnpm run audit:release-guards`.
---
## Sprint 1 — Fix Backend Build ✅ Resolved by Sprint A
Original failure was misattributed to Palace/LLM API drift. Actual cause was workspace-path drift causing `@bytelyst/monitoring` to be missing from `backend/node_modules`. Once the workspace path was corrected, backend typecheck, build, lint, and all 373 tests pass without code changes to the Palace/LLM modules.
---
## Sprint 2 — Fix Web + Mobile Lint ✅ Resolved by Sprint A
Web lint now exits 0 (23 advisory warnings retained). Mobile lint exits 0 (30 advisory warnings retained). `@bytelyst/billing-client` resolves correctly once the workspace path is canonical. Driving remaining advisory warnings to zero is tracked under Sprint 6 / Q1 tech-debt.
---
## Sprint 3 — UI5: Forms, Modals, Settings (~2 days)
> **Why next:** Highest-value remaining UI migration. Auth/settings flows are user-facing and currently use raw HTML elements.
### 3.1 — Auth Forms
- [ ] Migrate login/register/forgot-password to common `Input`, `Label`, `Button`, `Card`
- [ ] Ensure accessibility labels on all form elements
### 3.2 — Settings Forms
- [ ] Migrate settings forms to `Field`, `Input`, `Textarea`, `Select`, `Switch`, `ConfirmDialog`
- [ ] Use common-platform form primitives from `@bytelyst/ui`
### 3.3 — Create/Link/Share Modals
- [ ] Migrate `CreateNoteModal`, `LinkNoteModal`, `ShareDialog` to common `Modal` + form primitives
- [ ] Action bars and button groups via platform components
### Exit Criteria
- [ ] All auth/settings/modal screens use platform UI primitives
- [ ] No raw `<button>`, `<input>`, `<textarea>`, `<select>` in migrated screens
- [ ] Playwright release-flow specs pass
- [ ] Web typecheck + tests pass
---
## Sprint 4 — UI6: Search, Workspaces, Dashboard (~2 days)
### 4.1 — Search Page
- [ ] Replace saved-search/result cards with `Panel`, `DataList`, `Badge`, `EmptyState`
- [ ] Replace filter chips with `StatusBadge` or `FilterChip`
### 4.2 — Workspaces Page
- [ ] Workspace cards → `Panel` + `Badge` + `StatCard`
- [ ] Filter bar → common filter components
### 4.3 — Dashboard
- [ ] Metric cards → `StatCard`, recent notes → `DataList`
- [ ] Two-column layout → reusable adapter primitive
### Exit Criteria
- [ ] Dashboard, search, workspaces all use platform primitives
- [ ] Responsive visual checks pass (desktop + mobile widths)
- [ ] All tests pass
---
## Sprint 5 — UI7 + UI8: Notes, Smart Actions, Legacy Cleanup (~2.5 days)
### 5.1 — Note Detail Shell
- [ ] Keep rich editor local, replace shell/toolbar/popover with common primitives
- [ ] Migrate Smart Actions cards/buttons/result panels
### 5.2 — Palace Panels
- [ ] Migrate Palace panels to common panel/list/form primitives
- [ ] Keep domain rendering local
### 5.3 — Remove Legacy Globals (UI8)
- [ ] Remove `.surface-card`, `.surface-muted`, `.badge`, `.input-shell` globals
- [ ] Add CI guard: `pnpm run audit:ui:strict`
- [ ] Verify full E2E + visual smoke
### Exit Criteria
- [ ] `pnpm run audit:ui:strict` passes (no raw controls, no legacy globals, no hardcoded colors)
- [ ] Full web test/typecheck/lint/E2E pass
---
## Sprint 6 (Future) — Production Hardening
> **After UI migration is complete.**
- [ ] Backend config: fail-closed in production (no dev defaults)
- [ ] Backend logging: replace any remaining `process.stdout/stderr` with `app.log`
- [ ] CI: add mobile tests, web E2E, Docker build check
- [ ] Shared service smoke: platform-service, extraction-service, mcp-server
- [ ] Docker compose smoke on Docker-capable host
- [ ] Stale doc cleanup (reconcile AGENTS.md, README, older gap docs)
---
## Total Estimated Effort
| Sprint | Effort | Focus |
|--------|--------|-------|
| Sprint 1 | ~2 days | Fix backend build (Palace/LLM drift) |
| Sprint 2 | ~1 day | Fix all lint (backend/web/mobile) |
| Sprint 3 | ~2 days | UI5 — forms, modals, settings |
| Sprint 4 | ~2 days | UI6 — search, workspaces, dashboard |
| Sprint 5 | ~2.5 days | UI7 + UI8 — notes, Smart Actions, legacy cleanup |
| Sprint 6 | ~2 days | Production hardening (future) |
| **Total** | **~11.5 days** | |
---
## Verification Commands
```bash
# Full verification
pnpm run verify
# Per-workspace
pnpm --filter @notelett/backend run typecheck
pnpm --filter @notelett/backend run build
pnpm --filter @notelett/backend run test
pnpm --filter @notelett/backend run lint
pnpm --filter @notelett/web run typecheck
pnpm --filter @notelett/web run build
pnpm --filter @notelett/web run test
pnpm --filter @notelett/web run lint
pnpm --filter @notelett/mobile run typecheck
pnpm --filter @notelett/mobile run lint
# UI audit
pnpm run audit:ui
pnpm run audit:ui:strict # after UI8
# E2E
pnpm --filter @notelett/web exec playwright test e2e/release-flows.spec.ts --reporter=list --workers=1
```

View File

@ -11,6 +11,17 @@ Use this document as the source of truth for finishing NoteLett end to end and m
The implementation rule is simple: complete one checklist item or one small cluster at a time, run the stated verification, commit with the repo convention, push, and record the commit hash in this document before moving on. The implementation rule is simple: complete one checklist item or one small cluster at a time, run the stated verification, commit with the repo convention, push, and record the commit hash in this document before moving on.
## Post-Sprint-A Re-verification (May 22, 2026)
The May 12 Docker/UI refactor introduced a workspace-path regression that silently broke backend and web typecheck/test against the previously documented green state. Sprint A (May 22, 2026) restored full green by repairing `pnpm-workspace.yaml` and `.pnpmfile.cjs` to use the canonical `../learning_ai_common_plat/packages/*` path, then performing a clean `pnpm install` to relink `@bytelyst/ui@0.1.9` and `@bytelyst/monitoring@0.1.5` from common-plat instead of stale registry tarballs.
Re-verified gates on May 22, 2026:
- `pnpm run verify` passes: backend 373/373 tests (54 files), web 96/96 tests (22 files), mobile 97/97 tests (25 files), backend build, web build.
- Backend lint, web lint, mobile lint all exit 0 (advisory warnings retained).
- `pnpm run audit:release-guards` passes secret scan and color/token audit.
- Docker compose smoke and live shared-service smoke remain explicit environment deferrals on this host.
## Current Baseline ## Current Baseline
This baseline is from repo inspection on May 5, 2026. This baseline is from repo inspection on May 5, 2026.