Commit Graph

1046 Commits

Author SHA1 Message Date
gsxdsm
84ed843131 feat(FN-2123): merge fusion/fn-2123 2026-04-19 10:13:34 -07:00
gsxdsm
85be92f294 feat(FN-2135): merge fusion/fn-2135 2026-04-19 10:13:34 -07:00
Fusion
fc723ce1ba test(FN-2122): isolate HOME for core and CLI vitest runs
- Add test setup files in core and CLI that override HOME to a per-worker temp directory
- Wire the new isolation setup into core and CLI vitest setupFiles before existing test bootstrap
- Add a core canary test to verify HOME, homedir(), and defaultGlobalDir() resolve under isolated temp paths
- Document how global HOME isolation complements per-fixture isolation in test-project utilities
2026-04-19 10:13:34 -07:00
Fusion
bade52f5bc feat(FN-2121): introduce structured logging in plugin loader
- Add a reusable createLogger utility in @fusion/core for prefixed log/warn/error output
- Replace plugin-loader console logging with structured logger calls across load, reload, stop, and hook paths
- Route plugin-scoped logger methods through createLogger, including debug gating on DEBUG=plugins
- Add regression tests that mock logger.js and verify key structured log emissions and error logging flows
2026-04-19 10:13:34 -07:00
gsxdsm
bbc0ce89be feat(FN-2119): merge fusion/fn-2119 2026-04-19 10:13:34 -07:00
Fusion
e0f6647d11 feat(FN-2118): merge fusion/fn-2118 2026-04-19 10:13:33 -07:00
gsxdsm
97eb3c2c8b feat(FN-2112): merge fusion/fn-2112 2026-04-19 10:13:33 -07:00
Fusion
5f89c64194 feat(FN-2102): merge fusion/fn-2102 2026-04-19 10:13:33 -07:00
Fusion
58bb0d41b7 fix(FN-2098): align no-task heartbeat guidance and stabilize flaky tests
- Update HEARTBEAT_NO_TASK_SYSTEM_PROMPT copy to emphasize inbox, memory, delegation, and heartbeat_done usage
- Expand heartbeat monitor tests to assert no-task prompt/tool alignment and preserve task-scoped prompt behavior
- Harden first-run and App view tests by using a safe cwd fallback and more robust async UI waits
- Add best-effort dashboard performance reporting hooks in App and useProjects via a new reportDashboardPerf API helper
2026-04-19 10:13:33 -07:00
Fusion
7cb9fd61ba Remove dashboard-load timing instrumentation
The perf logs were temporary diagnostics used to identify that slow
reloads were caused by a registered remote node timing out in
/projects/across-nodes. Root cause is resolved and the short-circuit
for zero-remote setups (already committed in 7ea60382a) remains.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-19 10:13:33 -07:00
Fusion
f528b379c3 feat(FN-2089): merge fusion/fn-2089 2026-04-19 01:03:36 -07:00
gsxdsm
a2d0711c33 fix(teardown): improve cleanup logic to avoid shared directory deletion 2026-04-19 01:03:36 -07:00
gsxdsm
1cbf9e1015 test: enforce test-directory isolation across all packages
Introduce a shared test-utils module and global vitest setup that
guarantee tests never write to the real .fusion directory or leak temp
directories under /tmp.

Infrastructure:
- packages/core/src/__test-utils__/workspace.ts — tempWorkspace(),
  useIsolatedCwd(), trackForCleanup(), assertOutsideRealFusion() with
  auto-cleanup in afterEach.
- packages/core/src/__test-utils__/vitest-setup.ts — per-worker guard:
  chdirs each worker into an isolated tmp dir, wraps process.chdir to
  refuse the real .fusion, scopes tmp dirs under fusion-test-workers/
  (skips cwd change in thread-pool workers where chdir isn't supported).
- packages/core/src/__test-utils__/vitest-teardown.ts — globalSetup
  hook that wipes the shared parent even when workers are SIGKILLed.
- scripts/check-test-isolation.mjs + `test:isolated` / `test:check-
  isolation` scripts for CI.
- @fusion/test-utils alias + setupFiles + globalSetup wired into core,
  cli, engine, dashboard, tui vitest configs; matching tsconfig paths.

Test refactors (no behavior change):
- cli provider-settings, auth-paths, provider-auth — switch leaking
  mkdtempSync calls to tempWorkspace().
- core migration, first-run, store-backward-compat — replace manual
  process.chdir save/restore with useIsolatedCwd().
- tui fusion-context — replace 9 hardcoded tmp paths (collision-prone
  under parallelism) with tempWorkspace().
- dashboard useTheme, FileBrowser, TaskCard — resolve source-file reads
  against a PACKAGE_ROOT computed from import.meta.url instead of cwd,
  so tests don't depend on the process working directory.

Verified: full suite (~15,500 tests across 8 packages + plugins) passes
and the orphan-detector reports zero leaked temp directories after a
complete run.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-18 23:41:47 -07:00
Fusion
049f356f88 feat(FN-2087): finalize canonical memory path migration
- Remove legacy .fusion/memory.md fallback references and normalize prompts/docs to .fusion/memory/MEMORY.md
- Stop legacy mirror writes and fallback reads in core memory backend and project memory flows
- Update engine worktree boundary checks and tests for canonical memory file handling
- Align dashboard memory/settings surfaces and route tests with canonical memory behavior
- Add model-favorites persistence test coverage for mission interview and new agent dialogs
2026-04-18 22:47:17 -07:00
Fusion
fce07dacbc feat(FN-2101): merge fusion/fn-2101 2026-04-18 22:09:32 -07:00
Fusion
53cad3ba9d fix(FN-2078): adopt canonical .fusion/memory paths
- Update core and engine prompt text to reference .fusion/memory/ with MEMORY.md and daily-note guidance
- Allow worktree tool boundary access to .fusion/memory/ files while preserving legacy .fusion/memory.md compatibility
- Revise memory compaction/insight extraction messaging and related type/docs comments to use canonical memory paths
- Refresh dashboard and test expectations across core/engine/dashboard/docs for the new memory path wording
2026-04-18 22:02:46 -07:00
Fusion
6d82880da5 fix(FN-2116): restore agent run logs 2026-04-18 20:56:12 -07:00
gsxdsm
93b97cd786 fix(FN-2116): restore agent run logs 2026-04-18 17:59:42 -07:00
gsxdsm
5a831a67bc fix(FN-2116): use sqlite-backed agent storage 2026-04-18 17:25:17 -07:00
Fusion
7affac3d4b fix(FN-2055): harden node test utilities and import resolution
- Convert seed-sample-nodes into a test-only helper and remove direct execution against the real central database
- Replace private-looking host examples with RFC 5737 test-net addresses in node connection docs and ConnectNodeModal expectations
- Add Vitest aliases for @fusion/core and @fusion/engine to stabilize cross-package test imports
- Load AgentReflectionService via local engine source path in in-process runtime to avoid alias resolution failures
2026-04-18 12:21:14 -07:00
Fusion
c4379d1330 fix(FN-2053): enforce mission status consistency from feature state
- Recompute slice status when adding a feature so stale "complete" slices cascade back to milestone and mission statuses
- Require checkMissionCompletion to verify every feature is done before marking a mission complete
- Add mission-wide status-chain recomputation when stale complete slices or milestones are detected during reconciliation
- Expand core and engine tests to cover addFeature downgrades, stale complete states, and feature-level completion checks
2026-04-18 10:41:34 -07:00
gsxdsm
9ac44b4892 feat(FN-2051): merge fusion/fn-2051 2026-04-18 10:28:16 -07:00
Fusion
430f7cf39d feat(FN-1975): stream chat session updates through SSE
- Emit chat:session:updated from ChatStore when message deletion mutates a session and cover deleteMessage false returns
- Pass ChatStore into SSE setup and forward chat session update events to connected clients
- Update useChat to consume SSE updates in real time with safer EnrichedChatSession typing
- Add core and dashboard tests for chat-store emissions, SSE forwarding, route wiring, and hook behavior
2026-04-18 00:44:27 -07:00
gsxdsm
074868dd59 feat: auto-revive in-review tasks with failed pre-merge workflow steps
Adds a SelfHealingManager scan that finds tasks parked in in-review with
a failed pre-merge workflow step and no active session, and sends them
back through the existing sendTaskBackForFix flow (PROMPT.md injection,
step reset, todo → in-progress). Bounded by a new maxPostReviewFixes
setting (default 1) and a per-task postReviewFixCount so a persistently-
failing verifier cannot ping-pong a task indefinitely.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-17 23:28:32 -07:00
Fusion
437de996a5 feat(FN-1978): rename schedule actions to Automation and polish mobile layout
- Rename Schedules/Scheduled Tasks labels to Automation in header and mobile navigation actions
- Update desktop, tablet, and mobile header tests to assert the new Automation wording and behavior
- Improve mobile schedule and routine modal spacing with token-based padding/margin updates for cards, forms, and empty states
- Refresh the UX audit report to reference the Automation label in the header control inventory
2026-04-17 16:36:15 -07:00
gsxdsm
24513716e4 feat(FN-2018): merge fusion/fn-2018 2026-04-17 15:25:02 -07:00
gsxdsm
759075bdb0 feat(FN-2012): merge fusion/fn-2012 2026-04-17 15:24:46 -07:00
Fusion
2b647301fd feat(FN-2023): merge fusion/fn-2023 2026-04-17 15:16:21 -07:00
Fusion
d4391272bb perf(FN-2005): add getSettingsByScopeFast() to avoid listWorkflowSteps() 2026-04-17 14:24:32 -07:00
gsxdsm
6f12375725 feat(FN-1982): merge fusion/fn-1982 2026-04-17 14:09:37 -07:00
gsxdsm
23c38c20b9 fix(FN-000): skip qmd index mutations in test runs
Why: tests were leaking ~700 per-temp-dir collection registrations
into the user's global ~/.config/qmd/index.yml because searchWithQmd
and the agent-memory qmd path called execFile("qmd", ...) with the
real binary, bypassing shouldSkipBackgroundQmdRefresh() which only
guarded the schedule* wrappers.

Guard both direct-execFile paths under the same skip flag and fall
back to file-based agent memory search when skipping.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-17 13:54:28 -07:00
gsxdsm
f35ea101c1 fix(FN-1572): stabilize fusion agent execution 2026-04-17 12:13:39 -07:00
gsxdsm
9bcefcb3a9 fix(FN-000): process agent memory dreams 2026-04-17 10:03:46 -07:00
gsxdsm
2a981fc4d1 fix(FN-000): align qmd memory lifecycle 2026-04-17 09:41:05 -07:00
Fusion
9baa29fd08 feat(FN-2000): add memory auto-summarize settings and automation sync
- Add Memory section controls for enabling auto-summarize with threshold and cron schedule inputs
- Wire ProjectEngine to sync auto-summarize automation on startup and when related settings change
- Reuse a single startup settings snapshot when syncing insight extraction and auto-summarize automations
- Add SettingsModal and ProjectEngine tests covering auto-summarize UI persistence and automation re-sync behavior
2026-04-17 09:16:08 -07:00
gsxdsm
9b42551bac fix(FN-000): compact selected memory file 2026-04-17 08:55:50 -07:00
gsxdsm
2956998eb5 fix(FN-000): restore memory compaction and log pagination 2026-04-17 08:43:13 -07:00
gsxdsm
2425b6b6bb fix(FN-000): scope qmd memory search to project 2026-04-17 08:29:50 -07:00
gsxdsm
39cbfaba02 fix(FN-000): simplify qmd memory settings 2026-04-17 08:16:36 -07:00
gsxdsm
985b8a4eb5 fix(FN-000): rebuild layered memory system 2026-04-17 07:36:22 -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
Fusion
db611765e4 feat(FN-1569): add mission validation telemetry APIs and UI
- Emit fix-feature mission events and forward validator telemetry through mission execution
- Add core and dashboard API types plus a validation telemetry route in mission-routes
- Update SSE mission event handling so validation telemetry updates stream reliably to clients
- Add telemetry surfaces in MissionManager with corresponding mission-specific UI styling
- Expand MissionManager and mission e2e test coverage for validation telemetry flows
2026-04-16 23:33:05 -07:00
gsxdsm
bab9761591 fix(FN-1952): recover routines schedules merge 2026-04-16 23:07:40 -07:00
Fusion
2a1a0177f4 fix(FN-1952): remove stale task artifacts 2026-04-16 22:38:50 -07:00
gsxdsm
8df18fab2b fix(FN-1952): restore pi auth and extension loading 2026-04-16 21:42:16 -07:00
gsxdsm
00918dcff2 fix(FN-1952): preserve explicit non-cleanup archive 2026-04-16 19:56:28 -07:00
gsxdsm
e2560981fe feat(FN-1952): move archived tasks to cold database 2026-04-16 19:49:07 -07:00
gsxdsm
4a576c028c fix(FN-1952): bound recovery and task log growth 2026-04-16 19:32:35 -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
1c09bfe1b8 feat(FN-1959): merge fusion/fn-1959 2026-04-16 14:40:11 -07:00