- Add docs index with structured navigation and links across the new documentation set - Document onboarding and technical foundations with getting-started and architecture guides - Add detailed CLI and settings references plus feature guides for dashboard, tasks, workflow steps, missions, multi-project, and agents - Add a contributing guide and polish cross-references between docs pages for discoverability - Include dashboard screenshots for key views to provide visual context in the guides
2.4 KiB
2.4 KiB
Contributing
Thanks for contributing to Fusion.
Development Setup
Prerequisites
- Node.js (current LTS recommended)
- pnpm (
packageManageris pnpm) - Git
piruntime/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.
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.