Repository navigation
v1.31.0
What's Changed
- chore: sync version 1.30.0 to staging by @rapiercraft-forgedock[bot] in #4342
- fix(lean): pre-PR check round multiplies host parallelism (N commands × FORGE_HOST_PARALLELISM=N) under one heavy slot (#4344) by @rapiercraft-forgedock[bot] in #4345
- fix(lean): sequence-collision check treats date and issue-number filename prefixes as migration numbers (false SEQUENCE_COLLISION, rename to 2027-) (#4343) by @rapiercraft-forgedock[bot] in #4346
- perf(lean): pnpm lanes always miss the dependency cache — deps prep runs before the toolchain shim is on PATH (spawn pnpm ENOENT) (#4347) by @rapiercraft-forgedock[bot] in #4349
- fix(lean): accepted add-deliverable amendment fails the lane's own frozen file-scope validate (conformance.unimplemented, #4348) (#4350) by @rapiercraft-forgedock[bot] in #4351
- perf(lean): toolchain shims launch every pinned package-manager call through npx (+0.5 s and an extra npm process per call) (#4348) by @rapiercraft-forgedock[bot] in #4352
- fix(lean): engine scope gate is the only scope authority — drop builder file-scope validates at contract freeze (#4353) by @rapiercraft-forgedock[bot] in #4367
- feat(stats): alert on degraded fail-soft rates (deps cache, deferred-to-ci, toolchain warnings, outcome spikes) (#4354) by @rapiercraft-forgedock[bot] in #4368
- perf(lean): fix rounds run in a fresh narrow session instead of resuming the builder (2–3M cache-read per round) (#4363) by @rapiercraft-forgedock[bot] in #4369
- fix(review): Gate 3 never demotes a CONFIRMED MEDIUM+ finding to a NOTE only because its marker lacks a scenario field (#4356) by @rapiercraft-forgedock[bot] in #4373
- perf(lean): forgedock check — builder runs the engine's validate and pre-PR checks in-session before finishing (#4364) by @rapiercraft-forgedock[bot] in #4370
- fix(publish): staging version back-sync opens or updates a chore/sync-version-X.Y.Z PR instead of pushing to protected staging (#4357) by @rapiercraft-forgedock[bot] in #4372
- fix(gc): preflight GC blocks batch admission ~40 min — deletes stale remote-tracking lane branches one push at a time without checking origin (#4361) by @rapiercraft-forgedock[bot] in #4377
- feat(lean): builder self-reviews its diff against the reviewer's rubric before finishing (shared rubric, no extra session) (#4374) by @rapiercraft-forgedock[bot] in #4379
- feat(review): forgedock review-staging : deterministic pre-dispatch (route, open-finding gate, scope, prepare, roster, reviewer briefs) (#4358) by @rapiercraft-forgedock[bot] in #4378
- feat(lean): tag every builder attempt with its trigger in PHASE_ATTEMPT_USAGE; rework cost by trigger in forgedock stats (#4362) by @rapiercraft-forgedock[bot] in #4380
- feat(lean): learned per-repo pitfalls from past rework in the context pack (first-pass quality) (#4375) by @rapiercraft-forgedock[bot] in #4382
- feat(review): forgedock review-staging post-dispatch (delivery, extract/classify/file-prepare, Phase 8 gate marker) and reduce review-pr-staging.md to the CLI (#4359) by @rapiercraft-forgedock[bot] in #4383
- feat(review): forgedock review-staging --delta reviews only ..head and credits the earlier pass (#4360) by @rapiercraft-forgedock[bot] in #4384
- feat(conformance): blocking mode for declared risk paths; investigations cannot close fixed without answering their question (#4398) by @rapiercraft-forgedock[bot] in #4411
- fix(lean): preflight contract validate commands for runnability before the builder starts (#4393) by @rapiercraft-forgedock[bot] in #4416
- fix(decompose): sibling sub-issues all edit the same hub files (barrels, event unions, shared fixtures, ADR numbers), so every merge after the first conflicts (#4385) by @rapiercraft-forgedock[bot] in #4420
- feat(review): independent fresh-context, different-model verifier with an adversarial pass (#4397) by @rapiercraft-forgedock[bot] in #4422
- feat(orchestrate): deterministic pre-lane gate for post-deploy follow-ups whose parent fix is not on the default branch (park as awaiting-promotion, no LLM lane) (#4389) by @rapiercraft-forgedock[bot] in #4426
- fix(lean): follow-up key keeps a trailing space when the 240-char slice ends on whitespace — followup.unavailable deferral loop (#4388) by @rapiercraft-forgedock[bot] in #4413
- fix(lean): lanes that add or change e2e specs merge without running them; e2e regressions pile up until the ship PR (#4403) by @rapiercraft-forgedock[bot] in #4427
- perf(lean): bound implement context — quiet-output contract + context ceiling with summarize-and-restart (#4390) by @rapiercraft-forgedock[bot] in #4417
- feat(orchestrate): add issues to a running batch (forgedock orchestrate --add N...) instead of a second batch (#4408) by @rapiercraft-forgedock[bot] in #4431
- fix(lean): CI-verify fails lanes on non-required and superseded check runs, ends ci.red without rerunning flakes, and re-pulls needs-human dependencies (#4387) by @rapiercraft-forgedock[bot] in #4423
- fix(lean): sequence-numbered migrations livelock under parallel lanes — renumber deterministically and late-bind at the merge gate instead of LLM rounds + MAX_SYNCS → needs-human (#4386) by @rapiercraft-forgedock[bot] in #4428
- feat(lean): outcome-based acceptance — declared production probe runs post-promotion and reopens on failure (#4399) by @rapiercraft-forgedock[bot] in #4412
- feat(lean): per-size turn budgets with a typed budget.exceeded outcome instead of unbounded grinding (#4392) by @rapiercraft-forgedock[bot] in #4441
- feat(lean): "verified out of band" requirement class so Lighthouse/field-perf requirements don't park lanes as unimplemented (#4404) by @rapiercraft-forgedock[bot] in #4430
- feat(decompose): gate decomposition on independence and size; one checklist lane otherwise (#4396) by @rapiercraft-forgedock[bot] in #4434
- fix(telemetry): PHASE_ATTEMPT_USAGE.cost_usd is a running session total, not per-attempt cost (#4407) by @rapiercraft-forgedock[bot] in #4435
- fix(lean): builders idle-killed while waiting on heavy-queue jobs or child test processes (#4405) by @rapiercraft-forgedock[bot] in #4433
- feat(engine): structured FORGE:FACTS block (decisions, rejected approaches, hot spots) readable by later lanes (#4401) by @rapiercraft-forgedock[bot] in #4429
- follow-up: 1 deferred item(s) (deferred from #4361) (#4376) by @rapiercraft-forgedock[bot] in #4440
- feat(validate): typescript.lint verification slot, and keep builder self-checks scoped to changed packages (#4381) by @rapiercraft-forgedock[bot] in #4443
- perf(lean): lean lane baseline — no operator memory, slim lane instruction file instead of full CLAUDE.md (#4395) by @rapiercraft-forgedock[bot] in #4437
- feat(lean): make builders use what the pipeline knows — resume digest, populated context-pack sources, then A/B on vs shadow (#4400) by @rapiercraft-forgedock[bot] in #4445
- feat(telemetry): batch efficiency and accuracy metrics — $/merge, turns/merge, context/turn, retries by cause, issue quality vs cost (#4402) by @rapiercraft-forgedock[bot] in #4447
- feat(lean): route the builder model by issue size and risk class, with in-lane escalation (#4394) by @rapiercraft-forgedock[bot] in #4439
- perf(lean): run code exploration in a cheap throwaway subagent that returns a file/line digest (#4391) by @rapiercraft-forgedock[bot] in #4419
- fix(lean): parallel siblings add same-named exports/keys; base-sync merges silently (duplicate keys, lost cross-tenant probe coverage) (#4406) by @rapiercraft-forgedock[bot] in #4424
- fix(orchestrate): clearing a usage-limit hold doesn't wake batches already sleeping on it (#4446) by @rapiercraft-forgedock[bot] in #4455
- perf(lean): builders batch independent read-only tool calls per turn and stop re-reading files (#4410) by @rapiercraft-forgedock[bot] in #4457
- perf(orchestrate): longest-first admission within a priority; decomposed children go to the head of the queue, not the tail (#4409) by @rapiercraft-forgedock[bot] in #4458
- fix(engine): run logs keyed by issue number only — runs from different repos on one host append to the same ~/.forge/runs/.jsonl (#4432) by @rapiercraft-forgedock[bot] in #4460
- feat(lean): deterministic public-API-shape change detector (signature, sync↔async, generator↔function, removed/renamed symbol) (#4449) by @rapiercraft-forgedock[bot] in #4463
- fix(lean): scan-based comment strip in the fix-round summary and issue-quality tag (CodeQL, release review #4462) by @rapiercraft-forgedock[bot] in #4464
- fix(schedd): SIGTERM releases the lock but doesn't stop hosted batches or exit — a second daemon re-hosts the same batches (#4454) by @rapiercraft-forgedock[bot] in #4461
- fix: forge-probe block with CRLF line endings (web UI authored) is not parsed so the declared probe never runs (review finding — PR #4462) (#4466) by @rapiercraft-forgedock[bot] in #4472
- fix: resolveSequenceConflicts takes the base side for any conflicted file named NNN-/NNN_ (no series check), discarding lane edits, then lean.mjs skips tests and re-review (review finding — PR #4462) (#4465) by @rapiercraft-forgedock[bot] in #4473
- fix(orchestrate): --resume treats numeric values of valued flags (--parallel 5) as issues to add (#4469) by @rapiercraft-forgedock[bot] in #4474
- fix(review-staging): open-review-finding gate posts GATE_PASS when gh reads fail or the bundle list is empty (#4470) by @rapiercraft-forgedock[bot] in #4477
- fix: gh issue view comments by the GitHub App have no Bot type or bot suffix so the resume digest and context facts drop the engine's own FORGE comments (review finding — PR #4462) (#4467) by @rapiercraft-forgedock[bot] in #4476
- fix: Probe run command is executed from any Bot-authored issue body or comment and the parser matches fenced blocks nested in quoted text, so quoted untrusted content can become host command execution (review finding — PR #4462) (#4468) by @rapiercraft-forgedock[bot] in #4475
- fix(review-staging): --delta credits an earlier pass without checking panel completeness or degraded markers (#4471) by @rapiercraft-forgedock[bot] in #4478
- feat(lean): light-lane eligibility and upgrade-trigger rules (pure, forge.yaml off|shadow|on) (#4448) by @rapiercraft-forgedock[bot] in #4459
- fix(gc): release and remove repo-keyed lane ledgers (#4432 regression, release review #4462) by @rapiercraft-forgedock[bot] in #4479
- Release: lane cost and context bounds, risk-path conformance, verifier, orchestrate --add/--cancel, awaiting-promotion gate by @rapiercraft-forgedock[bot] in #4462
Full Changelog: v1.30.0...v1.31.0