Files
fusion/docs
ischindl 8fcf4bdbaa feat: Stash memory backend — session capture, per-chat backfill, opt-in vector search (#3494)
## Summary

Adds the **Stash memory backend** (`memory.backendType=stash`) that
connects Fusion's agent memory to the
[Stash](https://github.com/Fergana-Labs/stash) product — *knowledge
bases for the agent era* ([product site:
joinstash.ai](https://joinstash.ai)). Fusion becomes a first-class Stash
client: complete chat sessions and finished tasks are captured into
Stash, memory is recalled during chat, and Stash sessions are kept in
sync with the dashboard (including deletes and archival).

**Product:** <https://github.com/Fergana-Labs/stash> ·
[joinstash.ai](https://joinstash.ai)

## What's included

### 1. Stash memory backend (RUFU-068 / RUFU-121)
- New `StashMemoryBackend` (`memory.backendType=stash`) with `stashUrl`
/ `stashApiKey` settings (global secrets-store `stash-api-key` +
per-project override).
- **Complete-chat-session capture** keyed by ChatSession id.
- Sessions are classified into **per-project folders** (get-or-create,
`external_key fusion-<projectId>`, 1h per-process cache) and
**soft-deleted with their chat** via `DELETE /api/chat/sessions/:id`.
- Per-conversation **memory-focus** read-time scoping (new
`0066_chat_session_memory_focus.sql` migration — sequence renumbered
0059→0060→0061→0065→0066 as origin/main claimed the lower numbers);
event metadata enriched with `project` / `project_name` / `chat_title`.
- Recall queries normalized to single-keyword / explicit-OR ASCII (≤100
chars); shared normalizer export reused by per-turn recall.

### 2. Per-task executor transcript capture (RUFU-122)
Finished or failed tasks upload their executor transcript
(`agent-log.jsonl`) to Stash as a task session.

### 3. Bulk archive Stash sync (RUFU-125)
Archived task-planner chats soft-delete their Stash sessions on bulk
archival (paged). The snapshot of doomed session ids is taken *before*
the local bulk delete, and the Stash sync runs fire-and-forget so a
Stash stall can never delay local archival.

### 4. Per-chat "Preserve to Stash" backfill (RUFU-136)
A per-chat action that backfills a chat's full history into Stash, with
client-side idempotency and a pre-check that skips already-uploaded
content (fail-closed, no duplicate upload on transport failure).
- **Session-folder naming fix:** the first project folder is now named
"Fusion — &lt;project name&gt;" instead of the bare "Fusion" fallback
(the backfill now resolves the central-registry project name,
best-effort, never blocking the upload).

### 5. Opt-in semantic (vector) recall (RUFU-126)
`stashVectorSearch` setting (default `false` — **zero behavior change
until enabled**). For multi-word queries the backend tries Stash's
semantic-search endpoint first, then falls back byte-identically to the
keyword path. Definitive 404/405/501/503 responses are negatively cached
per process. Requires a patched Stash server (new endpoint +
`sentence-transformers` + embedding backfill); unpatched servers are
transparently bypassed after the first 404.

## Safety
- **Opt-in / inert by default:** the default backend remains `qmd`; the
Stash backend is inert until `memoryBackendType=stash` + `stashUrl` are
set.
- All Stash I/O is **best-effort, fail-closed, and non-blocking** — a
Stash outage never blocks chat, task completion, or archival. No
run-audit content is emitted.

## Testing
- Backfill + delete-sync suites (20/20), Stash backend suite (68/68),
executor memory / session capture suites, `memory-focus-recalling`,
description-guard — all green.
- `tsc` clean across core / engine / dashboard.
- Live verification: bulk backfill of 21/24 chats completed; the
"Preserve to Stash" action is idempotent on re-run.

## Changesets
- `@runfusion/fusion` **minor** — Stash memory backend + capture
(RUFU-068/121), per-task transcript (RUFU-122), bulk archive sync
(RUFU-125), per-chat backfill (RUFU-136), opt-in vector search
(RUFU-126)
- `@runfusion/fusion` **patch** — backfill session-folder naming fix


## Rebase Note (2026-08-23)

Rebased onto `origin/main` `3f448f7292` (v0.77.0-beta.7). Conflicts
resolved additively:
- `packages/core/src/postgres/schema-applier.ts` + test — upstream's
0062-0065 migrations (task/subtask splitting removal, AI merge review
reconciliation, task repository scope, FN-149 review convergence)
unioned with this PR's `chat_sessions.memory_focus` migration, which is
**renumbered 0065 → 0066** (upstream's FN-149 shipped 0065 canonically
on origin/main); `SCHEMA_BASELINE_VERSION` advances to `0066`.
- `packages/dashboard/app/components/ChatView.tsx` — upstream's docked
chat sidebar resize handlers unioned with the RUFU-136 "Preserve to
Stash" backfill handler.
- New commit: `settings.memory.*` stash-backend i18n keys added to all 6
secondary locales (RUFU-121/122 parity fix; `pnpm i18n:status` no longer
reports any violation introduced by this PR).

**Deploy note (operator environments that already ran a pre-rebase build
of this PR):** the memory-focus SQL may already be in the schema under
ledger row `0065`. Remap that row to `0066` (`UPDATE
fusion_schema_migrations SET version = '0066' WHERE version = '0065';`)
*before* first boot of a 0066-ceiling binary — otherwise the fresh
upstream `0065_fn_149_review_convergence_stage.sql` would be skipped as
"already applied". Clean databases (no prior memory-focus row) need no
action.

**CI note — Lint (lifecycle-column census) is red on the merge base:**
`pnpm check:lifecycle-columns --strict` fails identically on pure
`origin/main` `3f448f7292` with
`packages/core/src/db/legacy-adoption.ts: 0 -> 3` (3 column guards in
the U9b legacy-adoption table without a baseline entry or
`DELIBERATE-LITERAL` marker). Verified by running the census on a clean
origin/main checkout — inherited from the base, not introduced by this
PR. Fix belongs upstream; tracked separately.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Added Stash memory integration with project configuration and optional
semantic search.
  * Added per-chat memory focus controls and a `/focus` command.
  * Added “Preserve to Stash” for uploading complete chat history.
  * Added automatic chat, task transcript, and completion-event capture.
* Added project-specific Stash session folders and archive/delete
synchronization.
* **Bug Fixes**
* Improved Stash folder naming and handling of missing branches during
no-commit tasks.
* **Documentation**
* Added setup, configuration, integration, vector-search, and
performance guidance.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Fusion <noreply@runfusion.ai>
Co-authored-by: gsxdsm <gsxdsm@users.noreply.github.com>
2026-08-23 16:46:14 -07:00
..

Fusion Documentation

← Back to repository root

Fusion is an AI-orchestrated task board that turns ideas into reviewed, merged code using a structured workflow: planning → todo → in-progress → in-review → done.

Fusion Dashboard Overview

Quick Start

Start the local dashboard with pnpm dev dashboard, then create your first task from the board or CLI.

For a full walkthrough (installation, onboarding, first task, and daily workflow basics):

➡️ Getting Started

Documentation Index

Getting Started

Guide Description
Getting Started Installation, first-run, first task, and daily workflow basics
Dashboard Guide Board/list views, left/right sidebar navigation, Artifacts, Import Tasks, chat, workflow selection/editor, terminal, git manager, files, planning, and UI tools
CLI Reference Complete fn command reference with subcommands, flags, and examples
Computer Use fn computer desktop-app discovery, snapshots, actions, permissions, and JSON contract
Remote Access Operator runbook for Tailscale/Cloudflare setup, tokenized login links, security caveats, and troubleshooting
Native Shell Connection Guide Canonical mobile/desktop shell onboarding, profile management, QR/manual setup, and remote handoff behavior

Task & Project Management

Guide Description
Task Management Task creation modes, lifecycle, prompt specs, comments, archiving, and GitHub integration
Todo View Canonical guide for the experimental Todo View, including enablement, usage, API routes, and storage
Missions Mission hierarchy, planning flow, activation, progress tracking, and autopilot behavior
Goals Refinement Gate Evidence gate for activating the conditional post-v1 goals refinement slice only after real usage pain is documented
Goals Refinement Evidence Pack Structured observation template and two-observation threshold for conditional Slice 4 activation requests
Research Research runs, provider setup, dashboard/CLI usage, findings, exports, and task integration
Research View UX Spec Canonical layout and capability-state messaging spec for the Research dashboard view (FN-4138, informs FN-4134/FN-4135)
Workflow Steps Workflow overview, built-in workflow catalog, per-task selection, runtime semantics, reusable quality gates, templates, phases, and execution results
Workflow Editor Visual workflow editor guide for opening, viewing, authoring, validating, importing/exporting, custom fields/columns/settings, and tuning workflows
Custom Workflow Reliability Acceptance Map End-to-end reliability acceptance criteria for custom workflow authoring, selection, execution, recovery, restart durability, and deferred journeys
Custom Non-Coding Workflows MVP Spec MVP framing for user-authored non-coding workflows, lifecycle mapping, metrics, and risk checklist
Task Evaluations Eval scoring contract, evidence persistence, score categories, and evaluation pipeline
Multi-Project Central registry architecture, project management, isolation modes, and migration paths
Workspaces (Multi-Repository) Workspace setup, per-repository execution and land, recovery, revert, and archive cleanup

Configuration & Agents

| Settings Reference | Global/project settings, workflow setting values, model/fallback lane hierarchy, defaults, and API endpoints | | MCP | Model Context Protocol server configuration, secret references, validation, CLI, dashboard, and import/export workflows | | Agents | Agent management, presets, prompts, heartbeat behavior, spawning, and mailbox workflows | | Planner Oversight (see Settings Reference, Dashboard Guide, Architecture) | Workflow-native oversight levels (off/observe/steer/autonomous), per-task overrides, notification verbosity, the human-confirmation gate on merge/PR and destructive actions, and the Task Detail overseer controls/Intervention Timeline |

Architecture & Development

Guide Description
Architecture System architecture, package layout, storage model, and engine execution flow
Secrets Store (SecretsStore) Core encrypted secret subsystem overview: scopes, AES-256-GCM at-rest model, policy semantics, and public store API surface
Dashboard Real-Time Canonical event-stream architecture contract (shared /api/events bus + dedicated stream boundaries), with project/node scoping, reconnect/cleanup behavior, and realtime pitfalls
Agent Activity Contract Canonical wire, cursor, and retention contract for the project-scoped GET /api/agent-activity durable activity-history API
Storage PostgreSQL runtime storage, archive, migration compatibility, and file-backed payloads
DAG Architecture Deliverables Milestone A DAG architecture documents plus Milestone B prototype scaffold docs (schema migration plan, DagCoordinator design, implementation checklist)
Dev Server Module Audit Analysis of parallel dashboard dev-server module families, production wiring, and consolidation guidance
Shared Cluster Protocol Shared PostgreSQL multi-node contract: claims/leases, membership, auth, and retired multi-leader mesh replication
Signals Connectors HMAC-signed external signal connectors for setup, payload mapping, and security notes across Sentry, Datadog, PagerDuty, and generic webhooks
Multi-Project Sequencing and Dependency Analysis Sequencing guidance for FN-3448/FN-3449/FN-3503/FN-3182, including identity boundaries and recommended board dependency edges
Contributing Local development setup, testing, release flow, and contributor conventions
Docker Container builds, deployment, and persistence configuration
Code Signing macOS and Windows code signing configuration for release binaries
Diagnostics Engine diagnostic logging subsystems, structured log keys, and key diagnostic points catalog
Run-Audit Catalogue Durable reference catalogue of delivery-pipeline run-audit events (finalization, self-healing reconciliation, durable-agent error-state) — the S4 reliability/durability/observability observability surface
Sandbox Backends Pluggable sandbox backends for executor command isolation (bubblewrap, spawn-based)
Secrets Encrypted secrets storage, per-secret access policies, scopes, and agent tool wiring
Testing Full testing lanes, worker fanout guidance, test taxonomy, and file organization
Real iOS Safari Acceptance Surface Provisioning runbook and harness usage for terminal verification gates on physical or cloud real-iOS Safari
Solutions Catalog Documented solutions to past problems (bugs, architecture patterns, best practices) organized by category
Localization Contributing Guide Conventions for contributing translations, locale file structure, and i18n tooling
Mobile Capacitor/PWA mobile development setup and workflow

Plugins

Guide Description
Plugin Management End-user guide for discovering, installing, enabling, configuring, updating, uninstalling, and troubleshooting Fusion plugins
Plugin Authoring Developer guide for building Fusion plugins (manifest, SDK hooks, routes, UI/runtime contributions)
Even Realities Glasses Plugin Task-focused Even Realities glasses bridge with quick capture, polling notifications, and agent actions
Reports Plugin Reports plugin rendering, export, standalone HTML generation, and section configuration
Even Realities Plugin API Even Realities plugin API endpoint reference and test coverage matrix
Memory Plugin Contract Pluggable memory backend architecture, interface contract, and migration strategy
Compound Engineering Plugin CE workflow dashboard surface: artifact hub, interactive sessions, work→board bridge, and bidirectional sync
External Plugin Authoring Step-by-step guide for authoring plugins using an installed fn CLI (no monorepo access needed)
External Plugin Proof-Point Runbook Repeatable release-validation runbook for proving an external plugin runs against a published Fusion CLI build

Audit Reports

Report Description
Test Feedback-Loop Baseline Weekly FN-6612 signal-per-second baseline for gate/test wall-time, slowest files, and quarantine trends
Test Value Audit Heuristic test-value audit generated by scripts/test-value-audit.mjs to support human deletion and review decisions
Test Velocity Baseline Weekly feedback-loop velocity baseline for merge-gate, boot-smoke, changed-test, and quarantine metrics
UX Audit Report Comprehensive UX audit with prioritized recommendations for dashboard improvements
Codebase Improvement Audit Evidence-based technical debt and reliability gap audit with prioritized recommendations
Gap Analysis System completeness analysis comparing Fusion to Paperclip feature set
Permanent Agent Heartbeat Playbooks Worked manager/IC/message/blocked/no-task heartbeat scenarios and anti-patterns
Agent Sandbox Research Research on agent isolation, capability enforcement, and sandboxing approaches
Even Realities Integration Research (FN-3737) Research summary and recommended integration topology for Even Realities glasses + Fusion
pi-autoresearch Analysis for Fusion Port Upstream architecture/license analysis and Fusion integration mapping for autoresearch capabilities
pi-autoresearch Audit vs Fusion Research Audit comparing Fusion's research subsystem against upstream pi-autoresearch capabilities and parity gaps (FN-4136)
Research Hardening Preflight Baseline Verified research subsystem baseline, lifecycle contracts, and hardening pressure points
Test Audit Report Test coverage and effectiveness audit with recommendations
Skipped Test Inventory Current intentional test-skip inventory and reconciliation status for older skip follow-ups
Dev Server Module Boundary Audit Boundary/ownership audit for parallel dev-server-* vs devserver-* dashboard modules and FN-2212 prioritization guidance
spawn_agent Approval Evaluation (FN-3973) Decision to keep fn_spawn_agent under generic action-gate governance rather than durable agent provisioning policy
Task Lineage Reconciliation Notes Historical task-ID reuse patterns, confidence semantics for commit attribution, and reconciliation methodology (FN-3953, FN-3998)
Dashboard Load Performance (historical) Pre-cutover SQLite index analysis retained for performance archaeology
CLI Printing Press Plugin Design Architecture design for the CLI printing press bundled plugin (FN-3762)
CLI Printing Press Research Upstream cli-printing-press analysis and Fusion integration mapping (FN-3761)
Research vs Experiment Session Naming Decision Naming decision record: hybrid approach retaining research_* for cited-search/synthesis and adding experiment_session_* for upstream parity (FN-4223)
Experiment Executor Design Experiment executor architecture: lifecycle, run state machine, and worktree isolation model
Experiment Finalize Flow Experiment finalize contract: branch grouping, dry-run planning, and session completion semantics
Experiment Session Model Experiment session data model: state transitions, iteration tracking, and persisted run state
Experiment Session MVP Spec MVP specification for the experiment session feature: scope, invariants, and delivery milestones
Sandbox Options Research (FN-4635) Pluggable sandbox options research: threat model, backend evaluation, and spawn-based isolation design
Triage Duplicate Detection Postmortem Postmortem on duplicate task detection gaps and scheduler dedup hardening
Multi-Node Runtime Readiness (FN-4814) Runtime readiness assessment for multi-node distributed coordination
Distributed Multi-Node Coordination Gap (FN-4819) Gap analysis for distributed multi-node agent coordination and cross-node task assignment
Cross-Node Assignment Wake Contract (FN-4824) Contract specification for cross-node task assignment wake signaling
Multi-Node Coordination Validation Findings (FN-4820) Validation findings from multi-node coordination testing and edge-case analysis
Secrets Sync Auth Parity Review (FN-4886) Review of node secrets sync API authentication parity and security boundaries
Test Speed Audit (FN-5048) Measured baseline test performance, offender list, and optimization priorities
Soft-Delete Verification Matrix Authoritative checklist for the FN-5105 → FN-5143 soft-delete stream: scenario × layer coverage
Self-Healing Backward Move Audit Audit of self-healing backward-move safety checks and edge-case validation
Workflow Policy Ownership Map U1 characterization map classifying production merge, retry, scheduling, and recovery policy branches before workflow-policy migration cutover
Test-Speed Baseline (2026-06-03) Measured per-file test timing baseline and optimization targets (successor to FN-5048 audit)
ACP Runtime Contract Agent Client Protocol plugin launch/readiness contract and failure taxonomy
ACP MCP Passthrough & Permission Forwarding Upstream Sponsorship (FN-6475) Ready-to-file upstream sponsorship for claude-code-cli-acp ACP session/new.mcpServers passthrough and permission-gate traversal; Route A remains NOT GO until proven
Mission Completion Gate Contract Decision record for mission completion gate invariants and acceptance flow

| Lost-Work Tasks Incident (2026-05-23) | Incident catalog of 9 lost-work tasks from no-op finalize and reuse-handoff bugs | | GitLab Parity Inventory (FN-7421) | Implementation map for first-class GitLab support: import, linked issue tracking, comments, auth/settings UI, CLI/extension, and Command Center surfaces to mirror or explicitly exclude | | PostgreSQL Runtime Cutover Review (2026-07-14) | Current end-to-end authority inventory, intentional legacy SQLite readers, deployment contract, and verification record | | SQLite → PostgreSQL Migration Review (2026-06-26, historical) | Historical multi-agent review of the incomplete migration branch and its original findings | | Dashboard Theme & UI Plugin System Proposal (2026-07-01) | Feasibility-spike proposal for a controlled dashboard theme/UI shell extension point sharing one backend source of truth | | Full-loop Agent Tool-Surface Audit and Delivery Plan | Source-grounded audit of engine-agent and dashboard chat tool factories, gap analysis for mission hierarchy integration, and delivery plan (FN-8280) | | Dashboard Modal Inventory | Canonical classification of all 45 dashboard modal surfaces (classes A–D) with file:line evidence, FloatingWindow migration targets, and the shared migration contract (FN-8605 → FN-8617) | | Workflow-Owned Lifecycle Closing Verification | Closing-bar verification runbook and recorded pass history for the workflow-owned lifecycle cutover programme — gate, verify:fast, E2E families, and census |

External Resources

Suggested Reading Paths

  • New user: Getting Started → Dashboard Guide → Task Management

  • Workflow author: Dashboard Guide → Workflow Editor → Workflow Steps → Settings Reference

  • Power user / automation owner: Settings Reference → Workflow Steps → Agents → Planner Oversight (Settings Reference § Workflow Settings)

  • Maintainer / contributor: Architecture → Multi-Project → Contributing

  • Knowledge graph — deterministic committable codebase structure graph.