Mikael Hugo
3adcb833ed
refactor(sf): separate daemon from server identity
2026-05-17 19:18:33 +02:00
Mikael Hugo
d03758d803
feat: replace launchd with systemd user-unit install path
...
Operator-direction 2026-05-17 "we will never use mac" — no compat
preservation. Single-cutover replacement.
- new packages/daemon/src/systemd.ts: install/uninstall/status using
systemctl --user + ~/.config/systemd/user/sf-server.service
- new packages/daemon/src/systemd.test.ts: ports launchd tests, same
shape, mocked systemctl via RunCommandFn injection + SF_SYSTEMD_USER_DIR
env override for real filesystem tests
- cli-main.ts: switch import + update help text + status messages
- index.ts: re-export systemd module (installSystemdUnit, uninstallSystemdUnit,
systemdUnitStatus, generateUnit, getServicePath, SystemdStatus, SystemdUnitOptions)
- DELETED: launchd.ts (253 LOC), launchd.test.ts (379 LOC)
- docs/dev/drafts/M053-per-repo-supervisor.md: remove "launchd" mention
- CHANGELOG.md: document systemd-only install path
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-17 17:33:34 +02:00
Mikael Hugo
19b10eb67c
feat: make sf-server own swarm registry sync
2026-05-17 17:05:16 +02:00
Mikael Hugo
077fd0a2a7
remove A2A; swarm enrollment + status projection + web swarms view; headless refactor
...
- A2A removal per M054/R071 cancellation 2026-05-17 (-2294 lines):
- docs/plans/A2A_ADOPTION_PLAN.md, MISSION-A2A-ADOPTION.md deleted
- src/resources/extensions/sf/uok/a2a-agent-server.js,
a2a-transport.js deleted
- tests/a2a-auth.test.mjs deleted
- swarm-dispatch.js purged of A2A-conditional code paths
- New: scripts/sf-swarm-enroll.mjs + test (operator-facing swarm
enrollment, replaces former A2A pairing flow)
- New: src/status-projection.ts + test, web/lib/swarm-status.ts +
test, web/components/sf/swarms-view.tsx, web/app/api/swarms/
(web swarms-view surface — direct visibility into running swarm
state without requiring TUI; aligns with project_tui_deprecating)
- headless-{answers,query,ui,headless}.ts: coordinated tweaks
consistent with the headless-as-default direction (R124 proposal)
- docs/dev/drafts/M053-per-repo-supervisor.md: design refinement
- .sf/REQUIREMENTS.md: small text fixes (6/6 churn)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-17 16:04:06 +02:00
Mikael Hugo
3e002ca698
refactor: consolidate loop signals and gate registry wiring
2026-05-17 14:45:12 +02:00
Mikael Hugo
e93d17a3b4
spec + ADR annotations + dormant-code cleanup
...
- .sf/REQUIREMENTS.md: today's R-entries (R066..R090) covering parallel-rescue
targets — bus deliver verify, drift detection gate, PDD typed contracts,
lane split, Wiggums detector family, repo supervisor design.
- ADR-014/019/020: SF-first banners (operator direction: get SF working before
ACE/wire-architecture changes land downstream).
- docs/records + drafts: 2026-05-07 strategy + cli-agent survey index refresh;
SF/ACE pattern draft annotations.
- roadmap-mutations.js removed (dormant — never imported; reachable shape
verified against handler-relative + dynamic import audit).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-17 13:45:00 +02:00
Mikael Hugo
d2ff4e84ba
land 6 parallel codex/sonnet rescue outputs
...
- R016 swarm bus deliver verify (uok/swarm-dispatch.js + test): _busDispatch now
force-refreshes target inbox and verifies messageId visibility before returning
ok:true; ack-without-deliver class closed.
- R082 drift detection UokGate (uok/drift-detection-gate.js + test): single-task
+ sweep scope; 3 drift classes (artifact-missing, prose-status mismatch,
broken-import); follows ADR-0075 id/type/execute -> GateResult contract.
- R087 PDD typed contracts (engine-types.js + test): ADR-0000 8 PDD fields +
7-dim run-control policy + ADR-0075 GateResult typedefs and validators.
- R090 planning-execute lane split (auto/unit-lanes.js + auto/loop.js + 2 tests):
lane classifier + capacity-aware tick dispatcher; SF_LANES=0 fallback is
byte-equivalent to pre-R090.
- R053 + R054 Wiggums detectors (detectors/repeated-feedback-kind.js +
detectors/artifact-flap.js + 2 tests); R055 stale-lock + R056 periodic-runner
source landed without tests (gap filed as self-feedback).
- M053 per-repo supervisor design + skeleton (supervisor/repo-supervisor.js +
test + design doc): RepoSupervisor class, zero module-global state, tick
stub, failure isolation; M056 trust-boundary called out as follow-up.
85/85 tests green across the 8 new test files.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-17 13:44:42 +02:00
Mikael Hugo
1d753af6b6
docs(dev): draft model registry contract for upcoming refactor
...
Spec for consolidating the three alias tables (benchmark-selector,
auto-model-selection, model-router) into a single SF-extension registry
that reads from @singularity-forge/ai's MODELS and enriches it with
canonical_id, generation, and tier. Shared interface for parallel
Swarm A/B/C work.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 02:57:27 +02:00
Mikael Hugo
085beb5199
docs(sf-ace): restore parked location + keep ADR cross-references
...
SF's S05/T02 executor moved the doc back to docs/dev/sf-ace-patterns.md
while completing the slice (correctly: that was the task's stated
deliverable location). The doc is parked under docs/dev/drafts/ because
ACE Coder has no active consumer for it; re-park it.
Keep the ADR-019 / ADR-020 cross-references the executor added —
they are real content improvements over the previous version.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 22:24:12 +02:00
Mikael Hugo
288a2a5fd7
docs(sf-ace): park SF→ACE pattern reference under docs/dev/drafts/
...
Promotes the .draft stub into a fuller 183-line reference covering six
SF patterns (Preferences, PDD, UOK Gates, Notifications, Skills-as-
Contracts, Idempotency) with SF source paths and ACE adoption notes.
Filed under docs/dev/drafts/ with a STATUS: Draft header — no active
consumer yet. SF's own priorities take precedence until ACE Coder
maintainers pull on convergence.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 21:30:34 +02:00