Commit Graph

5135 Commits

Author SHA1 Message Date
Fusion
f6a1862f93 feat(FN-3953): wire agent provisioning approval policy into engine tools
Merged agent provisioning approval policies into the engine with guard controls that restrict which agents can be created and by whom, integrated through the CLI extension and core policy definitions.

Fusion-Task-Id: FN-3953
2026-05-10 15:34:58 -07:00
Fusion
aa031ab601 feat(FN-3763): add cli printing press wizard plugin
Implements a new `fusion-plugin-cli-printing-press` plugin with a multi-step wizard UI for authoring CLI commands, including draft storage, route registration, and validation — plus integration wiring in the dashboard's plugin view registry. Includes TypeScript build and ESM import fixes for the plu

Fusion-Task-Id: FN-3763
2026-05-10 15:34:09 -07:00
Fusion
6871c510a4 feat(FN-3953): enable tracking issue creation on task edit and document the
Implements GitHub tracking issue creation on PATCH operations for FN-3953, with accompanying test coverage and documentation updates for edit-time tracking.

Fusion-Task-Id: FN-3953
2026-05-10 15:34:09 -07:00
Fusion
6c7bd76839 feat(FN-3952): expose full mesh state aggregation and fix graph selection b
Exposed full mesh state aggregation via mesh routes with corresponding tests, refined the dependency graph to decouple node selection from opening task details, and documented the new aggregation API.

Fusion-Task-Id: FN-3952
2026-05-10 15:34:09 -07:00
Fusion
05fe4208a7 feat(FN-3932): add orphaned finalize-reset autostash safeguard in merger
The merger gains a safeguard that automatically stashes work when a finalize-reset leaves orphaned records, preventing merge-state corruption. Core exports the new orphan record type, project-engine wires the safeguard, and documentation traces the provenance flow; tests were added for the recovery

Fusion-Task-Id: FN-3932
2026-05-10 15:34:09 -07:00
Fusion
63fe25e014 feat(FN-3787): add approval workflow and share blocks to reports plugin
Added an approval workflow to the reports plugin comprising a state machine (`approval.ts`), share blocks logic (`share-blocks.ts`), API routes for approvals, and two new dashboard panels (ReportApprovalPanel and ShareBlocksPanel), with corresponding tests; also updated the plugin README and added a

Fusion-Task-Id: FN-3787
2026-05-10 15:34:09 -07:00
Fusion
1209e6b452 feat(FN-3946): add heartbeat scope guidance to agent-heartbeat
Adds heartbeat scope guidance to the agent-heartbeat module with corresponding tests, helping agents understand when and how to scope their heartbeat work.

Fusion-Task-Id: FN-3946
2026-05-10 15:34:09 -07:00
Fusion
2d74a34a36 feat(FN-3945): add regression test for bottom snap open transition
Adds a regression test covering the QuickChatFAB open-transition bottom snap behavior.

Fusion-Task-Id: FN-3945
2026-05-10 15:34:09 -07:00
Fusion
a97c09cfa8 fix(FN-3944): reconcile dependency-graph focus-visible merge
- Resolve rebase conflict under smart-prefer-main by keeping main-authoritative deletions
- Preserve existing ChatView mobile keyboard parity coverage already present on main
- Keep dependency graph focus-visible styling aligned with main without reintroducing removed outline rule
2026-05-10 15:34:09 -07:00
Fusion
e8f0d7337a feat(FN-3453): fix tablet layout and viewport regression in reports
Fixes a tablet layout and viewport regression in the Reports view, updating the corresponding test to cover the corrected behavior.

Fusion-Task-Id: FN-3453
2026-05-10 15:34:09 -07:00
Fusion
0cdc291f44 feat(FN-3950): reuse keyboard-aware room thread container (+3 more)
Commits merged:
- fix(FN-3950): replace graph task rgba highlights with color tokens
- test(FN-3950): add room mobile keyboard anchoring regression coverage
- fix(FN-3950): enable mobile keyboard tracking for room threads
- feat(FN-3950): complete Step 1 — reuse keyboard-aware room thread container

Files changed:
docs/dashboard-guide.md                            |  1 +
 packages/dashboard/app/components/ChatView.tsx     | 11 ++-
 .../components/__tests__/ChatView.rooms.test.tsx   | 88 +++++++++++++++++++++-
 3 files changed, 93 insertions(+), 7 deletions(-)

Fusion-Task-Id: FN-3950
2026-05-10 15:33:25 -07:00
Fusion
98ac0b200c feat(FN-3912): fix dependency graph focus and apply tokenized styling feedb
Bug fix addressing dependency graph focus behavior and CSS tokenization feedback, alongside test coverage for CLI bundle output and bundled plugin installation paths. The styling changes affect `DependencyGraph` and `GraphTaskNode` components, while tests validate the published CLI artifact.

Fusion-Task-Id: FN-3912
2026-05-10 15:33:25 -07:00
gsxdsm
fa8b42cc86 fix(FN-3947): strip forwarded vitest silent flags 2026-05-10 15:33:25 -07:00
Fusion
bd26b24076 chore(FN-3813): add changeset for room-based chat feature
- Add a changeset entry for the upcoming room-based chat feature
- Mark @runfusion/fusion for a minor version bump
- Document the feature summary for release notes generation

Fusion-Task-Id: FN-3813
2026-05-10 15:33:25 -07:00
Fusion
25da93ce0c feat(FN-3947): move github tracking section to bottom of task form
Moved the GitHub tracking section to the bottom of the task form and locked its field order, with supporting tests covering the new placement in both NewTaskModal and TaskForm components, plus documentation updates for the new form layout.

Fusion-Task-Id: FN-3947
2026-05-10 15:33:25 -07:00
Fusion
4535db5419 feat(FN-3786): add reports dashboard view and comparison tooling
Adds a Reports dashboard view (`ReportsView`) to the reports plugin with a full supporting stack of components (`ReportComparisonDrawer`, `ReportDetailPanel`, `ReportFiltersBar`, `ReportListItem`, `ReportEmptyState`), hooks (`useReports`, `useReportPreview`, `useReportSectionDiff`, `useViewportMode`

Fusion-Task-Id: FN-3786
2026-05-10 15:33:25 -07:00
Fusion
2fa4ba940a feat(FN-3633): document plugin trust policy feature
Adds plugin trust policy documentation across the CLI reference, settings reference, and a new plugin authoring guide, along with a patch-level changeset for `@runfusion/fusion`.

Fusion-Task-Id: FN-3633
2026-05-10 15:33:25 -07:00
Fusion
337e287ced feat(FN-3943): align tracking resolution to honor task-level override seman
Aligned GitHub tracking resolution to resolve task-level overrides, with regression tests covering the create-flow path and documentation of the override semantics.

Fusion-Task-Id: FN-3943
2026-05-10 15:33:25 -07:00
Fusion
c238712a3f feat(FN-3946): add chat stream reattach recovery after tab suspension
Implements Step 1 of reattaching a regular chat stream when the browser tab resumes from a hidden/suspended state, with tests covering the recovery path and documentation added to the dashboard guide.

Fusion-Task-Id: FN-3946
2026-05-10 15:33:25 -07:00
Fusion
bad0e1844e 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
e2bd5000cf feat(FN-3941): separate graph pan from selection-gated drag
Separates graph panning from selection-gated drag by updating `useNodeDrag` and `useGraphInteraction` hooks to handle the two interaction modes independently, with `GraphTaskNode` now gating drag on selection state. Tests were added across the graph interaction, node drag, persistence, and integrati

Fusion-Task-Id: FN-3941
2026-05-10 15:33:25 -07:00
Fusion
b046d70730 feat(FN-3940): expose github tracking controls in task detail modal
Adds GitHub tracking controls to the TaskDetailModal with corresponding test coverage, and documents the feature in the dashboard guide and task management docs.

Fusion-Task-Id: FN-3940
2026-05-10 15:33:25 -07:00
Fusion
6b55b26195 feat(FN-3811): add room mention popup to dashboard architecture docs and te
Added documentation for the room mention feature in the architecture docs and a changeset, alongside hardened tests for the `AgentMentionPopup` room variant.

Fusion-Task-Id: FN-3811
2026-05-10 15:33:25 -07:00
Fusion
ff4e7cad78 feat(FN-3937): document architecture recovery layers and lifecycle alignmen
Added documentation for Fusion's architecture recovery layers (deadlock self-healing, paused-aware in-review filtering) and aligned lifecycle docs, with a new test validating that the self-healing docs stay in sync with the source code.

Fusion-Task-Id: FN-3937
2026-05-10 15:33:25 -07:00
Fusion
c5dd9556cd feat(FN-3934): add restart recovery coordinator
Adds a new restart recovery coordinator (FN-3934) to manage task recovery on agent restart, including the core coordinator class, tests, and integration into the in-process runtime; also documents the coordinator in AGENTS.md.

Fusion-Task-Id: FN-3934
2026-05-10 15:33:25 -07:00
Fusion
ab85b99bef feat(FN-3933): coordinate temp dir cleanup to harden testing suite isolatio
Documents and tests a temp directory isolation fix in the core test suite, coordinating cleanup to prevent cross-test contamination.

Fusion-Task-Id: FN-3933
2026-05-10 15:33:25 -07:00
Fusion
b9cceb4f0f feat(FN-3931): recover triage planning model session keys in triage engine
The merge fixes triage planning model session key recovery in the engine, enabling the triage agent to properly use default model keys when resuming planning sessions. Tests were added to `triage.test.ts` to assert the correct behavior.

Fusion-Task-Id: FN-3931
2026-05-10 15:33:25 -07:00
Fusion
140d5b97a5 feat(FN-3928): clear room composer after send
Completes the room composer clear-on-send behavior in `ChatView` with regression tests covering the reset flow, plus documentation updates for parity.

Fusion-Task-Id: FN-3928
2026-05-10 15:33:25 -07:00
Fusion
d0a2d90182 feat(FN-3785): add standalone HTML rendering and export routes for reports
Adds a complete HTML rendering and export pipeline to the fusion-plugin-reports plugin, including a standalone HTML renderer with template and stylesheet support, new export routes (`/api/reports/:id/export/html`) that persist rendered HTML to the store, and plugin-type support for non-JSON route re

Fusion-Task-Id: FN-3785
2026-05-10 15:33:24 -07:00
Fusion
4b54a7ddbc feat(FN-3938): add integration tests for droid-cli extension entrypoint
Adds integration test coverage for the droid-cli extension entrypoint, with a minor README refresh.

Fusion-Task-Id: FN-3938
2026-05-10 15:33:24 -07:00
Fusion
b31d79943b feat(FN-3923): restore details affordance in AgentsView for compact mobile
Restores visible details affordance in AgentsView with test coverage for compact mobile viewports. The change touches the AgentsView component and its test file, ensuring the affordance displays correctly across different screen sizes.

Fusion-Task-Id: FN-3923
2026-05-10 15:33:24 -07:00
Fusion
f6f7d3f031 feat(FN-3927): persist and restore durable chat recovery state
- Persist in-flight chat generation snapshots in core chat store types and DB plumbing
- Restore durable recovery state through dashboard chat manager and chat hooks on reload
- Add coverage for chat store persistence and chat/useQuickChat recovery behavior
- Document durable chat recovery architecture and dashboard behavior

Fusion-Task-Id: FN-3927
2026-05-10 15:33:24 -07:00
Fusion
eb148124ba feat(FN-3857): auto-recover merge deadlocks by recovering already merged ca
Adds auto-recovery for merge deadlocks when candidates have already been merged on main (FN-3857), including tests, documentation updates in AGENTS.md, and a patch changeset for the `@runfusion/fusion` package.

Fusion-Task-Id: FN-3857
2026-05-10 15:33:24 -07:00
Fusion
981c976efe feat(FN-3776): merge fusion/fn-3776
Commits merged:
- merge fusion/fn-3776

Files changed:
packages/core/src/__tests__/db.test.ts | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-3776
2026-05-10 15:33:24 -07:00
gsxdsm
1a938c6622 Merge pull request #63 from magreenberg1/feat/cross-session-prompt-caching
feat(engine): cross-session prompt caching to reduce per-task token consumption
2026-05-10 15:00:17 -07:00
Matthew Greenberg
1880db08d4 fix(engine): align computeCacheHitRatio JSDoc with stored tokenUsage format 2026-05-10 16:03:32 -04:00
Matthew Greenberg
74e2b0b69b ci: retrigger CI (test shard 3/3 flaky failure) 2026-05-10 16:03:32 -04:00
Matthew Greenberg
9b6b22aa13 fix(engine): remove leading newline from reviewer memorySection — buildPromptLayers handles joining 2026-05-10 16:03:32 -04:00
Matthew Greenberg
cb4fb78d61 fix(engine): preserve memory-before-instructions ordering in dynamic layer 2026-05-10 16:03:32 -04:00
Matthew Greenberg
2706a8384b fix(engine): preserve fn_heartbeat_done at end of tool list after sorting 2026-05-10 16:03:32 -04:00
Matthew Greenberg
0bf9b9193c fix(engine): address PR review — remove dead skill scoping, fix memory layer placement, clarify JSDoc, sort builtin allowlist, remove redundant tests 2026-05-10 16:03:32 -04:00
Matthew Greenberg
441191332b test(engine): improve coverage for prompt layers wiring, backward compat, and skill scoping
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-10 16:03:32 -04:00
Matthew Greenberg
8570f955e8 test(engine): verify layer forwarding and cross-session cache invariant 2026-05-10 16:03:32 -04:00
Matthew Greenberg
9e5607b6c6 feat(engine): triage and heartbeat use prompt layers for caching 2026-05-10 16:03:32 -04:00
Matthew Greenberg
5d3531e0be feat(engine): executor uses prompt layers for cross-session caching 2026-05-10 16:03:32 -04:00
Matthew Greenberg
4cebf1dde0 feat(engine): add computeCacheHitRatio metric to token usage tracking 2026-05-10 16:03:32 -04:00
Matthew Greenberg
048a03b86b feat(engine): scope skill loading by session purpose to reduce token overhead 2026-05-10 16:03:32 -04:00
Matthew Greenberg
39e57cbb88 feat(engine): sort tools deterministically for prompt cache stability 2026-05-10 16:03:32 -04:00
Matthew Greenberg
00bc7cd442 feat(engine): reviewer uses prompt layers for cross-session caching 2026-05-10 16:03:32 -04:00
Matthew Greenberg
e7ea1257ff feat(engine): add systemPromptLayers to AgentRuntimeOptions and wire into DefaultResourceLoader
Extends AgentRuntimeOptions and AgentOptions with an optional
systemPromptLayers field (SystemPromptLayers) for cross-session prompt
caching. DefaultResourceLoader now uses the stable layer as
systemPromptOverride and the dynamic layer as appendSystemPromptOverride
when layers are provided, falling back to the flat systemPrompt string
for backward compatibility.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-10 16:03:32 -04:00