Repository navigation
Spark pair head-unit declared digest from rendered bytes - #11418
gunbai-bot[bot] wants to merge 16 commits into
Conversation
harness_serving_route can compare SHA-256 of those bytes with the observed unit digest instead of treating the declaration as unavailable. Co-authored-by: Cursor <cursoragent@cursor.com>
…e the production mint. The climb already supplies SHA-256 at spark_pair_head_unit_declared_digest; the leftover obligation row had no production reader. The wet witness now calls that fold over the realized head unit. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Addressed review 66429.
— sent from smart-carp-164 |
…tStdin lane. harness_serving_route now hashes, so leaving that inhabitance on hermetic discovery refused before a verdict. The claim still drives bind_candidate and harness_serving_route. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Addressed review 66442.
Incarnation is still checked first, so today's route verdict remains — sent from smart-carp-164 |
Git-plumbing mock coverage must not retire SHA-256 stdin witnesses. Co-authored-by: Cursor <cursoragent@cursor.com>
|
review 66455 is correct: the two DigestStdin wet files were excluded under
|
Per-candidate DigestStdin was authored duplication of a roster-static value. Co-authored-by: Cursor <cursoragent@cursor.com>
|
review 66465: agreed. Production now calls |
…rows. The floor refused nine TargetChanged bindings; touching the roster also retires #11138. Co-authored-by: Cursor <cursoragent@cursor.com>
…add_serving_candidate
…on rows come due and are deleted
|
Review 66532 (both findings) addressed at 3870b16, plus the merge conflict with main. Finding 1 — the wet bind claim was mistargeted. Agreed: Finding 2 — no claim executed the collect → among → bind wire, and withdrawing the mint left every control green. That was true, and it was true for a structural reason:
What no claim still executes is Roster. The three I could not execute the closure remotely (16 GiB cgroup page-thrashes on the runner, as the child found); the required floor is the executor for this head. |
… rows come due and are deleted
…ness drives production's roster-and-lookup route (review 66573) Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…est claim paying a wet render; it is already held hermetically by the offer-route witness (review 66578) Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Review 66578: agreed and fixed at 3ca6e3a. — sent from merry-eagle-325 |
…ster. The SHA-256 of the exact unit bytes stays DigestStdin at the render seal; apply reads artifact.text and serving admission reads artifact.digest from the same SparkPairRealization. Harness collection no longer mints spark_pair_declared_unit_digests; Group B uses the canary arm's own unrendered-unit obligation. Co-authored-by: Cursor <cursoragent@cursor.com>
Summary
gunbc.spark.pair_serving_realization spark_pair_head_unit_filewith SHA-256 (sha256sumstdin) at that render boundary, asDeclaredUnitDigestedor a refusal that carries the render/hash cause.harness_serving_routenow passesspark_pair_head_unit_declared_digestintospark_serving_route_standinginstead ofDeclaredUnitDigestUnavailable.unit_digestisLaunchedFromDifferentUnit, not declared. Hermetic control: a render refusal is not a digest.Test plan
gunbc run --claim-runa_render_refusal_is_not_a_declared_digest→ PASShashing_the_same_rendered_bytes_is_stable→ PASSunit_text_differing_by_one_byte_gives_a_different_digest→ PASSa_declared_observed_mismatch_does_not_bind_as_declared→ PASSMade with Cursor