Skip to content

Compile door: do not refuse module shells as member_not_a_binder - #13645

Closed
gunbai-bot[bot] wants to merge 1 commit into
mainfrom
session/lively-wren-411
Closed

gunbai-bot[bot] wants to merge 1 commit into
mainfrom
session/lively-wren-411

Conversation

@gunbai-bot

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

Copy link
Copy Markdown
Contributor

Summary

  • Verdict is (b): a production compile-door defect, not a single-root harness artifact. compile_source_root_ingest_with_admission assembles a trivial module, then the subtree roster (unit_modeling / lifecycle_carrier) treats every TypeNode as a record and refuses Authored module-shell members as member_not_a_binder. The door ledger already measured that fatal on dag/std/error_primitives.dag and dag/std/bit.dag.
  • v2.cli.compile_cli does not call this door (emit_closure_from_ingest_located). Callers that do: compile_door_ledger, compile_ingest_with_admission / compile_dag_source_to_target_text, stage_translate.
  • Fix: shared carrier predicate v2.lens.common.record_field_carrier skips module shells, marked bodies, and graft spines. fact_density treats graft identity atoms as NotATypeCarrier so the skip is not unmasked as hollow-alias. Hand-built name→type fields still refuse. Door-grain mandatory_tag controls (mandatory_tag gate: read the lowered data-declaration carrier (clean fixture refused at normalized grain) #13513) are now authorable.

Test plan

  • Floor claims v2.test.lens_unit_modeling.module_container_is_not_a_record_carrier (GREEN grafted shell/spine; RED hand-built field still member_not_a_binder on the subtree roster)
  • Floor claim v2.test.lens_fact_density.surface_identity_atom_not_a_type_carrier
  • Existing binder-node RED a_lens_refuses_a_field_that_is_not_a_binder still holds
  • After merge, door-grain mandatory_tag RED/GREEN through compile_source_root_ingest_with_admission can name this lens's reasons; retire the member_not_a_binder ownership row when the long door-ledger count is zero

Made with Cursor

The compile-door subtree lenses treated every TypeNode as a payload, so a grafted module refused as member_not_a_binder before later gates ran. Narrow the carrier predicate and keep graft identity atoms out of fact_density so door-grain mandatory_tag controls are authorable.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor Author

Parent asked not to open a PR; this item is folded into integration/bold-bee-114 (#13560). Branch kept for the closeout report.

@gunbai-bot gunbai-bot Bot closed this Oct 9, 2026
@gunbai-bot gunbai-bot Bot mentioned this pull request Oct 10, 2026
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