fix: restore ROADMAP.md and REQUIREMENTS.md — deletion was not approved
Archives exist in milestones/v1.3-* as copies, not replacements. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
832b95e07d
commit
b91e701fe0
2 changed files with 422 additions and 0 deletions
183
.planning/REQUIREMENTS.md
Normal file
183
.planning/REQUIREMENTS.md
Normal file
|
|
@ -0,0 +1,183 @@
|
|||
# Requirements: v1.3 Web Chat Interface
|
||||
|
||||
**Milestone:** v1.3
|
||||
**Status:** Queued
|
||||
**Source PRD:** ~/Downloads/nexus-v1.3-prd-web-chat.md
|
||||
**Depends on:** v1.2 (Skill Aggregator + Generalist Agent)
|
||||
**Total v1 requirements:** 65
|
||||
|
||||
---
|
||||
|
||||
## Categories
|
||||
|
||||
### Chat Core (14)
|
||||
|
||||
- [x] **CHAT-01** — Real-time streaming responses: tokens appear as they are generated, not after completion
|
||||
- [x] **CHAT-02** — Markdown rendering in messages: code blocks with syntax highlighting, tables, lists, headings, links, images
|
||||
- [x] **CHAT-03** — Code blocks have a one-click copy button and a language label
|
||||
- [x] **CHAT-04** — Multiple concurrent conversations: sidebar shows the full conversation list
|
||||
- [x] **CHAT-05** — Conversation titles: auto-generated from the first message, manually editable by the user
|
||||
- [x] **CHAT-06** — Delete, archive, and pin conversations
|
||||
- [x] **CHAT-07** — Full-text search across all conversations
|
||||
- [x] **CHAT-08** — Agent selector: switch which agent you are talking to mid-conversation or per-conversation
|
||||
- [x] **CHAT-09** — System message indicator: when the Brainstormer hands off to PM, or PM delegates to Engineer, the handoff is visible in chat
|
||||
- [x] **CHAT-10** — Message editing: edit a previous message and regenerate the response
|
||||
- [x] **CHAT-11** — Response regeneration: retry button on any assistant message
|
||||
- [x] **CHAT-12** — Stop generation: cancel button available while a response is streaming
|
||||
- [x] **CHAT-13** — Message reactions / bookmarks: mark important messages for later reference
|
||||
- [x] **CHAT-14** — Conversation branching: editing a mid-conversation message creates a branch; both branches are preserved
|
||||
|
||||
### Input (7)
|
||||
|
||||
- [x] **INPUT-01** — Multi-line text input with auto-resize: grows with content up to a max height before scrolling
|
||||
- [x] **INPUT-02** — File/image upload via drag-and-drop or button with inline preview before sending
|
||||
- [x] **INPUT-03** — Paste image from clipboard directly into the chat input
|
||||
- [x] **INPUT-04** — Voice input via Whisper (when local AI is enabled): record button with transcription preview before sending
|
||||
- [x] **INPUT-05** — Slash commands: `/brainstorm`, `/ask-pm`, `/ask-engineer`, `/task`, `/search`
|
||||
- [x] **INPUT-06** — `@mention` agents: type `@engineer` to route a message to a specific agent
|
||||
- [x] **INPUT-07** — Keyboard shortcuts: Enter to send, Shift+Enter for newline, Cmd+K for search, Escape to cancel
|
||||
|
||||
### Agent Integration (7)
|
||||
|
||||
- [x] **AGENT-01** — Default agent is the Brainstormer (Generalist with a Superpowers-style system prompt, or a dedicated 4th Brainstormer agent)
|
||||
- [x] **AGENT-02** — Brainstormer follows a structured questioning flow: asks clarifying questions, produces a spec template, and hands off to PM
|
||||
- [x] **AGENT-03** — PM agent can receive specs from chat and create Nexus tasks/issues from them
|
||||
- [x] **AGENT-04** — Agent responses show which agent is speaking with avatar and name
|
||||
- [x] **AGENT-05** — Handoff indicators visible in chat: "Brainstormer → PM: Here's the spec for approval"
|
||||
- [x] **AGENT-06** — Task creation from chat: user or agent can say "create a task for this" and it becomes a Nexus issue
|
||||
- [x] **AGENT-07** — Status updates from agents appear in chat: "Engineer completed task X" notification in the relevant conversation
|
||||
|
||||
### History & Persistence (6)
|
||||
|
||||
- [x] **HIST-01** — All conversations persisted in libSQL
|
||||
- [x] **HIST-02** — Conversation list in sidebar: sorted by most recent, searchable, filterable by agent
|
||||
- [x] **HIST-03** — Infinite scroll in the conversation list sidebar
|
||||
- [x] **HIST-04** — Conversation export: download as Markdown or JSON
|
||||
- [x] **HIST-05** — Cross-device sync: conversations accessible from any device on the network via the Nexus server API
|
||||
- [x] **HIST-06** — Chat history survives server restarts: no in-memory-only state
|
||||
|
||||
### PWA & Mobile (8)
|
||||
|
||||
- [x] **PWA-01** — Service worker for offline capability: cached UI loads instantly, queues messages until back online
|
||||
- [x] **PWA-02** — Web App Manifest: installable on iOS, Android, macOS, and Windows as a standalone app
|
||||
- [x] **PWA-03** — Responsive layout: adapts to phone, tablet, and desktop screen sizes
|
||||
- [x] **PWA-04** — Mobile-optimized input: large touch targets, sticky input bar at bottom, keyboard-aware resize
|
||||
- [x] **PWA-05** — Pull-to-refresh on the mobile conversation list
|
||||
- [x] **PWA-06** — Push notifications (where supported): agent mentions, task completions, handoff requests
|
||||
- [x] **PWA-07** — App icon and splash screen with Nexus branding, theme-aware
|
||||
- [x] **PWA-08** — "Add to Home Screen" prompt on first mobile visit
|
||||
|
||||
### Theme Integration (3)
|
||||
|
||||
- [x] **THEME-01** — Chat interface respects the Nexus theme system (Catppuccin Mocha, Tokyo Night, Catppuccin Latte)
|
||||
- [x] **THEME-02** — Code blocks use theme-appropriate syntax highlighting colors
|
||||
- [x] **THEME-03** — Agent avatars/colors are visually distinguishable in all three themes
|
||||
|
||||
### Performance (5)
|
||||
|
||||
- [x] **PERF-01** — Initial load under 2 seconds on broadband, under 5 seconds on 3G
|
||||
- [x] **PERF-02** — Streaming response latency under 100ms from server to UI
|
||||
- [x] **PERF-03** — Conversations with 1,000+ messages scroll smoothly via a virtualized list
|
||||
- [x] **PERF-04** — Full-text search returns results in under 500ms across 10,000+ messages
|
||||
- [x] **PERF-05** — PWA cached load under 1 second
|
||||
|
||||
### File System (13)
|
||||
|
||||
- [x] **FILE-01** — Local file storage directory structure under `<nexus-root>/files/` with subdirectories: `projects/<slug>/assets/`, `projects/<slug>/docs/`, `projects/<slug>/generated/`, `projects/<slug>/placeholders/`, `chat/<conversation-id>/`, and `exports/`
|
||||
- [x] **FILE-02** — libSQL `files` table tracking all file metadata: id, filename, original_filename, mime_type, size_bytes, storage_path, git_hash, checksum, dual-scope fields (project_id, conversation_id, message_id, agent_id, workspace_id, task_id), source, category, placeholder fields, and lifecycle timestamps
|
||||
- [x] **FILE-03** — libSQL `file_references` table enabling a single file to be referenced from multiple conversations without duplication
|
||||
- [x] **FILE-04** — Dual scoping: a file uploaded during a project-linked conversation lives in `files/projects/<slug>/` but is also referenced by the chat message; a file in a general chat (no project context) lives in `files/chat/<conversation-id>/`
|
||||
- [x] **FILE-05** — File upload from chat input via drag-and-drop or button; file is stored on disk and its metadata is written to libSQL
|
||||
- [x] **FILE-06** — Inline file preview in chat: images render inline, PDFs show a first-page preview, code files show a syntax-highlighted preview
|
||||
- [x] **FILE-07** — One-click file download from chat for any attached or generated file
|
||||
- [x] **FILE-08** — Agent-generated files (code output, specs, presentations) stored in `files/projects/<slug>/generated/`, linked to the originating task and conversation in libSQL
|
||||
- [x] **FILE-09** — Git integration: `files/` is a git repository; every file operation (upload, generate, replace, delete) creates a commit with a descriptive message
|
||||
- [x] **FILE-10** — Version history: user can view the git log for any file and see its change history
|
||||
- [x] **FILE-11** — Placeholder asset tracking: Nexus auto-maintains a `PLACEHOLDERS.md` manifest in each project directory; when a placeholder is replaced by a final asset, the manifest and DB are updated with the replacement chain
|
||||
- [x] **FILE-12** — File scope promotion: a chat-scoped file can be promoted to a project scope; a project file can be referenced in any chat conversation
|
||||
- [x] **FILE-13** — Cross-device file access: files are served via the Nexus server API so a file uploaded on one device is accessible on any other device on the network
|
||||
|
||||
---
|
||||
|
||||
## Out of Scope (v1.4+)
|
||||
|
||||
The following are explicitly deferred:
|
||||
|
||||
- Voice call / audio conversation mode
|
||||
- Video sharing / screen recording in chat
|
||||
- Collaborative chat (multiple human users in one conversation)
|
||||
- End-to-end encryption
|
||||
- Chat API for third-party integrations
|
||||
- Custom chat themes beyond the Nexus theme system
|
||||
- Chat-based agent configuration / settings changes
|
||||
- Telegram bridge (Telegram messages appearing in web chat and vice versa)
|
||||
|
||||
---
|
||||
|
||||
## Traceability
|
||||
|
||||
| Requirement | Phase | Status |
|
||||
|-------------|-------|--------|
|
||||
| CHAT-01 | Phase 22 | Complete |
|
||||
| CHAT-02 | Phase 21 | Complete |
|
||||
| CHAT-03 | Phase 21 | Complete |
|
||||
| CHAT-04 | Phase 21 | Complete |
|
||||
| CHAT-05 | Phase 21 | Complete |
|
||||
| CHAT-06 | Phase 21 | Complete |
|
||||
| CHAT-07 | Phase 24 | Complete |
|
||||
| CHAT-08 | Phase 22 | Complete |
|
||||
| CHAT-09 | Phase 23 | Complete |
|
||||
| CHAT-10 | Phase 22 | Complete |
|
||||
| CHAT-11 | Phase 22 | Complete |
|
||||
| CHAT-12 | Phase 22 | Complete |
|
||||
| CHAT-13 | Phase 24 | Complete |
|
||||
| CHAT-14 | Phase 24 | Complete |
|
||||
| INPUT-01 | Phase 21 | Complete |
|
||||
| INPUT-02 | Phase 25 | Complete |
|
||||
| INPUT-03 | Phase 25 | Complete |
|
||||
| INPUT-04 | Phase 25 | Complete |
|
||||
| INPUT-05 | Phase 22 | Complete |
|
||||
| INPUT-06 | Phase 22 | Complete |
|
||||
| INPUT-07 | Phase 21 | Complete |
|
||||
| AGENT-01 | Phase 23 | Complete |
|
||||
| AGENT-02 | Phase 23 | Complete |
|
||||
| AGENT-03 | Phase 23 | Complete |
|
||||
| AGENT-04 | Phase 22 | Complete |
|
||||
| AGENT-05 | Phase 23 | Complete |
|
||||
| AGENT-06 | Phase 23 | Complete |
|
||||
| AGENT-07 | Phase 23 | Complete |
|
||||
| HIST-01 | Phase 21 | Complete |
|
||||
| HIST-02 | Phase 21 | Complete |
|
||||
| HIST-03 | Phase 21 | Complete |
|
||||
| HIST-04 | Phase 24 | Complete |
|
||||
| HIST-05 | Phase 21 | Complete |
|
||||
| HIST-06 | Phase 21 | Complete |
|
||||
| PWA-01 | Phase 26 | Complete |
|
||||
| PWA-02 | Phase 26 | Complete |
|
||||
| PWA-03 | Phase 26 | Complete |
|
||||
| PWA-04 | Phase 26 | Complete |
|
||||
| PWA-05 | Phase 26 | Complete |
|
||||
| PWA-06 | Phase 26 | Complete |
|
||||
| PWA-07 | Phase 26 | Complete |
|
||||
| PWA-08 | Phase 26 | Complete |
|
||||
| THEME-01 | Phase 21 | Complete |
|
||||
| THEME-02 | Phase 21 | Complete |
|
||||
| THEME-03 | Phase 22 | Complete |
|
||||
| PERF-01 | Phase 26 | Complete |
|
||||
| PERF-02 | Phase 22 | Complete |
|
||||
| PERF-03 | Phase 22 | Complete |
|
||||
| PERF-04 | Phase 24 | Complete |
|
||||
| PERF-05 | Phase 26 | Complete |
|
||||
| FILE-01 | Phase 25 | Complete |
|
||||
| FILE-02 | Phase 25 | Complete |
|
||||
| FILE-03 | Phase 25 | Complete |
|
||||
| FILE-04 | Phase 25 | Complete |
|
||||
| FILE-05 | Phase 25 | Complete |
|
||||
| FILE-06 | Phase 25 | Complete |
|
||||
| FILE-07 | Phase 25 | Complete |
|
||||
| FILE-08 | Phase 25 | Complete |
|
||||
| FILE-09 | Phase 25 | Complete |
|
||||
| FILE-10 | Phase 25 | Complete |
|
||||
| FILE-11 | Phase 25 | Complete |
|
||||
| FILE-12 | Phase 25 | Complete |
|
||||
| FILE-13 | Phase 25 | Complete |
|
||||
239
.planning/ROADMAP.md
Normal file
239
.planning/ROADMAP.md
Normal file
|
|
@ -0,0 +1,239 @@
|
|||
# Roadmap: v1.3 Web Chat Interface
|
||||
|
||||
**Milestone:** v1.3
|
||||
**Status:** Queued (not yet active)
|
||||
**Phases:** 21-26 (6 phases)
|
||||
**Granularity:** Standard
|
||||
**Coverage:** 65/65 requirements mapped
|
||||
|
||||
---
|
||||
|
||||
## Phases
|
||||
|
||||
- [x] **Phase 21: Chat Foundation** — Persistent conversation storage, sidebar, CRUD, markdown rendering, theme integration, keyboard shortcuts (completed 2026-04-01)
|
||||
- [x] **Phase 22: Agent Streaming** — Real-time streaming via SSE/WebSocket, agent selector, agent identity on messages, stop/edit/regenerate, slash commands and @mentions (completed 2026-04-01)
|
||||
- [x] **Phase 23: Brainstormer Flow** — Brainstormer agent persona, structured questioning flow, spec generation, PM handoff, task creation from chat, agent status updates in chat (completed 2026-04-01)
|
||||
- [x] **Phase 24: Search, History & Branching** — Full-text search across all conversations, export, conversation branching, message bookmarks (completed 2026-04-01)
|
||||
- [x] **Phase 25: File System** — Local file storage with dual scoping, libSQL tracking, inline preview, download, agent-generated files, git versioning, placeholder tracking (gap closure in progress) (completed 2026-04-02)
|
||||
- [x] **Phase 26: PWA & Performance** — Service worker, Web App Manifest, responsive mobile layout, push notifications, install prompt, performance targets (completed 2026-04-02)
|
||||
|
||||
---
|
||||
|
||||
## Phase Details
|
||||
|
||||
### Phase 21: Chat Foundation
|
||||
**Goal**: Users can open Nexus, create and manage conversations, and read fully rendered agent responses — with persistent storage and correct theme styling from the start
|
||||
**Depends on**: Nothing (first phase of v1.3; depends on v1.2 milestone being shipped)
|
||||
**Requirements**: CHAT-02, CHAT-03, CHAT-04, CHAT-05, CHAT-06, INPUT-01, INPUT-07, HIST-01, HIST-02, HIST-03, HIST-05, HIST-06, THEME-01, THEME-02
|
||||
**Success Criteria** (what must be TRUE):
|
||||
1. User can create a new conversation, give it a title, and see it appear in the sidebar conversation list
|
||||
2. User can delete, archive, and pin conversations from the sidebar
|
||||
3. Agent messages render with full markdown: code blocks with syntax highlighting and a copy button, tables, lists, headings, links, and inline images
|
||||
4. Conversations and all messages are stored in libSQL and survive a server restart
|
||||
5. The chat interface applies Catppuccin Mocha, Tokyo Night, and Catppuccin Latte themes correctly; code block highlighting matches the active theme
|
||||
**Plans:** 7/7 plans complete
|
||||
|
||||
Plans:
|
||||
- [x] 21-00-PLAN.md — Wave 0 test stubs (chat-service, chat-routes, ChatMarkdownMessage, ChatInput)
|
||||
- [x] 21-01-PLAN.md — DB schema (chat_conversations + chat_messages) and shared types/validators
|
||||
- [x] 21-02-PLAN.md — Markdown renderer with rehype-highlight, code block copy button, theme CSS
|
||||
- [x] 21-03-PLAN.md — Server chat service and REST API routes (CRUD + pagination)
|
||||
- [x] 21-04-PLAN.md — ChatPanel shell, ChatPanelContext, ChatInput, Layout integration
|
||||
- [x] 21-05-PLAN.md — Full UI wiring: API client, conversation list, message thread, infinite scroll
|
||||
- [x] 21-06-PLAN.md — Gap closure: conversation search/filter (HIST-02) + Cmd+K shortcut (INPUT-07)
|
||||
|
||||
**UI hint**: yes
|
||||
|
||||
### Phase 22: Agent Streaming
|
||||
**Goal**: Users receive live streaming responses from any agent they select, with full control to stop, edit, or retry — and agent identity is clearly visible on every message
|
||||
**Depends on**: Phase 21
|
||||
**Requirements**: CHAT-01, CHAT-08, CHAT-10, CHAT-11, CHAT-12, INPUT-05, INPUT-06, AGENT-04, THEME-03, PERF-02, PERF-03
|
||||
**Success Criteria** (what must be TRUE):
|
||||
1. Tokens from an agent appear in the chat window as they are generated; the first token appears in under 500ms
|
||||
2. User can switch the active agent for a conversation at any time via the agent selector
|
||||
3. Every assistant message shows the agent's name and avatar; agent colors are distinguishable across all three themes
|
||||
4. User can click Stop to cancel an in-progress streaming response
|
||||
5. User can edit a previous message to regenerate the response, or click Retry on any existing assistant message; conversations with 1,000+ messages scroll without jank via a virtualized list
|
||||
6. Slash commands (`/brainstorm`, `/ask-pm`, `/ask-engineer`, `/task`, `/search`) route messages to the correct agent; `@mention` syntax routes to the named agent
|
||||
**Plans:** 6/6 plans complete
|
||||
|
||||
Plans:
|
||||
- [x] 22-00-PLAN.md — Wave 0: DB migration, shared types, install virtualizer, agent-role-colors, CSS, test stubs
|
||||
- [x] 22-01-PLAN.md — SSE streaming endpoint + useStreamingChat hook
|
||||
- [x] 22-02-PLAN.md — Agent identity bar, streaming cursor, agent selector
|
||||
- [x] 22-03-PLAN.md — Edit/retry/stop message action controls
|
||||
- [x] 22-04-PLAN.md — Slash commands and @mention popovers
|
||||
- [x] 22-05-PLAN.md — Virtualized message list + full ChatPanel integration
|
||||
**UI hint**: yes
|
||||
|
||||
### Phase 23: Brainstormer Flow
|
||||
**Goal**: Users can open Nexus, start a conversation with the Brainstormer, receive structured clarifying questions, approve a spec, and watch it become real Nexus tasks — without ever touching the dashboard
|
||||
**Depends on**: Phase 22
|
||||
**Requirements**: AGENT-01, AGENT-02, AGENT-03, AGENT-05, AGENT-06, AGENT-07, CHAT-09
|
||||
**Success Criteria** (what must be TRUE):
|
||||
1. The Brainstormer is the default agent when a user opens a new conversation; it greets the user and begins a structured questioning flow
|
||||
2. After the user answers clarifying questions, the Brainstormer produces a formatted spec card with What / Why / Constraints / Success fields and action buttons (Send to PM, Edit, Save as Draft)
|
||||
3. When the user clicks "Send to PM," a handoff indicator appears in the chat showing "Brainstormer -> PM" with the spec content
|
||||
4. The PM agent creates one or more Nexus issues from the spec; the user can see task IDs referenced in the PM's reply
|
||||
5. When an Engineer or Generalist completes a task, a status update message appears in the relevant chat conversation
|
||||
**Plans:** 4/4 plans complete
|
||||
|
||||
Plans:
|
||||
- [x] 23-00-PLAN.md — DB migration (message_type column), shared types/validators, Wave 0 test stubs
|
||||
- [x] 23-01-PLAN.md — Server: addSystemMessage helper, handoff route, status-update route
|
||||
- [x] 23-02-PLAN.md — UI: ChatSpecCard, ChatHandoffIndicator, ChatTaskCreatedBadge, ChatStatusUpdateBadge, useBrainstormerDefault
|
||||
- [x] 23-03-PLAN.md — Wiring: ChatMessage dispatch, ChatMessageList propagation, ChatPanel brainstormer default, chatApi handoff
|
||||
**UI hint**: yes
|
||||
|
||||
### Phase 24: Search, History & Branching
|
||||
**Goal**: Users can find any message across all conversations in under 500ms, export conversations, bookmark key messages, and branch from any point in a conversation
|
||||
**Depends on**: Phase 21
|
||||
**Requirements**: CHAT-07, CHAT-13, CHAT-14, HIST-04, PERF-04
|
||||
**Success Criteria** (what must be TRUE):
|
||||
1. Cmd+K opens a search overlay; typing a query returns matching messages from all conversations in under 500ms, even with 10,000+ messages stored
|
||||
2. User can bookmark any message and later filter or navigate to bookmarked messages
|
||||
3. Editing a message that already has a response creates a new branch; both the original and the new branch are preserved and the user can switch between them
|
||||
4. User can export any conversation as a Markdown file or as a JSON file containing all messages and metadata
|
||||
**Plans:** 4/4 plans complete
|
||||
|
||||
Plans:
|
||||
- [x] 24-00-PLAN.md — DB migrations (branch columns, tsvector+GIN, bookmarks table), shared types, Wave 0 test stubs
|
||||
- [x] 24-01-PLAN.md — Server: search, bookmark, branch, export service methods and Express routes
|
||||
- [x] 24-02-PLAN.md — UI: ChatSearchDialog, ChatMessageBookmark, ChatBookmarkList, ChatBranchSelector, API client, hooks
|
||||
- [x] 24-03-PLAN.md — Wiring: ChatPanel integration, CommandPalette search item, scroll-to-message, bookmark toggle, branch-on-edit
|
||||
|
||||
**UI hint**: yes
|
||||
|
||||
### Phase 25: File System
|
||||
**Goal**: Users and agents can upload, generate, preview, and download files in chat, with all files tracked in libSQL, version-controlled by git, and accessible across devices
|
||||
**Depends on**: Phase 21
|
||||
**Requirements**: FILE-01, FILE-02, FILE-03, FILE-04, FILE-05, FILE-06, FILE-07, FILE-08, FILE-09, FILE-10, FILE-11, FILE-12, FILE-13, INPUT-02, INPUT-03, INPUT-04
|
||||
**Success Criteria** (what must be TRUE):
|
||||
1. User can drag-and-drop a file or image onto the chat input, see an inline preview, and send it; the file is stored on disk under `<nexus-root>/files/` and its metadata is written to libSQL
|
||||
2. User can paste an image from the clipboard directly into the chat input and send it
|
||||
3. Images attached to messages render inline in the message; PDFs show a first-page preview; code files show a syntax-highlighted preview; any file can be downloaded with one click
|
||||
4. Every file operation (upload, agent generation, replacement, deletion) produces a git commit in the `files/` repository; user can view the git log for any file
|
||||
5. When an agent generates a placeholder asset, `PLACEHOLDERS.md` is updated in the project directory; when the placeholder is replaced, the DB records the replacement chain and the manifest reflects the change
|
||||
6. A file uploaded in a conversation linked to a project lives in `files/projects/<slug>/`; a file from an unlinked conversation lives in `files/chat/<conversation-id>/`; the user can promote a chat file to project scope
|
||||
7. Voice input is available when local AI is enabled: user can hold the record button, speak, see a transcription preview, and confirm to send
|
||||
**Plans:** 9/9 plans complete
|
||||
|
||||
Plans:
|
||||
- [x] 25-00-PLAN.md — DB schema (chat_files + chat_file_references), shared types/validators, test stubs
|
||||
- [x] 25-01-PLAN.md — Server: chatFileService + chatFileRoutes (upload, download, list, references)
|
||||
- [x] 25-02-PLAN.md — UI: ChatInput file upload (drag-drop, paste, file picker), useChatFileUpload hook
|
||||
- [x] 25-03-PLAN.md — UI: ChatFilePreview/ChatFileCard components, ChatMessage/ChatPanel wiring
|
||||
- [x] 25-04-PLAN.md — Gap: Code syntax-highlighted preview (FILE-06) + admin claims (FILE-07, FILE-13)
|
||||
- [x] 25-05-PLAN.md — Gap: File scope promotion API + UI (FILE-12)
|
||||
- [x] 25-06-PLAN.md — Gap: Git integration for file operations + version history (FILE-09, FILE-10)
|
||||
- [x] 25-07-PLAN.md — Gap: Agent-generated files + placeholder tracking (FILE-08, FILE-11)
|
||||
- [x] 25-08-PLAN.md — Gap: Voice input via Whisper (INPUT-04) + admin claims (INPUT-02, INPUT-03)
|
||||
|
||||
**UI hint**: yes
|
||||
|
||||
### Phase 26: PWA & Performance
|
||||
**Goal**: Nexus is installable as a standalone app on any device, loads under 2 seconds, and works offline — delivering the full chat experience on phone, tablet, and desktop
|
||||
**Depends on**: Phase 22
|
||||
**Requirements**: PWA-01, PWA-02, PWA-03, PWA-04, PWA-05, PWA-06, PWA-07, PWA-08, PERF-01, PERF-05
|
||||
**Success Criteria** (what must be TRUE):
|
||||
1. On first mobile visit, the browser shows an "Add to Home Screen" prompt; after installation the app opens as a standalone window with no browser chrome
|
||||
2. The installed app has a Nexus icon and theme-aware splash screen on iOS, Android, macOS, and Windows
|
||||
3. When the device goes offline, the cached UI loads in under 1 second and queues outgoing messages; messages are delivered automatically when the connection returns
|
||||
4. On a phone, the input bar is sticky at the bottom of the screen, touch targets are large enough to tap without errors, and the layout resizes correctly when the software keyboard appears
|
||||
5. Pulling down on the conversation list on mobile triggers a refresh; push notifications arrive for agent mentions, task completions, and handoff requests where the platform supports them
|
||||
6. The initial page load on broadband completes in under 2 seconds and on a 3G connection in under 5 seconds; PWA cached load completes in under 1 second
|
||||
**Plans:** 5/5 plans complete
|
||||
|
||||
Plans:
|
||||
- [x] 26-00-PLAN.md — Foundation: SW rewrite (cache-first), deps (idb, web-push), PWA types, Wave 0 test stubs
|
||||
- [x] 26-01-PLAN.md — Performance: React.lazy route splitting + Vite vendor chunk splitting
|
||||
- [x] 26-02-PLAN.md — Mobile responsive: MobileChatView, MobileNavBar, PullToRefresh, ChatPanel/ChatInput mobile wiring
|
||||
- [x] 26-03-PLAN.md — PWA features: InstallPromptBanner, OfflineBanner, useOfflineQueue (IndexedDB message queue)
|
||||
- [x] 26-04-PLAN.md — Push notifications: DB schema, server VAPID/routes, client subscription hook, permission prompt
|
||||
|
||||
**UI hint**: yes
|
||||
|
||||
---
|
||||
|
||||
## Coverage Validation
|
||||
|
||||
All 65 v1 requirements are mapped to exactly one phase. No orphans.
|
||||
|
||||
| Requirement | Phase |
|
||||
|-------------|-------|
|
||||
| CHAT-01 | 22 |
|
||||
| CHAT-02 | 21 |
|
||||
| CHAT-03 | 21 |
|
||||
| CHAT-04 | 21 |
|
||||
| CHAT-05 | 21 |
|
||||
| CHAT-06 | 21 |
|
||||
| CHAT-07 | 24 |
|
||||
| CHAT-08 | 22 |
|
||||
| CHAT-09 | 23 |
|
||||
| CHAT-10 | 22 |
|
||||
| CHAT-11 | 22 |
|
||||
| CHAT-12 | 22 |
|
||||
| CHAT-13 | 24 |
|
||||
| CHAT-14 | 24 |
|
||||
| INPUT-01 | 21 |
|
||||
| INPUT-02 | 25 |
|
||||
| INPUT-03 | 25 |
|
||||
| INPUT-04 | 25 |
|
||||
| INPUT-05 | 22 |
|
||||
| INPUT-06 | 22 |
|
||||
| INPUT-07 | 21 |
|
||||
| AGENT-01 | 23 |
|
||||
| AGENT-02 | 23 |
|
||||
| AGENT-03 | 23 |
|
||||
| AGENT-04 | 22 |
|
||||
| AGENT-05 | 23 |
|
||||
| AGENT-06 | 23 |
|
||||
| AGENT-07 | 23 |
|
||||
| HIST-01 | 21 |
|
||||
| HIST-02 | 21 |
|
||||
| HIST-03 | 21 |
|
||||
| HIST-04 | 24 |
|
||||
| HIST-05 | 21 |
|
||||
| HIST-06 | 21 |
|
||||
| PWA-01 | 26 |
|
||||
| PWA-02 | 26 |
|
||||
| PWA-03 | 26 |
|
||||
| PWA-04 | 26 |
|
||||
| PWA-05 | 26 |
|
||||
| PWA-06 | 26 |
|
||||
| PWA-07 | 26 |
|
||||
| PWA-08 | 26 |
|
||||
| THEME-01 | 21 |
|
||||
| THEME-02 | 21 |
|
||||
| THEME-03 | 22 |
|
||||
| PERF-01 | 26 |
|
||||
| PERF-02 | 22 |
|
||||
| PERF-03 | 22 |
|
||||
| PERF-04 | 24 |
|
||||
| PERF-05 | 26 |
|
||||
| FILE-01 | 25 |
|
||||
| FILE-02 | 25 |
|
||||
| FILE-03 | 25 |
|
||||
| FILE-04 | 25 |
|
||||
| FILE-05 | 25 |
|
||||
| FILE-06 | 25 |
|
||||
| FILE-07 | 25 |
|
||||
| FILE-08 | 25 |
|
||||
| FILE-09 | 25 |
|
||||
| FILE-10 | 25 |
|
||||
| FILE-11 | 25 |
|
||||
| FILE-12 | 25 |
|
||||
| FILE-13 | 25 |
|
||||
|
||||
---
|
||||
|
||||
## Progress
|
||||
|
||||
| Phase | Milestone | Plans Complete | Status | Completed |
|
||||
|-------|-----------|----------------|--------|-----------|
|
||||
| 21. Chat Foundation | v1.3 | 7/7 | Complete | 2026-04-01 |
|
||||
| 22. Agent Streaming | v1.3 | 6/6 | Complete | 2026-04-01 |
|
||||
| 23. Brainstormer Flow | v1.3 | 4/4 | Complete | 2026-04-01 |
|
||||
| 24. Search, History & Branching | v1.3 | 4/4 | Complete | 2026-04-01 |
|
||||
| 25. File System | v1.3 | 9/9 | Complete | 2026-04-02 |
|
||||
| 26. PWA & Performance | v1.3 | 5/5 | Complete | 2026-04-02 |
|
||||
Loading…
Add table
Reference in a new issue