Commit Graph

139 Commits

Author SHA1 Message Date
Fusion
d8fef5e4a4 feat(FN-3926): add chat room integration tests across core and dashboard
This merge adds comprehensive test coverage for chat room functionality across the core store, ChatView component, HTTP/SSE routes, and integration layer (845 lines added across four test files), guided by a test plan for FN-3812.

Fusion-Task-Id: FN-3926
2026-05-10 15:33:25 -07:00
Fusion
cab3c4970f feat(FN-3812): add rooms test scaffolds and coverage across core and dashbo
This branch establishes test scaffolding for rooms functionality across core and dashboard, adding test plans, room-specific test files for ChatView, AgentMentionPopup, QuickChatFAB, and core chat routes/stores, while also updating AgentMentionPopup with enhanced room-aware behavior and QuickChatFAB

Fusion-Task-Id: FN-3812
2026-05-10 07:59:40 -07:00
gsxdsm
b78189c778 Delete .fusion/tasks/FN-3568 directory 2026-05-09 11:22:03 -07:00
Fusion
d12c8f81d9 feat(FN-3568): add CI engineer diagnosis and recovery docs, accent text tok
Merged branch adds native shell connection support with a new `ShellConnectionStatus` component and contracts documentation, introduces `--accent-text` theme token for chat message readability, adds a split-button for git pull with rebase in `GitManagerModal`, highlights fast-mode bolt icons in task

Fusion-Task-Id: FN-3568
2026-05-08 01:13:57 -07:00
gsxdsm
a7cd1386a8 fix(FN-LOCAL): stop tracking local-only artifacts 2026-04-22 00:15:33 -07:00
Fusion
6ff9abc1ee docs(FN-1964): document dashboard package review findings
- Add a comprehensive findings report for the packages/dashboard review scope
- Summarize 22 issues by severity and focus area, including one critical API error-handling gap
- Document concrete file/line references and code snippets across API routes, SSE, hooks, accessibility, and styling
- Include actionable recommendations for each finding to guide follow-up fixes
2026-04-18 09:48:18 -07:00
Fusion
01aeb449d7 fix(FN-2048): prevent stale SSE reconnects after channel teardown
- Add a closed flag to sse-bus channel state so teardown permanently disables reconnect scheduling
- Guard useTasks onReconnect callbacks against stale effect instances when toggling views
- Add regression tests for sse-bus and useTasks to ensure closed/unmounted channels do not reconnect
- Document the leak root cause and closed-flag pattern in .fusion/memory.md
2026-04-18 02:53:49 -07:00
gsxdsm
6f12375725 feat(FN-1982): merge fusion/fn-1982 2026-04-17 14:09:37 -07:00
Fusion
8818d2ab8a fix(FN-1992): show resolved agent names in chat avatars
- Resolve assistant avatar labels from the active session agent map with fallback handling
- Keep the built-in KB agent label as Fusion and fall back to a truncated agent ID when needed
- Apply resolved labels to both stored assistant messages and streaming assistant avatars
- Add ChatView tests for resolved labels, KB-agent fallback, and streaming avatar rendering
- Document the @fusion/engine prebuild prerequisite in .fusion/memory.md
2026-04-17 03:43:33 -07:00
gsxdsm
d7ff914e3d fix(FN-1989): stabilize triage fallback 2026-04-17 01:49:25 -07:00
gsxdsm
c5ee70f6e6 fix(FN-1952): remove stale task artifacts 2026-04-16 21:43:53 -07:00
Fusion
80e49b8e40 feat(FN-1976): forward mailbox message events end to end
- Wire MessageStore into the in-process executor runtime and project engine
- Forward MessageStore events through dashboard SSE infrastructure for mailbox updates
- Close mailbox pipeline gaps across API routes, server wiring, and mailbox UI components
- Add regression coverage for messaging routes, SSE forwarding, and agent tool behavior
- Document the MessageStore SSE wiring pattern in .fusion/memory.md
2026-04-16 18:20:58 -07:00
Fusion
ca2e085d76 feat(FN-1968): add skill manifest previews to agent import
- Add SkillManifest support in core with parseSkillManifest and skills directory parsing/export wiring
- Extend /api/agents/import responses with dry-run skill previews and skillsCount metadata
- Show parsed package skills in AgentImportModal with dedicated preview UI and styles
- Add parser, API route, and modal tests covering skill manifest parsing and preview rendering
- Keep mission interview assertion generation explicit for milestone/slice fallbacks and update memory guidance for dashboard build resolution
2026-04-16 16:05:12 -07:00
gsxdsm
8de7feeb13 feat(FN-1974): merge fusion/fn-1974 2026-04-16 15:55:14 -07:00
Fusion
3d3b3f90ac fix(FN-1966): use public skills search fallback for catalog fetches
- Route unauthenticated catalog requests to skills.sh /api/search with wildcard query support and normalized response mapping
- Keep authenticated v1 catalog fetch, but fall back to public search on 401/403 while preserving auth metadata
- Expand skills route tests for unauthenticated payload shape, query passthrough, and no-query wildcard behavior
- Stabilize onboarding reopen tests by awaiting Authentication section render before interaction
- Document dashboard dist build prerequisite for CLI test troubleshooting
2026-04-16 15:55:00 -07:00
Fusion
ca00e2990b docs(FN-1962): add engine package findings report
- Add comprehensive review report for packages/engine/src under .fusion/tasks/FN-1960/findings-engine.md
- Document 8 total findings across scheduler, runtime, heartbeat, concurrency, and executor lifecycle areas
- Capture prioritized remediation recommendations focused on listener teardown, semaphore hardening, and lock cleanup
2026-04-16 15:48:14 -07:00
Fusion
ae62fa7db4 feat(FN-1963): merge fusion/fn-1963 2026-04-16 15:07:10 -07:00
gsxdsm
1c09bfe1b8 feat(FN-1959): merge fusion/fn-1959 2026-04-16 14:40:11 -07:00
Fusion
910c5ab386 feat(FN-1892): merge fusion/fn-1892 2026-04-16 13:05:12 -07:00
Fusion
b085527b47 docs(FN-1916): add plugin UI slots section to memory.md 2026-04-16 10:12:16 -07:00
gsxdsm
b1eac88f13 feat(FN-1868): merge fusion/fn-1868 2026-04-16 09:53:06 -07:00
Fusion
6293984839 fix(FN-1909): reorder insights routes to prevent /runs being shadowed by /:id
- Reorder route definitions in insights-routes.ts to place /runs before /:id
- Fix bug where /runs endpoint was shadowed by the catch-all /:id parameterized route
- Add comprehensive regression tests for insights route ordering covering /runs, /stats, /agents, and dynamic ID matching
- Document route ordering pitfall in memory.md for future reference
2026-04-16 08:36:11 -07:00
Fusion
d6a0ac621c feat(FN-1822): add settings sync between mesh nodes
- Add settings sync options and logic to PeerExchangeService for bidirectional settings exchange
- Extend mesh/sync endpoint with push, pull, sync-status, and auth-sync operations
- Add comprehensive tests for settings sync in peer-exchange-service.test.ts
- Add mesh route tests for settings exchange endpoints in dashboard
- Update memory.md with settings sync documentation
2026-04-16 07:10:47 -07:00
Fusion
cb14f838d4 feat(FN-1806): add node proxy API routes for remote node data fetching
- Add proxy API routes for cross-node data fetching (tasks, agents, stats, health)
- Implement secure proxy endpoint with target validation and error handling
- Add comprehensive test suite covering proxy route functionality
- Update memory documentation with cross-node proxy implementation
2026-04-16 03:16:29 -07:00
Fusion
45b6b5cfad feat(FN-1776): expose AgentStore for SSE event forwarding with ephemeral agent filtering
- Expose getAgentStore from runtime and engine packages
- Add includeSystem filter to getOrgTree API endpoint
- Wire AgentStore into SSE endpoint for event forwarding
- Forward agent events through the SSE pipeline
- Exclude ephemeral agents from org tree API and UI
- Filter ephemeral agents in useAgents hook
- Update AgentsView test to expect includeSystem filter
- Document agent SSE event forwarding architecture
2026-04-16 01:44:54 -07:00
Fusion
c8a0876f45 feat(FN-1737): auto-delete child/task-worker agents and hide system agents by default
- Auto-delete spawned child agents when their parent task terminates (reportsTo cleanup)
- Auto-delete task-worker agents when their owned task completes
- Add includeSystem filter to AgentStore.list() and REST API
- Hide system agents by default on the agents page (show only user-facing agents)
- Wire includeSystem toggle through the API layer and AgentsView component
- Add changeset for @gsxdsm/fusion patch release
- Add comprehensive tests for agent cleanup and includeSystem filtering
2026-04-15 20:36:42 -07:00
gsxdsm
cff03f11a3 feat(FN-1675): merge fusion/fn-1675 2026-04-15 18:23:05 -07:00
Fusion
7ef3737378 feat(FN-1877): add auto-compaction on context window errors to promptWithFallback
- Detect context-window-limit errors from AI sessions and automatically compact
  the session conversation history before retrying (one attempt per session)
- Centralize auto-compaction in promptWithFallback (pi.ts) so executor, merger,
  and step-session-executor all benefit from the same mechanism
- Remove scattered context-limit error handling from executor.ts, merger.ts, and
  step-session-executor.ts in favor of the centralized approach
- Add comprehensive tests for auto-compaction retry behavior in pi.test.ts
- Remove unused compactSessionContext import from step-session-executor.ts
- Add memory note documenting the centralized auto-compaction design
2026-04-15 10:42:20 -07:00
gsxdsm
cfcefa5ce6 feat(FN-1759): merge fusion/fn-1759 2026-04-15 03:00:56 -07:00
Fusion
97528ee724 feat(FN-1756): add quality-gate inventory and rebaseline ESLint scope
- Add quality-gate-inventory.md documenting baseline verification artifacts
- Add before/after lint logs (pnpm-lint.before.log, pnpm-lint.after.log) as baseline comparison
- Add pnpm-test.before.log as test baseline artifact
- Update eslint.config.mjs with explicit context overrides to clean up linting scope
2026-04-15 01:31:41 -07:00
Fusion
123ec5949f feat(FN-1862): add completion state tracking for onboarding
- Add markOnboardingCompleted() to set completedAt timestamp when user finishes onboarding
- Add isOnboardingCompleted() to check if onboarding was completed (vs dismissed)
- Update ModelOnboardingModal to call markOnboardingCompleted on successful completion
- Skip onboarding auto-open when already completed locally
- Add completion state tracking tests in ModelOnboardingModal.test.tsx
- Add model-onboarding-state unit tests
- Update useAuthOnboarding to check local completion state before auto-opening
- Document localStorage completion state tracking pattern in .fusion/memory.md
2026-04-14 23:44:40 -07:00
gsxdsm
42e818ca1e feat(FN-1859): merge fusion/fn-1859 2026-04-14 21:31:04 -07:00
gsxdsm
d5603bd4a5 feat(FN-1839): merge fusion/fn-1839 2026-04-14 19:46:14 -07:00
gsxdsm
3745b3bcce feat(FN-1858): merge fusion/fn-1858 2026-04-14 19:00:56 -07:00
gsxdsm
2bd3045c58 feat(FN-1783): merge fusion/fn-1783 2026-04-14 13:45:02 -07:00
gsxdsm
f9352cb672 feat(FN-1833): merge fusion/fn-1833 2026-04-14 13:16:05 -07:00
gsxdsm
6ccbeb3e29 feat(FN-1795): merge fusion/fn-1795 2026-04-14 12:15:33 -07:00
gsxdsm
e692cb2dab feat(FN-1784): merge fusion/fn-1784 2026-04-14 11:58:51 -07:00
gsxdsm
efd8c85e92 feat(FN-1764): merge fusion/fn-1764 2026-04-14 11:29:16 -07:00
gsxdsm
3a7c13b710 feat(FN-1739): merge fusion/fn-1739 2026-04-14 10:29:21 -07:00
gsxdsm
67d0deb95d feat(FN-1734): merge fusion/fn-1734 2026-04-14 09:29:08 -07:00
gsxdsm
2d7da656e4 feat(FN-1513): track excluded skill paths and improve skill resolver diagnostics
- Add excludedSkillPaths to SkillSelectionResult to track skills disabled by - patterns
- Update createSkillsOverrideFromSelection to filter out excluded skills
- Produce warning diagnostics for disabled skills that exist but were excluded
- Add tests for excluded paths tracking and deterministic output order
- Update memory documentation with skill resolver diagnostics distinction
- Fix pi-create-kb-agent test to include excludedSkillPaths in selection mock
2026-04-14 08:56:06 -07:00
gsxdsm
13a3e1b933 feat(FN-1510): merge fusion/fn-1510 2026-04-14 08:13:53 -07:00
gsxdsm
4e9eb8b8a1 feat(FN-1771): add dashboard memory settings UX with backend selector and capability-aware editing
- Add /api/memory/backend endpoint returning current backend, capabilities, and available backends
- Create useMemoryBackendStatus hook with polling and frontend-friendly interface
- Add MemorySettingsSection to SettingsModal with backend selector dropdown
- Implement capability-aware UI: readonly backends disable save, fallback on unknown types
- Add comprehensive tests for API endpoints and hook behavior
- Update architecture docs with memory backend architecture section
2026-04-13 22:32:31 -07:00
gsxdsm
7c0d44e829 feat(FN-1631): merge fusion/fn-1631 2026-04-13 18:58:26 -07:00
gsxdsm
c63af6745c feat(FN-1518): merge fusion/fn-1518 2026-04-13 18:58:18 -07:00
gsxdsm
4e38c5f7de feat(FN-1719): rebuild eslint baseline and add memory lessons
- Rebuild eslint config with context-aware flat config for better TypeScript/JSX handling
- Add memory lessons for lint/type/test baseline restoration
- Skip pre-existing flaky stream test (flushes a final complete event)
- Fix api.ts require import path
- Add ProjectEngineManager.startReconciliation mock to tests for main compatibility
2026-04-13 18:21:31 -07:00
gsxdsm
bbc17b460e fix(triage): enforce per-project maxConcurrent limit on triage
The triage processor was only checking the global semaphore, not the
per-project maxConcurrent setting. Now it counts all active agents
(in-progress + specifying) and respects Math.min(perProjectAvailable,
semaphoreAvailable) before starting new triage tasks. This matches the
scheduler's concurrency enforcement and prevents triage from consuming
all available slots on startup.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 15:18:32 -07:00
gsxdsm
b8bf95cd98 chore: update fusion memory notes 2026-04-13 13:50:34 -07:00
gsxdsm
f3d365ecc0 feat(FN-1667): merge fusion/fn-1667 (auto-resolved)
- test(FN-1667): complete Step 4 — verify roadmap model
- feat(FN-1667): complete Step 3 — document roadmap model
- feat(FN-1667): complete Step 2 — add roadmap ordering helpers
- feat(FN-1667): complete Step 1 — define roadmap contracts
2026-04-13 08:57:48 -07:00