Files
fusion/docs/contributing.md
gsxdsm daabb51e71 feat(FN-1399): add background memory summarization after task completion
- Add MemoryInsights class in @fusion/core for AI-powered memory audit generation
- Add post-run hook to CronRunner for triggering memory summarization after scheduled tasks
- Wire memory background processing in both dashboard and serve commands
- Add memoryAuditEnabled and memoryAuditSchedule settings for configurable automation
- Fix startup ordering: sync automation before cronRunner.start() to prevent race conditions
- Add comprehensive tests for memory-insights and dashboard/serve integration
- Update contributing.md and settings-reference.md with documentation
2026-04-09 16:14:44 -07:00

2.8 KiB

Contributing

← Docs index

Thanks for contributing to Fusion.

Development Setup

Prerequisites

  • Node.js (current LTS recommended)
  • pnpm (packageManager is pnpm)
  • Git
  • pi runtime/auth configured for AI features

Install dependencies

pnpm install

Build all packages

pnpm build

Workspace Package Overview

Package Purpose
@fusion/core Shared domain types, stores, persistence, and core utilities
@fusion/dashboard Express API + React UI
@fusion/engine Scheduling, triage, execution, merge orchestration
@fusion/tui Ink-based terminal UI components
@gsxdsm/fusion Published CLI + pi extension

Development Workflow

pnpm dev          # build + run CLI entrypoint in dev mode
pnpm dev:ui       # dashboard dev server only
pnpm typecheck    # workspace typechecks
pnpm test         # workspace test suite
pnpm build        # workspace builds

Testing Requirements

Use real test runs (not manual verification substitutes):

pnpm test
pnpm test:coverage
pnpm test:coverage:core
pnpm test:coverage:engine
pnpm test:coverage:cli
pnpm test:coverage:dashboard

Build Standalone Executables

Fusion supports standalone binary builds through Bun compile scripts in the CLI package.

pnpm build:exe      # build host-target executable
pnpm build:exe:all  # build multi-target executables

Release Process

Fusion uses Changesets + version PR workflow.

  • See RELEASING.md for release flow details.
  • For published package behavior changes, include a changeset.

Code Signing

Release binary signing setup is documented here:

Git / Commit Conventions

Use task-ID-scoped conventional commits:

  • feat(FN-XXX): ...
  • fix(FN-XXX): ...
  • test(FN-XXX): ...
  • docs(FN-XXX): ... (for documentation-only changes)

Project Memory

When enabled, agents can read/write durable project memory:

  • .fusion/memory.md

Use it for reusable patterns, constraints, and pitfalls that should persist across tasks.

Background Memory Summarization

Fusion can automatically extract insights from working memory and distill them into long-term memory. Enable via insightExtractionEnabled setting:

  • .fusion/memory-insights.md — Long-term distilled insights
  • .fusion/memory-audit.md — Audit report after each extraction run

See Settings Reference for configuration details.

SQLite Test Runner Pitfall

When running engine tests with Vitest and node:sqlite, ensure the engine Vitest config uses thread pool mode:

  • pool: "threads"
  • pool: "vmThreads"

node:sqlite fails under Vitest VM contexts; using threads avoids that failure mode.