521 lines
30 KiB
Markdown
521 lines
30 KiB
Markdown
# NoteLett — Master Roadmap
|
|
|
|
Version: 2.0
|
|
Date: May 5, 2026
|
|
Status: Production-readiness handoff complete with explicit environment deferrals
|
|
Companion Docs: `docs/PRD.md`, `docs/PRODUCTION_READINESS_HANDOFF_ROADMAP.md`
|
|
|
|
# 1. Purpose
|
|
|
|
This is the **master execution tracker** for the notes platform.
|
|
|
|
Use this document to:
|
|
|
|
- track phase status,
|
|
- understand sequencing and dependencies,
|
|
- assign workstreams to coding agents,
|
|
- link out to smaller roadmap documents with focused execution detail.
|
|
|
|
Detailed implementation plans live under `docs/roadmaps/`.
|
|
|
|
# Status Legend
|
|
|
|
- **Scaffolded** — package/app/module structure exists and boots.
|
|
- **Mock-backed** — UI/workflow exists but currently runs on mock or fallback data.
|
|
- **Local-only** — behavior exists in client/local state without real backend persistence.
|
|
- **Integrated** — wired to the intended backend/platform dependency.
|
|
- **Verified** — exercised by build, typecheck, tests, or smoke checks.
|
|
|
|
# 2. Confirmed Stack
|
|
|
|
- **Web**
|
|
- Next.js 16
|
|
- React 19
|
|
- TypeScript
|
|
|
|
- **Backend**
|
|
- Fastify 5
|
|
- TypeScript ESM
|
|
- Zod
|
|
|
|
- **Mobile MVP**
|
|
- React Native + Expo
|
|
|
|
- **Shared Services**
|
|
- `platform-service`
|
|
- `extraction-service`
|
|
- `mcp-server`
|
|
|
|
# 3. Roadmap Document Index
|
|
|
|
- [x] `docs/roadmaps/00_MASTER_EXECUTION_PLAN.md`
|
|
- [x] `docs/roadmaps/01_FOUNDATIONS_AND_DECISIONS.md`
|
|
- [x] `docs/roadmaps/02_BACKEND_ROADMAP.md`
|
|
- [x] `docs/roadmaps/03_WEB_ROADMAP.md`
|
|
- [x] `docs/roadmaps/04_MOBILE_ROADMAP.md`
|
|
- [x] `docs/roadmaps/05_MCP_AGENT_ROADMAP.md`
|
|
- [x] `docs/roadmaps/06_PLATFORM_INTEGRATIONS_ROADMAP.md`
|
|
- [x] `docs/roadmaps/07_QA_RELEASE_DOCS_ROADMAP.md`
|
|
- [x] `docs/WEB_AI_FAST_ROADMAP.md` — web product phases (AI-fast velocity, retrieval, copilot, sharing)
|
|
|
|
# 4. Master Phase Tracker
|
|
|
|
## Phase 0 — Foundations and Decisions
|
|
|
|
### Goals
|
|
|
|
- finalize product identity and product manifest inputs
|
|
- choose the single MVP mobile path
|
|
- define repo structure and ownership boundaries
|
|
- define initial domain objects and module boundaries
|
|
- lock reuse strategy against the ByteLyst workspace
|
|
|
|
### Checklist
|
|
|
|
- [x] product name finalized: NoteLett
|
|
- [x] `productId` finalized: `notelett`
|
|
- [x] backend port assigned: `4016`
|
|
- [x] domain / bundle identifiers assigned: `notelett.app`, `com.bytelyst.notelett`, `com.notelett.app`
|
|
- [x] token namespace requested through `--nl-*` CSS variables and `NoteLettTheme`
|
|
- [x] mobile path confirmed as React Native + Expo MVP
|
|
- [x] repo folder structure finalized across `backend/`, `web/`, `mobile/`, `shared/`, and `docs/`
|
|
- [x] initial Cosmos container strategy defined for notes, workspaces, relationships, tasks, artifacts, agent actions, saved views, prompts, schedules, webhooks, collaborators, shares, versions, intake, and Palace data
|
|
- [x] operator vs shared admin boundary defined: NoteLett product logic remains repo-local; auth, flags, telemetry, diagnostics, billing, blob, extraction, MCP, and shared packages come from `learning_ai_common_plat`
|
|
- [x] PRD and roadmap aligned for product identity and active production-readiness handoff; historical docs are labeled as superseded context where applicable
|
|
|
|
### Owner Docs
|
|
|
|
- `docs/roadmaps/00_MASTER_EXECUTION_PLAN.md`
|
|
- `docs/roadmaps/01_FOUNDATIONS_AND_DECISIONS.md`
|
|
|
|
## Phase 1 — Core Product Skeleton
|
|
|
|
### Goals
|
|
|
|
- stand up web, backend, and mobile skeletons
|
|
- complete auth, app shells, and first persistence layer
|
|
- establish notes/workspaces as end-to-end vertical slices
|
|
|
|
### Checklist
|
|
|
|
- [x] web app boots with authenticated shell
|
|
- [x] backend boots with health and first modules
|
|
- [x] mobile app boots with auth and navigation shell
|
|
- [x] notes CRUD works end-to-end across backend clients, web note detail/editor, mobile capture/detail/edit, and MCP write paths
|
|
- [x] workspaces CRUD works end-to-end across backend clients, web workspace surfaces, and mobile workspace store/API
|
|
- [x] first telemetry events are wired through shared web/mobile platform clients; production smoke verification remains tracked in `docs/PRODUCTION_READINESS_HANDOFF_ROADMAP.md`
|
|
|
|
### Owner Docs
|
|
|
|
- `docs/roadmaps/02_BACKEND_ROADMAP.md`
|
|
- `docs/roadmaps/03_WEB_ROADMAP.md`
|
|
- `docs/roadmaps/04_MOBILE_ROADMAP.md`
|
|
- `docs/roadmaps/06_PLATFORM_INTEGRATIONS_ROADMAP.md`
|
|
|
|
## Phase 2 — Notes Product MVP
|
|
|
|
### Goals
|
|
|
|
- complete human-facing notes product MVP
|
|
- add relationships, tasks, artifacts, and useful mobile parity
|
|
- harden auditability for meaningful write paths
|
|
|
|
### Checklist
|
|
|
|
- [x] note CRUD complete for backend/web/mobile core surfaces
|
|
- [x] workspace switching and product-scoped permissions are implemented for current MVP surfaces; production membership hardening remains in P3/P5
|
|
- [x] note relationships work through backend routes, web link modal/panels, and MCP linking
|
|
- [x] tasks can be extracted and linked through backend routes, MCP task extraction, and web/mobile review surfaces
|
|
- [x] artifact upload/download works through shared blob client wrappers and backend artifact records
|
|
- [x] mobile quick capture and retrieval are functional through backend-backed stores and API clients
|
|
- [x] audit log exists for agent/MCP write paths and review flows
|
|
|
|
### Owner Docs
|
|
|
|
- `docs/roadmaps/02_BACKEND_ROADMAP.md`
|
|
- `docs/roadmaps/03_WEB_ROADMAP.md`
|
|
- `docs/roadmaps/04_MOBILE_ROADMAP.md`
|
|
- `docs/roadmaps/06_PLATFORM_INTEGRATIONS_ROADMAP.md`
|
|
- `docs/roadmaps/07_QA_RELEASE_DOCS_ROADMAP.md`
|
|
|
|
## Phase 3 — Agentic Layer
|
|
|
|
### Goals
|
|
|
|
- ship safe MCP tools
|
|
- add approval and audit workflows
|
|
- support AI-assisted and AI-mediated knowledge flows
|
|
|
|
### Checklist
|
|
|
|
- [x] core MCP tools work end-to-end for list, get, search, create draft, update, link notes, extract tasks, and attach artifact
|
|
- [x] agent write paths support approval/audit where required, including dry-run, idempotency key, and correlation ID behavior
|
|
- [x] audit and review UX is functional across web and mobile, including batch review and agent timeline
|
|
- [x] extraction-backed workflows exist for task extraction, summarize/copilot, URL intake, prompts, and related Smart Actions; dependency outage UX remains in P6/P7
|
|
- [x] operator workflows are documented in AGENTS/README and historical progress notes; production runbook remains in P9/P10
|
|
|
|
### Owner Docs
|
|
|
|
- `docs/roadmaps/05_MCP_AGENT_ROADMAP.md`
|
|
- `docs/roadmaps/02_BACKEND_ROADMAP.md`
|
|
- `docs/roadmaps/03_WEB_ROADMAP.md`
|
|
- `docs/roadmaps/07_QA_RELEASE_DOCS_ROADMAP.md`
|
|
|
|
## Phase 4 — Search and Knowledge Acceleration
|
|
|
|
### Goals
|
|
|
|
- make search, retrieval, and context navigation genuinely strong
|
|
- support scalable knowledge workflows for humans and agents
|
|
|
|
### Checklist
|
|
|
|
- [x] search is backend-backed with saved views, seeded query params, and debounced web search
|
|
- [x] linked-note navigation is meaningful through relationship panels, link modal, and note detail hydration
|
|
- [x] retrieval is scoped by workspace/product for current APIs; Palace and RAG production verification remains blocked by current common-platform API drift
|
|
- [x] search telemetry is wired at the client/platform layer; production event taxonomy and smoke checks remain in P2/P9
|
|
- [x] web UX supports dense knowledge usage through dashboard, search, reviews, note detail, prompts, intake, settings, Palace, and chat surfaces
|
|
|
|
### Owner Docs
|
|
|
|
- `docs/roadmaps/02_BACKEND_ROADMAP.md`
|
|
- `docs/roadmaps/03_WEB_ROADMAP.md`
|
|
- `docs/roadmaps/04_MOBILE_ROADMAP.md`
|
|
- `docs/roadmaps/05_MCP_AGENT_ROADMAP.md`
|
|
- `docs/roadmaps/06_PLATFORM_INTEGRATIONS_ROADMAP.md`
|
|
|
|
## Phase 5 — Production Readiness and Release
|
|
|
|
### Goals
|
|
|
|
- ensure builds, tests, release flows, and runbooks are stable
|
|
- prepare the repo for continued multi-agent execution
|
|
|
|
### Checklist
|
|
|
|
- [x] build/test/release flows are documented in AGENTS, README, CI, Docker files, and `docs/PRODUCTION_READINESS_HANDOFF_ROADMAP.md`
|
|
- [ ] core smoke tests pass on all chosen surfaces: current May 5 baseline fails backend typecheck/build/tests and lint; see production-readiness P0.5
|
|
- [ ] production-readiness checklist passes: active work is tracked in `docs/PRODUCTION_READINESS_HANDOFF_ROADMAP.md`
|
|
- [x] deferred list documented in this roadmap and production-readiness baseline inventory
|
|
- [x] roadmap status updated after implementation through May 5 baseline reconciliation
|
|
|
|
### Owner Docs
|
|
|
|
- `docs/roadmaps/07_QA_RELEASE_DOCS_ROADMAP.md`
|
|
- all workstream docs
|
|
|
|
# 5. Parallelization Rules
|
|
|
|
## Safe Parallel Tracks After Phase 0
|
|
|
|
- **Agent 1**
|
|
- backend core modules
|
|
|
|
- **Agent 2**
|
|
- web shell and notes/workspace routes
|
|
|
|
- **Agent 3**
|
|
- mobile shell and quick capture flows
|
|
|
|
- **Agent 4**
|
|
- MCP tool schemas and read-only tools
|
|
|
|
- **Agent 5**
|
|
- platform integrations, telemetry, diagnostics, extraction wiring
|
|
|
|
- **Agent 6**
|
|
- QA docs, smoke plans, release-readiness docs
|
|
|
|
## High-Collision Areas
|
|
|
|
- shared product config files
|
|
- root package/dependency manifests
|
|
- shared route registration
|
|
- top-level navigation/layout files
|
|
- shared token/theme entrypoints
|
|
- shared auth setup
|
|
|
|
## Merge Order
|
|
|
|
- [ ] foundations
|
|
- [ ] backend core modules
|
|
- [ ] web shell and CRUD flows
|
|
- [ ] mobile shell and core flows
|
|
- [ ] MCP core tools
|
|
- [ ] integrations and enrichments
|
|
- [ ] QA hardening and release docs
|
|
|
|
# 6. Suggested First Sprint
|
|
|
|
- [x] finalize product identity and mobile path
|
|
- [x] scaffold `web/`, `mobile/`, and `backend/`
|
|
- [x] implement backend `notes` and `workspaces`
|
|
- [x] build web authenticated shell and note list/detail pages
|
|
- [x] build mobile shell and quick capture
|
|
- [x] define MCP tool schemas for list/get/search/create-draft
|
|
- [x] wire telemetry, diagnostics, and extraction clients
|
|
|
|
# 7. Definition of Done
|
|
|
|
- [x] web app supports real end-to-end note workflows
|
|
- [x] mobile app supports meaningful capture/retrieval for MVP
|
|
- [ ] backend modules are tested and production-shaped: many tests exist, but May 5 baseline currently fails because Palace/LLM integrations drifted from local common-platform APIs
|
|
- [x] MCP tools exist for core note workflows
|
|
- [ ] shared platform integrations are stable: clients and package usage exist, but runtime smoke checks and common-platform API alignment remain active production-readiness work
|
|
- [ ] roadmap, PRD, and build/test commands are aligned: this roadmap is reconciled; AGENTS, README, and stale historical docs are handled by P1.2-P1.5
|
|
- [ ] release readiness is documented and repeatable: active production gate remains P8-P10
|
|
|
|
# 8. Progress Notes
|
|
|
|
- 2026-03-10 — Web workstream materially advanced:
|
|
- `learning_ai_notes/web/` was scaffolded from scratch
|
|
- authenticated shell and core route surfaces now exist
|
|
- dashboard, workspaces, note detail, search, settings, and error states now mix backend-backed data with a smaller set of still-derived operator/saved-view summaries
|
|
- the web roadmap is now tracking real implementation state instead of draft-only planning
|
|
- 2026-03-10 — Backend workstream materially advanced:
|
|
- `learning_ai_notes/backend/` was scaffolded from scratch
|
|
- Fastify 5 + TypeScript ESM service bootstrap now exists with shared `@bytelyst/*` package wiring
|
|
- `/health` and readiness-capable service bootstrap were added via `@bytelyst/fastify-core`
|
|
- `notes`, `workspaces`, `note-relationships`, `note-tasks`, `note-artifacts`, and `note-agent-actions` modules now exist with schemas, repositories, routes, and starter tests
|
|
- explicit `/notes/search` support now exists in the backend
|
|
- product bootstrap identity currently uses provisional values pending final product naming and manifest alignment
|
|
- 2026-03-10 — Web/backend verification materially advanced:
|
|
- `web/` dependencies are now installed
|
|
- `web` `npm run typecheck` passes
|
|
- `web` `npm run build` passes after fixing the auth `BaseUser` shape and guarding demo session init from server-side `localStorage`
|
|
- `backend/` dependencies are now installed
|
|
- `backend` `npm run typecheck` passes after normalizing Fastify type boundaries for `file:` workspace deps
|
|
- `backend` `npm test` passes after fixing hoisted Vitest mock patterns and stale route registration count assertions, though the current route tests are still mostly registration-focused rather than deep API-behavior coverage
|
|
- 2026-03-10 — Web operator/search density materially advanced:
|
|
- saved views are now represented across dashboard, workspaces, and search
|
|
- search results now expose a denser operational layout with status, owner, and workspace metadata
|
|
- operator workflow summary surfaces now exist on dashboard and reviews
|
|
- workspace cards now expose ownership context for denser navigation
|
|
- `web/` verification passed again after wiring the richer saved-view/search/operator workflow slice (`npm run typecheck`, `npm test`, `npm run build`)
|
|
- 2026-03-10 — MCP design work materially advanced:
|
|
- product-side MCP core tool contracts now exist under `backend/src/mcp/`
|
|
- namespace, role gating, read-only vs mutating classification, workspace scoping, and dry-run/idempotency/correlation expectations are now encoded for the first core tool set
|
|
- 2026-03-10 — MCP execution and registration materially advanced:
|
|
- product-side executable note MCP tools now exist for list/get/search/create-draft
|
|
- the mutating create-draft path now records a `note-agent-actions` audit/proposal document
|
|
- product-side MCP note tools now export through a registration adapter compatible with the shared `mcp-server` tool model
|
|
- backend typecheck passes and backend tests pass with MCP execution coverage included
|
|
- 2026-03-10 — Mobile workstream materially advanced:
|
|
- `learning_ai_notes/mobile/` was scaffolded from scratch
|
|
- Expo + TypeScript root config and Expo Router entrypoints now exist
|
|
- auth shell, tab navigation, home/recent notes, search, quick capture, inbox, and note detail surfaces now exist
|
|
- shared mobile wiring now exists for auth, platform client, offline queue, token-based theme usage, and first-pass Zustand stores
|
|
- mobile currently uses provisional product config values, but quick capture and note retrieval/edit flows are now wired to the product backend for the core note/workspace slice
|
|
- 2026-03-10 — Mobile utility materially advanced:
|
|
- home/search/capture are workspace-aware, and home exposes a retrieval summary surface
|
|
- capture exposes offline queue readiness details for the scaffold
|
|
- note detail supports lightweight backend-backed editing, artifact summary, and first-pass loading polish
|
|
- inbox supports simple approval/reject flows plus a lightweight activity feed
|
|
- 2026-03-10 — Real note/workspace vertical slice materially advanced (`5995b6c`):
|
|
- mobile quick capture now persists notes to the product backend instead of saving local-only drafts
|
|
- mobile note editing continues to flow through backend note update endpoints for persisted notes
|
|
- web dashboard, workspaces, search, and reviews now derive their operator/saved-view side panels from live note/workspace/review data instead of static mock fixtures
|
|
- web note detail now hydrates linked notes from the backend `note-relationships` endpoint with graceful fallback when relationship data is unavailable
|
|
- verification passed for this slice with:
|
|
- `web` `npm run typecheck`
|
|
- `web` `npm test`
|
|
- `mobile` `npm run typecheck`
|
|
- 2026-03-10 — Mobile approval/activity integration materially advanced (`8f14698`):
|
|
- mobile inbox approvals now hydrate from backend `note-agent-actions` instead of seeded local Zustand data
|
|
- mobile approve/reject actions now persist proposal state back through the backend review route
|
|
- mobile activity feed now derives from real backend agent-action history across workspaces
|
|
- verification passed for this slice with:
|
|
- `mobile` `npm run typecheck`
|
|
- 2026-03-10 — Mobile note detail truthfulness improved (`2a93b5b`):
|
|
- the mobile note detail screen now reflects persisted note status, workspace, and last-updated state instead of scaffold-era hardcoded metadata
|
|
- placeholder note-body copy was removed in favor of truthful empty-state messaging for real backend-backed notes
|
|
- verification passed for this slice with:
|
|
- `mobile` `npm run typecheck`
|
|
- 2026-03-10 — Mobile capture workspace selection materially advanced (`8e57799`):
|
|
- the mobile capture screen now exposes live workspace selection instead of relying on hidden active-workspace state
|
|
- backend-backed note creation now reflects the workspace chosen directly from the capture surface
|
|
- verification passed for this slice with:
|
|
- `mobile` `npm run typecheck`
|
|
- 2026-03-10 — Mobile all-workspace view materially advanced (`7d23793`):
|
|
- the mobile home surface now supports returning to an explicit all-workspaces view instead of forcing the first hydrated workspace
|
|
- mobile capture now requires an explicit workspace selection before save when no workspace is active
|
|
- verification passed for this slice with:
|
|
- `mobile` `npm run typecheck`
|
|
- 2026-03-10 — Mobile review actions hardened (`7a80094`):
|
|
- mobile approve/reject actions now disable while the backend update is in flight and expose per-item pending labels
|
|
- the mobile review surface no longer leaves approve/reject open to duplicate taps during async state changes
|
|
- verification passed for this slice with:
|
|
- `mobile` `npm run typecheck`
|
|
- 2026-03-10 — Active surface copy truthfulness improved (`5458090`):
|
|
- active landing, workspace, note-detail, and 404 surfaces now describe the backend-backed product state instead of stale scaffold/placeholder wording
|
|
- mobile note save now awaits the persisted update before exiting edit mode
|
|
- verification passed for this slice with:
|
|
- `web` `npm run typecheck`
|
|
- `mobile` `npm run typecheck`
|
|
- 2026-03-10 — Web review decisions materially advanced (`1bb220b`):
|
|
- the web review surface now approves and rejects proposals through the backend `note-agent-actions` review route
|
|
- proposal comparison cards now expose real approve/reject actions instead of read-only before/after scaffolding
|
|
- the approval queue and timeline now update in-session after a review decision is applied
|
|
- verification passed for this slice with:
|
|
- `web` `npm run typecheck`
|
|
- `web` `npm test`
|
|
- 2026-03-10 — Web note editing materially advanced (`cdc03e3`):
|
|
- the web note detail surface now saves title/body edits through the backend `PATCH /notes/:id` route
|
|
- the note detail page now refreshes the live note state after save instead of leaving edits local-only in the form
|
|
- the editor now exposes an explicit save action and saving state instead of passive editable fields
|
|
- verification passed for this slice with:
|
|
- `web` `npm run typecheck`
|
|
- `web` `npm test`
|
|
- 2026-03-10 — Web artifact creation materially advanced (`ef82747`):
|
|
- the web note detail surface now creates artifact records through the backend `note-artifacts` route
|
|
- artifact creation is no longer display-only; users can add artifact metadata directly from the note detail surface
|
|
- newly created artifacts refresh into the live note detail state after creation
|
|
- verification passed for this slice with:
|
|
- `web` `npm run typecheck`
|
|
- `web` `npm test`
|
|
- 2026-03-10 — Web task creation materially advanced (`c99390e`):
|
|
- the web note detail surface now creates manual note tasks through the backend `note-tasks` route
|
|
- task review is no longer labeled as mock extraction; the task panel now supports backend-backed task creation
|
|
- newly created tasks refresh into the live note detail state after creation
|
|
- verification passed for this slice with:
|
|
- `web` `npm run typecheck`
|
|
- `web` `npm test`
|
|
- 2026-03-10 — Web search integration materially advanced (`4748ed3`):
|
|
- the web search page now queries the backend note search path instead of filtering a preloaded full note list client-side
|
|
- the search surface now reflects backend lexical matching for title/body search while preserving saved search summaries
|
|
- verification passed for this slice with:
|
|
- `web` `npm run typecheck`
|
|
- `web` `npm test`
|
|
- 2026-03-10 — Workspace filtering materially advanced (`ab15950`):
|
|
- the workspaces page filter input now actively filters workspace cards by workspace fields and note content instead of rendering as passive UI
|
|
- verification passed for this slice with:
|
|
- `web` `npm run typecheck`
|
|
- `web` `npm test`
|
|
- 2026-03-10 — Dashboard entrypoints materially advanced (`9f2670c`):
|
|
- recent note activity cards on the dashboard now link directly into the backend-backed note detail surface instead of rendering as read-only summary cards
|
|
- verification passed for this slice with:
|
|
- `web` `npm run typecheck`
|
|
- `web` `npm test`
|
|
- 2026-03-10 — Dashboard saved views materially advanced (`99484a5`):
|
|
- dashboard saved-view cards now navigate into real destinations instead of rendering as passive summary cards
|
|
- the search surface now accepts seeded `q` query params so dashboard shortcuts can open directly into backend-backed filtered results
|
|
- verification passed for this slice with:
|
|
- `web` `npm run typecheck`
|
|
- `web` `npm test`
|
|
- 2026-03-10 — Sidebar navigation cleanup materially advanced (`4376519`):
|
|
- the web sidebar no longer points primary navigation at a single hardcoded note record
|
|
- verification passed for this slice with:
|
|
- `web` `npm run typecheck`
|
|
- `web` `npm test`
|
|
- 2026-03-10 — Review queue selection materially advanced (`5ce9401`):
|
|
- the web review surface now lets you choose which queued proposal is featured for review instead of forcing the first queue entry
|
|
- verification passed for this slice with:
|
|
- `web` `npm run typecheck`
|
|
- `web` `npm test`
|
|
- 2026-03-10 — Dashboard workflow entrypoints materially advanced (`6222fda`):
|
|
- dashboard operator workflow cards now route into the corresponding operational surfaces instead of rendering as passive status summaries
|
|
- verification passed for this slice with:
|
|
- `web` `npm run typecheck`
|
|
- `web` `npm test`
|
|
- 2026-03-10 — Review workflow entrypoints materially advanced (`99bc7a9`):
|
|
- review-page operator workflow cards now route into the corresponding operational surface instead of rendering as passive summary cards
|
|
- verification passed for this slice with:
|
|
- `web` `npm run typecheck`
|
|
- `web` `npm test`
|
|
- 2026-03-10 — Saved search entrypoints materially advanced (`88c11c2`):
|
|
- saved search cards on the search page now navigate into real seeded query states instead of rendering as passive summaries
|
|
- verification passed for this slice with:
|
|
- `web` `npm run typecheck`
|
|
- `web` `npm test`
|
|
- 2026-03-10 — Workspace saved-view entrypoints materially advanced (`22df6d9`):
|
|
- workspace saved-view cards now navigate into real filter presets instead of rendering as passive summaries
|
|
- verification passed for this slice with:
|
|
- `web` `npm run typecheck`
|
|
- `web` `npm test`
|
|
- 2026-03-10 — Dashboard metrics materially advanced (`2a9f490`):
|
|
- the top dashboard metric cards now route into their corresponding workspaces, search, and reviews surfaces instead of rendering as passive totals
|
|
- verification passed for this slice with:
|
|
- `web` `npm run typecheck`
|
|
- `web` `npm test`
|
|
- 2026-03-10 — Note metadata entrypoints materially advanced (`6d72561`):
|
|
- note-detail metadata now routes review state and tags into the relevant review and search surfaces instead of rendering only passive text/badges
|
|
- verification passed for this slice with:
|
|
- `web` `npm run typecheck`
|
|
- `web` `npm test`
|
|
- 2026-03-10 — Workspace card filters materially advanced (`260428d`):
|
|
- workspace cards now route visibility, owner, and tag affordances into the live workspace filter instead of rendering as passive text/badges
|
|
- verification passed for this slice with:
|
|
- `web` `npm run typecheck`
|
|
- `web` `npm test`
|
|
- 2026-03-10 — Note review-state entrypoint materially advanced (`758d5d4`):
|
|
- the note-detail header review-state badge now routes into the review surface instead of rendering as passive status text
|
|
- verification passed for this slice with:
|
|
- `web` `npm run typecheck`
|
|
- `web` `npm test`
|
|
- 2026-03-10 — Search result filters materially advanced (`fa87efd`):
|
|
- search result rows now route status, workspace, and tag affordances into seeded search states instead of rendering as passive text/badges
|
|
- verification passed for this slice with:
|
|
- `web` `npm run typecheck`
|
|
- `web` `npm test`
|
|
- 2026-03-10 — Dashboard recent-note filters materially advanced (`8a1b79c`):
|
|
- dashboard recent-note cards now route tag affordances into seeded search states while keeping title and excerpt as valid note-detail entrypoints
|
|
- verification passed for this slice with:
|
|
- `web` `npm run typecheck`
|
|
- `web` `npm test`
|
|
- 2026-03-10 — Mobile verification materially advanced:
|
|
- mobile dependencies now install successfully with corrected sibling `@bytelyst/*` package paths
|
|
- `npm run typecheck`, `npm run lint`, and `npm test` now pass in `learning_ai_notes/mobile/`
|
|
- token-backed placeholder and border colors replaced the remaining raw hardcoded mobile color fallbacks
|
|
- 2026-03-10 — Product identity locked as NoteLett (`e1fde25`):
|
|
- productId: notelett, domain: notelett.app, backend port: 4016
|
|
- iOS bundle: com.bytelyst.notelett, Android bundle: com.notelett.app
|
|
- rippled through all config, docs, source, and test files across backend/web/mobile
|
|
- registered in learning_ai_common_plat/products/notelett/
|
|
- 2026-03-10 — 4 remaining MCP tools implemented (`12058ed`):
|
|
- notes.notes.update, notes.relationships.link, notes.tasks.extract, notes.artifacts.attach
|
|
- all 8 MCP tools now have full audit trail, dry-run, idempotency, and correlation support
|
|
- 2026-03-10 — Platform integrations wired (`8755661`):
|
|
- feature-flag-client and kill-switch-client added to web surface
|
|
- telemetry, diagnostics, extraction were already wired
|
|
- 2026-03-10 — Blob artifact upload/download (`196b210`):
|
|
- SAS-based upload/download via platform-service blob endpoints
|
|
- 2026-03-10 — QA / release hardening:
|
|
- AGENTS.md and README.md created following ecosystem conventions
|
|
- 2026-03-11 — Mobile direct shared-client integration (`878c644`):
|
|
- Added @bytelyst/telemetry-client, feature-flag-client, kill-switch-client, blob-client to mobile deps
|
|
- Created mobile/src/lib/platform.ts — centralized platform init (telemetry, flags, kill-switch, blob)
|
|
- Refactored web blob-client.ts to use shared @bytelyst/blob-client (DRY)
|
|
- 2026-03-11 — Backend batch review + saved-views module (`bdbf387`):
|
|
- POST /note-agent-actions/batch-review for bulk approve/reject (up to 50 items)
|
|
- PATCH now auto-sets reviewedBy/reviewedAt on approve/reject
|
|
- New saved-views module: full CRUD (types, repository, routes), Cosmos container saved_views
|
|
- 2026-03-11 — Web full review UX (`ca3cdba`):
|
|
- Batch selection mode with Select All / Clear
|
|
- Batch Approve N / Reject N buttons
|
|
- Review note textarea shared by single + batch flows
|
|
- 2026-03-11 — Web saved views, keyboard shortcuts, debounced search (`12d9009`):
|
|
- saved-views-client.ts: full CRUD client for backend saved-views module
|
|
- use-keyboard-shortcuts.ts: reusable hook + KeyboardShortcuts component wired into (app) layout
|
|
- Cmd+K search, Cmd+N workspaces, Cmd+Shift+D dashboard, Cmd+Shift+R reviews, Esc blur
|
|
- use-debounce.ts: shared hook replacing inline setTimeout in search (250ms)
|
|
- Search page: saved views loaded from backend with save/delete UI
|
|
- 2026-03-11 — Mobile review note input (`f8a4c18`):
|
|
- Review note TextInput on inbox screen, wired to approve/reject handlers
|
|
- reviewNote parameter flows through store → API client → backend
|
|
|
|
# 9. Current Known Blockers / Deferrals
|
|
|
|
- **Production-readiness local gate complete** — May 5 verification passes `pnpm run verify`, backend/web/mobile lint, web Playwright release flows, release-guard audits, product/API drift scans, and `git diff --check`; exact commands and commit hashes are recorded in `docs/PRODUCTION_READINESS_HANDOFF_ROADMAP.md` Phase P10.
|
|
- **Environment deferral: Docker compose smoke** — `scripts/compose-smoke.sh` syntax checks, but this host has no Docker-compatible runtime (`docker: command not found`), so live compose build/start/health smoke remains delegated to a Docker-capable runner.
|
|
- **Environment deferral: shared-service live smoke** — `pnpm run smoke:local` starts NoteLett in memory mode and passes `/health` plus `/api/bootstrap`, but live platform-service/extraction-service/mcp-server checks require those services and Cosmos credentials. Direct common-platform startup failed locally because `COSMOS_ENDPOINT` and `COSMOS_KEY` are not present in the shell env.
|
|
- **Advisory warnings** — lint exits 0 while retaining backend/web/mobile warning output for follow-up cleanup; tests/builds also retain known non-failing warnings such as mobile `react-test-renderer` deprecation and Next `--localstorage-file`.
|
|
- ~~**Blocker** — Product identity not finalized~~ **Resolved:** locked as NoteLett (`e1fde25`)
|
|
- **Deferred** — `@bytelyst/react-native-platform-sdk` adoption is intentionally deferred for release handoff; mobile uses direct shared `@bytelyst/*` clients instead. See `docs/MOBILE_PLATFORM_SDK_DECISION.md`.
|
|
- **Deferred** — `@bytelyst/sync` adoption is intentionally deferred for release handoff; mobile keeps the narrower `@bytelyst/offline-queue` retry model until backend sync/conflict contracts are explicit. See `docs/MOBILE_SYNC_DECISION.md`.
|
|
- **Deferred** — `@bytelyst/llm-router` adoption is intentionally deferred for release handoff; backend keeps `@bytelyst/llm` for chat, embeddings, mock provider, Azure/OpenAI settings, and vision prompt compatibility. See `docs/BACKEND_LLM_ROUTER_DECISION.md`.
|
|
- ~~**Deferred** — Blob-backed artifacts and upload/download flows~~ **Resolved:** SAS-based blob client (`196b210`)
|
|
- ~~**Deferred** — Fully integrated approval/review/audit UX~~ **Resolved:** batch review, review notes, agent timeline across web + mobile (`ca3cdba`, `f8a4c18`)
|
|
- ~~**Deferred** — Persisted saved views~~ **Resolved:** backend CRUD + web client + UI (`bdbf387`, `12d9009`)
|
|
- ~~**Deferred** — Keyboard shortcut expansion~~ **Resolved:** reusable hook + 5 shortcuts wired (`12d9009`)
|
|
- ~~**Deferred** — Performance hardening~~ **Resolved:** debounced search, memoized lists (`12d9009`)
|