diff --git a/AGENTS.md b/AGENTS.md index b09455709..daeb00ed9 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -48,7 +48,7 @@ If any answer is missing: `BLOCKED: purpose unclear — [field]`. Surfacing the This is a TypeScript monorepo with npm workspaces. The main entry point is `dist/loader.js` (bin: `sf`). - `src/` — Main CLI source (sf-run core, extensions, agents) -- `packages/` — Workspace packages (8 total): pi-tui, pi-ai, pi-agent-core, pi-coding-agent, daemon, mcp-server, native, rpc-client +- `packages/` — Workspace packages (7 total): pi-tui, pi-ai, pi-agent-core, pi-coding-agent, daemon, native, rpc-client - `web/` — Next.js web frontend (optional web host mode) - `rust-engine/` — Rust N-API bindings for performance-critical operations - `scripts/` — Build, dev, release, and CI helper scripts diff --git a/docs/dev/ADR-016-charm-ai-stack-adoption.md b/docs/dev/ADR-016-charm-ai-stack-adoption.md index a9290e8f8..93ba5acf2 100644 --- a/docs/dev/ADR-016-charm-ai-stack-adoption.md +++ b/docs/dev/ADR-016-charm-ai-stack-adoption.md @@ -23,7 +23,7 @@ The question the SPEC retarget didn't have to answer: **now that this much is he **Option A — Parallel build, no core migration.** -- **sf core (TypeScript on pi-mono): unchanged.** SPEC §1 retarget rationale stands. Pi-mono SDK alignment, MCP-server story, ~200+ TS files, real production users — none of it justifies a 3–6 month rewrite. +- **sf core (TypeScript on pi-mono): unchanged.** SPEC §1 retarget rationale stands. Pi-mono SDK alignment, MCP client boundary, ~200+ TS files, real production users — none of it justifies a 3–6 month rewrite. - **New services: Go on Charm, comprehensively.** sf-worker (ADR-013), Singularity Knowledge + Agent Platform (ADR-014), flight recorder (ADR-015), Charm TUI client (ADR-017) — all in Go using the Charm ecosystem. - **Native engine (Rust): permanent.** ~11k LOC in `rust-engine/` (git, text, forge_parser, grep, highlight, ast, diff, etc.) is best-of-breed and not re-implementable in Go without losing performance. Bindings (napi-rs from TS today; cgo from Go for new services if needed) flex per consumer. - **Pony adoption: now, not deferred.** Reversed from initial conservative stance. Adopting pony from day one in Phase-3 admin surfaces (Singularity Memory admin UI, future audit dashboards) — admin tolerates churn better than user-facing surfaces, and the foundation bet pays back if pony stabilises. diff --git a/docs/specs/sf-schedule.md b/docs/specs/sf-schedule.md index 368f6bf69..af698c26d 100644 --- a/docs/specs/sf-schedule.md +++ b/docs/specs/sf-schedule.md @@ -8,7 +8,7 @@ ## Overview -The SF schedule system provides time-based reminders and deferred work items that surface at a future date. Entries are stored as append-only JSONL and queried on demand (pull-based), not fired by a daemon or cron job. This makes the system portable, auditable, and free of background processes. +The SF schedule system provides time-based reminders and deferred work items that surface at a future date. Entries are stored as versioned append-only JSONL and queried on demand (pull-based), not fired by a daemon or cron job. This makes the system portable, auditable, and free of background processes. Use `sf schedule` when something needs to happen at a specific future time but cannot (or should not) happen immediately: diff --git a/src/help-text.ts b/src/help-text.ts index f046cea78..8b698d261 100644 --- a/src/help-text.ts +++ b/src/help-text.ts @@ -172,7 +172,7 @@ const SUBCOMMAND_HELP: Record = { "Usage: sf schedule [args]", "", "Manage time-bound reminders and deferred work items.", - "Entries are stored as append-only JSONL in .sf/schedule.jsonl (project)", + "Entries are stored as versioned append-only JSONL in .sf/schedule.jsonl (project)", "or ~/.sf/schedule.jsonl (global). No daemon required — items surface on pull.", "", "Commands:", diff --git a/src/resources/extensions/sf/schedule/schedule-store.js b/src/resources/extensions/sf/schedule/schedule-store.js index 52abb0680..592e21b05 100644 --- a/src/resources/extensions/sf/schedule/schedule-store.js +++ b/src/resources/extensions/sf/schedule/schedule-store.js @@ -1,5 +1,5 @@ /** - * Schedule Store — append-only JSONL persistence for scheduled entries. + * Schedule Store — versioned append-only JSONL persistence for scheduled entries. * * Purpose: provide durable, queryable storage for schedule entries with * status-grouping semantics (latest entry per ID wins) and time-based queries. diff --git a/src/resources/extensions/sf/self-feedback.js b/src/resources/extensions/sf/self-feedback.js index 1f68c5872..b611391df 100644 --- a/src/resources/extensions/sf/self-feedback.js +++ b/src/resources/extensions/sf/self-feedback.js @@ -191,7 +191,8 @@ function regenerateSelfFeedbackMarkdown(basePath) { } writeFileSync(path, md, "utf-8"); } catch { - // Non-fatal — markdown is human-facing, DB/JSONL state is source of truth. + // Non-fatal — markdown is human-facing; DB state is authoritative when available, + // with JSONL retained only as a legacy fallback. } } /**