Skip to content

NAMESPACE XL-3: declaring-identity spelling census (carrier + producer) - #11210

Closed
gunbai-bot[bot] wants to merge 19 commits into
session/sharp-owl-21from
session/quick-otter-229
Closed

gunbai-bot[bot] wants to merge 19 commits into
session/sharp-owl-21from
session/quick-otter-229

Conversation

@gunbai-bot

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

Copy link
Copy Markdown
Contributor

Summary

Test plan

  • Fold witnesses including three coverage frontiers
  • a_qualified_cross_module_mention_is_absent_from_the_census_today PASS
  • XL-3 status NotDerivable
  • Do not mark Clear while the qualified cross-module class is empty

@gunbai-bot gunbai-bot Bot changed the title NAMESPACE XL-3: declaring-identity spelling carrier (fold + file fixtures; producer held) NAMESPACE XL-3: declaring-identity spelling census (carrier + producer) Sep 12, 2026
@gunbai-bot
gunbai-bot Bot force-pushed the session/quick-otter-229 branch from afbe08e to 02abaad Compare September 12, 2026 23:01
@gunbai-bot

gunbai-bot Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor Author

review 64809, both findings verified against the tree and fixed in 8974786.

  1. The *_fixture_path: String rows were unread. Deleted them. Also deleted canonical.dag, which those strings were the only remaining mention of.

  2. coverage_frontiers_are_not_observed_tree_holds matched data constants declared beside it, so its RED was unauthorable. Removed that test and the unused DeclaringIdentityCensusCoverage type that existed only to feed it. The authorable RED is already enrolled on the producer: v2.test.claim.declaring_identity_spelling.production_ingest (a_qualified_cross_module_mention_is_absent_from_the_census_today, a_callee_name_is_absent_from_the_census_today, and the same-module controls). Those go red when the class appears; a match on a constant next to the test does not.

@gunbai-bot

gunbai-bot Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor Author

review 64884 (dashboard-only, /api/reviews/64884/artifacts/stdout.log): both findings were real; they are gone at a2c1f3a34b5.

  • resolved_spelling_needs_requalification deleted. Requalification is the ResolvedPathVerdict partition (SpelledShorter / ResolvedAuthoredNotOnCanonicalPath vs SpelledCanonically); UnresolvableSpelling is not rewrite work because it is a different constructor. XL-5 matches that partition when it consumes. Verdict fixtures now match the variants only.
  • spelling_symbol_eq deleted. is_prefix_of gets eq: fn(a, b) { a == b } at the call site, same shape as v2.compiler.01_tokenize. Unused Symbol import dropped with it.

— sent from quick-otter-229

@gunbai-bot

gunbai-bot Bot commented Sep 13, 2026

Copy link
Copy Markdown
Contributor Author

review 64912 (dashboard-only, /api/reviews/64912/artifacts/stdout.log): the fabricated-empty-census finding was real; it is gone at f45d628095a.

census_of / two_module_census no longer mint { rows: Empty, unreadable_roots: Empty } on Rejected. That arm is Absent; every test that used it answers false. The same for value_outside_call_roots, which had been Empty and made the fill-miss probe green on a failed ingest.

Absence claims now carry a present spelling on the same Accepted census: LocalParam on the two-module and call-only fixtures (parameter position, no call), marker beside missing Int, value_only beside missing Bool, ParamOnly beside missing FieldOnly.

The truncated second path (declaring_identity_spelling_census) — if it was spelling_census_is_total as a Bool restatement of is_empty(unreadable_roots) — that helper is deleted. Completeness is emptiness of the carried unreadable_roots list at the call site.

— sent from quick-otter-229

@gunbai-bot
gunbai-bot Bot force-pushed the session/quick-otter-229 branch from f45d628 to 08ba026 Compare September 13, 2026 00:40
@gunbai-bot

gunbai-bot Bot commented Sep 13, 2026

Copy link
Copy Markdown
Contributor Author

review 64968 (dashboard-only, /api/reviews/64968/artifacts/stdout.log): both findings were real; they are gone at 0d85671480b.

  • Fixture .dag files are now the ingest authority. filesystem_read supplies the Medium; the duplicated inline String rows are deleted. The path: on DagSourceReadWitness is the same path that was read. Disposition is ReadsLiveTree.
  • spelling_from_answer consumes carrier_provenance for declared vs ownerless / ambiguous / unbound. Canonical QualifiedName still comes from ProvenanceResolved.target (the symbol-index path); that is not a second copy of the remainder collapse.

— sent from quick-otter-229

gunbc-ci-auto-heal and others added 17 commits September 13, 2026 10:20
…ures only.

Verdict fold is discriminated on labelled hand-built names. Producer wiring and the status arm stay held until ingest yields sites on real files.

Co-authored-by: Cursor <cursoragent@cursor.com>
Type-position and call mentions stay invisible; value-outside-call is the class ingest can see. Carry unreadable roots when wiring; do not walk the parse tree.

Co-authored-by: Cursor <cursoragent@cursor.com>
Carrier alone is not a landing; this is the s3c consumer. Fixtures measure today's loss (callee and kernel type-position absent; visible bare value Unbound). Status stays NotDerivable with those frontiers named.

Co-authored-by: Cursor <cursoragent@cursor.com>
Matched control in one module with no call: value_only and user type_only reach; imported Bool in a parameter does not. Name InvisibleUntilTypePositionMentionSurvives as that capability, not #11207.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
… absent.

A bare same-module survivor is not requalification work. Enroll the two-module discriminator; name InvisibleUntilQualifiedCrossModuleMentionSurvives rather than body-lowering as that trigger.

Co-authored-by: Cursor <cursoragent@cursor.com>
…eck.

review 64809: the path rows were unclassified commentary, and matching two data constants beside them was permanently green. Coverage of the producer is the production ingest witnesses, which already go red when a held class appears.

Co-authored-by: Cursor <cursoragent@cursor.com>
…d census.

Fixture 1 (Marker) and fixture 3 (unbound type) reach the producer. NotDerivable is the qualified cross-module miss, not type-position absence.

Co-authored-by: Cursor <cursoragent@cursor.com>
Bare local `x: Marker` reaches; a dotted ProvidedMarker in a parameter does not. Same class as the dotted value Probe. Body-lowering is not that trigger.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
…bilities.

Enrolled cfp_own_module_site binds. Ingest fill does not insert the same-module data name at the collector's parser-keyed path, which is why the census row is Unbound -- not that v2 cannot compile it. Call contents stay lowering; qualified/dotted is not lowering; kernel Int has no corpus declaration.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
… parameter.

ProvidedFieldMarker is used only as Wrapper.f. Absent today, same as dotted parameter and dotted value.

Co-authored-by: Cursor <cursoragent@cursor.com>
The requalification fact is ResolvedPathVerdict; a second Bool match was a restatement. Equality for is_prefix_of is supplied at the call site. Same ingest now separates a bare parameter type from a bare field type so qualification is not blamed for the field miss.

Co-authored-by: Cursor <cursoragent@cursor.com>
Absence claims now require Accepted ingest plus a present spelling on the same census (LocalParam / marker / ParamOnly). spelling_census_is_total was a Bool restatement of empty unreadable_roots and is gone.

Co-authored-by: Cursor <cursoragent@cursor.com>
The fixture .dag files are the source text. Ingest reads them; the inline copies are gone. Declaring vs ownerless is carrier_provenance's collapse, not a second length(target) guard.

Co-authored-by: Cursor <cursoragent@cursor.com>
…xtures.

filesystem_read refused without the service in the import closure; the ingest census is otherwise unexecutable.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot
gunbai-bot Bot force-pushed the session/quick-otter-229 branch from ed278f1 to 0639108 Compare September 13, 2026 10:20
gunbc-ci-auto-heal and others added 2 commits September 13, 2026 12:27
ResolvedSpelling.declaring consumes carrier_provenance today; it must derive from
OccurrenceBindingResult when that resolver answer exists, never a third identity.

Co-authored-by: Cursor <cursoragent@cursor.com>
gunbai-bot Bot pushed a commit that referenced this pull request Sep 13, 2026
…tier

#11201 executes collect_reference_sites and reference_site_collection_is_total;
#11210 is the next census consumer. Neither lands in this PR, so keep the
predicates and record the landing changes instead of treating them as dangling.

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

gunbai-bot Bot commented Sep 14, 2026

Copy link
Copy Markdown
Contributor Author

HELD under the operator wind-down: stacked on #11201 (base session/sharp-owl-21) and consumes its collector (collect_reference_sites) and carrier_provenance, so it cannot enqueue before #11201 lands; on that merge GitHub retargets this PR to main. Head 463200b: approval on head (claude 65434), 0 RC, CLEAN against its base. Classification: likely exempt (std.declaring_identity_spelling + v2.compiler.declaring_identity_spelling_census are instrument-side; confirm no src/v2/compiler/00_compile reachability at resume). RESUME: after retarget, one CI run on the head, fresh approval if the base moved materially, then enqueue on the manager gate. Standing stays StageXL3 NotDerivable by design (usable population invisible on the production tree; inherits XL-0's frontier row, trigger #11264). — sent from swift-bat-902

gunbai-bot Bot pushed a commit that referenced this pull request Sep 16, 2026
…' line

The required floor's parser refused dag/std/declaring_identity_spelling.dag with
'expected expression, found Newline': the frontier row was authored as 'data x: T ='
followed by a newline. #11210 was stacked on #11201 so its own CI never parsed the
file; the integration branch's first floor run (0a7376d) did. No other declaration
in the tree has that shape.
gunbai-bot Bot pushed a commit that referenced this pull request Sep 16, 2026
…must-not-resolve XL-3 fixture under test/probe

Two refusals from the integration head's first floor run (35056157979), neither
visible on the superseded PRs because #11209 never had a floor run and #11210 was stacked:

1. namespace-wave-admission: 66 unadjudicated TargetChanged binding deltas, all one
   move - the reference-derived candidate row/disposition types leaving
   v1.compiler.emit_rust for their one dag home gunbc.reference_derived_candidate
   (#11209 commit 42323e5), reached from v1.compiler.emit_rust (43 bindings) and
   v1.tests.claim.reference_derived_disposition_census_witness_test (23). Admitted one
   row per delta in NAMESPACE_TRANSITION_ADMISSIONS, generated mechanically from the
   run's own delta lines (identity grain, expected candidate = the new home), with the
   consumption trigger stated: the rows go when gunbc#11461 merges.

2. floor prepare: src/v2/test/fixture/declaring_identity_spelling/unresolvable.dag is a
   must-not-resolve fixture (an undeclared type name, so XL-3's IdentityUnbound verdict
   has an authorable subject) and the prepared subject resolved it. Moved to
   dag/test/probe/declaring_identity_spelling_unresolvable_probe.dag - the roster
   floor_prepared_subject_exclusions already excludes test/probe/ for exactly this class -
   with the probe header; the census reads it as source through the ingest route, so the
   test's path row is repointed and nothing else changes.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013k9hjAXuaD1HiC1yzd4wnC
@gunbai-bot

gunbai-bot Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by the NAMESPACE-XL integration branch #11461 (operator direction 2026-09-16: one integration branch for the five floor-met PRs). This PR's content is carried there verbatim except where the branches disagreed — the integration decisions are listed in #11461's body — with its stage0 mirrors regenerated from the candidate at a verified fixed point and every touched witness file executed green. Review history stays here; branch kept. — sent from swift-bat-902

@gunbai-bot gunbai-bot Bot closed this Sep 16, 2026
gunbai-bot Bot pushed a commit that referenced this pull request Sep 16, 2026
…ired route; XL-3's ingest claims share one carried fixture read

Two refusals on the integration floor run 35074340220 (01d5517).

1. The two Observed-arm controls added for review 66841 FAILED on the floor in under 300
   microseconds while passing in 25 ms on a session host: compile_xl1_primary_root_tap gates
   on memory_governor whole_corpus_compile_admission BEFORE discovery, and the required floor
   never holds whole-corpus headroom mid-run. So the Observed arm has no required executing
   route today, and CaptureAvailable would be a rung read off controls the required route
   cannot run (DESIGN 4b(1)). legacy_baseline_capture_capability now reports the honest arm:
   CaptureBlocked { RepairCensusPhase, ObservedArmUnexercisedOnRequiredRoute { evidence_route,
   restoring_receipt } } (new refusal cause, rendered), naming the witness that executes the
   arm and the receipt that retires the block (a PersistedLegacyBaseline held against the
   pinned pre-cut base - ACT-0's BaselineCaptureReceipt). The two controls move to
   test.claim.long.xl1_live_tap_observed_arm_witness (long/ is declined from the required
   floor by route; they execute on a session host and on the one-time capture run); the
   floor keeps the refusal claims. The capability witness now asserts the blocked report and
   reds if Clear is read off an unexercised arm again. Consequence for the stage carrier:
   StageXL1BaselineCapture reads outstanding until the capture is taken, which is the truth.

2. Fifteen claims of v2.test.claim.declaring_identity_spelling.production_ingest were
   COMPLETED-OVER-COST-REQUIREMENT (130k-430k eval steps against the new-witness budget):
   each re-derived its own fixture parse-and-normalize per claim frame
   (shared_precondition_re_derived_once_per_claim_frame; #11210 was stacked so its own
   floor never ran). The eight fixture reads are now one PreparedEffectInput
   (xl3_fixture_reads) and the per-fixture censuses one CarriedInputWarmRow over it
   (xl3_fixture_censuses, ImplicitAcquisition); each claim is a field read of that value,
   each fixture is STILL its own single-file ingest, so nothing a claim measures changed.
   ingest_of and two_module_ingest are deleted (no consumer).

Executed locally (branch seed claim_batch, scoped): legacy_baseline_capture 13/13,
legacy_repair_tap_live_bridge 3/3, long/xl1_live_tap_observed_arm 2/2,
compiler_frontend_program_status 39/39, declaring_identity_spelling/production_ingest 16/16,
floor_prepared_effect_input_ladder 7/7, floor/pure_producer_share_refusal 13/13. claim_batch
does not perform warm enrolment, so the XL-3 per-claim budget is proven by the floor run,
not by these figures.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013k9hjAXuaD1HiC1yzd4wnC
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