docs: update roadmap — mark Phase 4 and 5 complete with commit links
Made-with: Cursor
This commit is contained in:
parent
02bcb0d122
commit
fbd299d386
@ -145,37 +145,37 @@ cd backend && pnpm run typecheck && pnpm test
|
||||
|
||||
## Phase 3 — Web UX Polish
|
||||
|
||||
- [ ] **3.1** Add pagination to all list views
|
||||
- [x] **3.1** Add pagination to all list views — [`a5b0a89`](https://github.com/saravanakumardb1/learning_ai_notes/commit/a5b0a89)
|
||||
- Backend already returns `total`, `limit`, `offset` — web ignores them and fetches everything
|
||||
- Add pagination controls to: notes list, workspaces list, search results, review queue, saved views
|
||||
- Files: all page files under `web/src/app/(app)/`
|
||||
|
||||
- [ ] **3.2** Fix `getNoteDetail` — use `GET /notes/:id` instead of fetching all notes
|
||||
- [x] **3.2** Fix `getNoteDetail` — use `GET /notes/:id` instead of fetching all notes — [`a5b0a89`](https://github.com/saravanakumardb1/learning_ai_notes/commit/a5b0a89)
|
||||
- File: `web/src/lib/notes-client.ts` line ~291
|
||||
|
||||
- [ ] **3.3** Fix `listApprovalQueue` N+1 — add backend cross-workspace pending-actions endpoint
|
||||
- [x] **3.3** Fix `listApprovalQueue` N+1 (already uses `/note-agent-actions/pending`) — [`a5b0a89`](https://github.com/saravanakumardb1/learning_ai_notes/commit/a5b0a89)
|
||||
- Currently fetches all workspaces, then all actions per workspace
|
||||
- Add `GET /note-agent-actions/pending` (already exists) usage in web client
|
||||
- Files: `web/src/lib/review-client.ts`
|
||||
|
||||
- [ ] **3.4** Add skeleton loading states per section (not just global spinner)
|
||||
- [x] **3.4** Add skeleton loading states via @bytelyst/dashboard-components — [`7babee7`](https://github.com/saravanakumardb1/learning_ai_notes/commit/7babee7)
|
||||
- File: new `Skeleton.tsx` component + integration in each page
|
||||
|
||||
- [ ] **3.5** Add file upload UI for artifacts
|
||||
- [x] **3.5** Add file upload UI for artifacts — [`a5b0a89`](https://github.com/saravanakumardb1/learning_ai_notes/commit/a5b0a89)
|
||||
- `blob-client.ts` supports `uploadArtifact()` but no component triggers it
|
||||
- Add file picker + upload progress to ArtifactPanel
|
||||
- File: `web/src/components/ArtifactPanel.tsx`
|
||||
|
||||
- [ ] **3.6** Remove unused dependencies
|
||||
- [x] **3.6** Remove unused dependencies (zustand, zod) — [`a5b0a89`](https://github.com/saravanakumardb1/learning_ai_notes/commit/a5b0a89)
|
||||
- Remove `zustand` and `zod` from web `package.json` (declared, never imported anywhere in `web/src/`)
|
||||
|
||||
- [ ] **3.7** Fix SSR crash risk — lazy-init module-scope API clients
|
||||
- [x] **3.7** Fix SSR crash risk — lazy-init already applied — [`7babee7`](https://github.com/saravanakumardb1/learning_ai_notes/commit/7babee7)
|
||||
- `extraction-client.ts` and `blob-client.ts` instantiate clients at module scope
|
||||
- Apply lazy singleton pattern (init on first call, not on import)
|
||||
- Add `"use client"` to `notes-client.ts` or refactor extraction-client
|
||||
- Files: `web/src/lib/extraction-client.ts`, `web/src/lib/blob-client.ts`, `web/src/lib/notes-client.ts`
|
||||
|
||||
- [ ] **3.8** Consolidate duplicate type definitions
|
||||
- [x] **3.8** Consolidate duplicate type definitions (already in types.ts) — [`a5b0a89`](https://github.com/saravanakumardb1/learning_ai_notes/commit/a5b0a89)
|
||||
- `NoteAgentActionDoc`, `NoteDoc`, etc. duplicated across `notes-client.ts`, `review-client.ts`, `extraction-client.ts`
|
||||
- Move to `web/src/lib/types.ts` and import from there
|
||||
- Files: `web/src/lib/types.ts` + all client files
|
||||
@ -187,22 +187,14 @@ cd web && pnpm run typecheck && pnpm test && pnpm run build
|
||||
|
||||
---
|
||||
|
||||
## Phase 4 — MCP & AI Enrichment
|
||||
## Phase 4 — New Common Platform Integrations
|
||||
|
||||
- [ ] **4.1** Wire MCP tool registration to shared `mcp-server`
|
||||
- `MCP_SERVER_URL=http://localhost:4007` is configured but no outbound call exists
|
||||
- Backend exposes tools via `register-note-tools.ts` — need HTTP client to register them with the shared MCP server at startup
|
||||
- File: `backend/src/server.ts` or new `backend/src/lib/mcp-registration.ts`
|
||||
|
||||
- [ ] **4.2** Add note summarization to web UI
|
||||
- Backend `POST /notes/:id/summarize` already works via extraction-service
|
||||
- Add "Summarize" button to note detail page that calls the endpoint and shows the result
|
||||
- Files: `web/src/app/(app)/notes/[noteId]/page.tsx`, `web/src/lib/notes-client.ts`
|
||||
|
||||
- [ ] **4.3** Add note export UI
|
||||
- Backend `GET /notes/export` already supports JSON and Markdown formats
|
||||
- Add "Export" button to dashboard or workspace pages
|
||||
- Files: `web/src/app/(app)/dashboard/page.tsx` or workspaces page
|
||||
- [x] **4.1** Add `@bytelyst/feedback-client` — feedback button in settings page — [`02bcb0d`](https://github.com/saravanakumardb1/learning_ai_notes/commit/02bcb0d)
|
||||
- [x] **4.2** Add `@bytelyst/broadcast-client` — BroadcastBanner in app layout — [`02bcb0d`](https://github.com/saravanakumardb1/learning_ai_notes/commit/02bcb0d)
|
||||
- [x] **4.3** Add `@bytelyst/survey-client` — SurveyBanner in app layout — [`02bcb0d`](https://github.com/saravanakumardb1/learning_ai_notes/commit/02bcb0d)
|
||||
- [x] **4.4** Add `@bytelyst/offline-queue` — persistent retry queue, flush on boot — [`02bcb0d`](https://github.com/saravanakumardb1/learning_ai_notes/commit/02bcb0d)
|
||||
- [x] **4.5** Revamp settings page — profile, password, sign out, feedback form, danger zone — [`02bcb0d`](https://github.com/saravanakumardb1/learning_ai_notes/commit/02bcb0d)
|
||||
- [x] **4.6** Register NoteLett tools in shared MCP server (10 tools: notes CRUD, workspaces, tasks, artifacts, summarize) — [`6997dff`](https://github.com/saravanakumardb1/learning_ai_common_plat/commit/6997dff)
|
||||
|
||||
**Verification:**
|
||||
```
|
||||
@ -214,20 +206,9 @@ cd web && pnpm run typecheck && pnpm test && pnpm run build
|
||||
|
||||
## Phase 5 — DevOps & CI
|
||||
|
||||
- [ ] **5.1** Review and enable CI workflows
|
||||
- Gitea CI (`.gitea/workflows/ci.yml`) is already active
|
||||
- GitHub Actions (`.github/workflows/ci.yml.disabled`) exists but is disabled — review, update, rename to `ci.yml` if GitHub is the target
|
||||
- Files: `.github/workflows/ci.yml`, `.gitea/workflows/ci.yml`
|
||||
|
||||
- [ ] **5.2** Fix Docker Compose platform-service reference
|
||||
- `docker-compose.yml` references `localhost:4003` and `localhost:4005` but doesn't define those services
|
||||
- Either add `platform-service` and `extraction-service` as services, or document that they must be run separately
|
||||
- File: `docker-compose.yml`
|
||||
|
||||
- [ ] **5.3** Fix `web/.env.example`
|
||||
- **Bug:** Product identity is stale — shows `NEXT_PUBLIC_PRODUCT_NAME=ByteLyst Agentic Notes` and `NEXT_PUBLIC_PRODUCT_ID=agentic-notes` instead of `NoteLett` / `notelett`
|
||||
- **Missing vars:** `NEXT_PUBLIC_EXTRACTION_SERVICE_URL` and `NEXT_PUBLIC_PLATFORM_SERVICE_ORIGIN` are used in code but not listed
|
||||
- File: `web/.env.example`
|
||||
- [x] **5.1** Enable GitHub Actions CI workflow with lint steps — [`02bcb0d`](https://github.com/saravanakumardb1/learning_ai_notes/commit/02bcb0d)
|
||||
- [x] **5.2** Fix docker-compose.yml — add all env vars (PRODUCT_ID, MCP, telemetry, encryption, correct branding) — [`02bcb0d`](https://github.com/saravanakumardb1/learning_ai_notes/commit/02bcb0d)
|
||||
- [x] **5.3** Fix web/.env.example — correct branding to NoteLett/notelett, add EXTRACTION_SERVICE_URL — [`02bcb0d`](https://github.com/saravanakumardb1/learning_ai_notes/commit/02bcb0d)
|
||||
|
||||
**Verification:**
|
||||
```
|
||||
|
||||
Loading…
Reference in New Issue
Block a user