nexus/.planning/MILESTONES.md

8.1 KiB

Milestones

v1.6 Voice Pipeline + Minimal Message Bridge (Shipped: 2026-04-04)

Phases completed: 4 phases, 12 plans, 14 tasks

Key accomplishments:

  • Transport-agnostic voice service with Whisper STT cascade, Piper TTS sentence chunking, ffmpeg-static transcoding, and SPOKEN/markdown dual-output formatting — 12 tests all passing
  • One-liner:
  • Voice pipeline HTTP-accessible via POST /api/transcribe and POST /api/synthesize, with full_voice dual-output prompt injection and messageType persistence in the SSE stream endpoint
  • One-liner:
  • One-liner:
  • Inline audio player (ChatVoicePlayer), voice badge with collapsible markdown (ChatVoiceBadge), and three-pill mode toggle (VoiceModeToggle) — complete output-side voice UI
  • voiceMode threaded end-to-end (ChatPanel -> useStreamingChat -> chatApi -> server), VoiceMicButton replacing VoiceRecordButton, ChatVoiceBadge rendering for voice messages in ChatMessage
  • grammY long-polling bot with text relay, [AgentName] prefix, session map, and /api/telegram/token + /status management routes wired into app.ts
  • OGG download + Whisper transcription + Piper TTS reply wired into existing telegramService, with shared relayToAgent() function and graceful voice degradation
  • TelegramStep component with BotFather numbered instructions, live token validation via POST /api/telegram/token, inserted as step 5 in a 7-step NexusOnboardingWizard
  • abbreviation handling:
  • Task 1 — Voice capability probe:

v1.5 Smart Onboarding + Personal AI Assistant (Shipped: 2026-04-03)

Phases completed: 6 phases, 13 plans, 19 tasks

Key accomplishments:

  • Hardware tier detection (Apple Silicon/GPU/CPU-only) via systeminformation with 3s timeout, file-backed mode persistence via Zod-validated nexus-settings service, extended model catalog with tier arrays, and unauthenticated /api/system/providers endpoint
  • One-liner:
  • server/src/services/puter-proxy.ts
  • One-liner:
  • 4-step onboarding wizard with Puter/Google/API-key provider cards, adapter auto-detection badges, and post-company-creation credential storage
  • Human verification checkpoint for complete provider selection onboarding flow — auto-approved under auto_advance mode, deferred to UAT
  • 5-step onboarding wizard with skip buttons on steps 1/2/4, summary screen as step 5, and "Start chatting" CTA that creates workspace then opens chat panel.
  • File-backed assistant memory service with write-time credential sanitization and REST endpoints mounted in app.ts.
  • One-liner:
  • Real AI streaming via puterProxyService with memory-injected system prompt, SSE format fix, and assistant-to-PM handoff route with wired UI button.
  • chatFileRoutes and nexusSettingsRoutes mounted in app.ts; voiceEnabled added to nexus-settings; usePiperTts hook and TtsButton component created with @mintplex-labs/piper-tts-web WASM synthesis
  • VoiceStep onboarding component (mic detection, enable/skip) inserted as wizard step 4; VoiceRecordButton (STT) and TtsButton (TTS) wired into PersonalAssistant for full voice I/O
  • One-liner:

v1.4 Hermes Default Provider (Shipped: 2026-04-02)

Phases completed: 3 phases, 6 plans, 9 tasks

Key accomplishments:

  • Four HERM-01..04 integration gaps closed: hermes_local in SESSIONED_LOCAL_ADAPTERS, Toolsets field edit-only, and hermes session codec round-trip tests added
  • One-liner:
  • Hermes agent config gains Ollama model dropdown with install callout, and AgentSkillsTab shows purple "Hermes skill" badge for native Hermes skills
  • Hermes heartbeat now persists model name + VRAM via jsonb merge, and AgentOverview renders a HermesRuntimeCard showing model, native skill count, and memory usage.
  • Board-auth hermes probe route + NexusOnboardingWizard Hermes fallback + adapter-neutral agent templates in NewAgentDialog
  • Hermes agents created via wizard get a promptTemplate with Nexus HEARTBEAT.md workflow instructions and Mustache variables, validated by 8 integration tests covering probe logic, template contract, and bundle loading

v1.3 Chat & PWA (Shipped: 2026-04-02)

Phases completed: 6 phases, 35 plans, 51 tasks

Key accomplishments:

  • Four vitest test stub files (46 it.todo cases) establishing Wave 0 scaffolds for chat service, routes, markdown rendering, and keyboard input
  • Two Drizzle tables (chat_conversations, chat_messages) with migration SQL, plus TypeScript interfaces and Zod validators exported from @paperclipai/shared
  • One-liner:
  • Express REST API for conversation+message CRUD with cursor pagination, soft-delete, auto-title, and updatedAt bumping
  • One-liner:
  • TanStack Query infinite-scroll chat UI: chatApi client, useChatConversations/useChatMessages hooks, ChatConversationList with IntersectionObserver, ChatMessageList with auto-scroll, and fully wired ChatPanel with two-path message send
  • DB migration adding updated_at to chat_messages, ChatMessage type update, @tanstack/react-virtual install, 11-role agent-role-colors utility (THEME-03), cursor-blink CSS animation, and 7 Wave 0 test stubs
  • server/src/services/chat.ts
  • Agent identity bar with role-specific colors (THEME-03), agent selector dropdown (CHAT-08), and streaming cursor for visible agent identity on every assistant message (AGENT-04)
  • Edit/retry/stop controls wired to ChatMessage — user messages get inline edit textarea, assistant messages get retry RefreshCw, stop button component ready for ChatPanel.
  • Slash command routing table (5 commands, /search disabled) and agent @mention autocomplete popover — both standalone, wired into ChatInput in plan 05.
  • ui/src/components/ChatMessageList.tsx
  • One-liner:
  • Extended chatService with addSystemMessage helper and messageType support, and added POST handoff and status-update routes that insert typed system messages and create issues from brainstormer specs.
  • One-liner:
  • ChatMessage.tsx:
  • One-liner:
  • Six service methods and six route handlers for full-text search (tsvector/ts_rank), bookmark toggle/list, conversation branching with message copy, and Markdown/JSON export with agent name resolution
  • Six chatApi methods, two React Query hooks, and four components — search/bookmark/branch UI layer built independently from server routes, ready for wiring in Plan 03.
  • One-liner:
  • One-liner:
  • Complete server-side file system: multipart upload with content-type validation, object-storage persistence, DB record creation, stream download with correct MIME headers, conversation file listing, and cross-conversation reference support.
  • Drag-and-drop, clipboard paste, and file picker wired into ChatInput via ChatFileDropZone and useChatFileUpload with XHR progress tracking
  • One-liner:
  • One-liner:
  • PATCH /files/:fileId/promote endpoint and ChatFileCard promote button with FolderUp icon wired to chatApi.promoteFile
  • Git versioning layer added to file uploads: gitFileService wraps git CLI with safe execFile, every upload creates a commit, GET /files/:fileId/history exposes git log
  • PLACEHOLDERS.md manifest service with addEntry/replaceEntry and POST /files/:fileId/replace endpoint wiring agent-generated uploads to per-project markdown manifests
  • VoiceRecordButton with MediaRecorder API wired into ChatInput; POST /transcribe endpoint with whisper-cpp/openai-whisper cascade and graceful 503 fallback
  • Cache-first service worker with nexus-v1 cache, push/notificationclick handlers, idb + web-push installed, and 14 Wave 0 test stubs for PWA hooks and PullToRefresh
  • React.lazy code splitting for all 37 page components plus Vite manualChunks for react, react-dom, react-router-dom, @tanstack/react-query, react-markdown vendor bundles
  • useMediaQuery
  • PWA install prompt with iOS fallback, amber offline status banner, and IndexedDB message queue that auto-flushes on reconnection
  • End-to-end web push notifications: PostgreSQL push_subscriptions table, VAPID server service, /api/push routes, SW pushManager subscription hook, and engagement-gated permission prompt

v1.2.1 Universal Skill Management (Shipped: 2026-04-01)

Phases completed: 1 phases, 2 plans, 2 tasks

Key accomplishments:

  • One-liner:
  • Zone taxonomy (DISPLAY/CODE/STORED), commit-msg hook enforcing [nexus] prefix, and git rerere established as rebase safety infrastructure before any upstream files are modified