Skip to content

FreeSemigroup: migrate plain nonempty pair carriers - #10916

Merged
briansrls merged 7 commits into
mainfrom
session/bold-lynx-189-freesemigroup
Sep 10, 2026
Merged

briansrls merged 7 commits into
mainfrom
session/bold-lynx-189-freesemigroup

Conversation

@briansrls

@briansrls briansrls commented Sep 10, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Structural sweep of two-field records {head,tail} / {first,rest} of the same T, not a grep for the word nonempty.
  • Migrated the plain re-inventions: annotation refusals, source-admission identities/keys, dag-acceptance obligations, staged intermediates, process-node collections. Deleted unused FiniteSet.
  • Left with dissolve triggers, not a String census: non_empty_diagnostics_dissolve_trigger (host emit still hardcodes the type name), non_empty_symbol_chain_dissolve_trigger (four assemble-detail mints plus cause-location fixture), non_empty_grammar_choice_ambiguity_rows_dissolve_trigger. Uniqueness-sealed *RefusalSet / StaleAxes / StateDurabilityBoundaryRequirements and domain encodings (git/pep440/spice/datetime/kotlin/type-expr) stay as their own shapes.

Independent of the Observed de-fork (#10915) and of the commit_closure NonEmptyList trigger retirement (#10918).

Test plan

  • CI required lanes green (main currently red on megarac_media_attach in-body //; not this diff)
  • w_staged_intermediates_are_never_empty still holds via FreeSemigroup (gunbc run --claim-run PASS)

…igroup.

A structural sweep, not a prose grep: source-annotation refusals, source-admission rows and keys, dag-acceptance obligations, staged intermediates, and process-node collections were the same two-field shape as std.algebra FreeSemigroup. Unused FiniteSet is deleted. Domain encodings, uniqueness-sealed sets, and the host-emit NonEmptyDiagnostics alias are left with reasons on free_semigroup_grounding_note.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot gunbai-bot Bot changed the title Low-priority §3/§4b cleanup: Observed de-fork, FreeSemigroup de-fork, commit_closure stall FreeSemigroup: migrate plain nonempty pair carriers Sep 10, 2026
@gunbai-bot
gunbai-bot Bot marked this pull request as ready for review September 10, 2026 02:09
frontier_probe_types still named deleted NonEmptyProcessNodeIds/FiniteSet as
untracked stalls; the staged-intermediates witness still called the dissolved
StagedIntermediates type. Cite the symbols that remain.
@gunbai-bot

gunbai-bot Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

review 63040: both citations were false on this head.

  • frontier_probe_types no longer lists NonEmptyProcessNodeIds / FiniteSet as live stalls; those left this set. The remaining pair carriers with dissolve triggers are NonEmptySymbolChain and NonEmptyGrammarChoiceAmbiguityRows. NonEmptyDiagnostics stays out of that census (host-emit alias, as free_semigroup_grounding_note already says).
  • w_staged_intermediates_are_never_empty comments now name FreeSemigroup<StagedIntermediate>.

Pushed as 8fddc2e23e.

— sent from bold-lynx-189

Brian Searls added 2 commits September 10, 2026 03:33
required-witnesses-build refused generated-artifact stage0-mirrors because
the committed seed still named the deleted NonEmptyAnnotationAttachmentRefusals
carrier. The crate DAG now records the std.algebra import that file uses.
…ing it.

The carrier is the same head+tail pair as FreeSemigroup; the Option host-emit
alias is Diagnostics. Leave-behind is emit still hardcoding the type name.
@gunbai-bot

gunbai-bot Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

review 63063: the Option-alias claim was false. NonEmptyDiagnostics is the same {head, tail} pair; Diagnostics is the host-emit Option mapping, and render_rust_diagnostics_carrier_applied hardcodes the type name NonEmptyDiagnostics as that Option inner, so this sweep does not retarget every constructor. non_empty_diagnostics_dissolve_trigger now names that emit capability; the census and free_semigroup_grounding_note cite it instead of reclassifying the symbol.

Pushed as e00820125c0.

— sent from bold-lynx-189

The dissolve-trigger rows are the stall roster; the String note was unclassified
commentary, and the frontier_probe_types block was a second copy of the same fact.
@gunbai-bot

gunbai-bot Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

review 63071: both censuses are gone.

free_semigroup_grounding_note is deleted (it was a String with no consumer). Remaining pair stalls are the dissolve-trigger rows. A // on std.algebra FreeSemigroup states the construction wall only, not a roster. frontier_probe_types no longer restates that roster.

— sent from bold-lynx-189

FreeSemigroup is already in the tree; migrate_when_free_semigroup_available
has fired. Name the remaining mints instead of that event.
@gunbai-bot

gunbai-bot Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

review 63079: both triggers now name unbuilt cutover, not migrate_when_free_semigroup_available.

  • non_empty_symbol_chain_dissolve_trigger: the four mints in frontier_probe_assemble_detail plus the cause-location fixture literal.
  • non_empty_grammar_choice_ambiguity_rows_dissolve_trigger: parse_diagnostic non_empty_grammar_choice_ambiguity_rows_from_parse_stage plus the three overlap-detail test literals.

— sent from bold-lynx-189

…the plan.

The dissolve trigger said four functions and listed three; the fourth is
non_empty_symbol_chain_from_parse_stage_head. The membership-diff plan still
cited StagedIntermediates after that carrier dissolved into FreeSemigroup.
@gunbai-bot

gunbai-bot Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

review 63088: both were real on the reviewed SHA.

  • The assemble-chain trigger now lists all four mints, including non_empty_symbol_chain_from_parse_stage_head.
  • docs/plans/membership-diff-reconcile-spine-design.md now names FreeSemigroup<StagedIntermediate>. The remaining StagedIntermediates hit is the dissolve comment on gunbc.change_realization.

— sent from bold-lynx-189

@gunbai-bot

gunbai-bot Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

required-witnesses-floor red is not this head: 17 in-body // refusals in dag/gunbc/machine_intake/megarac_media_attach.dag (landed on main via #10630). This PR does not touch that file. required-witnesses-build and heal-generated-artifacts are green. The witnesses job is the aggregator of the floor fail. Parent (sleek-newt-698) has already escalated the main red; I am not editing that module from this lane.

— sent from bold-lynx-189

@briansrls
briansrls merged commit 2d4109e into main Sep 10, 2026
2 of 4 checks passed
@briansrls
briansrls deleted the session/bold-lynx-189-freesemigroup branch September 10, 2026 14:16
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