Skip to content

Diagnose E0599 canonical-seven bucket (635 errors, three roots) - #7283

Merged
briansrls merged 28 commits into
mainfrom
session/swift-bee-52
Jul 26, 2026
Merged

briansrls merged 28 commits into
mainfrom
session/swift-bee-52

Conversation

@briansrls

@briansrls briansrls commented Jul 26, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Measurement-only diagnosis for the E0599 bucket (no method named X found). Fresh 7/7 canonical-seven probe run with verified binary; all per-module counts match docs/probes/refresh_canonical_seven_2026-07-26.tsv (635 total, Δ=0).

Verdict: not scattered — 635 errors reduce to three mechanistic roots:

  • R1+R2+R3 (93%): one Clone-bound propagation family on generic type parameters and their im::Vector/Outcome/Option uses (same root loyal-raven-94's E0277 lane hits as T: Clone)
  • R4 (4%): modeled Optional::GlobalBare* matched on native std::option::Option (six deep modules, 4 errors each)
  • Tails (3%): as_deref on () + misc cache/verdict carriers

Artifacts:

  • docs/probes/e0599_diagnosis_2026-07-26.md — root classification + proposed fix slices with measured targets
  • docs/probes/e0599_canonical_seven_census_2026-07-26.tsv — per-module totals, method histogram, detail keyed by (failure_shape, method, receiver_carrier)
  • docs/probes/e0599_census_extract.py — reusable extractor over PROBE_KEEP_LOG_DIR/*.cargo.log
  • docs/probes/curated_cargo_probe_one.sh — PROBE_KEEP_LOG_DIR env var to retain raw cargo logs

No emitter code changed. Fix slices deferred to follow-up PRs (Slice A: Clone-bound propagation, target −590 E0599; Slice B: Optional coproduct grounding, target −24).

Reproducibility

CTRL_BUILD_BYPASS_SHIMS=1 RUSTC_WRAPPER= CTRL_BUILD_WRAP_CARGO=0 \
  cargo build --release -p v1-compiler --bin gunbc --bin cssl_assemble
# gunbc mtime 2026-07-26T12:58:34Z
# gunbc sha256 2901267968f5b02c496a97db96d350d336aa1dc6ff2939062fa1eec294e3942a
# git c9313ee70a

export CSSL_STD_SEED_LINK=1
PROBE_KEEP_LOG_DIR=/tmp/e0599_logs docs/probes/curated_cargo_probe_one.sh <module.dag>
python3 docs/probes/e0599_census_extract.py --aggregate /tmp/e0599_logs/*.cargo.log

Test plan

  • Fresh 7/7 probe run; E0599 totals match baseline receipt (635, all modules Δ=0)
  • E0277 overlap documented (603 total; T: Clone = 181 explicit trait-bound rows)
  • No code-path fix claimed; discriminating RED N/A for measurement receipt

Brian Searls and others added 2 commits July 26, 2026 13:12
Fresh 7/7 probe census keyed by method and receiver carrier; 93% is one
Clone-bound propagation family shared with E0277. Measurement-only — no emitter fix.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot gunbai-bot Bot changed the title EO599 Diagnose E0599 canonical-seven bucket (635 errors, three roots) Jul 26, 2026
@gunbai-bot
gunbai-bot Bot marked this pull request as ready for review July 26, 2026 13:25
gunbc-ci-auto-heal and others added 20 commits July 26, 2026 13:28
Matches dissolve-on discipline of sibling probe runners in docs/probes/.

Co-authored-by: Cursor <cursoragent@cursor.com>
Register HandAuthoredDocBind for e0599_diagnosis_2026-07-26 (doc-reachability
orphan) and roster ct_render_rust_applied_type_qualified_base_test from main merge.

Co-authored-by: Cursor <cursoragent@cursor.com>
Remove triplicate data blocks and duplicate roster references so
compiler_tests_rust_blobs_are_all_rostered counts 27 declared vs 27 rostered.

Co-authored-by: Cursor <cursoragent@cursor.com>
Review 43346: Root 3 (Optional coproduct, 24) is separate from the 93% Clone-bound axis.

Co-authored-by: Cursor <cursoragent@cursor.com>
Addresses codex review 43347: pattern rows, root-family rollup, and canonical-seven
roster live in .dag; e0599_census_extract.sh is scaffold realization only. Witness:
e0599_probe_census_witness_test.dag.

Co-authored-by: Cursor <cursoragent@cursor.com>
Addresses codex review 43358: e0599_census_extract.sh calls
e0599_root_family_labels_from_blob (batch) instead of reimplementing
classification; SCAFFOLD header names gunbc bash-emit #5828 dissolve-on.

Co-authored-by: Cursor <cursoragent@cursor.com>
Addresses codex review 43368: e0599_census_extract.sh fetches
e0599_message_pattern_rows_blob at runtime instead of hardcoding regexes;
pattern rows remain single authority in dag/tools/e0599_probe_census.dag.

Co-authored-by: Cursor <cursoragent@cursor.com>
Addresses cursor review 43377: selective import for blob batch witness.

Co-authored-by: Cursor <cursoragent@cursor.com>
Addresses codex review 43379: ProcessExit write exports require exit 0;
refuse --aggregate with no log paths or missing files instead of TOTAL 0.

Co-authored-by: Cursor <cursoragent@cursor.com>
Shared-binary canonical-seven before receipt (E0599+E0277) at
gunbc sha256=2901267968f5... — pre Clone-bound fix measurement baseline.

Co-authored-by: Cursor <cursoragent@cursor.com>
Addresses codex review 43403: always use fresh mktemp OUT per probe;
copy only cargo.log into PROBE_KEEP_LOG_DIR for census retention.

Co-authored-by: Cursor <cursoragent@cursor.com>
Export e0599_canonical_seven_module_log_labels_blob from .dag authority;
aggregate path refuses missing/duplicate/extra cargo.log modules before totals.

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

gunbai-bot Bot commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

review 43412 — fixed in 5c71ff503b + ad8e9186d1

Agreed: aggregate output must not claim e0599_canonical_seven_census unless inputs match the modeled roster exactly.

Authority export (dag/tools/e0599_probe_census.dag):

  • e0599_module_log_label_from_path derives log labels from e0599_canonical_seven_modules paths
  • e0599_canonical_seven_module_log_labels_blob + e0599_write_canonical_seven_module_log_labels_blob (ProcessExit export, same pattern as patterns/root-family blobs)

Runner enforcement (docs/probes/e0599_census_extract.sh):

  • --aggregate (and multi-log) calls resolve_canonical_seven_paths, which fetches the roster blob at runtime and refuses (exit 2) on:
    • missing modules
    • extra modules
    • duplicate *.cargo.log labels
  • Only after exact seven-module match does it emit aggregate totals

Witness: e0599_canonical_seven_module_log_labels_blob_line_count + first-row control in e0599_probe_census_witness_test.dag.

Verified locally:

  • 7/7 valid logs → aggregate header + TOTAL
  • 1/7 or 8/7 → error: canonical-seven roster mismatch: missing=... extra=..., exit 2

— sent from swift-bee-52

@gunbai-bot

gunbai-bot Bot commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

review 43421 — fixed in 54f1896b92

Agreed: the export boundary must refuse unknown failure-shape labels, not silently map them to Other → R6Other.

Change (dag/tools/e0599_probe_census.dag):

  • e0599_failure_shape_from_log_shape now returns Result<E0599FailureShape, E0599LogShapeParseError> — only the five modeled log labels (missing_method, bounds_unsatisfied, no_variant, no_assoc_fn, other) are accepted; anything else is Err { UnknownFailureShapeLabel }
  • e0599_root_family_label_for_row, e0599_root_family_label_for_tuple_line, and e0599_root_family_labels_from_blob propagate Err through the fold (dns-label-list pattern)
  • e0599_write_root_family_labels_from_blob maps Err → exit_failure (non-zero gunbc exit; shell already treats this as refusal)

Witness RED controls (e0599_probe_census_witness_test.dag):

  • e0599_failure_shape_unknown_label_refused
  • e0599_root_family_labels_from_blob_unknown_shape_refused

All 16 witness fns green by execution locally.

— sent from swift-bee-52

Brian Searls and others added 3 commits July 26, 2026 18:56
The 960-line expansion in fb3c95c fails to parse and blocked regen/heal CI. Restore the last good authority (patterns, roster, root-family exports); shell scaffold keeps aggregate classification until aggregation lands incrementally.

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

gunbai-bot Bot commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Addressed review 43470 — malformed tuple transport input now fails closed.

Verified against 780a30497d: e0599_root_family_label_for_tuple_line counts tab fields via list_length and returns MalformedTupleLine { line, field_count } when the count is not exactly 3, instead of substituting "" for missing method/receiver and classifying as R6Other.

Witness coverage added:

  • e0599_root_family_labels_from_blob_malformed_tuple_two_fields_refused (2-field row)
  • e0599_root_family_labels_from_blob_malformed_tuple_four_fields_refused (4-field row)

Existing valid 3-field batch path (e0599_root_family_labels_from_blob_batch) still green by execution.

— sent from swift-bee-52

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