fix(ci): shared-CI unblock — dep-lock INTENT + engine imports + runner env + rustfmt rollout + ratchet re-record (#2582-adjacent) #2635
Open
conductor
wants to merge 19 commits from
fix/shared-ci-unblock into master
pull from: fix/shared-ci-unblock
merge into: conductor:master
conductor:master
conductor:fix/ci-concurrency-per-ref
conductor:fix/2552-handler-triage
conductor:feat/2618-context
conductor:fix/2604-scaffolding-surgical
conductor:feat/2618-provider-stack
conductor:feat/final-integration
conductor:feat/2618-safety-parity
conductor:feat/2609-integration-w6
conductor:feat/2618-audit-forge
conductor:feat/2618-background-memory
conductor:feat/2618-operator-residual
conductor:feat/2618-warm-recall
conductor:feat/2617-research-r3
conductor:feat/2606-spine-w4
conductor:feat/2617-research-r2
conductor:fix/2607-spine-dichotomy
conductor:feat/2609-go-interception-w3
conductor:feat/2618-memory-store
conductor:feat/2617-research-r1
conductor:feat/2609-go-interception-w2
conductor:fix/data-safety-audits
conductor:fix/integration-audits
conductor:fix/sqlite-floor-audits
conductor:feat/2617-research-r0
conductor:feat/2609-model-replay
conductor:fix/tool-boundary-audits
conductor:feat/2609-go-interception-w1
conductor:fix/2582-release-final
conductor:fix/2613-self-hosting-gate
conductor:removal-prep/dead-superseded-pile
conductor:removal-prep/auto-context
conductor:removal-prep/reconcile-tools
conductor:removal-prep/openai-compat-transport
conductor:removal-prep/message-queue
conductor:removal-prep/forge-client
conductor:removal-prep/cache
conductor:removal-prep/paths
conductor:fix/2532-text-selection
conductor:throwaway-force-merge-test
conductor:fix/2582-namespace-cli-flag
conductor:feat/2582-release-reporting
conductor:fix/2535-pane-scrollback
conductor:dichotomy-gap-f0
conductor:gap-transport
conductor:gap-construction-commands
conductor:wave-ca-ms
conductor:tmp-detach
conductor:gap-ltr
conductor:backup-rune-as
conductor:wave-ax
conductor:feat/wave6-rust-backend
conductor:feat/wave4-consolidation-kernel
conductor:ci/build-cognition-core-unit
conductor:ci/register-w34-canaries
conductor:feat/wire-programme-continuation
conductor:feat/wire-construction-commands-dispatch
conductor:feat/wire-stage-guards-transition
conductor:feat/tui-pane-swap-chat-left
conductor:fix/operator-probe-tools-2468
conductor:r2-wave2-memory-retrieval
conductor:r2-wave2-memory-storage
conductor:phase-g-strangler-evidence-provenance
conductor:phase-g-strangler-retrieval-index
conductor:tranche-r1-wave-0
conductor:m10-derive-refresh
conductor:t22-scaffolding-default-path
conductor:research-depth-gate
conductor:fix-407-autolabel
conductor:fix-tui-banner-surface
conductor:r13-m9-pr-proof
conductor:gitea-internal-endpoint
conductor:auto-label-epic-kinds
conductor:issue-templates-heading
conductor:issue-templates
conductor:event-driven-clean
conductor:deadline-return-fix
conductor:hardening-live-proof
conductor:hardening-authority-identity
conductor:event-driven-final-metrics
conductor:event-driven-gates-evidence
conductor:event-driven-continuation
conductor:async-intent-live-proof
conductor:async-intent-normalization
conductor:memory-t0-external-report
conductor:memory-t0-asis-map
conductor:t21.5-pending-class-fix
conductor:t21.5-gate-evidence
conductor:t21.5-root-cause-continuation
conductor:t21.4-gate-evidence
conductor:t21.4-qualify-defaults-fix
conductor:t21.4-final-v1-proof
conductor:prototype/openai-compat-transport
conductor:wr-experiment
conductor:adapt2-route-authority
conductor:pl0-experience-ledger
conductor:d5-authority-audit
conductor:task-d-stage-contracts
conductor:b3v2-fresh
conductor:d5-tightening
conductor:d4d5-artifact-contract
conductor:correction-1-d2d3
conductor:adapt9-artifact-authority
conductor:prov1-source-ledger
conductor:infra1-accept
conductor:infra1-probe5
conductor:infra1-probe4
conductor:infra1-probe3
conductor:infra1-probe2
conductor:infra1-probe
conductor:obs1-telemetry
conductor:rp13-metrics
conductor:rp12-rerun-163
conductor:rp11-retirement
conductor:issue161-harness-v2
conductor:issue161-harness
conductor:rp2-canonical-stage-model
conductor:sweep-live
conductor:umbrella-rewire
conductor:trigger-bump-2
conductor:release-token-fix
conductor:trigger-bump
conductor:version-reconcile
conductor:umbrella-pipeline
conductor:pinned-live
conductor:research-structuralization
conductor:merge-robot-checkout
conductor:p1-03-memory-selection
conductor:coverage-ratchet
conductor:failure-auto-filing
conductor:release-safety-net
conductor:ci-dependency-lock
conductor:bugfix-contract
conductor:merge-robot-fix
conductor:adversarial-gates
conductor:merge-robot
conductor:runner-desktop-gate
conductor:research-gate-evidence
conductor:backup/pinned-20260908-035000
conductor:release-tui-footer
No Reviewers
Labels
Clear labels
P0 — critical
P1 — high
P2 — medium
P3 — low
blocked
bug
custodian
epic
feature
governance
growth
identity
in-progress
incomplete
infrastructure
life
memory
memory-atlas
needs-testing
perception
ready
release-drift
research
rune
scaffolding
spine,correction
spine,deferred
spine,resolved
strangler,burn,endgame,deferred
strangler,burn,endgame,inventory,epic
tui
tui,epic
tui,openspec
v1-course-correction
Spine/core correctness or blocks other work — do first
Material user value or real defect (money, bugs, next-stage dep)
Quality/consolidation improvement
Measurement / benchmark / deferred policy
Dependencies open
Confirmed defect or regression
Rune v1 course-correction issue graph
New capability or improvement
Currently being worked on by Rune
Incomplete work — draft PR with ledger, awaiting resume
Memory Research Atlas child domain
Needs manual testing with dumbed-down steps before close
Order satisfied - Rune may start
Research jobs — spikes, watchlists, evidence work
rune
scaffolding
spine,correction
spine,deferred
spine,resolved
strangler,burn,endgame,deferred
strangler,burn,endgame,inventory,epic
tui
tui,epic
tui,openspec
Rune v1 course-correction issue graph
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: conductor/rune#2635
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
In plain English
Every open PR's CI is red on a set of infrastructure defects that show up identically on branch runs and on master runs (34696 vs 34728) — nobody's own change can turn green until these are fixed. This PR is that shared repair, so PRs like #2594 (the release-reporting delivery, #2582-adjacent) can be judged on their own merits.
The five shared reds, repaired
pytest-xdist+jsonschemanow ride the lock (the battery imports them).paths-engine resolution is Go-authoritative with the python escape hatch retired, and modules resolved at import (build_mode via conftest, behavior, evidence_probe, behaviour_ledger, claim_audit, verification_layer, event_wait). Import now defers resolution to first use; the missing engine raises its named RuntimeError at the call site — loud, never silently zero. Red-first: tests/test_fresh_checkout_imports.py pins both sides.cargo fmt --check, ~120 files. Audit-first (admission contract ADMIT-rustfmt-rollout + the dichotomy census before/after in verification/fmt-audit-before.txt — IDENTICAL 138/206 modules, fn-level 1946/2751, so the sweep is formatting-only), then the mechanical per-crate sweep; every crate builds clean after; boundary_types' generator now emits rustfmt-canonical output so the codegen gate and the fmt gate agree.Also re-synced: CHANGELOG currency (#2582 gate — the auto-bump landed without the sync; regenerated from the tags), the umbrella map (9 repaired modules mapped + the auto_tasks phantom removed + the debt ledger honored by the mirrored pytest), the domain registry (stale alpha.py row), the research registry (4 contracts resolved via one mechanical-machinery exemption; a stale synthesis.json→synthesis.md chain), retro-governance for 8 dichotomy-wave Go units, and the stale BUILDER-2099 fixture purge.
Tests
Ref: #2582 (release reporting delivery — unblocks PR #2594), supersedes-open #2552/#2553/#2554 mechanics onto master.
Addendum (post-port reconciliation rides the pushed branch)
7dad3e6cwithout the set move, the wave-checklist miss shape).Pyright inventory (official ratchet-normalized context, pyright 1.1.414, the CI-matching venv): PASS — 84 errors / 531 warnings vs committed baseline 84/536 (baseline UNTOUCHED by this PR; the #126/#148 sweep's re-record stands)
Structural remainder (direct run context, per-file errors 77 total — the ratchet's normalization adds 7 env-context sites; owner decides splits — NOT raised silently):
Warnings headroom: 5 (531 vs 536). The warnings top: rune_tui.py 309, build_mode.py 14, curator.py 14, canary_conversation_state.py 13, prompt_sync.py 11 (pre-existing OptionalMemberAccess debt — inventoried, owner decides).
🤖 Headless spec gate (non-blocking, #204 first slice)
Spec-gate agent produced no text output — check runner logs.
Deterministic floors still govern the merge
This comment is advisory. Required checks (lint, tests, canaries, type-check, coverage, dependency lock, impact gate) remain the merge authority per docs/adversarial-review.md proportionality.
🤖 Headless spec gate (non-blocking, #204 first slice)
Spec-gate agent produced no text output — check runner logs.
Deterministic floors still govern the merge
This comment is advisory. Required checks (lint, tests, canaries, type-check, coverage, dependency lock, impact gate) remain the merge authority per docs/adversarial-review.md proportionality.
🤖 Headless spec gate (non-blocking, #204 first slice)
Spec-gate agent produced no text output — check runner logs.
Deterministic floors still govern the merge
This comment is advisory. Required checks (lint, tests, canaries, type-check, coverage, dependency lock, impact gate) remain the merge authority per docs/adversarial-review.md proportionality.
🤖 Headless spec gate (non-blocking, #204 first slice)
Spec-gate agent produced no text output — check runner logs.
Deterministic floors still govern the merge
This comment is advisory. Required checks (lint, tests, canaries, type-check, coverage, dependency lock, impact gate) remain the merge authority per docs/adversarial-review.md proportionality.
contract:ADMIT-repair-shared-ci-unblock — two more post-wave canary drifts surfaced while proving the repaired canary suite locally (all 39 canaries green on the repair tree): (1) canary_p0_05: the circuit-breaker sections count EXECUTOR-SEAM calls through the scripted fixture; the #2575-B wave delegated the read-only ops to the go tool-executor by default and the fixture went dark ('got 0'). Per that wave's own law (scripted-executor fixtures pin the python escape hatch) the canary self-bootstrap pins RUNE_TOOL_EXECUTOR_ENGINE=python; the engine rows stay covered by tests/test_local_tool_runtime.py. (2) canary_p1_06: the zero-success-exclusion fixture used a SimpleNamespace profile; the routing rowsb84bec77integrated ride the go engine and _profile_to_ops_json needs the real MeasuredModelProfile (provider/model) — fixture carries the dataclass now (same assertion, honest shape).contract:ADMIT-repair-shared-ci-unblock (scope extended with the umbrella manifest + the two checker/generator scripts this commit repairs) — (1) UMBRELLA MAP: nine modules the shared-CI repair touches were unmapped in the manifest (cl_loader/effect_mediation -> governance; sck_loader/sm_loader/memory_continuity/secret_store -> memory; live_proof -> orchestration; skills/llm-craft full_audit + rules stems -> growth), placed per the loader-beside-consumer precedent; rune.spine build regenerated the store sidecar in the same landing. The phantom 'auto_tasks' entry (module deletedf6ba9a55without the checklist's map step) removed in the same regen. (2) tests/test_umbrella_impact.py mirror predates the debt ledger and red'd independently of the henxel it mirrors — aligned to henxels_checks.umbrella_manifest_is_complete: unmapped tolerated iff docs/module-coverage-debt.md records the debt (the 90-stem loader-family debt stays ledgered; owner decides splits). (3) boundary_types generated files drifted from their schemas once the rustfmt rollout reformatted them: the generator now applies rustfmt to its Rust output (the gofmt law it already applies to Go) so the codegen gate and the fmt gate agree; regenerated, both green. (4) the stale BUILDER-2099 kerneltrap contract entity (test fixture landed by sweep-race accident7dad3e6c) removed; its battery self-cleans and the stale presence collided with the fresh-run mint.contract:ADMIT-repair-shared-ci-unblock — (1) construction_authority: the pathless-remediation escape the adversarial-escape Door-4 closure (f3092dbd) pinned is REOPENED — 'not rel_now or ...' admits any bash with no visible target paths mid-violation (the frozen regression test_pathless_command_mid_violation_is_refused red'd). The remediation exit again admits ONLY operations targeting exactly the offending paths, and the UNRESOLVED refusal names the pathless command (the frozen reason pins 'pathless' in the text). (2) docs/factory/domains.json: the stale 'src/rune/alpha.py' row (the dead alpha stub was deleted in 17ac2e, #2598 item 2, without the module-deletion checklist's map step) — registry GREEN again. (3) docs/factory/research-registry: the release-reporting/classification -sweep/rustfmt-rollout/retro-govern contracts resolve through one mechanical-machinery exemption (the repair wave carries no new research questions), and the harness-vs-model-coding chain named a synthesis.json that landed as synthesis.md (the note itself already referenced synthesis.md). (4) test_sleight_chaos F08 pins its honest-miss claim ON THE ROW (an indexed sibling legally matching the same query on a live-embedding host is not the drill's subject); the probe text carries a unique token so the drill has no semantic-noise confound. (5) test_p0_04's single-emit pin travels with the send_task shape (emission lives in _send_task_unmediated + _apply_runtime_result). (6) test_ci_lint_contract parses the ZERO-COUNT tree (an empty ruff statistics report at the 0/0 baseline used to fail the ledger check) and test_builder_bridge_hook_retarget anchors its deployment constants to the actual repo (the retarget law says worktrees/CI are not the deployment).34e1402dd5toea77863b83🤖 Headless spec gate (non-blocking, #204 first slice)
Spec-gate agent produced no text output — check runner logs.
Deterministic floors still govern the merge
This comment is advisory. Required checks (lint, tests, canaries, type-check, coverage, dependency lock, impact gate) remain the merge authority per docs/adversarial-review.md proportionality.
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.