Skip to content

origin probe: compare atom Symbols, not host text into v2.std.text String (main red: #12512 text wall) - #13115

Merged
gunbai-bot[bot] merged 1 commit into
mainfrom
session/gentle-seal-218-probe-text-wall
Oct 3, 2026
Merged

gunbai-bot[bot] merged 1 commit into
mainfrom
session/gentle-seal-218-probe-text-wall

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

Main is red: v2.lens.production_qualification_origin_probe refuses at 210:39 and 267:39 on main with type mismatch: expected 'Node(String<Product(Char)>)', got 'Primitive(String)'. That refusal stops every floor run that prepares the module.

Cause

Both sites are string_eq(a: symbol_lexeme(sym), b: <v2.std.text String>). Host text crosses into the structural String with no unfold, and the #12512 text wall refuses that crossing.

Fix

The fix compares atom identities instead of unfolding host text, so the file no longer crosses text at all. This PR is only that one file, the same fix already reviewed inside #12583 (wise-dove-693 approved the approach).

Evidence: verdict unchanged

All 13 probe witnesses ran under claim_batch on BuildBuddy. Verdicts are identical between main before #12512 (b9cc71cf, the string_eq body) and the fixed body (#12583 head b165884f):

  • 8 PASS on both sides:
    • witness_structural_fixture_module_reached_by_symbol_reference
    • witness_planted_fixture_origin_count_matches_oracle
    • witness_structural_red_control_mint_site_discovered
    • witness_nested_fixture_marker_classifies_fixture_origin
    • witness_unknown_origin_red_control_refuses_admission
    • witness_parameter_borne_fixture_mint_classifies_unknown_origin
    • witness_target_without_fixture_tree_classifies_unknown_origin
    • witness_planted_fixture_origin_refuses_production_admission
  • 5 FAIL on both sides, all in long/: witness_production_qualification_origin_probe_admission_holds and four …_reds. None of them changed.
  • After Text crossings unfold or refuse: exact-representation text compat (XL-0T ruling B) #12512 and without this fix, both witness modules fail to resolve.

decl_contains_atom is exercised in both polarities through derived_sites_for_decl, then decl_origin_from_structure, then decl_has_fixture_marker:

  • Marker present, so FixtureDerived: planted_fixture_origin_count_matches_oracle, structural_red_control_mint_site_discovered, nested_fixture_marker_classifies_fixture_origin, planted_fixture_origin_refuses_production_admission.
  • Marker absent, so UnknownOrigin: unknown_origin_red_control_refuses_admission, parameter_borne_fixture_mint_classifies_unknown_origin, target_without_fixture_tree_classifies_unknown_origin.

So symbol_eq on interned atoms agrees with string_eq on their lexemes in both directions.

No stage0 mirror is involved, because this is a v2 lens module.

🤖 Generated with Claude Code

… v2.std.text String

The two string_eq(symbol_lexeme(..), <v2.std.text String>) sites refused under the #12512
text wall (pre-existing on main; the Bool-import edit put this file under the floor's
changed-file judgment). node_contains_atom_text had no callers and is deleted.
decl_contains_atom takes the atom as a Symbol and compares identities with symbol_eq; its one
caller interns the row the way the file's fixture already does.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@gunbai-bot
gunbai-bot Bot added this pull request to the merge queue Oct 3, 2026
Merged via the queue into main with commit dcd0c30 Oct 3, 2026
4 checks passed
@gunbai-bot
gunbai-bot Bot deleted the session/gentle-seal-218-probe-text-wall branch October 3, 2026 15:38
gunbai-bot Bot pushed a commit that referenced this pull request Oct 3, 2026
…types

Co-Authored-By: Claude Opus 5.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.

0 participants