Followup: brain-server-stage2-flip¶
URL: https://mkdocs.justinsforge.com/memory/followups/brain-server-stage2-flip-2026-06-10/
- Status: ✓ success
- Scheduled: 2026-06-10 18:00 CT
- Fired: 2026-06-10 18:01 CT
- Model: claude-opus-4-8
- Duration: 58.8s
- Followup ID: d39d6a0f79ac
Summary¶
(no summary captured)
Report¶
Soak window has only 1 server-engine capture call (below the 3-call threshold) → INCONCLUSIVE by rule. No flip. Here is the report.
SUMMARY## INCONCLUSIVE: only 1 capture server call in soak window (need ≥3); it was clean (0 fail, 0 fallback, 1.6s), but volume too low to flip. Soak extended 1 day.¶
forge-brain-server Stage-2 Flip Eval — 2026-06-10 18:00 CT¶
Soak verdict: INCONCLUSIVE — FLIP SKIPPED¶
The soak window (2026-06-09 21:00 CT → now) contains only 1 capture call on engine == 'server'. The contract requires ≥3 server calls to render a verdict; below that, the rule is explicit: treat as INCONCLUSIVE, do not flip, extend the soak one more day. Capture inbox traffic was light overnight, so the engine simply wasn't exercised enough to certify.
Numbers¶
| Metric | Value | Threshold | Pass? |
|---|---|---|---|
| Server-engine capture calls | 1 | ≥3 | ✗ (too few) |
| Failed server calls | 0 | 0 | ✓ |
Unexpected fallbacks (capture rows w/o engine=server) |
0 | 0 | ✓ |
| Latency median | 1602 ms | — | ✓ |
| Latency p90 (n=1) | 1602 ms | <20000 ms | ✓ |
| forge-brain-server active | yes | active | ✓ |
| forge-inbox-capture active | yes | active | ✓ |
The one call:
Everything that was observed is clean — zero failures, zero fallbacks, 1.6s well under the 20s p90 bar. The blocker is purely sample size.
Cross-checks¶
- Quota JSONL: 1 capture row with
engine='server', 0 capture rows without it (no silent subprocess fallbacks). Coordinator (forge_telegram_brain[coordinator], 7 calls) and the memory/morning-report jobs remainedengine=None(subprocess) as expected — only capture is on the server engine pre-flip. - brain-server /health:
{"ok": true, "uptime_s": 74850, total_queries: 2, total_errors: 0}for claude-sonnet-4-6. Server up ~20.8h, 0 errors. - journalctl forge-inbox-capture: no ERROR / fallback / traceback lines in window.
- journalctl forge-brain-server: 2
POST /brainrequests; one ERROR at 23:19:29 —exit code 143(SIGTERM, 128+15), i.e. a client recycle/restart, not a request failure. Health reportstotal_errors: 0, so this did not corrupt a brain call. Noted, not counted against the soak.
(Minor note: server logged 2 /brain requests but quota recorded 1 capture row; the extra is consistent with a selftest/health-path query, not a missed capture failure.)
Action taken¶
None. The stage-1 drop-in remains FORGE_BRAIN_ENGINE=server:capture. Coordinator and general-purpose stay on subprocess. No drop-in copied, no daemon-reload, no restarts.
Recommendation¶
Extend the soak one more day. Re-fire this eval 2026-06-11 18:00 CT. If capture traffic stays thin, consider seeding deterministic load (a few /today-class capture messages) to clear the ≥3-call bar rather than waiting on organic volume.
Revert command (for reference; nothing to revert this run)¶
sudo rm -f /etc/systemd/system/forge-inbox-capture.service.d/brain-engine.conf \
/etc/systemd/system/forge-lifeos-coordinator.service.d/brain-engine.conf
sudo systemctl daemon-reload && sudo systemctl restart forge-inbox-capture forge-lifeos-coordinator
forge-brain-server also degrades to subprocess automatically (kill-switch fallback).
SOAK EVAL COMPLETE