Skip to content

DFlash: use the R2 keys the goldens were actually uploaded to - #826

Merged
anupsv merged 1 commit into
mainfrom
fix/dflash-golden-r2-keys
Jul 31, 2026
Merged

DFlash: use the R2 keys the goldens were actually uploaded to#826
anupsv merged 1 commit into
mainfrom
fix/dflash-golden-r2-keys

Conversation

@anupsv

@anupsv anupsv commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

The goldens are at
gautham-experiments/correctness_prompts/laguna-xs-2.1-dflash/, and main's pinned
keys omit the leading segment — so the fetch would fail 404 NoSuchKey after a full
dispatch.

This is the second time the prefix has been lost. First I stripped it myself,
assuming gautham-experiments was the bucket already carried by R2_BUCKET_ENDPOINT
(the serial keys are written with no bucket segment, which made that feel safe — it was
still me overriding what I'd been told). Then the commit that corrected it, 18ccd58,
missed the merge: #824 went in from the preceding commit. #825 didn't touch paths.

Fix

Both places — the correctness step's env and the timed_prompt_pool entry:

gautham-experiments/correctness_prompts/laguna-xs-2.1-dflash/dflash_correctness_golden_hidden.json
gautham-experiments/correctness_prompts/laguna-xs-2.1-dflash/dflash_benchmark_golden_hidden.json

DFlashGoldenKeyTests pins them, so a third loss fails in CI rather than 30–40 minutes
into a dispatch. It also asserts each key stays inside the signer's charset guard
(^[A-Za-z0-9._/-]+$, from #822) — that guard refuses a key before signing, so a typo
would otherwise surface as a confusing dispatch-time abort rather than a bad key.

If the objects genuinely move, change that test in the same commit that moves them.

Verification

swift test: 582 tests, 28 suites, green.

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith with what you need. Autofix is disabled.

The operator uploaded to
gautham-experiments/correctness_prompts/laguna-xs-2.1-dflash/ and the pinned
keys omit the leading segment, so the fetch would fail 404 NoSuchKey after a
full dispatch.

This is the second time the prefix has been lost.  First I stripped it myself,
assuming "gautham-experiments" was the bucket already carried by
R2_BUCKET_ENDPOINT -- the serial keys are written with no bucket segment, which
made the assumption feel safe, and it was still me overriding what the operator
had told me.  Then the commit that corrected it (18ccd58) missed the merge of
#824, which went in from the preceding commit, so main kept the wrong key.
#825 did not touch paths.

Fixed in both places -- the correctness step's env and the timed_prompt_pool
entry -- and pinned by DFlashGoldenKeyTests so a third loss fails in CI rather
than 30-40 minutes into a ranked dispatch.  The test also asserts each key
stays inside the signer's charset guard (^[A-Za-z0-9._/-]+$ from #822), because
that guard refuses a key BEFORE signing and would otherwise turn a typo into a
confusing dispatch-time abort.

If the objects genuinely move, change that test in the same commit that moves
them.

swift test: 582 tests, 28 suites, green.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@anupsv
anupsv requested a review from a team July 31, 2026 07:22
@anupsv
anupsv merged commit 0b28869 into main Jul 31, 2026
2 checks passed
anupsv added a commit that referenced this pull request Jul 31, 2026
…828)

#826 added a "gautham-experiments/" prefix to the golden keys.  That was wrong,
and #824's original keys were right.  Probe run 30613434387 established it in
about a minute:

  correctness_prompts/laguna-xs-2.1-dflash/dflash_correctness_golden_hidden.json  FOUND 185394b
  correctness_prompts/laguna-xs-2.1-dflash/dflash_benchmark_golden_hidden.json    FOUND 185433b
  gautham-experiments/correctness_prompts/laguna-xs-2.1-dflash/...                404 NoSuchKey

Those byte counts are exactly the generated goldens', and the SERIAL control key
was FOUND in the same run, so the credentials and the bucket were never the
issue.  "gautham-experiments" is the BUCKET, already carried by
R2_BUCKET_ENDPOINT.

Worth being plain about how this went, because the pattern cost four dispatches:
the operator's path string is ambiguous between bucket-plus-key and key, I
picked one reading on the strength of the serial keys' shape, was told I had
overridden them, switched to the other reading, and was wrong that time.  Two
confident guesses in opposite directions, ~35 minutes each.  Neither reading was
unreasonable; arguing about it was.  The probe that ends the argument took a
minute to write and a minute to run.

Fixed in all three places -- the correctness step's env, the timed_prompt_pool
entry, and DFlashGoldenKeyTests' pinned prefix -- and the test's doc comment now
records the probe output as the evidence, so the next person reads a measurement
instead of a rationale.

swift test: 582 tests, 28 suites, green.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant