Skip to content

factory 0.3.8

Latest

Choose a tag to compare

@mikeroySoft mikeroySoft released this 03 Oct 16:38
· 6 commits to main since this release
Immutable release. Only release title and notes can be modified.
fc264ad

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/landing check 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_unavailable for 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.md and factory 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 and uv.lock is never rewritten (PRs #127, #129); the interpreter-escaping test fixture is portable to relocatable Python builds (PR #135).
  • Journal rotation (#131): .factory/events.jsonl rolls into gzip segments events.jsonl.N.gz under the journal flock once it passes [journal] max_mb (default 64; retention segments, default 8). Open-execution lifecycle rows stay live; every outcome row stays readable via lifecycle.read_events, which now includes segments. Only closed-execution lifecycle rows 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] command is prepended to every worker launch (all labels); a committed [worker_wrap] fails to load. doctor checks its executable on PATH. A launch prefix, not sandboxing.
  • Bounded worker boot/resume context (#89): factory dispatch's worker prompt gets a ## Resume context section, 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 frozen protocol.json. Opens .factory/events.jsonl O_RDONLY, freezes a chunk-digested byte range (256 MiB cap, suffix + explicit coverage beyond it) before classifying the latest 12 recorded merged/escalate ticket 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 starts pending.
  • Experiment-informed roadmap next actions (#100): each roadmap/initiative plan (CLI evidence investigate, FM fm_investigate, dashboard Roadmap) gains experiments — the latest retained run of every experiment whose protocol.json names that initiative as roadmap, with its decision link, latest result, per-run recorded disposition and accepted/rejected/deferred/pending grouping, marked informed_by and never a blocker — and next: the next action (implement or decide) with a cited explanation from accepted NOW/NEXT/THEN/LATER Plan tiers, eligibility and real Blocked by edges, plus separate current-priority decisions, runnable, blocked, in-flight, later-held and displaced work and unresolved evidence. Read-only.