Skip to content

SH-C: Bootstrap artifact materialization - #8186

Closed
gunbai-bot[bot] wants to merge 5 commits into
mainfrom
scratch-verify
Closed

gunbai-bot[bot] wants to merge 5 commits into
mainfrom
scratch-verify

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Auto-opened by session-dashboard for session sharp-hawk-59.
Pushing to scratch-verify advances this PR.

Worker attestation

Before flipping this PR to ready for review, confirm each item:

  • Title describes the change (not the session id or branch).
  • PR body summarises what and why (replace the TODO below).
  • Tests run: name the command (e.g. npm test, cargo test) and the result.
  • If this closes a work item, the body contains a Closes #N directive.
  • No commits on this branch are surprises (no fork/cherry-pick I did not make).
  • No secrets / credentials / large binaries staged.

Summary

TODO: replace this paragraph with one or two sentences naming the change and its motivation. Reviewers read this first.

Test plan

  • TODO: list the commands that ran (or "no tests changed; relied on CI") and the outcome.

gunbc-ci-auto-heal and others added 5 commits August 12, 2026 10:19
Two wet claims: changing only the source bytes moves exactly the
materialized artifact axis, and rebuilding identical source in place
moves no axis. Both build through the production path, so the axis is
derived from bytes rather than minted from a literal.

Both hold the build directory FIXED, because a Rust debug binary embeds
its build path: the same source in two temp dirs yields different bytes.
A fixture varying source AND directory would pass with identical
sources, proving nothing about the source.

Guarded on both sides materializing, since artifact_identity_agrees
answers false for two unbuilt artifacts — without it the claim passes
with both builds broken.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The note framed it as "do not use artifact-axis equality as a
reproducibility oracle". The sharper statement: two generations can
agree on all five model-side axes and still differ in artifact bytes,
so the axis set does not DETERMINE the artifact — it identifies a
generation up to build location.

Names the two honest remedies (remap-path-prefix, or build path joins
build_configuration) and rules out the third. Still not urgent: the
direction is false invalidation, never false agreement.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
#8177 renamed v2.compiler.self_host.generation's ArtifactIdentity to
GeneratedArtifactIdentity, resolving a genuine homonym with
std.cache_interface's generic ArtifactIdentity<T>. #8176 landed a new
consumer of the old name in the same window. Whichever merged second was
not rechecked against the other, so main carries a resolve failure:

  dag/gunbc/self_host_artifact_materialization.dag:32:3: error: name
  'ArtifactIdentity' not found in module 'v2.compiler.self_host.generation'

Three sites, all mechanical: the import, the return type of
artifact_identity_of, and a prose reference naming a type that no longer
exists — the stale-citation class, repaired rather than left to rot.

Verified by execution rather than by grep, which is how the break was
found in the first place: my first pass grepped for names that were still
present and concluded main was fine. Resolving the module is what actually
answered it. All 10 artifact-materialization witnesses now pass.

Worth recording beside the fix: #8177's own title notes the collision
"only broke whole-tree", so per-PR affected-set selection did not see the
edge between a renamed declaration in one lane and a new consumer landing
in another. Both PRs were green when they merged. That is a selection gap
on cross-lane rename edges, not a review failure by either author.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
DESIGN 4c: a String declaration whose sole purpose is commentary is
misplaced data. Attached above build_twice_in_one_dir, the fn whose
fixed-directory shape it justifies.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@gunbai-bot

gunbai-bot Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor Author

Closing: this was attached to a throwaway local verification branch, not a proposal. It carries a local merge of #8183's unmerged branch plus a rename, used only to prove that the repair makes #8181's wet claims pass. That evidence is recorded on #8181; nothing here should land. — sent from sharp-hawk-59

@gunbai-bot gunbai-bot Bot closed this Aug 12, 2026
@gunbai-bot
gunbai-bot Bot deleted the scratch-verify branch August 12, 2026 10:47
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.

0 participants