Skip to content

Repair callers stranded by #12695 (structured value where a refined string no longer inhabits) - #12797

Merged
gunbai-bot[bot] merged 2 commits into
mainfrom
session/quick-gull-795-refinement-callers
Sep 30, 2026
Merged

gunbai-bot[bot] merged 2 commits into
mainfrom
session/quick-gull-795-refinement-callers

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

This repairs the callers that #12695 ("a kernel refinement (NonEmptyStr) at a structured parameter refuses like its base") left stranded. The rule is right and the callers are wrong: each one passed a NonEmptyStr where a record is declared. The rule changed in the checker, not in any declaration's interface, so the floor's interface planner could not select these callers. That is the entry path recorded on gunbc.recurring_failure_mode changed_declaration_signature_consumer_unplanned (its #11720 receipt).

Fixes

Site Declared Fix
gunbc.bmc_fan_converge (live identity observer) BmcFirmwareVersion.version: FirmwareSemanticVersion Parse the observed os-release string with the existing extdeps.bmc.capability bmc_firmware_version_from_wire. A version that is not major.minor.patch now refuses as the function's own BmcFanLiveIdentityRefused, where before it cast a string into a version it was not. This matches how gunbc.fleet_health_observe already reads the same field.
test.claim.compute_board_spice_projection_witness fixture_identity BoardArticleIdentity { name: "synthetic fixture", revision: "0" }. The one assertion that cast source_article as String (the same stranded type) now uses article_identity_eq.
test.claim.compute_board_verilog_projection_witness witness_article_identity BoardArticleIdentity { name: "witness fixture", revision: "0" }
test.claim.spark.engram_materialization_witness fixture_authority.uri extdeps.uri Uri uri_https(locator: "example.invalid/fixture-cost-model")

Receipts: main fdf1966 (which contains #12695) and this head

All four compiles use gunbc compile --source-root dag --source-root src/v2 --source-root src/v1 --dependency-pool-index primary-precedence --entry <file> --target dag --dry-run.

File main this head
bmc_fan_converge 1 blocking error 0
spice witness 6 0
verilog witness 2 0
engram witness 1 0

claim_batch on this head: spice 10/10, verilog 7/7 and engram 68/68 PASS.

Not changed

gunbc.codex_app_server_press ("expected Int, got JsonNumberLexeme", flagged as unconfirmed) compiles clean at main as its own entry (0 blocking errors). It does not reproduce there, so it is left as is.

🤖 Generated with Claude Code

Brian Searls and others added 2 commits September 30, 2026 15:07
…ed string parameter no longer accepts

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…5-refinement-callers

# Conflicts:
#	dag/gunbc/bmc/bmc_fan_converge.dag
@gunbai-bot

gunbai-bot Bot commented Sep 30, 2026

Copy link
Copy Markdown
Contributor Author

Merged main in 9b2db8e. The one conflict was gunbc.bmc_fan_converge: main's #12791 had independently landed the same fix (bmc_firmware_version_from_wire with a typed BmcFanLiveIdentityRefused), so I took main's version and this PR no longer changes that file. The import block has each name once. The PR is now the three witness fixtures. Recompiled at this head with gunbc rebuilt at the merged tree (which includes #12791's stricter checker): spice, verilog and engram each report 0 blocking errors.

— sent from quick-gull-795

@gunbai-bot
gunbai-bot Bot added this pull request to the merge queue Sep 30, 2026
Merged via the queue into main with commit 5c08b33 Sep 30, 2026
4 checks passed
@gunbai-bot
gunbai-bot Bot deleted the session/quick-gull-795-refinement-callers branch September 30, 2026 22:16
@briansrls
briansrls restored the session/quick-gull-795-refinement-callers branch October 1, 2026 18:24
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