Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
6 changes: 6 additions & 0 deletions .claude/board/AGENT_LOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
## 2026-06-18 — CI: extend debuginfo=0 + mold to the `linux-build` job (link-cliff flake)

**Main thread (Opus).** Branch `claude/ci-linux-build-debuginfo0-mold`. The `linux-build (stable)` job in `build.yml` flaked twice (#525, #528) with the `rust-lld` SIGBUS link cliff (signal 7, object truncated when the partition fills mid-link, crash in `llvm::parallelFor`). It was the ONLY job still linking the full lance+datafusion test set at workflow-level `debuginfo=1` and without mold — the `test` (TD-CI-TEST-JOB-DEBUGINFO0) and `test-with-coverage` (TD-CI-COVERAGE-MOLD-1) jobs in rust-test.yml already had both mitigations and are green.

**Fix (additive, mirrors the green jobs exactly):** job-level `RUSTFLAGS: "-C debuginfo=0 -C target-cpu=x86-64-v3"` override (the load-bearing relief — ~73% smaller per-binary link footprint per the sibling-job measurements) + the pinned `rui314/setup-mold@9c9c13bf…` step before the Swatinem cache. 17 insertions, no deletions. YAML validated. Board: TD-CI-LINUX-BUILD-DEBUGINFO0 (Paid, confirm-on-green). No source/test change.

## 2026-06-18 — B2 resolved: witness-arc boundary documented (NO `WitnessArcEvaluator` trait)

**Main thread (Opus) + 5+3 council**, branch `claude/witness-arc-boundary-doc`. The parked B2 item — "wire perturbation-sim witness arc into contract witness_table" — was put through the critical-decision protocol (5 analysts + 3 brutal critics, all read both files in full). **Unanimous verdict: do NOT build the trait.** The two "witness arc" notions are different objects (numeric `∑field·arc` standing wave vs W-slot→identity resolution); welding them is an AP6 one-impl trait + AGI-as-glove "never a new trait" violation + a CATCH-CRITICAL dep-direction inversion (zero-dep contract would gain a perturbation-sim dep). integration-lead confirmed the real wiring is downstream D-MBX-A3, gated on D-MBX-A2 (current gating gap) + OQ-11.2 + a §0 dep ruling.
Expand Down
15 changes: 15 additions & 0 deletions .claude/board/TECH_DEBT.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,21 @@

## Open Debt

### TD-CI-LINUX-BUILD-DEBUGINFO0 — `linux-build` was the last job missing the link-cliff mitigation; debuginfo=0 + mold extended to it (2026-06-18)

**Paid (this commit).** `build.yml`'s `linux-build (stable)` job linked the full
lance+datafusion test-binary set at workflow-level `debuginfo=1` and **without
mold** — the only job still missing the mitigation that `TD-CI-TEST-JOB-DEBUGINFO0`
(the `test` job) and `TD-CI-COVERAGE-MOLD-1` (`test-with-coverage`) already carry.
It flaked **twice** (#525, #528) with a hard `rust-lld` SIGBUS (signal 7, object
file truncated when the link partition fills mid-link; crash in
`llvm::parallelFor`). Fix mirrors the green sibling jobs exactly: job-level
`RUSTFLAGS: "-C debuginfo=0 -C target-cpu=x86-64-v3"` (the load-bearing relief —
shrinks per-binary link footprint ~73% so the partition can't fill) + the pinned
`rui314/setup-mold` step. Additive only; first run after this change repopulates
the job's Swatinem cache (job-level RUSTFLAGS = own cache key). **Confirm on the
next few green `linux-build` runs that the SIGBUS does not recur.**

### TD-WITNESS-EVAL-WIRING-1 — perturbation-sim Parseval witness evaluator ↔ contract `WitnessTable` are shipped but unconnected by design (2026-06-18)

**Open — intentionally deferred (5+3 council, B2).** `perturbation-sim::witness`
Expand Down
17 changes: 17 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,18 @@ jobs:
linux-build:
runs-on: ubuntu-24.04
timeout-minutes: 30
env:
# Override the workflow-level debuginfo=1 for this job (parity with the
# `test` + `test-with-coverage` jobs in rust-test.yml, TD-CI-TEST-JOB-DEBUGINFO0
# / TD-CI-COVERAGE-MOLD-1). This job links the SAME full lance+datafusion
# test-binary set at the SAME disk/RSS cliff and was the one job still
# missing the mitigation — it flaked twice with a hard `rust-lld` SIGBUS
# (signal 7 = object file truncated when the link partition fills mid-link,
# crashing in llvm::parallelFor). debuginfo carries no value in CI (no
# debugger is attached); dropping it cut per-binary link footprint ~73%
# in the sibling jobs. Note: a job-level RUSTFLAGS gives this job its own
# Swatinem cache key — the first run after this change repopulates it.
RUSTFLAGS: "-C debuginfo=0 -C target-cpu=x86-64-v3"
defaults:
run:
working-directory: lance-graph
Expand All @@ -44,6 +56,11 @@ jobs:
run: |
rustup toolchain install ${{ matrix.toolchain }}
rustup default ${{ matrix.toolchain }}
- name: Setup mold linker
# Parity with rust-test.yml: the heavy lance+datafusion build + test
# binaries hit the GNU-ld/rust-lld RSS+disk cliff at the link step
# (intermittent SIGBUS). mold links them fast + low-memory.
uses: rui314/setup-mold@9c9c13bf4c3f1adef0cc596abc155580bcb04444 # v1
- uses: Swatinem/rust-cache@v2
with:
shared-key: "lance-graph-deps"
Expand Down
Loading