openplanr 1.19.0
Minor Changes
Operating Board outputs and epic-loop release for
openplanr operate(SPEC-003), theopenplanrminor bump 1.18.0 → 1.19.0. Every claim below is backed by a named proof; nothing describes a phase this repository has not actually reached.Cycle reports and boards are now persisted as truthful on-disk artifacts: a single rich assembly drives both
cycles/<id>/report.mdand everyboard/<role>.md, soreport.mdis byte-identical to the review rendering and each evaluated board file carries its lens recommendations with impact/confidence/ease (I/C/E) scores — proven bytests/unit/operate-projection-persistence.test.ts("renders cycles/<id>/report.md and rich board files from the assembled lens artifacts"). The readable tree is consolidated: the legacyprojections/directory is retired (never written), the parked-findingsbacklog.mdis promoted to the top level, andstate.jsonmoves under.state/— proven bytests/integration/operate-preview-boundaries.test.tsand the persistence suite's asserted paths (.planr/operate/backlog.md,.planr/operate/.state/state.json, noprojections/).Evidence loss is never silent. A capped repository walk names the last path it reached and the top-level directories it never scanned, mission-index drops are counted and surfaced as cycle warnings, sensitivity narrowing is scoped to the offending items, and a starved role is gated not-ready with a governed data gap while every ready role still dispatches — proven by
tests/integration/operate-evidence-recovery.test.ts("gates a starved repository role with a governed gap while other roles still dispatch (FR2)"). Collection is prioritized and fair: per-top-level-directory round-robin plus git-recency ordering, with split repository/planr file budgets replacing the sharedmaxFilescounter — proven bytests/integration/operate-evidence-monorepo-fairness.test.ts("samples every product top-level directory under a cap the tree exceeds combined" and its deterministic re-selection check).Mission budgets are sized for real repositories: the derived mission-budget clamp ceiling rises from 9 to 32 KiB against real index-item costs, per-role
maxEvidenceItemscaps are enforced, and an oversized index is truncated to fit with the drop reported as a cycle warning — never a silent drop and never an unexplained fail-closed on a healthy repo — proven bytests/unit/operate-mission-packet.test.ts("truncates a monorepo-scale index to the cap, fits the budget, and reports the drop (FR4)" and "leaves a healthy repository under its cap untouched — no warning, no fail-closed (FR4)"), with the field-scale pack path still failing closed with no provider invocation intests/unit/operate-advisor-pack-scale.test.ts.Re-initialization preserves machine-local preferences: a no-flag re-init carries
dispatchModeOverrides,adapterLeaseDurationMs, andlastRunAtforward, and the init preview names exactly which preference a re-init will change — proven bytests/unit/operate-initialization-replay.test.ts("carries dispatchModeOverrides, adapterLeaseDurationMs, and lastRunAt forward on a re-init with no flags (field repro)") andtests/integration/operate-guided-init.test.ts("names exactly which machine-local preferences a re-init will change in the preview").The epic loop closes: the report groups related accepted findings into a ready-to-run
openplanr epic create --title …suggestion naming the member findings, and thecreate-epicroute applies a real.planr/epics/EPIC-NNN-<slug>.mdartifact through the write-ahead journal with byte-exact rollback while never invoking PLAN or SHIP (R1 intact) — proven bytests/integration/operate-decision-brief-render.test.ts("renders one openplanr epic create suggestion naming both accepted findings") andtests/integration/operate-route-lanes.test.ts("elects, applies, and byte-exact rolls back a grouped-finding epic without ever invoking PLAN or SHIP").Pins the optional
planr-pipelineruntime to the exact0.35.0— the build that ships the FR4 packet-enforcement half, the additive FR8create-epicoperating-route-plan schema, the reviewed registry role budgets, and the regenerated operate assets this release proves against (optionalDependencies["planr-pipeline"] === "0.35.0", mirrored by the three workflowref: v0.35.0pins and both packed-install e2e assertions).