Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
100 commits
Select commit Hold shift + click to select a range
f67d66c
Land the add-slice per-stage verdict instrument named as the floor_ex…
cursoragent Sep 6, 2026
b53fb12
Derive grounding for dag declared inhabitants: the add slice greens e…
cursoragent Sep 6, 2026
ffe2a1f
Derive grounding for canonical binding atoms: dag_binding_denotation …
cursoragent Sep 6, 2026
4638e6a
Add v2 self-host direct-path orientation: axes, sequence, autonomy co…
cursoragent Sep 6, 2026
8184a6f
Derive grounding for fully-evidenced Conj and Arrow products
cursoragent Sep 6, 2026
f2978e8
Ground canonical-operation and grammar-production atoms by authority …
cursoragent Sep 6, 2026
e165f2a
Ground binding-reference atoms from the enclosing arrow's domain decl…
cursoragent Sep 6, 2026
ff03246
Green the direct-rust-door: route emission through produced-decl comp…
cursoragent Sep 7, 2026
e55c179
Close the parse-product grounding frontier: widen declared-inhabitant…
cursoragent Sep 7, 2026
90b725c
Promote the add family to SelfEmittedNative: native-only verdict witn…
cursoragent Sep 7, 2026
b53893a
Merge remote-tracking branch 'origin/main' into cursor/v2-self-host-g…
cursoragent Sep 7, 2026
d5a7eed
Record the add-slice defect's repair in the declined-live-tree classi…
cursoragent Sep 7, 2026
6e6440c
Hoist two in-body annotation blocks to module-item grain
cursoragent Sep 7, 2026
8543ad4
Promote the complement family to SelfEmittedNative: native-only verdi…
cursoragent Sep 7, 2026
8a95df0
Key the emitter's host-String arm on declaration provenance, not spel…
cursoragent Sep 7, 2026
60cbd7b
Peel qualified String alias leaves in field position: XL-N closure 72…
cursoragent Sep 7, 2026
6676531
Resolve the 12 non-hop XL-N closure errors at source: text-wall conve…
cursoragent Sep 7, 2026
eca49a8
Record receipt_2 on the self-host compile-phase frontier: 15-error ce…
cursoragent Sep 7, 2026
b21d328
Emitter: a substituted declaration node carries its own provenance
cursoragent Sep 7, 2026
285b02e
Clear the remaining XL-N closure errors at source: carrier conversion…
cursoragent Sep 7, 2026
5ee4892
Pin the cargo half's toolchain channel by construction
cursoragent Sep 7, 2026
db8a1b5
Record receipt_3 on the self-host compile-phase frontier: the emitted…
cursoragent Sep 7, 2026
771dd6f
chore: regenerate drifted generated artifacts (ci auto-heal)
Sep 7, 2026
e00f0ba
Remove the stale PointwisePower inhabitant rows from the four languag…
cursoragent Sep 8, 2026
e912cc9
Regen gen-2 gate: compare executable digests in one spelling
cursoragent Sep 8, 2026
9d1986b
Model ReleaseScopeEmpty for release-excluded mirrors, end to end
cursoragent Sep 8, 2026
10a68a3
Round-cost receipt: project installed mirrors to the model's vocabulary
cursoragent Sep 8, 2026
25d8197
Hoist ReleaseScopeEmpty annotations to module-item grain
cursoragent Sep 8, 2026
77fb198
Spell the PointwisePower witness's finite-set exclusion as the applie…
cursoragent Sep 8, 2026
f8c8d84
Emit fieldless-record data values as null for the unit-struct carrier
cursoragent Sep 8, 2026
d7d410a
Merge remote-tracking branch 'origin/main' into cursor/v2-self-host-g…
cursoragent Sep 8, 2026
6f7d3a2
Bind the duplicate-definition filter ahead of its branch condition
cursoragent Sep 8, 2026
fd4a572
chore: regenerate drifted generated artifacts (ci auto-heal)
Sep 8, 2026
fecef05
Emitter: three native-parity repairs for the post-merge 00_compile cl…
cursoragent Sep 8, 2026
73b582d
Refuse variant record literals on the serde_json data path fail-closed
cursoragent Sep 8, 2026
563405e
Merge remote-tracking branch 'origin/cursor/v2-self-host-grounding-fr…
cursoragent Sep 8, 2026
5b3ca6b
Merge remote-tracking branch 'origin/main' into cursor/v2-self-host-g…
cursoragent Sep 8, 2026
49a277d
Spell variant record literals on the serde_json data path from a clos…
cursoragent Sep 8, 2026
caec92c
Promote field_access to SelfEmittedNative on the emit coverage frontier
cursoragent Sep 8, 2026
b91d8de
Drop the scratch parity probe from the tree
cursoragent Sep 8, 2026
2a32538
Promote match, loop, and fold_closure to SelfEmittedNative
cursoragent Sep 8, 2026
26536fa
Promote meet_join to SelfEmittedNative on the emit coverage frontier
cursoragent Sep 8, 2026
ff9e748
Merge remote-tracking branch 'origin/main' into cursor/v2-self-host-g…
cursoragent Sep 8, 2026
ab89d01
Promote variant_construct to SelfEmittedNative on the emit coverage f…
cursoragent Sep 8, 2026
24c4c03
Close the emit coverage frontier: final six rows to SelfEmittedNative
cursoragent Sep 8, 2026
f173aaa
Record the emit coverage frontier closure in the direct-path plan
cursoragent Sep 8, 2026
1b36cdc
Model the required-v2-native lane authority: route receipt, exclusion…
cursoragent Sep 9, 2026
22b8303
Split preparation predicates so EmittedClosureUnrecorded is reachable
cursoragent Sep 9, 2026
ca41065
Key cause ownership by diagnostic grain; classify native refusals at …
cursoragent Sep 9, 2026
a1b354e
Hoist known_frontier_causes row-group notes above the declaration
cursoragent Sep 9, 2026
e8ed171
Parse test fn as a contextual production in the v2 dag grammar
cursoragent Sep 9, 2026
f81af42
Add SourceRootEvalDriver: native whole-ingest test-execution route
cursoragent Sep 9, 2026
bebb2c2
Escape literal braces in SourceRootEvalDriver main.rs template
cursoragent Sep 9, 2026
18e1ada
Collect per-file front-end refusals in the native test context fold
cursoragent Sep 9, 2026
854a19a
Add native lane control fixtures
cursoragent Sep 9, 2026
e7f325b
Fix Vec/Vector type mismatches in the SourceRootEvalDriver main.rs te…
cursoragent Sep 9, 2026
49cccbe
Harden the v2-native route contract: test-identity grain, exact join,…
cursoragent Sep 9, 2026
b1bde4d
Wire the required-v2-native lane into the roster, workflow, and aggre…
cursoragent Sep 9, 2026
ff503a4
Add the required-v2-native host harness and phase dispatch
cursoragent Sep 9, 2026
66f757e
Regenerate stage0 mirrors for the SourceRootEvalDriver emitter arm
cursoragent Sep 9, 2026
3e03440
Name the probe crate's lib target v1_compiled, the emitter's self-nam…
cursoragent Sep 9, 2026
2663e46
Release retained emission arena before the native cargo build
cursoragent Sep 9, 2026
fc15493
Apply rustfmt to the v2-native lane host changes
cursoragent Sep 9, 2026
c8173ee
Lower FreeMonoid tail to im::Vector::skip — O(log n) share, not O(n) …
cursoragent Sep 9, 2026
65ae51a
Route FreeMonoid length/snoc through the count/list_push primitives
cursoragent Sep 9, 2026
a3a04bb
Hoist first-fold knowledge into prepared grammar expressions
cursoragent Sep 9, 2026
88ba140
Deref boxed variant fields in enum shared accessors
cursoragent Sep 9, 2026
fcb6894
Merge origin/main into required-v2-native lane branch
cursoragent Sep 9, 2026
bdf7165
Regenerate stage0 mirror for the boxed-accessor deref
cursoragent Sep 9, 2026
4bb152e
Align prepare_grammar_expr with the List<Symbol> nullable-set carrier
cursoragent Sep 10, 2026
1e775ac
Hoist dag_language_model out of the native-test context fold
cursoragent Sep 10, 2026
51e7a92
Grow lexer lexemes by snoc, not append, killing the quadratic literal…
cursoragent Sep 10, 2026
eb41dfa
Root the malformed-control run at the fixture directory alone
cursoragent Sep 10, 2026
3b40193
Own the native census's surviving fatal-grain exclusion causes
cursoragent Sep 10, 2026
9890091
Add the native lane's positive-population smoke member
cursoragent Sep 10, 2026
9a4b9e5
Raise the v2-native lane timeout to the measured post-lexer-fix envelope
cursoragent Sep 10, 2026
cff5361
Merge origin/main (0d6b6653e0) into the required-v2-native lane branch
cursoragent Sep 10, 2026
8f5c76f
Hoist megarac_media_attach in-body annotations to module-item grain
cursoragent Sep 10, 2026
6a597c3
native lane: exact provenance joins and the identity-grain ratchet (r…
cursoragent Sep 10, 2026
911944d
native driver: select declarations by exact module scope, never by ne…
cursoragent Sep 10, 2026
4e5c564
required-ci: join (phase, lane) pairs in both directions, in every la…
cursoragent Sep 10, 2026
2b24cef
Hoist v2_native_route_test ratchet annotations to module-item grain
cursoragent Sep 10, 2026
2fb67b4
v2-native lane: root the probe crate in the declared per-job temp; ca…
cursoragent Sep 10, 2026
69aaa60
Merge origin/main into required-v2-native lane branch
Sep 10, 2026
4adf735
Render rustc output in cargo_verdict_summary on a non-zero cargo
Sep 10, 2026
7e4dc48
Do not emit irrefutable let-else on Rc as_ref, and pass grain to caus…
Sep 10, 2026
e158a8c
Treat a sole-variant coproduct as irrefutable for as_ref let-else
Sep 10, 2026
0e25a0b
Treat a sole-variant coproduct as irrefutable for as_ref let-else
Sep 10, 2026
e292c78
parse_lexeme_digest: fold the lexeme directly, not through chars
cursoragent Sep 10, 2026
d716207
Do not Rc-wrap a diverging panic or compile_error expression
Sep 10, 2026
d60312d
Merge remote-tracking branch 'origin/cursor/required-v2-native-ci-lan…
Sep 10, 2026
d43c69f
Hoist the parse_lexeme_digest rationale to module-item grain
cursoragent Sep 10, 2026
c451735
Hoist parse_lexeme_digest annotation to module-item grain
Sep 10, 2026
863c420
Merge branch 'cursor/required-v2-native-ci-lane-cbbd' of https://gith…
Sep 10, 2026
25d1c79
Ground the chars builtin across string realizations; restore chars(s:…
cursoragent Sep 10, 2026
b674a00
Hoist the rust_shared_wrap_ctor rationale to module-item grain
cursoragent Sep 10, 2026
f188f47
Hoist rust_shared_wrap_ctor rationale out of the function body
Sep 10, 2026
b54d06d
Merge remote-tracking branch 'origin/cursor/required-v2-native-ci-lan…
Sep 10, 2026
1b302c5
Pin the forward behavior row count at 7 for the test_fn_decl row
cursoragent Sep 10, 2026
f2e2016
Enrol the v2-native lane in the workflow consolidation witnesses
cursoragent Sep 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
95 changes: 89 additions & 6 deletions .github/workflows/witnesses.yml
Original file line number Diff line number Diff line change
Expand Up @@ -404,9 +404,91 @@ jobs:
retention-days: 14
include-hidden-files: true
if: always() && steps.heal_commit_push.outputs.heal_author_commit_required == '1'
required-v2-native:
runs-on: [self-hosted, linux, arm64]
timeout-minutes: 180
steps:
- name: Record runner filesystem at job start
run: |
# dissolve-on: toolchain_filesystem_probe -- delete the start/end runner-filesystem instrument after its joined readings identify and the fleet fixes the toolchain deleter, OR after per-job runner microVMs make the shared filesystem eviction class impossible
GUNBC_TOOLCHAIN_FS_PREFIX='GUNBC_TOOLCHAIN_FS phase=start'
echo "$GUNBC_TOOLCHAIN_FS_PREFIX time_utc=$(date -u +%Y-%m-%dT%H:%M:%SZ 2>/dev/null || echo unavailable) host=$(hostname 2>/dev/null || echo unavailable) runner=${RUNNER_NAME:-unset}"
echo "$GUNBC_TOOLCHAIN_FS_PREFIX runner_temp=${RUNNER_TEMP:-unset} rustup_home=${RUSTUP_HOME:-unset} cargo_home=${CARGO_HOME:-unset} uptime_seconds=$(cut -d' ' -f1 /proc/uptime 2>/dev/null || echo unavailable)"
echo "$GUNBC_TOOLCHAIN_FS_PREFIX loadavg=$(tr ' ' ',' < /proc/loadavg 2>/dev/null || echo unavailable)"
df -Pk "${RUNNER_TEMP:-/path-that-does-not-exist}" 2>&1 | while IFS= read -r GUNBC_TOOLCHAIN_FS_LINE; do echo "$GUNBC_TOOLCHAIN_FS_PREFIX df_blocks=$GUNBC_TOOLCHAIN_FS_LINE"; done
df -Pik "${RUNNER_TEMP:-/path-that-does-not-exist}" 2>&1 | while IFS= read -r GUNBC_TOOLCHAIN_FS_LINE; do echo "$GUNBC_TOOLCHAIN_FS_PREFIX df_inodes=$GUNBC_TOOLCHAIN_FS_LINE"; done
for GUNBC_TOOLCHAIN_FS_PATH in "${RUNNER_TEMP:-/path-that-does-not-exist}"/rustup/toolchains/*/bin/rustc "${RUNNER_TEMP:-/path-that-does-not-exist}"/rustup/toolchains/*/bin/rustfmt "${RUNNER_TEMP:-/path-that-does-not-exist}"/cargo/bin/cargo; do if [ -e "$GUNBC_TOOLCHAIN_FS_PATH" ]; then GUNBC_TOOLCHAIN_FS_STAT=$(stat -c 'size=%s mtime_epoch=%Y mtime=%y inode=%i' "$GUNBC_TOOLCHAIN_FS_PATH" 2>&1 || echo stat-unavailable); echo "$GUNBC_TOOLCHAIN_FS_PREFIX kind=file path=$GUNBC_TOOLCHAIN_FS_PATH exists=yes $GUNBC_TOOLCHAIN_FS_STAT"; else echo "$GUNBC_TOOLCHAIN_FS_PREFIX kind=file path=$GUNBC_TOOLCHAIN_FS_PATH exists=no size=unavailable mtime_epoch=unavailable mtime=unavailable inode=unavailable"; fi; done
for GUNBC_TOOLCHAIN_FS_PATH in "${RUNNER_TEMP:-/path-that-does-not-exist}"/rustup/toolchains/*/bin "${RUNNER_TEMP:-/path-that-does-not-exist}"/rustup/toolchains "${RUNNER_TEMP:-/path-that-does-not-exist}"/cargo/bin; do if [ -d "$GUNBC_TOOLCHAIN_FS_PATH" ]; then GUNBC_TOOLCHAIN_FS_STAT=$(stat -c 'mtime_epoch=%Y mtime=%y inode=%i' "$GUNBC_TOOLCHAIN_FS_PATH" 2>&1 || echo stat-unavailable); echo "$GUNBC_TOOLCHAIN_FS_PREFIX kind=directory path=$GUNBC_TOOLCHAIN_FS_PATH exists=yes $GUNBC_TOOLCHAIN_FS_STAT"; else echo "$GUNBC_TOOLCHAIN_FS_PREFIX kind=directory path=$GUNBC_TOOLCHAIN_FS_PATH exists=no mtime_epoch=unavailable mtime=unavailable inode=unavailable"; fi; done
if: always()
- name: Checkout
uses: actions/checkout@v5
with:
fetch-depth: 0
ref: ${{ inputs.expected_healed_sha || github.sha }}
- name: Refuse a heal revalidation whose run subject or checkout does not name the expected healed SHA
run: |
EXPECTED_HEALED_SHA="${{ inputs.expected_healed_sha }}"
RUN_SUBJECT_HEAD="${{ github.sha }}"
if [ -n "$EXPECTED_HEALED_SHA" ]; then
ACTUAL_HEAD="$(git rev-parse HEAD)"
if ! [ "$RUN_SUBJECT_HEAD" = "$EXPECTED_HEALED_SHA" ]; then
echo "::error::heal revalidation refused: workflow run subject $RUN_SUBJECT_HEAD does not equal expected healed head $EXPECTED_HEALED_SHA"
exit 1
fi
if ! [ "$ACTUAL_HEAD" = "$EXPECTED_HEALED_SHA" ]; then
echo "::error::heal revalidation refused: checkout head $ACTUAL_HEAD does not equal expected healed head $EXPECTED_HEALED_SHA"
exit 1
fi
echo "heal revalidation preflight: checkout names expected healed head $EXPECTED_HEALED_SHA"
fi
- name: Isolate toolchain homes
run: |
# dissolve-on: ci_toolchain_home_isolation_script -- orch-emitted foreign-executor prelude step wiping and setting HOME/CARGO_HOME/RUSTUP_HOME under RUNNER_TEMP so concurrent runner slots stop sharing one toolchain; leaf rm/echo strings remain until a typed per-job filesystem-and-environment effect lands on host_effect_apply (shell-to-intent Phase 2). This obligation covers THIS carrier and ci_isolate_toolchain_script, which share that terminal construction; ci_pin_rustup_default_script carries its own obligation because it does not
rm -rf "$RUNNER_TEMP/rustup" "$RUNNER_TEMP/cargo"
echo "HOME=$RUNNER_TEMP" >> "$GITHUB_ENV"
echo "CARGO_HOME=$RUNNER_TEMP/cargo" >> "$GITHUB_ENV"
echo "RUSTUP_HOME=$RUNNER_TEMP/rustup" >> "$GITHUB_ENV"
- name: Install Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1.16.0
with:
components: rustfmt
cache: false
- name: Pin rustup default (isolated RUSTUP_HOME has no default toolchain)
run: |
# dissolve-on: ci_pin_rustup_default_script -- orch-emitted foreign-executor step selecting a rustup default toolchain inside an isolated RUSTUP_HOME, which starts with none, and resolving the cargo binary that selection implies. The leaf rustup/command/echo strings remain until a typed TOOLCHAIN-SELECTION effect lands on host_effect_apply -- NOT the filesystem-and-environment effect ci_toolchain_home_isolation_script waits on, which is why this is a separate obligation: that effect landing alone would leave this carrier standing
rustup default "$(rustup show active-toolchain | awk '{print $1; exit}')"
if [ -x "$CARGO_HOME/bin/cargo" ]; then CARGO_BIN="$CARGO_HOME/bin/cargo"; else CARGO_BIN="$(command -v cargo || true)"; fi
if [ -z "$CARGO_BIN" ]; then echo "::error::no cargo binary: neither the isolated $CARGO_HOME/bin/cargo shim nor PATH carries one"; exit 1; fi
echo "CARGO_BIN=$CARGO_BIN" >> "$GITHUB_ENV"
- name: Build the witness fold
id: build_witness_fold
run: |
cargo build --release -p v1-compiler --bin claim_executor --bin gunbc
- name: Require isolated toolchain homes
run: |
if [ -z "${CARGO_HOME:-}" ] || [ -z "${RUSTUP_HOME:-}" ]; then echo "::error::ToolchainHomesNotIsolated CARGO_HOME=${CARGO_HOME:-unset} RUSTUP_HOME=${RUSTUP_HOME:-unset} -- the isolation step did not run, so this job shares a toolchain with every other runner slot on this host and a concurrent install can replace a binary mid-run" >&2; exit 1; fi
if: "!cancelled()"
- name: "Required CI: v2-native lane (emitted-native compiler executes the derived v2.test.* universe)"
run: |
ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd)
cd "$ROOT"
'target/release/claim_executor' '--required-ci' '--source-root' 'dag' '--source-root' 'src/v2' '--required-lane' 'v2-native'
if: "!cancelled() && steps.build_witness_fold.outcome == 'success'"
- name: Record runner filesystem at job end
run: |
# dissolve-on: toolchain_filesystem_probe -- delete the start/end runner-filesystem instrument after its joined readings identify and the fleet fixes the toolchain deleter, OR after per-job runner microVMs make the shared filesystem eviction class impossible
GUNBC_TOOLCHAIN_FS_PREFIX='GUNBC_TOOLCHAIN_FS phase=end'
echo "$GUNBC_TOOLCHAIN_FS_PREFIX time_utc=$(date -u +%Y-%m-%dT%H:%M:%SZ 2>/dev/null || echo unavailable) host=$(hostname 2>/dev/null || echo unavailable) runner=${RUNNER_NAME:-unset}"
echo "$GUNBC_TOOLCHAIN_FS_PREFIX runner_temp=${RUNNER_TEMP:-unset} rustup_home=${RUSTUP_HOME:-unset} cargo_home=${CARGO_HOME:-unset} uptime_seconds=$(cut -d' ' -f1 /proc/uptime 2>/dev/null || echo unavailable)"
echo "$GUNBC_TOOLCHAIN_FS_PREFIX loadavg=$(tr ' ' ',' < /proc/loadavg 2>/dev/null || echo unavailable)"
df -Pk "${RUNNER_TEMP:-/path-that-does-not-exist}" 2>&1 | while IFS= read -r GUNBC_TOOLCHAIN_FS_LINE; do echo "$GUNBC_TOOLCHAIN_FS_PREFIX df_blocks=$GUNBC_TOOLCHAIN_FS_LINE"; done
df -Pik "${RUNNER_TEMP:-/path-that-does-not-exist}" 2>&1 | while IFS= read -r GUNBC_TOOLCHAIN_FS_LINE; do echo "$GUNBC_TOOLCHAIN_FS_PREFIX df_inodes=$GUNBC_TOOLCHAIN_FS_LINE"; done
for GUNBC_TOOLCHAIN_FS_PATH in "${RUNNER_TEMP:-/path-that-does-not-exist}"/rustup/toolchains/*/bin/rustc "${RUNNER_TEMP:-/path-that-does-not-exist}"/rustup/toolchains/*/bin/rustfmt "${RUNNER_TEMP:-/path-that-does-not-exist}"/cargo/bin/cargo; do if [ -e "$GUNBC_TOOLCHAIN_FS_PATH" ]; then GUNBC_TOOLCHAIN_FS_STAT=$(stat -c 'size=%s mtime_epoch=%Y mtime=%y inode=%i' "$GUNBC_TOOLCHAIN_FS_PATH" 2>&1 || echo stat-unavailable); echo "$GUNBC_TOOLCHAIN_FS_PREFIX kind=file path=$GUNBC_TOOLCHAIN_FS_PATH exists=yes $GUNBC_TOOLCHAIN_FS_STAT"; else echo "$GUNBC_TOOLCHAIN_FS_PREFIX kind=file path=$GUNBC_TOOLCHAIN_FS_PATH exists=no size=unavailable mtime_epoch=unavailable mtime=unavailable inode=unavailable"; fi; done
for GUNBC_TOOLCHAIN_FS_PATH in "${RUNNER_TEMP:-/path-that-does-not-exist}"/rustup/toolchains/*/bin "${RUNNER_TEMP:-/path-that-does-not-exist}"/rustup/toolchains "${RUNNER_TEMP:-/path-that-does-not-exist}"/cargo/bin; do if [ -d "$GUNBC_TOOLCHAIN_FS_PATH" ]; then GUNBC_TOOLCHAIN_FS_STAT=$(stat -c 'mtime_epoch=%Y mtime=%y inode=%i' "$GUNBC_TOOLCHAIN_FS_PATH" 2>&1 || echo stat-unavailable); echo "$GUNBC_TOOLCHAIN_FS_PREFIX kind=directory path=$GUNBC_TOOLCHAIN_FS_PATH exists=yes $GUNBC_TOOLCHAIN_FS_STAT"; else echo "$GUNBC_TOOLCHAIN_FS_PREFIX kind=directory path=$GUNBC_TOOLCHAIN_FS_PATH exists=no mtime_epoch=unavailable mtime=unavailable inode=unavailable"; fi; done
if: always()
witnesses:
runs-on: [self-hosted, linux, arm64]
needs: [required-witnesses-build, required-witnesses-floor]
needs: [required-witnesses-build, required-witnesses-floor, required-v2-native]
timeout-minutes: 5
if: always()
steps:
Expand All @@ -416,16 +498,17 @@ jobs:
if '[' "$EVENT_NAME" '=' 'pull_request' ']'; then HEAD_STANDING='unobserved'; fi
'echo' 'required floor attempt: pull_request='"$PULL_REQUEST"' measured_head='"$MEASURED_HEAD"' run_id='"$RUN_ID"' head_standing='"$HEAD_STANDING"
VERDICT='stands-green'
if '[' "$BUILD" '!=' 'success' ']' || '[' "$FLOOR" '!=' 'success' ']'; then VERDICT='stands-unestablished'; fi
if '[' "$BUILD" '=' 'failure' ']' || '[' "$FLOOR" '=' 'failure' ']'; then VERDICT='stands-red'; fi
if '[' "$BUILD" '!=' 'success' ']' || '[' "$FLOOR" '!=' 'success' ']' || '[' "$V2_NATIVE" '!=' 'success' ']'; then VERDICT='stands-unestablished'; fi
if '[' "$BUILD" '=' 'failure' ']' || '[' "$FLOOR" '=' 'failure' ']' || '[' "$V2_NATIVE" '=' 'failure' ']'; then VERDICT='stands-red'; fi
MECHANISM='unestablished'
ATTRIBUTION='unestablished'
'echo' 'required lanes: build='"$BUILD"' floor='"$FLOOR"' verdict='"$VERDICT"' mechanism='"$MECHANISM"' attribution='"$ATTRIBUTION"
if '[' "$VERDICT" '=' 'stands-red' ']'; then 'echo' '::error::a required lane concluded failure; that alone does not establish whether its subject was evaluated, so read the log before assuming a defect in the diff (build='"$BUILD"' floor='"$FLOOR"' mechanism='"$MECHANISM"' attribution='"$ATTRIBUTION"') - open that job'\''s log' >&2; exit 1; fi
if '[' "$VERDICT" '=' 'stands-unestablished' ']'; then 'echo' '::error::a required lane produced no conclusion of its own, so this head'\''s floor verdict is unobservable rather than failed; rerun it (build='"$BUILD"' floor='"$FLOOR"' mechanism='"$MECHANISM"' attribution='"$ATTRIBUTION"') - open that job'\''s log' >&2; exit 1; fi
'echo' 'required lanes: build='"$BUILD"' floor='"$FLOOR"' v2-native='"$V2_NATIVE"' verdict='"$VERDICT"' mechanism='"$MECHANISM"' attribution='"$ATTRIBUTION"
if '[' "$VERDICT" '=' 'stands-red' ']'; then 'echo' '::error::a required lane concluded failure; that alone does not establish whether its subject was evaluated, so read the log before assuming a defect in the diff (build='"$BUILD"' floor='"$FLOOR"' v2-native='"$V2_NATIVE"' mechanism='"$MECHANISM"' attribution='"$ATTRIBUTION"') - open that job'\''s log' >&2; exit 1; fi
if '[' "$VERDICT" '=' 'stands-unestablished' ']'; then 'echo' '::error::a required lane produced no conclusion of its own, so this head'\''s floor verdict is unobservable rather than failed; rerun it (build='"$BUILD"' floor='"$FLOOR"' v2-native='"$V2_NATIVE"' mechanism='"$MECHANISM"' attribution='"$ATTRIBUTION"') - open that job'\''s log' >&2; exit 1; fi
env:
BUILD: ${{ needs['required-witnesses-build'].result }}
FLOOR: ${{ needs['required-witnesses-floor'].result }}
V2_NATIVE: ${{ needs['required-v2-native'].result }}
PULL_REQUEST: ${{ github.event.pull_request.number }}
EVENT_NAME: ${{ github.event_name }}
MEASURED_HEAD: ${{ github.event.pull_request.head.sha }}
Expand Down
11 changes: 10 additions & 1 deletion dag/gunbc/fabric/fabric_witness_run.dag
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import product.fabric.work {
work_for,
}
import std.content_hash { ContentHash, content_hash_of_value, serialize_content_hash }
import gunbc.required_ci_phase_roster { BuildLane, WitnessesLane, required_ci_lane_name }
import gunbc.required_ci_phase_roster { BuildLane, WitnessesLane, V2NativeLane, required_ci_lane_name }
import extdeps.git.object_store { GitObjectId, git_object_id_wire_hex, git_object_id_content_hash, git_sha1_object_id }
import product.fabric.supply {
SupplierOffer, OfferFungibility, DemandOfferAffordability, GrantDuration, EstimatedGrantDuration,
Expand Down Expand Up @@ -555,6 +555,15 @@ fn build_lane_run_command() -> ArgvCommand {
required_ci_lane_command(lane: required_ci_lane_build, measurement_receipt: "")
}

data required_ci_lane_v2_native: String = required_ci_lane_name(l: V2NativeLane)

// The v2-native lane: the emitted-native compiler executes the derived v2.test.* universe
// through its own whole-source-root Eval driver. The job contract and admission authority are
// gunbc.witness_v2_native_route; this command is only the argv the workflow step runs.
fn v2_native_lane_run_command() -> ArgvCommand {
required_ci_lane_command(lane: required_ci_lane_v2_native, measurement_receipt: "")
}

// THE FLOOR IS MODELED AS AN ORDINARY PRICED DEMAND. NO PRICE IS CLEARED TODAY.
//
// The intent is unchanged: gunbc's own CI enters the market on the same terms as any other demand,
Expand Down
8 changes: 4 additions & 4 deletions dag/gunbc/instruments/e0599_emitter_decision_census.dag
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ data e0599_im_vector_inherent_impl: E0599ExternalAuthority = E0599ExternalAuthor
crate_version: "15.1.0",
impl_site: "im::vector impl<A: Clone> Vector<A> (src/vector/mod.rs:180)",
impl_bound: "impl<A: Clone> Vector<A>",
member_site: "im::vector Vector::is_empty | Vector::iter",
member_site: "im::vector Vector::is_empty | Vector::skip",
cited_upstream: Absent,
}

Expand Down Expand Up @@ -181,11 +181,11 @@ data e0599_lowering_rows: List<E0599LoweringRow> = [
ownership_alternative: "NotApplicable - a read; no copy is requested and no ownership predicate gates it",
source_construct: "match over the FreeMonoid coproduct — the Cons { tail } binding",
emitter_authority: "v1.compiler.emit_rust freemonoid_tail_let_from_fm",
emitted_literal: "let <tail>: Rc<Vec<_>> = Rc::new((*__fm).iter().skip(1).cloned().collect()); ",
emitted_literal: "let <tail>: Rc<Vec<_>> = Rc::new(__fm.skip(1)); ",
cause: TargetApiRequirement,
required_trait: "Clone",
authority: e0599_im_vector_inherent_impl,
rationale: "iter() is in the same impl<A: Clone> block as is_empty. rustc reports the failure at .iter() and never reaches the .cloned() that follows it, so this site MASKS a co-located OwnedDeconstructionRequirement on the same expression; both discharge on the same A: Clone, but B1 must not read this row as evidence that the tail extract needs no owned element.",
rationale: "skip() is in the same impl<A: Clone> block as is_empty (it is self.clone().split_off(count)), so the bound survives the 2026-09-09 relowering; what that relowering removed was the O(n) tail MATERIALIZATION the old iter().skip(1).cloned().collect() site paid per cons-match — measured quadratic on the required-v2-native lane's whole-corpus lex fold (22KB file: 23.3s; 899B file: 70ms). The structural skip is O(log n) and shares the RRB tree, so the tail binding is now the read the source construct always was.",
},
E0599LoweringRow {
operation: FreeMonoidHeadExtract,
Expand Down Expand Up @@ -284,7 +284,7 @@ fn e0599_receiver_is_field_access(receiver_expr: String) -> Bool {
fn e0599_lowering_operation_for(method: String, receiver_expr: String) -> E0599LoweringOperation {
if method == "is_empty" && receiver_expr == "__fm" {
FreeMonoidEmptyTest
} else if method == "iter" && receiver_expr == "(*__fm)" {
} else if method == "skip" && receiver_expr == "__fm" {
FreeMonoidTailIterate
} else if method == "clone" && receiver_expr == "(*__fm)[0]" {
FreeMonoidHeadExtract
Expand Down
8 changes: 6 additions & 2 deletions dag/gunbc/machine_intake/megarac_media_attach.dag
Original file line number Diff line number Diff line change
Expand Up @@ -416,8 +416,12 @@ fn presented_media_standing(body: String, image_name: NonEmptyStr) -> PresentedM
// merely still mounting. The bounded read-back decides; the status code only distinguishes which
// unconfirmed state is reported.
//
// STARTREFUSED IS RESERVED for a start that failed AND whose configurations document is itself
// unreadable as JSON — that is, for when the read-back cannot even be asked.
// THE READ-BACK DECIDES, INCLUDING WHEN START REPORTED FAILURE. This firmware answers HTTP 500
// on writes that take effect; mapping start.success == false to MegaRacStartRefused refused an
// attach that was merely still mounting, and contradicted the comment this function already
// carried. A missing confirmation after any start response is pending (Unconfirmed). StartRefused
// is reserved for a start that failed AND whose configurations document is itself unreadable
// as JSON — that is, when we cannot even ask the read-back.
func megarac_start_and_confirm(
bmc_host: NonEmptyStr,
cookie_jar: NonEmptyStr,
Expand Down
Loading
Loading