Commit Graph

774 Commits

Author SHA1 Message Date
gsxdsm
c07c9f4aba fix(FN-1241): stabilize PlanningModeModal race-condition test
- Replace fragile real-timer setTimeout sequencing with fake timers to eliminate CI flakiness
- Refactor mocked planning stream/response flow to deterministically deliver the second question
- Add explicit timer advancement and intermediate assertions around Continue click and response dispatch
- Ensure timer state is always restored with try/finally and keep single-SSE-connection verification
2026-04-08 09:12:15 -07:00
gsxdsm
d2db088642 fix(FN-1162): keep mobile file browser header controls accessible
- Update file browser header styles to wrap cleanly on small screens and preserve readable truncated labels
- Increase mobile close-button hit area and keep close action visible within header actions layout
- Add responsive WorkspaceSelector constraints to prevent menu/trigger overflow on narrow viewports
- Add a regression test that verifies the mobile close button remains visible and clickable
2026-04-08 09:07:34 -07:00
gsxdsm
4eef067baa feat(FN-1141): improve dashboard mobile adaptations
- Extend mobile CSS for SettingsModal, AgentsView, ExecutorStatusBar, ActiveAgentsPanel, toast placement, and background task popovers
- Rename BackgroundTasksIndicator list/item class hooks to align with the updated responsive styling contract
- Add focused component tests covering settings, agents, and utility mobile adaptations plus key CSS media-rule assertions
- Document mobile component adaptation behavior and testing guidance in the dashboard README
2026-04-08 08:48:21 -07:00
gsxdsm
b97d9fc3ee feat(FN-1237): move AgentLogViewer timestamps into badge row
- Render timestamps only when an entry includes an agent badge
- Remove standalone timestamp prefixes from text and tool log rows
- Keep relative timestamp formatting while colocating it with agent identity
- Update AgentLogViewer tests for badge-scoped timestamps and legacy entries without agents
2026-04-08 07:44:38 -07:00
gsxdsm
af0c4bcbcc feat(FN-1140): add mobile list cards and viewport hook
- Extract useViewportMode into a reusable hook and update Header/ListView to use it
- Render mobile ListView cards with collapsible column sections, card metadata, and selection support
- Add mobile-first styles for card layout, touch targets, focus states, and quick-entry overflow handling
- Expand ListView and QuickEntryBox tests to cover mobile rendering and interaction behavior
2026-04-08 07:38:32 -07:00
gsxdsm
c43357937b fix(FN-1234): stabilize mobile terminal tab switching
- Add session-aware terminal fit/resize logic so deferred viewport callbacks only affect the active tab session
- Trigger a post-init re-fit when keyboard overlap is already present during async xterm initialization
- Guard data, scrollback, and exit handlers to prevent stale session output from writing into a newly active tab
- Add FN-1234 regression tests for mobile tab switching with keyboard overlap, resize propagation, and scrollback isolation
2026-04-08 07:30:32 -07:00
gsxdsm
cb24d6ccca feat(FN-1189): add Agent Companies import support
- Expand fn agent import to accept directories, .tar.gz/.tgz/.zip archives, single .md manifests, and legacy .sh manifests
- Update /api/agents/import to handle agents array, source path, or manifest string inputs with dry-run previews and legacy fallback parsing
- Refresh AgentImportModal and dashboard API typing for new preview metadata, directory uploads, and improved error handling
- Add coverage for CLI import paths, dashboard import routes, modal behavior, and assignment route timeout stability
- Add a minor @gsxdsm/fusion changeset documenting Agent Companies import support
2026-04-08 07:13:38 -07:00
gsxdsm
9b3e8c61db feat(FN-1139): improve mobile board touch experience
- Add mobile board overrides for smooth horizontal snap scrolling, hidden scrollbars, and fixed 280px centered columns
- Update task card mobile styles to keep key actions visible and enforce 44px touch targets for primary controls
- Adapt inline create UI for narrow columns with 16px input text, wrapped controls, and constrained dependency dropdown sizing
- Add board-mobile tests covering CSS mobile rules plus touch tap-vs-scroll behavior for TaskCard and InlineCreateCard
- Document the mobile board interaction model and touch target conventions in the dashboard README
2026-04-08 06:47:59 -07:00
gsxdsm
b949fd01ff feat(FN-1212): update header with circular Fusion logo
- Replace the header SVG mark with a circular outline and filled path-based glyph using currentColor
- Keep logo semantics and ordering intact while modernizing the visual treatment
- Update Header tests to assert currentColor-based geometry and verify the stroked outer circle
2026-04-08 06:16:18 -07:00
gsxdsm
b6fbadec4d feat(FN-1145): harden dashboard SSE streams with replay and reconnect
- Add a shared SSE event buffer utility and wire it into planning, subtask, mission interview, and task stream routes
- Support Last-Event-ID replay semantics and robust event serialization so clients can recover missed stream events
- Add a resilient client-side reconnect wrapper and surface reconnecting state in planning, subtask breakdown, and mission interview modals
- Expand test coverage across API routes, SSE buffering behavior, reconnect handling, and mission/planning stream flows
2026-04-08 06:02:28 -07:00
gsxdsm
586d9b33b1 feat(FN-1137): improve mobile dropdown and file browser interactions
- Add viewport-aware positioning/clamping for Quick Scripts and Quick Entry dropdown menus
- Implement long-press context menu behavior in FileBrowser with iOS momentum scrolling support
- Expand dashboard CSS and component logic to stabilize mobile overlay behavior and remove unused inline WebKit style
- Add focused tests for FileBrowser, QuickScriptsDropdown, and mobile dropdown positioning plus README notes
2026-04-08 05:59:12 -07:00
gsxdsm
eb6676eee0 feat(FN-1208): reorder task form attachments above dependencies
- Move the Attachments form section to render before Dependencies in TaskForm
- Keep existing screenshot attach/remove interactions intact while changing layout order
- Add NewTaskModal test coverage asserting Attachments appears before Dependencies in DOM order
2026-04-08 05:21:07 -07:00
gsxdsm
8e8fc07dc1 fix(FN-1136): tighten dashboard mobile header and mailbox layouts
- Move the overflow planning badge into a dedicated icon wrapper to prevent text overlap on mobile
- Add Header test coverage for active planning sessions in the mobile overflow menu
- Scope mailbox mobile CSS rules to .mailbox-modal to avoid global style bleed
- Refine mobile mailbox spacing, tab sizing, and minimum agent panel height for better small-screen usability
2026-04-08 04:59:00 -07:00
gsxdsm
4ba4cca01f feat(FN-1130): add project memory editing in settings
- Add GET /api/memory and PUT /api/memory routes with project-scoped file access and validation
- Add fetchMemory and saveMemory dashboard API helpers for memory file operations
- Extend the Settings modal Memory section with inline FileEditor loading, dirty tracking, save action, and read-only behavior when memory is disabled
- Add SettingsModal tests covering memory load, loading state, save flow, and empty-content handling
2026-04-08 04:30:10 -07:00
gsxdsm
757942bd18 feat(FN-1108): add mobile bottom navigation to dashboard
- Export viewport utilities and add a new MobileNavBar component for core mobile navigation actions
- Integrate the bottom nav into App layout and simplify Header rendering when mobile navigation is active
- Add comprehensive mobile bottom-nav styling and spacing updates in the shared dashboard stylesheet
- Add component and CSS regression tests for mobile nav behavior, including escape-key interaction coverage
- Document the mobile bottom navigation UX and behavior in the dashboard README
2026-04-08 04:20:31 -07:00
gsxdsm
e555eee564 feat(FN-1144): add planning model override support to planning mode
- Add planning model selection UI to PlanningModeModal initial view with model loading, favorites wiring, and default/custom badge state
- Extend startPlanningStreaming client API to send optional planningModelProvider/planningModelId overrides
- Propagate planning model overrides through /planning/start-streaming and createSessionWithAgent so agent creation uses selected model settings
- Add frontend and backend tests covering modal selection behavior, request forwarding, and end-to-end planning model flow
2026-04-08 04:10:10 -07:00
gsxdsm
3ab9da6f7f feat(FN-1098): add dashboard task-agent assignment flow
- Add task-agent assignment API helpers with coverage for assign, unassign, and list endpoints
- Show assigned agent badges on task cards and add assignment controls in TaskDetailModal
- Add agent task management tab plus agent selectors in quick and inline task creation UIs
- Expand component test coverage and include a changeset for the dashboard agent assignment feature
2026-04-08 03:19:09 -07:00
gsxdsm
6e00061684 feat(FN-1132): support resuming completed planning sessions
- Include complete planning sessions in active session queries and background tracking
- Add create-task fallback to recover completed planning data from persisted ai session records
- Validate and reconstruct summary/initial plan data from stored JSON before creating tasks
- Expand tests for modal resume flow, session-store filtering, and route fallback behavior
2026-04-08 02:06:37 -07:00
gsxdsm
7d7c7efbd9 feat(FN-1127): add awaiting-approval ntfy notifications
- Extend ntfy event types and default ntfyEvents to include awaiting-approval
- Send high-priority "Plan needs approval" notifications for awaiting-approval task updates with deep-link support
- Add Notifications settings checkbox handling for awaiting-approval event selection in Settings modal
- Expand notifier and settings modal tests for awaiting-approval defaults, toggles, filtering, and deduplication
- Update AGENTS.md ntfy documentation and sample config to include the new event
2026-04-08 02:00:39 -07:00
gsxdsm
d7f49c0dbe feat(FN-1107): establish dashboard mobile CSS foundation
- Add mobile breakpoint tokens and a reusable .touch-target utility with 44px minimum hit area
- Harden mobile styles with global 16px text-entry sizing, safe-area inset padding, and overflow guards for wide content
- Keep Capacitor viewport constraints in index.html and document the shared mobile CSS conventions in the dashboard README
- Add mobile CSS foundation coverage and update input font-size tests to validate the new global selectors
2026-04-08 01:46:07 -07:00
gsxdsm
d30419d70b feat(FN-1191): hot-swap active executor sessions on model changes
- Show resolved default executor, validator, and planning models in the task Model tab
- Pass merged settings into the Model tab from TaskDetailModal so default badges reflect effective runtime resolution
- Hot-swap active single-session executor models when task overrides change, including fallback to project defaults when overrides are cleared
- Add dashboard and executor tests for default model display, hot-swap behavior, fallback logic, and failure logging
- Document hot-swap behavior and limitations in AGENTS.md and add a patch changeset for @gsxdsm/fusion
2026-04-08 01:18:01 -07:00
gsxdsm
07697b2f5b feat(FN-1085): align agent routing and runtime contracts
- Harden core AgentStore lifecycle behavior and heartbeat runtime integration paths
- Align dashboard agent APIs, server routes, and agent UI flows with the updated contract
- Tighten CLI agent/message command routing and validate payload handling semantics
- Expand test coverage across core, dashboard, engine, and CLI for route, heartbeat, and instruction regressions
2026-04-08 00:44:33 -07:00
gsxdsm
92e6aa2b49 feat(FN-1104): add quick chat FAB to dashboard
- Add QuickChatFAB component with agent selection, conversation loading, and inline send actions
- Support panel open/close interactions including close button, Escape key, and outside-click dismissal
- Integrate the quick chat FAB into App so it appears in project view with project-scoped API calls
- Add comprehensive QuickChatFAB tests and style rules for FAB, chat panel, message bubbles, and responsive behavior
2026-04-08 00:43:21 -07:00
gsxdsm
03bae5b0cc fix(FN-1160): align ScriptsModal with current theme tokens
- Replace deprecated text and border CSS variables with canonical dashboard tokens in ScriptsModal
- Standardize error styling to use var(--color-error) for validation and delete confirmation states
- Update script list and empty-state surfaces to use shared card/background tokens for consistent theming
2026-04-08 00:32:43 -07:00
gsxdsm
b386db12bd feat(FN-1105): move background task indicator styling to CSS classes
- Replace inline styles in BackgroundTasksIndicator with semantic class names for pill, popover, and session rows
- Add dedicated styles for attention state, hover behavior, and muted text/border theme tokens
- Style session content, icons, and dismiss controls in styles.css to centralize indicator presentation
2026-04-08 00:19:12 -07:00
gsxdsm
a4a99f31b0 feat(FN-1072): add Electron desktop renderer integration
- Add Electron main-process IPC handlers and preload bridges for API proxying, window controls, update install, and platform lookup
- Introduce a desktop renderer entrypoint with DesktopWrapper and a custom frameless TitleBar component
- Add Electron-aware renderer utilities including API transport selection and hooks for runtime detection, auto-update events, and deep links
- Update dashboard header behavior for Electron mode and expand desktop tests across preload, transport, hooks, and title bar flows
- Document the desktop renderer architecture and update desktop package config/dependencies
2026-04-08 00:16:25 -07:00
gsxdsm
8c5b5e128c feat(FN-1103): improve configured workflow steps experience
- Render a dedicated configured-steps state in WorkflowResultsTab with step count, descriptions, and phase badges when results are not yet available
- Keep inline workflow step editing available from the configured state and results state, including add/remove and execution-order controls
- Refine workflow step loading/edit behavior by aligning callback names and fetching step definitions by project context
- Add dashboard styles for the configured workflow step cards and improved edit toggle button treatment
- Expand WorkflowResultsTab and TaskDetailModal tests and add electron-updater type declarations to restore workspace build
2026-04-08 00:02:02 -07:00
gsxdsm
075402c11d feat(FN-1081): add dashboard nodes management workflow
- Add node API typings and client methods plus a polling useNodes hook with visibility-triggered refresh
- Introduce NodesView with NodeCard, AddNodeModal, and NodeDetailModal to register, inspect, update, health-check, and remove nodes
- Wire the Nodes surface into the app shell/header and add project node assignment UI with project card node badges
- Add unit coverage for useNodes, NodesView, NodeCard, Header, and ProjectCard behavior, plus node-specific dashboard styling
2026-04-07 23:30:32 -07:00
gsxdsm
74cae4f870 fix(FN-1102): persist workflow step selection in task create payloads
- Add browser verification toggle state to InlineCreateCard and submit browser-verification via enabledWorkflowSteps when selected
- Reset browser verification state after submit/cancel flows to prevent stale workflow selections
- Add InlineCreateCard and NewTaskModal tests that verify enabledWorkflowSteps are included in create payloads
- Add a patch changeset for @gsxdsm/fusion describing the workflow-step visibility fix
2026-04-07 23:26:28 -07:00
gsxdsm
c6f4d3b51d feat(FN-1157): switch planning size controls to dropdowns
- Replace Summary view suggested size buttons with a select dropdown and keep loading-state disabling
- Replace Breakdown view subtask size button groups with per-subtask size dropdowns
- Add PlanningModeModal tests for summary and breakdown size dropdown rendering and change handling
- Expand API test mocks used by planning breakdown flows to support the new coverage
2026-04-07 23:00:04 -07:00
gsxdsm
9a332c4b61 fix(FN-1135): retry xterm imports when MIME errors occur
- Add retryDynamicImport helper in TerminalModal with targeted retry detection for MIME type and dynamic import fetch failures
- Retry xterm module imports with backoff delays (500ms, 1500ms, 3000ms) and preserve original error reporting when retries are exhausted
- Add TerminalModal tests covering successful retry recovery, exhausted retry fallback to init error UI, and no-retry behavior for non-retryable failures
- Add a changeset patch for @gsxdsm/fusion describing the terminal initialization fix
2026-04-07 22:50:17 -07:00
gsxdsm
69bb0290aa feat(FN-1125): add browser verification template coverage
- Map the workflow template icon key "globe" to the Globe icon in WorkflowStepManager
- Expand WorkflowStepManager tests to cover Browser Verification template rendering, icon display, and add-from-template behavior
- Update AGENTS.md workflow template documentation to include the new Browser Verification template and description
2026-04-07 22:49:28 -07:00
gsxdsm
a0cf687a81 feat(FN-1112): remove browser-verification special-case UI
- Remove the hardcoded Browser Verification checkbox from TaskForm and rely on configured workflow steps
- Remove the InlineCreateCard Browser toggle and stop injecting browser-verification into create payloads
- Align TaskForm and InlineCreateCard tests with template-only workflow-step selection behavior
- Delete obsolete NewTaskModal and TaskDetailModal assertions for browser-verification controls
2026-04-07 22:37:19 -07:00
gsxdsm
57ff16704a feat(FN-1100): enable inline workflow step editing in task workflow tab
- Add editable workflow step controls in WorkflowResultsTab, including selection, ordering, removal, and phase badges
- Load available enabled workflow steps (plus browser verification) for edit mode and preserve existing results visibility while editing
- Wire TaskDetailModal to manage optimistic workflow step updates, persist enabledWorkflowSteps, and surface success/error toasts
- Expand WorkflowResultsTab tests to cover edit toggle behavior, API loading, selection changes, reordering/removal, and mixed results+edit rendering
2026-04-07 22:29:48 -07:00
gsxdsm
1982362fb5 feat(FN-1106): preserve planning sessions when closing modal
- Stop canceling active planning sessions on modal close and keep server-side progress intact
- Remove progress-loss confirmation prompts and simplify close/escape/unload handling to just reset local UI state
- Ensure close flows always disconnect the SSE stream connection without clearing the backend session
- Rewrite PlanningModeModal close-behavior tests to verify no confirmation/cancel calls across initial, loading, question, summary, and overlay dismiss paths
2026-04-07 22:14:14 -07:00
gsxdsm
5b441ca86c fix(FN-1101): normalize browser verification checkbox state
- Detect browser verification selection from both template token and resolved workflow step IDs
- Normalize checkbox toggles by replacing resolved browser-verification step IDs with a single canonical token
- Preserve non-browser workflow step selections when checking or unchecking browser verification
- Add TaskForm tests for resolved-ID checked state, unchecked cleanup, and re-check normalization
- Add a patch changeset for @gsxdsm/fusion documenting the browser verification state fix
2026-04-07 22:13:37 -07:00
gsxdsm
af4691f17b feat(FN-1088): move quick entry advanced controls into actions menu
- Replace direct Deps/Models/Save controls with a single actions trigger in QuickEntryBox
- Add portaled actions dropdown behavior, including outside-click and Escape handling plus menu repositioning
- Add actions badge styling/count to reflect selected dependencies and model overrides
- Update QuickEntryBox/ListView tests and AGENTS.md docs to match the new actions-menu interaction flow
2026-04-07 19:20:59 -07:00
gsxdsm
e952dd5760 fix(FN-1097): sync model tab saves with modal task state
- Pass TaskDetailModal's onTaskUpdated callback into ModelSelectorTab
- Propagate server-returned task updates after model and thinking-level saves so edit mode uses fresh values
- Add regression tests for ModelSelectorTab update callbacks and TaskDetailModal model-sync flow
- Add a patch changeset for @gsxdsm/fusion covering the model edit sync fix
2026-04-07 19:13:51 -07:00
gsxdsm
66562a0b54 fix(FN-1082): harden mailbox modal mobile layout
- Add flex-column base layout for .mailbox-modal and make .mailbox-content grow/scroll correctly
- Introduce a dedicated <=768px mailbox mobile CSS section for header, tabs, detail view, and FAB spacing
- Add MailboxModal regression tests that assert required CSS rules and detail-view structural hooks
- Increase batch GitHub issue import route test timeout to 30s for slower retry paths in CI
2026-04-07 18:46:22 -07:00
gsxdsm
981c5d951c feat(FN-1065): add immediate message response mode for heartbeats
- Add MessageResponseMode and messageResponseMode runtime config to core agent heartbeat types and exports
- Extend MessageStore with an onMessageToAgent hook plus runtime hook updates for agent-directed messages
- Wire HeartbeatMonitor to wake agents on incoming messages when messageResponseMode is immediate and state is eligible
- Update AgentDetailView with a Message Response Mode setting, validation, and runtimeConfig persistence
- Expand core and engine tests to cover hook behavior, wake-on-message triggering, and start/stop hook lifecycle
2026-04-07 18:43:16 -07:00
gsxdsm
0f0ddc02fb feat(FN-1050): add per-agent custom instructions support
- Add instructionsPath and instructionsText fields to Agent type and AgentStore
- Create agent-instructions resolver module in engine with priority-based resolution
- Wire custom instructions into executor, triage, reviewer, and merger agents
- Add PATCH /agents/:id/instructions API endpoint with file and text support
- Add instructions editor UI to dashboard agent detail config tab
- Add comprehensive tests for instructions resolver and AgentStore integration
- Add changeset for published package bump
2026-04-07 15:17:08 -07:00
gsxdsm
f34c86345c feat(FN-1059): add manual heartbeat run trigger with execution details in agent UI
- Wire heartbeatMonitor into ServerOptions and pass through to API routes
- Add POST /api/agents/:id/runs route to trigger heartbeat execution with optional source/triggerDetail
- Update API client startAgentRun to accept optional source and triggerDetail parameters
- Add Run Heartbeat button to AgentsView and enhance AgentDetailView RunsTab with execution details and polling
- Add route handler tests for agent runs and UI static analysis tests
- Support run history display with status, duration, trigger type, and result details
2026-04-07 14:38:12 -07:00
gsxdsm
6b269f85c6 feat(FN-991): add per-task planning model override for triage and dashboard
- Add planningModelProvider/planningModelId fields to task model and API batch-update endpoint
- Wire triage engine to use per-task planning model override with settings hierarchy fallback
- Add planning model selector to TaskDetailModal Model tab
- Add comprehensive tests for triage engine planning model resolution and dashboard API/routes
2026-04-07 13:46:25 -07:00
gsxdsm
a549dbde81 feat(FN-1066): add descriptions to agent presets and display in UI
- Add description field to all 20 agent presets in NewAgentDialog
- Display preset descriptions below role badge in preset selection cards
- Use preset description as agent title when selecting a preset
- Add CSS styling for description text with 2-line clamp
- Add tests verifying descriptions render, are non-empty, and populate title field
2026-04-07 13:38:35 -07:00
gsxdsm
55f5dde24d feat(FN-1064): replace agent sidebar with dropdown select in MailboxModal
- Replace agent sidebar layout with a compact dropdown select component
- Refactor MailboxModal.tsx to use dropdown instead of sidebar navigation
- Remove unused sidebar CSS styles and add dropdown-specific styles
- Update tests to cover dropdown behavior and interaction patterns
2026-04-07 13:37:56 -07:00
gsxdsm
28bc4a3bfa feat(FN-1045): add clickable agent run history with inline log viewer
- Add backend API endpoint for time-range filtered agent log retrieval (GET /api/agents/:id/logs)
- Add fetchAgentRunLogs API function in dashboard client
- Make RunsTab run cards clickable with inline log viewer accordion
- Make AgentRunHistory run rows clickable to expand and view logs
- Enhance AgentDetailView with collapsible log sections and time-range filtering
- Add comprehensive tests for store, routes, and component click behavior
2026-04-07 12:55:05 -07:00
gsxdsm
880f29115c feat(FN-1044): add thinkingLevel and planning model support to task creation
- Add thinkingLevel field to createTask and updateTask in core store
- Accept thinkingLevel and planningModel fields in dashboard task routes
- Send thinkingLevel and planningModel in frontend API calls from task forms
- Add ThinkingLevel selector to ModelSelectorTab component with tests
- Wire up planning model and thinking level in QuickEntryBox, TaskForm, and NewTaskModal
- Add unit tests for store, routes, and ModelSelectorTab coverage
- Add changeset and update AGENTS.md documentation
2026-04-07 12:18:49 -07:00
gsxdsm
825ae1061b feat(FN-1049): add per-agent heartbeat configuration via runtimeConfig
- Define AgentHeartbeatConfig interface in core types (heartbeatIntervalMs, heartbeatTimeoutMs, maxConcurrentRuns)
- Update HeartbeatMonitor to resolve per-agent config from AgentStore with validated min/max clamping
- Wire AgentStore into HeartbeatMonitor via InProcessRuntime initialization
- Add heartbeat settings section to dashboard AgentDetailView ConfigTab
- Add PATCH /api/agents/:id endpoint accepting runtimeConfig updates
- Add comprehensive tests for per-agent heartbeat config resolution and validation
- Document per-agent heartbeat configuration in AGENTS.md
2026-04-07 11:50:17 -07:00
gsxdsm
39f4f4929f feat(FN-976): add companies.sh agent import for CLI and dashboard
- Add companies.sh type definitions and parser in @fusion/core with comprehensive tests
- Create CLI `kb agent-import` command to import agents from companies.sh
- Add POST /api/agents/import dashboard endpoint with dry-run support
- Build AgentImportModal component with search, preview, and batch import UI
- Add dashboard route tests for the agent import API endpoint
- Create changeset for @gsxdsm/fusion minor bump
2026-04-07 11:41:38 -07:00
gsxdsm
43b1f6e772 feat(FN-989): add inter-agent messaging system with mailbox UI and CLI commands
- Add Message types (Message, MessageThread, MessageRecipient) and exports to @fusion/core
- Create MessageStore with full CRUD: send, read, delete, inbox, threads, and search
- Add messages table migration (schema v12) with SQLite full-text search support
- Add REST API routes for messaging (CRUD, search, broadcast, unread count)
- Add frontend API client functions for all messaging endpoints
- Build MailboxModal and MessageComposer dashboard components with header integration
- Add CLI message commands (inbox, send, read, delete) with rich output formatting
- Add comprehensive test coverage for MessageStore, CLI commands, and UI components
- Update documentation (CLI STANDALONE.md, dashboard README) with messaging usage
2026-04-07 11:21:59 -07:00