Bundles the working-tree state into one coherent commit covering the
upgrade-safety glue that complements today's earlier landings
(orphan-recovery, sf-db single-connection, drain-timer-not-unref'd,
forceShutdown drain, shutdown-state.ts, instrumentation.ts,
shutdown-signal.js, gate-deadlock-classifier).
Modified:
docker/Dockerfile.source-server — image build tweaks for the source-
server variant used by the in-container upgrader.
docker/docker-compose.vega.yaml — env passthroughs for host-side dirs
(SF_SOURCE_HOST_ROOT, SF_WORKSPACE_HOST_DIR, SF_WORKSPACES_HOST_DIR,
SF_HOME_HOST_DIR), docker socket mount, group_add for docker GID,
and SF_RPC_SHUTDOWN_GRACE_MS=600000 matching the 10-min drain.
scripts/run-vega-source-server.mjs — substantial rework supporting
the in-container upgrade flow.
scripts/upgrade-vega-source-server.mjs — buildEnv() + dockerBuildEnv()
helpers, probeBind via SF_VEGA_PROBE_HOST, containerExists()
pre-check before drainContainer, stop timeout now matches the
10-min RPC grace via SF_VEGA_DRAIN_STOP_TIME (default 610s).
src/web/project-discovery-service.ts — calls
recoverProjectRuntimeQueues() on each of the 3 discovery paths
(root monorepo, per-entry, nested SF projects). Closes the
cloud-volume mtime-lag window codex flagged.
web/app/api/ready/route.ts — calls recoverProjectRuntimeQueues() on
every readiness probe, and now also reads shutdown-state so the
probe returns 503 while draining.
web/components/sf/projects-view.tsx — UI wiring for the upgrade
trigger.
web/pages/api/projects.ts — backend API addition for the project
enumeration that feeds projects-view.
docs/specs/sf-self-deploy.md — docs update for the new flow.
package.json — script alias.
Added:
scripts/build-web-host.mjs — new build helper for the standalone web
host artifact consumed by the upgrade flow.
src/resources/extensions/sf/tests/auto-shutdown-signal.test.mjs —
unit test for the cooperative-shutdown signal module (registers /
requests / snapshot).
src/web/project-runtime-recovery.ts — thin wrapper around
recoverOrphanedFeedbackDrains for per-project use from web routes.
web/app/api/drain/route.ts — explicit drain endpoint for operator-
triggered queue flush.
web/app/api/server-upgrade/route.ts — auth-gated endpoint that
spawns the in-container upgrader via docker socket; passes through
host-dir env so the upgrader knows real bind-mount paths.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
||
|---|---|---|
| .. | ||
| adr | ||
| design-docs | ||
| dev | ||
| exec-plans | ||
| generated | ||
| plans | ||
| product | ||
| product-specs | ||
| records | ||
| references | ||
| specs | ||
| user-docs | ||
| DESIGN.md | ||
| ENV.md | ||
| FRONTEND.md | ||
| PLANS.md | ||
| PRODUCT_SENSE.md | ||
| QUALITY_SCORE.md | ||
| README.md | ||
| RECORDS_KEEPER.md | ||
| RELIABILITY.md | ||
| SECURITY.md | ||
| SPEC_FIRST_TDD.md | ||
| TEST-COVERAGE-PLAN.md | ||
SF Documentation
Welcome to the SF documentation. SF is a purpose-to-software compiler: it turns bounded intent into PDD contracts, researches missing context, writes failing tests or executable evidence first, implements the smallest satisfying change, and records verification. See ADR-0000 and Spec-First TDD before changing product behavior.
This index covers everything from getting started to advanced configuration, autonomous mode internals, and extending SF with the Pi SDK.
User Documentation
Guides for installing, configuring, and using SF day-to-day. Located in user-docs/.
| Guide | Description |
|---|---|
| Getting Started | Installation, first run, and basic usage |
| Autonomous Mode | How autonomous execution works — the state machine, crash recovery, and steering |
| Commands Reference | All commands, keyboard shortcuts, and CLI flags |
| Remote Questions | Discord and Slack delivery for run-control-gated questions |
| Configuration | Preferences, model selection, git settings, and token profiles |
| Provider Setup | Step-by-step setup for OpenRouter, Ollama, LM Studio, vLLM, and all supported providers |
| Custom Models | Advanced model configuration — models.json schema, compat flags, overrides |
| Token Optimization | Token profiles, context compression, complexity routing, and adaptive learning (v2.17) |
| Dynamic Model Routing | Complexity-based model selection, cost tables, escalation, and budget pressure (v2.19) |
| Captures & Triage | Fire-and-forget thought capture during autonomous mode with automated triage (v2.19) |
| Workflow Visualizer | Interactive TUI overlay for progress, dependencies, metrics, and timeline (v2.19) |
| Cost Management | Budget ceilings, cost tracking, projections, and enforcement modes |
| Git Strategy | Worktree isolation, branching model, and merge behavior |
| Parallel Orchestration | Run multiple milestones simultaneously with worker isolation and coordination |
| Working in Teams | Unique milestone IDs, .gitignore setup, and shared planning artifacts |
| Skills | Bundled skills, skill discovery, and custom skill authoring |
| Migration from v1 | Migrating .planning directories from the original SF |
| Troubleshooting | Common issues, /sf doctor (real-time visibility v2.40), /sf forensics (full debugger v2.40), and recovery procedures |
| Server Interface | Browser-based project management with sf server (v2.41) |
| VS Code Extension | Chat participant, sidebar dashboard, and RPC integration for VS Code |
Architecture & Internals
Design documents, ADRs, and internal references. Located in dev/.
| Guide | Description |
|---|---|
| ADR-0000: Purpose-to-Software Compiler | Foundational architecture decision for SF's product contract |
| Spec-First TDD | Purpose gate, PDD fields, and test-first change method |
| Architecture Overview | System design, extension model, state-on-disk, and dispatch pipeline |
| Native Engine | Rust N-API modules for performance-critical operations |
| ADR-001: Branchless Worktree Architecture | Decision record for the v2.14 git architecture |
| ADR-003: Pipeline Simplification | Research merged into planning, mechanical completion (v2.30) |
| ADR-004: Capability-Aware Model Routing | Extend routing from tier/cost selection to task-capability matching |
| ADR-007: Model Catalog Split | Separate model metadata from routing logic for extensibility |
| Context Optimization Opportunities | Analysis of context window usage and optimization strategies |
| File System Map | Complete file system reference |
| CI/CD Pipeline | Continuous integration and deployment pipeline |
| Frontier Techniques | Advanced techniques and research |
| PRD: Branchless Worktree | Product requirements for branchless worktree architecture |
Pi SDK Documentation
Guides for the underlying Pi SDK that SF is built on. Located in dev/.
| Guide | Description |
|---|---|
| What is Pi | Core concepts — modes, agent loop, sessions, tools, providers |
| Extending Pi | Building extensions — tools, commands, UI, events, state |
| Context & Hooks | Context pipeline, hook reference, inter-extension communication |
| Pi UI / TUI | Terminal UI components, theming, keyboard input, rendering |
Research
| Guide | Description |
|---|---|
| Building Coding Agents | Research notes on agent design — decomposition, context engineering, cost/quality tradeoffs |
| Proposals | Feature proposals and workflow definitions |