Commit Graph

3945 Commits

Author SHA1 Message Date
Fusion
be03428e79 feat(FN-3308): fix CSS token consistency in settings and task detail modals
Fixes CSS token consistency issues in TaskDetailModal and SettingsModal, and updates the corresponding mobile overflow test to match the refactored styles.

Fusion-Task-Id: FN-3308
2026-05-04 14:05:27 -07:00
Fusion
64cec4a205 feat(FN-3294): document settings autosave behavior in agents.md
Merged step 5 of FN-3294, adding documentation for the settings autosave behavior to `docs/agents.md`. The change is documentation-only, updating the agents configuration reference with 2 additional lines.

Fusion-Task-Id: FN-3294
2026-05-04 13:54:07 -07:00
Fusion
eeab870857 feat(FN-3199): align memory insight docs with canonical paths
Updates three documentation files to align memory insight and plugin path references with their canonical locations.

Fusion-Task-Id: FN-3199
2026-05-04 13:43:22 -07:00
Fusion
1f2c9dd043 feat(FN-3378): complete cli-alias step 4 documentation and delivery
Merged the final step of FN-3378, delivering documentation and completion work for the cli-alias package, with the primary change to `packages/cli-alias/index.js` adding 19 lines and removing 12.

Fusion-Task-Id: FN-3378
2026-05-04 13:33:32 -07:00
Fusion
343d2710ac feat(FN-3365): pass workspace verification gates in board component
Fix FN-3365 completes Step 3 of workspace verification gates by making a minor adjustment to the Board component in the dashboard, likely correcting a validation or boundary condition that was previously failing.

Fusion-Task-Id: FN-3365
2026-05-04 13:31:25 -07:00
gsxdsm
54f2832691 fix(merger): restrict staging to allowlist and harden git invocations
Replaces blanket `git add -A` in `commitOrAmendMergeWithFixes` with an
explicit allowlist of (squash-staged ∪ fix-agent-modified) paths, so
unrelated dirty files in the project root no longer get swept into a
task's squash commit. The in-merge fix agent now snapshots the working
tree before/after its session to capture exactly which files it touched.

Hardens the git invocations the allowlist relies on:
- All `git add` and `git checkout --ours/--theirs` calls switched from
  shell-interpolated `execAsync` to `execFile` array form, eliminating
  path-injection surface and batching per-file spawns into one call.
- `snapshotDirtyFiles` adopts `git -z` NUL-delimited parsing so paths
  with embedded spaces or specials are handled correctly.
- Long allowlist debug logs are truncated to 20 entries with an overflow
  marker.

Refused-to-stage paths emit a warn naming each file so the user can
audit what was filtered.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 13:17:57 -07:00
Fusion
0536df748b feat(FN-3383): ship mobile org chart controls and verification updates
- Add mobile org chart pan/zoom controls in AgentsView with updated styling and interaction tests
- Normalize cli-alias global references for lint-safe runtime access
- Expand merger, research, and planning verification logic with stronger test coverage
- Add test-changed cache/concurrency behavior and stabilization documentation updates

Fusion-Task-Id: FN-3383
2026-05-04 13:17:57 -07:00
Fusion
df253a8eac feat(FN-3293): add stabilization docs to test audit report
Documentation for test stabilization was finalized by updating the test audit report with 2 additional lines.

Fusion-Task-Id: FN-3293
2026-05-04 13:17:57 -07:00
Fusion
73430354e1 docs(FN-3293): finalize stabilization audit documentation
- Add FN-3293 stabilization update section to docs/test-audit-report.md
- Document deterministic test hardening across CLI, dashboard, droid-cli, and core suites
- Update flaky hotspot notes to reflect resolved dashboard retry timeout coverage

Fusion-Task-Id: FN-3293
2026-05-04 13:17:57 -07:00
Fusion
d2e9423f75 feat(FN-3292): document research boundary contract
Documents the research boundary contract in the architecture docs and research hardening preflight guide, updating architecture documentation and adding a new boundary definition file.

Fusion-Task-Id: FN-3292
2026-05-04 13:17:57 -07:00
gsxdsm
8483a5ffae fix(dashboard): full-height settings modal on mobile + consistent section spacing
Pin the settings modal to 100dvh on mobile (overlay padding/inset reset, min-height enforced) and align section heading gutters with form-group items so each settings page has consistent horizontal spacing around headers and items.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 13:17:57 -07:00
Timothy Laurent
699d5c86d0 fix(ci): add build step to test shards, fix cli-alias lint
- Add `pnpm build` step to test-shards job so plugin dist/ and core
  packages are compiled before tests run (fixes plugin-loader test)
- Add cli-alias/index.js to ESLint node scripts pattern so Node globals
  (process, AbortController, fetch) are recognized

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-04 13:14:50 -07:00
gsxdsm
6919c8e24c Merge branch 'main' into fix/sqlite-corruption-wal-pragmas 2026-05-04 13:04:52 -07:00
Timothy Laurent
1dea08ebc4 fix(core): re-arm flush timer after retryable flush failure
When flushAgentLogBuffer() requeues valid entries on transient failure,
the timer was cleared but never re-armed, leaving entries in memory
indefinitely. Now schedules a retry after AGENT_LOG_FLUSH_MS.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-04 12:10:21 -07:00
Timothy Laurent
2800c3cd21 fix(core): add backlog cap for agent log buffer and close DB on init failure
Two fixes from CodeRabbit review:
- Add MAX_AGENT_LOG_BACKLOG cap (5000 entries) to prevent unbounded memory
  growth during prolonged SQLite outages. Oldest entries are dropped when
  cap is exceeded.
- Only assign this._db/this._archiveDb after init() succeeds. On failure,
  close the DB handle before throwing so callers never get a partially
  initialized instance.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-04 11:56:57 -07:00
Timothy Laurent
0cf1a68000 ci: trigger PR checks with plugin build step
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-04 11:51:07 -07:00
Timothy Laurent
d431ac34c8 merge main and fix CI: add plugin build step to pr-checks workflow
Merges origin/main to bring in the droid runtime plugin (needed by
plugin-loader test) and all recent changes. Adds a "Build plugins"
step to pr-checks.yml so plugin dist/ directories are compiled before
tests run — fixes ERR_MODULE_NOT_FOUND for hermes and droid plugins.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-04 11:41:37 -07:00
Fusion
7ae22a7ee5 feat(FN-3410): finalize planning verification and launcher updates
- Rework planning subtask descriptions and update planning logic/tests for clearer execution guidance
- Add launcher/update notice handling in cli-alias with package-config coverage and release script updates
- Refine agent detail and agents list UI/CSS for compressed mobile header behavior with updated dashboard tests
- Add changesets and related docs/readme touch-ups for release tracking
- Ref: runfusion/fusion#33
2026-05-04 10:56:30 -07:00
Fusion
d06475b056 feat(FN-3377): add llama.cpp provider integration with pi extension and mob
This merge adds a new llama.cpp local AI provider integration, including a `pi-llama-cpp` CLI extension package with model resolution and context retrieval, a `LlamaCppProviderCard` UI component for provider configuration, backend API routes for model registration and llama.cpp probe/health checking

Fusion-Task-Id: FN-3377
2026-05-04 10:44:38 -07:00
Fusion
ceea0387a7 feat(FN-3377): compress mobile agent detail header
- Rework AgentDetailView mobile header structure to reduce vertical space while preserving key metadata
- Simplify AgentsView mobile spacing and remove redundant styles tied to legacy header layout
- Update dashboard CSS class coverage tests for new agent detail/mobile header classes
- Expand AgentDetailView and AgentsView tests to validate condensed header rendering and interaction behavior

Fusion-Task-Id: FN-3377
2026-05-04 10:38:20 -07:00
Timothy Laurent
8dee02fbe9 fix(core): move liveTaskIds query inside transaction for atomicity
Addresses CodeRabbit TOCTOU concern: querying live task IDs inside the
transaction ensures the check and inserts are atomic under SQLite locking,
preventing FK violations from concurrent deletes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-04 10:33:11 -07:00
Fusion
d30f8a7a3b feat(FN-3286): remove duplicate PR creation success toast in TaskDetailModa
Fixes FN-3286 by removing a duplicate PR creation success toast notification from the task detail modal. The change is a single line deletion in `TaskDetailModal.tsx`.

Fusion-Task-Id: FN-3286
2026-05-04 10:31:32 -07:00
Timothy Laurent
3a71f133f9 ci: re-trigger PR checks 2026-05-04 10:22:05 -07:00
Fusion
1e73863ac6 feat(FN-3195): document llama.cpp provider setup and onboarding
Docs(FN-3195): adds llama.cpp provider setup and onboarding documentation to the main and dashboard READMEs.

Fusion-Task-Id: FN-3195
2026-05-04 10:18:38 -07:00
Fusion
43c2b29575 docs(FN-3195): document llama.cpp provider setup in onboarding docs
- Add llama.cpp HTTP server setup guidance to the root README authentication section
- Update dashboard settings docs to describe CLI/server-backed provider card behavior
- Clarify llama.cpp provider enablement flow alongside existing auth providers
2026-05-04 10:06:38 -07:00
gsxdsm
9c284750af chore(release): v0.18.1
Version bump via changesets.
2026-05-04 09:55:19 -07:00
gsxdsm
89401cd2c9 Add changeset 2026-05-04 09:54:43 -07:00
Fusion
2a4fba505e feat(FN-3379): refine heartbeat timestamps and dashboard mobile UI polish
- Remove seconds from heartbeat timestamp display and update architecture docs accordingly
- Align quick chat FAB and related component styles with shared theme tokens
- Adjust ConfirmDialog and file mention popup styling for mobile fullscreen behavior
- Update dashboard tests for AgentsView, ChatView, ConfirmDialog, and mobile CSS assertions

Fusion-Task-Id: FN-3379
2026-05-04 09:51:54 -07:00
Fusion
a6fdf3703c feat(FN-3266): address quick chat FAB CSS token consistency
Fixed QuickChatFAB styling to align with the design token system, replacing hardcoded CSS values with consistent token variables in the component's stylesheet.

Fusion-Task-Id: FN-3266
2026-05-04 09:51:54 -07:00
Fusion
276f1953a2 feat(FN-3374): update mobile fullscreen modal selector assertion
This merge updates a mobile fullscreen modal CSS selector assertion in the dashboard test suite, aligning it with a recent UI change to the modal structure.

Fusion-Task-Id: FN-3374
2026-05-04 09:51:54 -07:00
gsxdsm
5c9e5e7701 chore(release): v0.18.0
Version bump via changesets.
2026-05-04 09:21:08 -07:00
Fusion
9463d1c58e fix(FN-3376): close mobile agent detail when switching agent views
- Add a shared handleAgentViewChange callback to update view mode transitions
- Close the selected agent detail pane on mobile when switching between list, board, and org views
- Route all view-toggle buttons through the new handler for consistent behavior
- Add a regression test in AgentsView.test.tsx covering mobile org-chart view switch behavior

Fusion-Task-Id: FN-3376
2026-05-04 09:20:07 -07:00
Fusion
cba93d0924 feat(FN-3264): add droid plugin, improve agent detail view, and fix researc
This merge adds Agent Detail view improvements including model favoriting, wires in the droid bundled plugin, updates mobile split layout with proper safe-area padding, and adds research task-view persistence with associated test coverage across Header, MobileNavBar, App, and view state hooks.

Fusion-Task-Id: FN-3264
2026-05-04 09:20:07 -07:00
Fusion
ab69158284 feat(FN-3261): wire droid bundled plugin and improve agent detail view
Merged four step commits bringing AgentDetailView improvements with model favoritism UI, bundled plugin install wiring for the droid runtime, aligned documentation between settings reference and the plugin README, plus mobile layout refinements with safe-area padding test updates.

Fusion-Task-Id: FN-3261
2026-05-04 09:20:07 -07:00
Fusion
ab61b77e2b feat(FN-3306): add research recovery, CI shards, agent detail model favorit
Merges FN-3306 agent detail favorites wiring and test coverage, FN-3244 mobile FAB drag path hardening, FN-3303 mobile split layout updates, FN-3366 CI shard contract documentation with a new `scripts/ci-test-shard.mjs`, and FN-3014 research recovery semantics — plus expanded research extension tool

Fusion-Task-Id: FN-3306
2026-05-04 09:20:07 -07:00
Fusion
d3f82b176a feat(FN-3303): update mobile split layout and safe-area padding assertions
Updated mobile CSS test assertions in AgentsView to account for split layout behavior and safe-area padding changes.

Fusion-Task-Id: FN-3303
2026-05-04 09:20:07 -07:00
Fusion
7cd7872e5a feat(FN-3366): document CI shard contract in contributing guide
Documentation update to `docs/contributing.md` adding details on the CI shard contract (FN-3366 Step 3).

Fusion-Task-Id: FN-3366
2026-05-04 09:20:07 -07:00
Fusion
c7b9afcdd0 feat(FN-3244): harden mobile FAB drag path and touch detection
Merges FN-3244's three-step hardening of the mobile FAB drag path, adding regression tests and finalizing TypeScript typing. Includes FN-3296's tokenized typography for agent health reasons, FN-3014's documented recovery semantics for the research system, and related CLI/dashboard work that improves

Fusion-Task-Id: FN-3244
2026-05-04 09:20:07 -07:00
Fusion
0237607d81 feat(FN-3014): document research recovery semantics
Documents research recovery semantics in the CLI reference and settings reference, adding 9 lines of documentation across both files.

Fusion-Task-Id: FN-3014
2026-05-04 09:20:07 -07:00
Fusion
17b11c533b feat(FN-3296): tokenize health reason typography in agent detail
Fixed health reason display in the Agent Detail view by tokenizing its typography to align with the design system's font token standards, updating the component's CSS and TypeScript files.

Fusion-Task-Id: FN-3296
2026-05-04 09:20:07 -07:00
Fusion
f69e8b7de9 feat(FN-3270): remove task detail status color fallbacks
Removed fallback logic for task status colors in TaskDetailModal, simplifying the component by relying on proper CSS token fallbacks instead of inline JavaScript defaults.

Fusion-Task-Id: FN-3270
2026-05-04 09:20:07 -07:00
Fusion
07cdf80317 feat(FN-3196): sort done column by recency, add collapsible agent error dis
This merge consolidates several improvements across the dashboard, engine, and CLI: mobile nav now extends into iOS safe area, done columns sort by recency with merge-active state preserved, agent views gain collapsible error displays, per-project HeartbeatMonitor isolation is fixed for multi-projec

Fusion-Task-Id: FN-3196
2026-05-04 09:20:07 -07:00
Fusion
c4363f1a4f feat(FN-3342): add collapsible agent error UI and related runtime fixes
- Add a collapsible agent error display in agent views, including modal integration, styling updates, and larger touch targets for action controls
- Expand dashboard test coverage for agent error rendering/collapse behavior plus board/list/task card sorting and merge-active state regressions
- Fix skill name/path resolution and align Fusion two-segment skill naming with bare pi-coding-agent skill names
- Harden runtime and route behavior across engine/dashboard/droid flows with added regression and e2e test coverage

Fusion-Task-Id: FN-3342
2026-05-04 07:26:11 -07:00
gsxdsm
c00b018230 fix(dashboard): extend mobile nav bar surface into iOS safe area
Icons in the installed PWA were overlapped by the iOS home indicator and a
body-colored gap appeared between the nav bar and the executor status bar
(whose `bottom` already includes safe-area-inset-bottom + standalone-bottom-gap).
Adding matching `padding-bottom` to `.mobile-nav-bar` lifts icons above the
indicator and closes the gap.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 07:25:14 -07:00
Fusion
3b1435f6b9 feat(FN-3074): sort done column by recency, preserve merge-active state, ad
This merge adds done-column sorting by most recent completion while preserving merge-active state on verification bounces, introduces a comprehensive droid runtime regression test suite covering engine delegation, auth routes, and model routing, hardens the CLI native bundle externalization, and fix

Fusion-Task-Id: FN-3074
2026-05-04 07:25:14 -07:00
gsxdsm
fadfb18107 Merge pull request #29 from HarryCordewener/fix/skill-discovery-path-doubling-and-matching
fix: skill discovery path doubling and pattern/name matching
2026-05-04 07:18:30 -07:00
gsxdsm
6450dfc66d Merge pull request #32 from timothyjlaurent/timothyjlaurent/Nautilus
fix(FN-31): resolve per-project HeartbeatMonitor in multi-project setups
2026-05-04 07:15:35 -07:00
gsxdsm
42ccd3e033 Update packages/dashboard/src/skills-adapter.ts
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-05-04 07:14:37 -07:00
gsxdsm
e83d41b2b4 chore: fix eslint warnings
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 07:08:01 -07:00
Fusion
027569576e feat(FN-3364): sort done tasks by most recent completion
- Sort Done column and list views by most recent completion timestamp to keep recent work visible first
- Update dashboard and task management docs to document done-column recency ordering behavior
- Preserve merge-active task state across verification bounce paths and board/list rendering updates
- Forward removeDependencyReferences in deleteTask flows and treat finish_reason=repeat as a soft-stop in engine executor

Fusion-Task-Id: FN-3364
2026-05-04 07:05:16 -07:00