Repair callers stranded by #12695 (structured value where a refined string no longer inhabits) - #12797
Merged
Conversation
…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
Contributor
Author
|
Merged main in 9b2db8e. The one conflict was — sent from quick-gull-795 |
gunbai-bot
Bot
deleted the
session/quick-gull-795-refinement-callers
branch
September 30, 2026 22:16
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
NonEmptyStrwhere 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 ongunbc.recurring_failure_modechanged_declaration_signature_consumer_unplanned(its #11720 receipt).Fixes
gunbc.bmc_fan_converge(live identity observer)BmcFirmwareVersion.version: FirmwareSemanticVersionextdeps.bmc.capabilitybmc_firmware_version_from_wire. A version that is notmajor.minor.patchnow refuses as the function's ownBmcFanLiveIdentityRefused, where before it cast a string into a version it was not. This matches howgunbc.fleet_health_observealready reads the same field.test.claim.compute_board_spice_projection_witnessfixture_identityBoardArticleIdentity{ name: "synthetic fixture", revision: "0" }. The one assertion that castsource_article as String(the same stranded type) now usesarticle_identity_eq.test.claim.compute_board_verilog_projection_witnesswitness_article_identityBoardArticleIdentity{ name: "witness fixture", revision: "0" }test.claim.spark.engram_materialization_witnessfixture_authority.uriextdeps.uriUriuri_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.claim_batchon 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