Repository navigation
·
6 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
Compared against 0.3.5 (e3abd2b). Released channel stable points at v0.3.8. Versions 0.3.6 and 0.3.7 were not released.
- Idle dispatcher passes write no lifecycle rows for parked tickets (#130): a
manage/landingcheck that changes nothing no longer journals its enter/lock/handoff/exit trail; passes that act keep the full trail. (PR #133) - Bound the dashboard snapshot's executions list (#134): Ops no longer loads hundreds of MB on long-lived repositories.
- Roadmap stops reporting
runtime_unavailablefor closed or runtime-known tickets (#137). - Dashboard docked ticket drawer: desktop docks the detail drawer beside the queue; narrow screens keep the modal overlay with focus trap, Escape and reduced motion. (PR #143)
- Upstream sync lands the newest conflict-free upstream prefix instead of parking the whole backlog behind one conflicting commit. (PR #117)
- Split-aware eval promotion contract (#126):
docs/eval-promotion-contract.mdandfactory learn --promotion claim.json; keep only when the held-out split improves. (PR #128) - Experiment evidence in a fresh FM session (#99); reviewer-calibration corpus grown to 11 cases with confirmed oracles and adjudication rows (#34, PRs #144–#148).
- Repository gate runs
uv run --frozen --no-managed-python, so declared dependencies are installed anduv.lockis never rewritten (PRs #127, #129); the interpreter-escaping test fixture is portable to relocatable Python builds (PR #135). - Journal rotation (#131):
.factory/events.jsonlrolls into gzip segmentsevents.jsonl.N.gzunder the journal flock once it passes[journal] max_mb(default 64;retentionsegments, default 8). Open-executionlifecyclerows stay live; every outcome row stays readable vialifecycle.read_events, which now includes segments. Only closed-executionlifecyclerows of expired segments are dropped; the oldest kept segment grows with carried outcome rows. - Host-owned worker argv prefix (#3):
[defaults.worker_wrap]/[repo."owner/name".worker_wrap]commandis prepended to every worker launch (all labels); a committed[worker_wrap]fails to load.doctorchecks its executable on PATH. A launch prefix, not sandboxing. - Bounded worker boot/resume context (#89):
factory dispatch's worker prompt gets a## Resume contextsection, built only from the latest retained accepted result (#88) and the local plan-bound journal (#57), when a ticket has prior retained history. It reports the prior accepted head/result and whether the admitted scope has since moved (unchanged/changed/unavailable); never a worker log, prompt, or transcript, never a scope rewrite, and no widened context budgets. - O1 bounded observation producer (#97): stdlib-only
experiments/o1-observation/observer.py(start/status/stop/report) with frozenprotocol.json. Opens.factory/events.jsonlO_RDONLY, freezes a chunk-digested byte range (256 MiB cap, suffix + explicit coverage beyond it) before classifying the latest 12 recordedmerged/escalateticket executions by exact structured reason codes only. Runs land in exclusive, never-overwritten directories under the main root's.factory/experiments/o1-observation/, capped at 10 minutes, 64 MiB output and three iterations per lineage; no subprocess, network or model calls. Disposition startspending. - Experiment-informed roadmap next actions (#100): each roadmap/initiative plan (CLI
evidence investigate, FMfm_investigate, dashboard Roadmap) gainsexperiments— the latest retained run of every experiment whoseprotocol.jsonnames that initiative asroadmap, with its decision link, latest result, per-run recorded disposition and accepted/rejected/deferred/pending grouping, markedinformed_byand never a blocker — andnext: the next action (implementordecide) with a cited explanation from acceptedNOW/NEXT/THEN/LATERPlan tiers, eligibility and realBlocked byedges, plus separate current-priority decisions, runnable, blocked, in-flight, later-held and displaced work and unresolved evidence. Read-only.