Commit Graph

124 Commits

Author SHA1 Message Date
Fusion
76961d41d3 feat(FN-2482): add severity filtering for dashboard logs
- Add severity filter controls to the dashboard log viewer and apply filtering to rendered entries
- Extend dashboard-tui log streaming command to support severity filtering in output
- Update and stabilize dashboard and settings modal tests covering filter behavior and loading readiness
- Document the severity filter usage in CLI reference and add a changeset for @runfusion/fusion
2026-04-24 13:29:48 -07:00
Fusion
ba9c0d7b2e fix(FN-2365): tokenize Git Manager light-theme surface styles
- Add semantic neutral surface tier tokens in root and light-theme blocks for subtle, muted, emphasis, and stronger hover states
- Replace Git Manager light-theme hardcoded neutral rgba backgrounds with surface tokens and token-based color-mix accent states
- Add dedicated Git Manager theme styling tests to guard token usage and prevent regressions to raw rgba values
- Expand status color/theme token tests and stabilize SettingsModal navigation selectors used by related test coverage
2026-04-24 12:57:24 -07:00
Fusion
1db45d5802 feat(FN-2451): enforce connected-first AI onboarding provider order
- Rework ModelOnboardingModal provider rendering to use a single curated ordering across OAuth, API key, and Claude CLI cards while excluding GitHub
- Prioritize already-connected providers first, then apply deterministic family/alias sorting so Claude CLI appears near the top and provider controls remain intact
- Add onboarding-flow regression tests that verify provider ordering and preserved per-provider interactions after reordering
- Update dashboard styling to use token-based onboarding error text class and adjust related tests for resilient async and accessible section targeting
2026-04-24 12:35:48 -07:00
Fusion
62cb15a4b8 feat(FN-2471): persist source issue provenance in task storage
- Add TaskSourceIssue contract and thread sourceIssue through Task, TaskCreateInput, archived task entries, and TaskStore serialization paths.
- Extend SQLite schema to v45 with sourceIssue* columns and add migration coverage for v44 upgrades plus legacy JSON migration import.
- Persist, update, clear, and archive/unarchive sourceIssue metadata in TaskStore with dedicated regression tests.
- Update core and dashboard tests to schema v45 expectations and stabilize flaky modal assertions with async waits.
2026-04-24 12:14:56 -07:00
Fusion
05bd69da68 fix(FN-2462): enforce frozen-lockfile bootstrap across workflows
- Update CI, version, and test-release workflows to use pnpm install --frozen-lockfile consistently.
- Align contributor and settings documentation plus worktree init examples toward deterministic frozen-lockfile bootstrap.
- Clarify TaskExecutor worktree init guidance to distinguish dependency bootstrap failures from missing workspace dist export failures.
- Refresh workflow, executor, restart, and SettingsModal tests (including stable Node Sync tab selection) to assert the new bootstrap contract.
2026-04-24 11:41:10 -07:00
Fusion
bafcbd6c39 feat(FN-2465): stabilize agent log handling and add OpenClaw adapter
- Make agent log ordering deterministic in core store and dev-server retrieval paths
- Stabilize AgentLogViewer row identity and hook ordering behavior to prevent regressions
- Add targeted tests for store ordering, useAgentLogs hook behavior, and AgentLogViewer rendering
- Introduce executable OpenClaw runtime adapter modules, types, and updated plugin packaging/docs
2026-04-24 11:35:55 -07:00
Fusion
e27d31bd47 feat(FN-2477): add executable OpenClaw runtime adapter
- Replace deferred OpenClaw placeholder runtime with an executable adapter that creates sessions, prompts with fallback, describes models, and disposes safely
- Add a dedicated pi-module seam and local runtime contract types to decouple plugin compilation from engine internals while preserving runtime behavior
- Update OpenClaw plugin metadata, manifest/package descriptions, and README to reflect active execution support instead of deferred status
- Harden dashboard DevServerStore save flow against ENOENT temp-directory races and add regression coverage for project-directory removal during save
2026-04-24 11:06:20 -07:00
Fusion
ab1e67452a docs(FN-2474): reconcile Hermes runtime README with current behavior
- Update README status and overview to reflect Hermes as an experimental placeholder runtime
- Document current runtime factory shape and explicit execute() not-implemented failure semantics
- Clarify runtime routing via runtimeConfig.runtimeHint and expected selection behavior
- Align source-of-truth manifest/runtime metadata and plugin test coverage sections
2026-04-24 10:52:15 -07:00
Fusion
81decfdccb feat(FN-2460): improve merge verification fix observability
- Stream in-merge fix-agent text and tool activity through AgentLogger hooks
- Log deterministic verification reruns with per-attempt context for fix loops
- Expand merger tests to cover fix-loop observability and rerun logging behavior
2026-04-24 10:25:37 -07:00
gsxdsm
b5bc145569 test(dashboard): drop redundant field-presence tests in SettingsModal
Each of these tests asserts only that a labeled form field exists in
a section. The consolidated "all settings fields are present across
all sections" test (line 497) covers the same space, and the
accompanying payload-roundtrip tests implicitly require the field to
be present before toggling it.

Dropped 7 presence-only tests:
- Recycle worktrees, Show quick chat button, Auto-completion mode
- Include task ID, Auto-resolve conflicts, Add author attribution
- Smart conflict resolution, groupOverlappingFiles type=checkbox

4,317 → 4,206 LOC (-111). 197 tests still passing.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 10:04:26 -07:00
Fusion
c990c115a3 test(dashboard): consolidate low-signal TaskDetailModal matrix tests
Collapse CSS-class presence checks and column-gate permutations into
table-driven variants. The rest of this file covers real user flows
(retry uniqueness FN-bug, paste/drag upload, plan approval, inline
editing, agent assignment, etc.) and was left intact.

- mobile responsive structure 6→1 (class-presence aggregate)
- Commits tab visibility 3→1 (it.each over done-task variants)
- Refinement button column gate 5→2 (it.each over columns)
- Workflow tab visibility 4→1 (it.each over data states)

5,676 → 5,433 LOC (-243). 190 tests still passing.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 10:03:57 -07:00
Fusion
8a723c86b5 fix(FN-2444): polish node dashboard UX and discovery core handling
- Update node management UI components to use shared form/button classes, semantic color tokens, and accessible interactions
- Refine mesh topology rendering and related dashboard tests for improved readability and behavior coverage
- Adjust discovery routes to reuse injected centralCore instances without unnecessary init/close cycles
- Add/extend tests for shared CentralCore discovery flows and model settings scope save behavior
2026-04-24 09:38:16 -07:00
Fusion
d5b56d0a36 feat(FN-2448): add Hermes runtime plugin to pnpm workspace
- Add plugins/fusion-plugin-hermes-runtime to pnpm-workspace package globs
- Register the Hermes runtime importer in pnpm-lock.yaml
- Capture workspace link to @fusion/plugin-sdk and dev toolchain dependencies for the new plugin
2026-04-24 08:55:02 -07:00
Fusion
f4d2a4bb58 fix(FN-2400): harden dashboard TUI log viewport budgeting
- Rework logs viewport calculation to budget by rendered rows and keep content above footer hints
- Add zero-row safety handling for short terminals with a dedicated expansion hint instead of overlapping output
- Cap wrapped log rendering by remaining row budget so long messages cannot overflow into footer space
- Add regression tests for footer-safe list windowing and wrapped-line truncation, plus a patch changeset for @runfusion/fusion
2026-04-24 08:55:02 -07:00
Fusion
6453fc771e feat(FN-2315): add hidden markdown toggle for project documents
- Extend dashboard file service and routes to support includeHidden when scanning markdown files
- Update API client, markdown hook, and Documents view UI to expose a hidden files toggle
- Add coverage for hidden-file filtering in file-service, hook, and DocumentsView tests
- Stabilize related SettingsModal and TaskForm tests and document toggle behavior in the dashboard README
2026-04-24 08:55:02 -07:00
Aron Prins
982145c080 test(FN-0000): drop flaky settings modal assertions 2026-04-24 15:21:04 +02:00
gsxdsm
9bf2981b22 feat(FN-2340): merge fusion/fn-2340 2026-04-23 23:02:38 -07:00
Fusion
d62bf8e24c feat(prompts): require lint alongside tests and typecheck in agent instructions
Every agent-facing quality gate that used to pair tests with typecheck now
also includes lint. Specifically:

- core/src/types.ts: QA Check skill prompt runs lint, tests, typecheck (was
  tests only) and gates task_done() on all three.
- core/src/agent-prompts.ts + engine/src/reviewer.ts: "Do NOT issue REVISE"
  exclusion list now covers lint as well, so out-of-scope fixes that
  restore lint remain allowed (matches the already-lint-aware completion
  gate text at the top of the same prompts).
- engine/src/executor.ts: task_done() pre-flight checklist adds an explicit
  "if the repo has a lint command, run it and fix failures" bullet, mirrors
  the typecheck bullet, and expands the CRITICAL line from "ALL test
  failures" to "ALL lint, test, and typecheck failures".
- core/src/store.ts: default Step 2 checklist (Testing & Verification) now
  includes Lint and Typecheck alongside "All tests pass".
- cli/src/commands/plugin-scaffold.ts: generated plugin README and the
  "Next steps" CLI output include \`pnpm lint\` between install and test.

Existing prompts that already paired lint with tests+typecheck (the
Completion section, hard quality gates, triage testing requirements) are
unchanged.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 23:02:37 -07:00
Fusion
216d2bb05d feat(FN-2235): align Settings Plugins UI with tokenized dashboard styles
- Replace remaining hardcoded spacing and transition values in plugin-related CSS with dashboard design tokens
- Refine plugin manager layout states by reusing shared settings empty-state styling and removing redundant local heading markup
- Show the project scope banner in the Plugins settings tab for consistency with other project-scoped sections
- Add PluginManager and SettingsModal test coverage for empty/loading class conventions, header structure, and scope banner rendering
2026-04-23 01:57:13 -07:00
Fusion
954fa1cd62 feat(FN-2222): move heartbeat multiplier control to Agents screen
- Add heartbeat multiplier global control UI to AgentsView with supporting behavior and tests
- Remove heartbeat multiplier field from Settings modal scheduling section and update related test coverage
- Add mobile-specific CSS adjustments for agent global controls and extend mobile view assertions
- Update docs to reflect the new heartbeat multiplier location in agents and settings references
2026-04-23 00:57:10 -07:00
Fusion
6886825898 fix(self-healing): recover merge when baseCommitSha was advanced past landed commit
findLandedTaskCommit only fell back to scanning all of HEAD on git-log
exceptions. When the bounded base..HEAD range is valid but empty — e.g.
the merger fast-forward-rebased the task branch and set baseCommitSha
to the new HEAD, or later commits moved HEAD past the merge — recovery
silently returned null and re-queued the merge even though the commit
had already landed. Add an empty-stdout fallback that re-scans HEAD,
with a regression test covering the FN-2221 scenario.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-22 23:34:18 -07:00
Fusion
4c08b1c32a fix(FN-2158): constrain settings modal sidebar overflow
- Make .settings-layout fill available space and allow shrinking with flex: 1 and min-height: 0
- Enable vertical scrolling on .settings-sidebar in desktop layout to prevent content clipping
- Add a SettingsModal regression test that loads styles.css and asserts desktop overflow/scroll computed styles
2026-04-19 20:48:13 -07:00
Fusion
a4ce10a1c5 feat(FN-2115): add heartbeat multiplier and agent interval controls
- Add heartbeatIntervalMultiplier to shared settings schema/types with settings parity coverage
- Apply heartbeat multiplier in engine scheduling logic while preserving explicit per-agent interval behavior
- Add Settings modal and Agents view controls for heartbeat multiplier and per-agent interval overrides, including new styling
- Expand dashboard and engine test coverage for multiplier/heartbeat controls and document the new setting
2026-04-19 10:13:34 -07:00
Fusion
3629dea3c2 feat(FN-2035): introduce PiExtensionsManager for settings UI parity
- Create a dedicated PiExtensionsManager component mirroring PluginManager interaction patterns
- Replace inline Pi extensions rendering in SettingsModal with the new manager component
- Add PiExtensionsManager styling in styles.css to match existing plugin manager layout and states
- Add component test coverage for PiExtensionsManager and update SettingsModal mocks/assertions
- Add a changeset for the pi-extensions UI parity release
2026-04-17 21:54:44 -07:00
gsxdsm
a054db8859 feat(FN-2018): merge fusion/fn-2018 2026-04-17 15:25:02 -07:00
gsxdsm
383033fcdc fix(FN-000): align qmd memory lifecycle 2026-04-17 09:41:05 -07:00
Fusion
28accdb085 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
20b01981b8 fix(FN-000): compact selected memory file 2026-04-17 08:55:50 -07:00
gsxdsm
f0415937d3 fix(FN-000): restore memory compaction and log pagination 2026-04-17 08:43:13 -07:00
gsxdsm
0f16bb78e9 fix(FN-000): add qmd install button 2026-04-17 08:23:26 -07:00
gsxdsm
75dc5a8c77 fix(FN-000): simplify qmd memory settings 2026-04-17 08:16:36 -07:00
gsxdsm
bdfb4842d2 fix(FN-000): rebuild layered memory system 2026-04-17 07:36:22 -07:00
gsxdsm
0f6dd7ed61 feat(FN-1996): merge fusion/fn-1996 2026-04-17 06:11:05 -07:00
Fusion
badd98fcdf fix(FN-1952): remove stale task artifacts 2026-04-16 22:38:50 -07:00
gsxdsm
48e79cd46d feat(FN-1952): move archived tasks to cold database 2026-04-16 19:49:07 -07:00
Fusion
74b4d20c45 feat(FN-1887): merge fusion/fn-1887 2026-04-16 10:58:19 -07:00
gsxdsm
a118333c7b feat(FN-1926): merge fusion/fn-1926 2026-04-16 10:23:07 -07:00
gsxdsm
30a178bb3f feat(FN-1827): merge fusion/fn-1827 2026-04-16 09:08:06 -07:00
gsxdsm
72842d8687 feat(FN-1808): merge fusion/fn-1808 2026-04-16 04:53:09 -07:00
Fusion
c0cf2e91f2 feat(FN-1741): add memory compaction feature
- Add MemoryCompaction service in core for compacting agent memory stores
- Add POST /api/memory/compact route handler in dashboard server
- Add compactMemory frontend API wrapper in dashboard app
- Add Compact Memory button to SettingsModal UI
- Add comprehensive tests for the compaction service and routes
2026-04-15 22:03:50 -07:00
Fusion
b2d982a894 feat(FN-1889): add executor project model UI to settings modal
- Add execution model selection dropdown to project settings modal
- Include execution lane in project model lanes filter for better context
- Add test coverage for execution model in project settings
- Include changeset for @gsxdsm/fusion package
2026-04-15 16:44:29 -07:00
Fusion
06874344ac fix(FN-1883): move useMemoryBackendStatus hook to component top level
- Move useMemoryBackendStatus hook call outside of sub-component scope
- Fixes hook being called conditionally which caused stale state
- Add 18 new tests for memory backend status rendering
- Ensures hook runs consistently on every SettingsModal render
2026-04-15 15:47:01 -07:00
gsxdsm
8d5b8cf3df feat(FN-1731): merge fusion/fn-1731 2026-04-15 05:00:56 -07:00
gsxdsm
4864b5edca feat(FN-1712): merge fusion/fn-1712 2026-04-15 04:15:57 -07:00
gsxdsm
513e6e650e feat(FN-1705): merge fusion/fn-1705 2026-04-14 22:00:56 -07:00
gsxdsm
8c0f6eadb4 feat(FN-1758): merge fusion/fn-1758 2026-04-14 19:45:56 -07:00
gsxdsm
37d177f18c feat(FN-1835): merge fusion/fn-1835 2026-04-14 13:45:19 -07:00
gsxdsm
051622ae08 feat(FN-1828): merge fusion/fn-1828 2026-04-14 13:30:02 -07:00
gsxdsm
dfb514f8ed fix(FN-1690): update test expectations for experimentalFeatures merge behavior
- Fix store.test.ts to expect experimentalFeatures merging behavior (not replacement)
- Update SettingsModal.test.tsx nav item count from 14 to 15 for Experimental Features section
- Note: RoadmapStore implementation was already merged to main via previous squash
2026-04-14 10:42:02 -07:00
gsxdsm
54befbe021 feat(FN-1724): merge fusion/fn-1724 2026-04-14 10:14:47 -07:00