8.1 KiB
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