mirror of
https://github.com/garrytan/gstack.git
synced 2026-11-04 15:57:33 +01:00
* v1.91.79.0 feat(eval-plan): /eval-plan tier 1, lane-check, evidence verify, coordinator contract, owner brief, contributor-PR mode, banned terms (multi-agent wave PR E) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(spec,review): fail closed when the coordinator contract cannot be read; restore the omitted-Army sentence The spec --execute spawn captures `gstack-autoplan contract` before piping the archive, so a lane never starts without the contract; the C9 fixture installs its gstack-like checkout (bin, lib, a contract stub) at every host's global root. Review Step 5.8 keeps the pinned 'without claiming specialist coverage' wording. Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> --------- Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
116 lines
13 KiB
JSON
116 lines
13 KiB
JSON
{
|
||
"newModules": [
|
||
{ "file": "lib/pricing.ts", "movedFrom": "test/helpers/pricing.ts (PRICING, estimateCostUsd; plan E1 moved the table under lib/ so bin/gstack-eval-plan can price arms)" },
|
||
{ "file": "lib/eval-plan.ts", "movedFrom": "(new: preregistration check, priced arms, $0 dry run, priced pilot ledger behind bin/gstack-eval-plan, plan E1)" },
|
||
{ "file": "lib/lane-ownership.ts", "movedFrom": "(new: lane ownership check behind bin/gstack-lane-check, plan E2)" },
|
||
{ "file": "lib/coordinator-contract.ts", "movedFrom": "(new: the inherited coordinator contract text, plan E2)" },
|
||
{ "file": "lib/owner-brief.ts", "movedFrom": "(new: the one-page owner brief and draft-direction close behind bin/gstack-owner-brief, plan E3)" },
|
||
{ "file": "lib/contributor-mode.ts", "movedFrom": "(new: maintainer-set detection behind bin/gstack-contributor-mode, plan E3)" },
|
||
{ "file": "lib/banned-terms.ts", "movedFrom": "(new: .gstack/banned-terms.json scan behind bin/gstack-banned-terms, plan E3)" },
|
||
{ "file": "scripts/lib/shard-engine.ts", "movedFrom": "scripts/test-strict-output.ts" },
|
||
{ "file": "autoplan/bin/phase-publication-hook.ts", "movedFrom": "(owner: the /autoplan publication guard; ENG-17 keeps it under the module limit)" },
|
||
{ "file": "autoplan/bin/guard-reasons.ts", "movedFrom": "(new: guard reason codes, denial text and anchors, ENG-17)" },
|
||
{ "file": "autoplan/bin/guard-log.ts", "movedFrom": "(new: the guard decision log, CEO-12)" },
|
||
{ "file": "autoplan/bin/guard-journal.ts", "movedFrom": "(new: what the guard reloads of its journal, CEO-2/ENG-4/ENG-5)" },
|
||
{ "file": "lib/claude-journal-records.ts", "movedFrom": "lib/claude-public-transcript.ts" },
|
||
{ "file": "lib/claude-owned-journal.ts", "movedFrom": "lib/claude-public-transcript.ts" },
|
||
{ "file": "scripts/lib/eval-history.ts", "movedFrom": "(new: headroom, red ledger and run triage, kept out of scripts/eval-flake-rank.ts)" },
|
||
{ "file": "scripts/lib/measure-bar.ts", "movedFrom": "(new: the ship-measure measurement bar, kept out of scripts/ship-measure.ts)" },
|
||
{ "file": "scripts/ship-measure-sweep.ts", "movedFrom": "(new: the weekly off-ship qualification sweep, kept out of scripts/ship-measure.ts)" },
|
||
{ "file": "scripts/lib/published-text.ts", "movedFrom": "(new: one sanitizer for model-written text reaching public reports)" },
|
||
{ "file": "test/helpers/session-ledger.ts", "movedFrom": "(new: per-session ledger every paid runner appends to)" },
|
||
{ "file": "scripts/lib/paid-types.ts", "movedFrom": "scripts/test-paid-shards.ts" },
|
||
{ "file": "scripts/lib/paid-select.ts", "movedFrom": "scripts/test-paid-shards.ts" },
|
||
{ "file": "scripts/eval-bg.ts", "movedFrom": "(new: eval:bg dispatch/local backend, W5d)" },
|
||
{ "file": "test/helpers/module-size.ts", "movedFrom": "(new: ratchet (c) counter)" },
|
||
{ "file": "scripts/lib/free-home-guard.ts", "movedFrom": "(new: free-lane home-write tripwire, kept out of scripts/test-free-shards.ts)" },
|
||
{ "file": "browse/src/routes/activity.ts", "movedFrom": "browse/src/server.ts" },
|
||
{ "file": "browse/src/routes/commands.ts", "movedFrom": "browse/src/server.ts" },
|
||
{ "file": "browse/src/routes/core.ts", "movedFrom": "browse/src/server.ts" },
|
||
{ "file": "browse/src/routes/files.ts", "movedFrom": "browse/src/server.ts" },
|
||
{ "file": "browse/src/routes/index.ts", "movedFrom": "browse/src/server.ts" },
|
||
{ "file": "browse/src/routes/inspector.ts", "movedFrom": "browse/src/server.ts" },
|
||
{ "file": "browse/src/routes/pairing.ts", "movedFrom": "browse/src/server.ts" },
|
||
{ "file": "browse/src/routes/pty.ts", "movedFrom": "browse/src/server.ts" },
|
||
{ "file": "browse/src/routes/table.ts", "movedFrom": "browse/src/server.ts" },
|
||
{ "file": "browse/src/routes/tokens.ts", "movedFrom": "browse/src/server.ts" },
|
||
{ "file": "browse/src/routes/tunnel.ts", "movedFrom": "browse/src/server.ts" },
|
||
{ "file": "scripts/resolvers/review-dashboard.ts", "movedFrom": "scripts/resolvers/review.ts" },
|
||
{ "file": "scripts/resolvers/plan-gates.ts", "movedFrom": "scripts/resolvers/review.ts" },
|
||
{ "file": "scripts/resolvers/spec-review.ts", "movedFrom": "scripts/resolvers/review.ts" },
|
||
{ "file": "scripts/resolvers/outside-voice-steps.ts", "movedFrom": "scripts/resolvers/review.ts" },
|
||
{ "file": "scripts/resolvers/review-scope.ts", "movedFrom": "scripts/resolvers/review.ts" },
|
||
{ "file": "test/helpers/pty/auq.ts", "movedFrom": "test/helpers/claude-pty-runner.ts" },
|
||
{ "file": "test/helpers/pty/binary.ts", "movedFrom": "test/helpers/claude-pty-runner.ts" },
|
||
{ "file": "test/helpers/pty/boundaries.ts", "movedFrom": "test/helpers/claude-pty-runner.ts" },
|
||
{ "file": "test/helpers/pty/classify.ts", "movedFrom": "test/helpers/claude-pty-runner.ts" },
|
||
{ "file": "test/helpers/pty/fake-session.ts", "movedFrom": "(new: fake PTY driver)" },
|
||
{ "file": "test/helpers/pty/judge.ts", "movedFrom": "test/helpers/claude-pty-runner.ts" },
|
||
{ "file": "test/helpers/pty/launch.ts", "movedFrom": "test/helpers/claude-pty-runner.ts" },
|
||
{ "file": "test/helpers/pty/plan-native.ts", "movedFrom": "test/helpers/claude-pty-runner.ts" },
|
||
{ "file": "test/helpers/pty/runners/counting.ts", "movedFrom": "test/helpers/claude-pty-runner.ts" },
|
||
{ "file": "test/helpers/pty/runners/floor.ts", "movedFrom": "test/helpers/claude-pty-runner.ts" },
|
||
{ "file": "test/helpers/pty/runners/observation.ts", "movedFrom": "test/helpers/claude-pty-runner.ts" },
|
||
{ "file": "test/helpers/pty/screen.ts", "movedFrom": "test/helpers/pty-screen.ts" },
|
||
{ "file": "test/helpers/pty/session.ts", "movedFrom": "test/helpers/claude-pty-runner.ts" },
|
||
{ "file": "lib/memory-ingest-landing.ts", "movedFrom": "(new: A1 memory ingest landing check, state transitions and reconcile)" },
|
||
{ "file": "lib/doctor-components.ts", "movedFrom": "(new: the gstack-doctor --check component table, rendered into bin/gstack-doctor-components.sh)" },
|
||
{ "file": "lib/result-codes.ts", "movedFrom": "(new: reason codes with troubleshooting anchors for workflow-command error lines, sibling of lib/gate-outcomes.ts)" },
|
||
{ "file": "lib/runtime-pins.ts", "movedFrom": "(new: the doctor's project pins row; reads a target repository's Bun and Node pins)" },
|
||
{ "file": "bin/gstack-runtime-pins.ts", "movedFrom": "(new: thin entrypoint over lib/runtime-pins.ts)" },
|
||
{ "file": "scripts/gen-doctor-components.ts", "movedFrom": "(new: renders lib/doctor-components.ts into bin/gstack-doctor-components.sh)" },
|
||
{ "file": "lib/gate-diff/classify.ts", "movedFrom": "(new: gate-edit detector path floor and CLAUDE.md Gate Integrity block, W1)" },
|
||
{ "file": "lib/gate-diff/tags.ts", "movedFrom": "(new: gate-edit detector RH tags, W1)" },
|
||
{ "file": "lib/gate-diff/git.ts", "movedFrom": "(new: gate-edit detector candidate model and hardened git calls, W1)" },
|
||
{ "file": "lib/gate-diff/render.ts", "movedFrom": "(new: gate-edit detector stdout contract, W1)" },
|
||
{ "file": "lib/gate-diff/index.ts", "movedFrom": "(new: gate-edit detector pure core, W1)" },
|
||
{ "file": "lib/result-codes.ts", "movedFrom": "(new: result codes and troubleshooting anchors for unattended runs, multi-agent wave B0)" },
|
||
{ "file": "lib/headless-artifacts.ts", "movedFrom": "(new: the unattended artifact contract: schemas, validator, result grammar, B0)" },
|
||
{ "file": "lib/gate-list.ts", "movedFrom": "(new: the final gate list renderer and reply grammar, B9)" },
|
||
{ "file": "lib/autoplan-timing.ts", "movedFrom": "(new: autoplan phase timing, estimate and cycle summary, B10)" },
|
||
{ "file": "lib/ship-policy.ts", "movedFrom": "(new: the repo ship policy schema, containment and base-branch loader, C1)" },
|
||
{ "file": "lib/changelog-check.ts", "movedFrom": "(new: CHANGELOG re-heading, checks and gate-ahead merge, C2)" },
|
||
{ "file": "lib/restamp.ts", "movedFrom": "(new: the one-step restamp: staging worktree, release-tool contract, journal, gate-ahead, C2)" },
|
||
{ "file": "lib/evidence-bundle.ts", "movedFrom": "(new: portable evidence bundle, execution identity and ancestor check, C3/C7)" },
|
||
{ "file": "lib/tree-receipt.ts", "movedFrom": "(new: tree equality modulo stamps and per-gate reuse, C3)" },
|
||
{ "file": "lib/ship-receipt.ts", "movedFrom": "(new: the ship receipt block, PR-body placement and adoption census, C5)" },
|
||
{ "file": "lib/spend-ledger.ts", "movedFrom": "(new: the spend cap admission ledger reserve/settle/release and the file lock, B2)" },
|
||
{ "file": "lib/outside-voice-runner.ts", "movedFrom": "(new: the outside-voice adapter interface, model families and runner selection, B3)" },
|
||
{ "file": "lib/outside-voice-api.ts", "movedFrom": "(new: the direct OpenAI/Anthropic api runner labeled supplied-input review, B3)" },
|
||
{ "file": "lib/autoplan-reconcile.ts", "movedFrom": "(new: canonical findings parse and native/outside reconciliation, B11)" },
|
||
{ "file": "lib/autoplan-prompts.ts", "movedFrom": "(new: phase order, scope, per-voice prompt files and the checklist loader, B2/B4)" },
|
||
{ "file": "lib/autoplan-state.ts", "movedFrom": "(new: the unattended runner's on-disk state, journal and locked writes, B2)" },
|
||
{ "file": "lib/autoplan-run.ts", "movedFrom": "(new: next/submit/resume over lib/autoplan-state.ts, B2)" },
|
||
{ "file": "lib/autoplan-gate.ts", "movedFrom": "(new: phase close, gate build, answer and reopen, B2/B9)" },
|
||
{ "file": "lib/autoplan-export.ts", "movedFrom": "(new: the unattended export file set, B2/B12)" },
|
||
{ "file": "lib/spec-review-cap.ts", "movedFrom": "(new: the spec-review loop at the cap: numbered gaps and deterministic fix verification, B8)" },
|
||
{ "file": "bin/gstack-autoplan", "movedFrom": "(new: thin entrypoint over lib/autoplan-run.ts, B2)" },
|
||
{ "file": "bin/gstack-outside-voice", "movedFrom": "(new: thin entrypoint over lib/outside-voice-runner.ts, B3)" },
|
||
{ "file": "lib/plan-reality.ts", "movedFrom": "(new: the reality-row table, the REALITY: line grammar and the row checker, D1)" },
|
||
{ "file": "bin/gstack-plan-reality", "movedFrom": "(new: thin entrypoint over lib/plan-reality.ts, D1)" },
|
||
{ "file": "scripts/resolvers/plan-reality.ts", "movedFrom": "(new: renders {{PLAN_REALITY_ROWS}} from lib/plan-reality.ts, D1)" },
|
||
{ "file": "scripts/resolvers/sideways.ts", "movedFrom": "(new: sideways sweep, forced-CRITICAL list, flake-fix number and undeclared-behavior lines for review, cso and investigate, D2/D3)" },
|
||
{ "file": "lib/regen.ts", "movedFrom": "(new: the generated-file registry, scratch-worktree freshness check and in-place write, C4)" },
|
||
{ "file": "lib/issue-links.ts", "movedFrom": "(new: issue closure intent, Refs/Fixes classification and flake-issue mapping for Step 18, C6)" },
|
||
{ "file": "lib/pregate/types.ts", "movedFrom": "(new: the pre-gate check and context contracts, C8)" },
|
||
{ "file": "lib/pregate/config.ts", "movedFrom": "(new: .gstack/pregate.json schema, containment and base-branch loader, C8)" },
|
||
{ "file": "lib/pregate/workflows.ts", "movedFrom": "(new: lane discovery from .github/workflows, C8)" },
|
||
{ "file": "lib/pregate/import-graph.ts", "movedFrom": "(new: imports ∪ repo-path literals ∪ bin convention ∪ declarations, C8)" },
|
||
{ "file": "lib/pregate/context.ts", "movedFrom": "(new: touched files, base inputs and before/after fingerprinting, C8)" },
|
||
{ "file": "lib/pregate/lane-selection.ts", "movedFrom": "(new: touched files to lanes, local vs requires-remote, C8)" },
|
||
{ "file": "lib/pregate/index.ts", "movedFrom": "(new: the check registry, two-stage runner, pregate.json writer and publication verifier, C8)" },
|
||
{ "file": "lib/pregate/checks/regen.ts", "movedFrom": "(new: pre-gate check, C8)" },
|
||
{ "file": "lib/pregate/checks/secrets.ts", "movedFrom": "(new: pre-gate check, C8)" },
|
||
{ "file": "lib/pregate/checks/strays.ts", "movedFrom": "(new: pre-gate check, C8)" },
|
||
{ "file": "lib/pregate/checks/literals.ts", "movedFrom": "(new: pre-gate check, C8)" },
|
||
{ "file": "lib/pregate/checks/lanes.ts", "movedFrom": "(new: pre-gate check with the pipefail runner and requires-remote obligations, C8)" }
|
||
],
|
||
"residualFiles": [
|
||
{ "file": "scripts/test-free-shards.ts", "maxLines": 2361, "reason": "free lane policy after the shard engine took spawn, sandbox, logs, seeds and flags" },
|
||
{ "file": "scripts/test-paid-shards.ts", "maxLines": 1921, "reason": "paid lane policy after the shard engine took sandbox, logs, seeds, verdicts and flags" },
|
||
{ "file": "browse/src/server.ts", "maxLines": 2224, "reason": "server lifecycle, tunnel filter and fetch entry after the route table took dispatch, auth and handlers" },
|
||
{ "file": "test/helpers/claude-pty-runner.ts", "maxLines": 30, "reason": "re-export barrel for the 117 importers after the split into test/helpers/pty/*" }
|
||
],
|
||
"allowlist": []
|
||
}
|