Skip to content

E0308 repartition on current main: re-derive raw rows -> canonical sites -> mechanism roots against the existing 15-root vocabulary, fail closed on new residue - #8972

Closed
briansrls wants to merge 19 commits into
mainfrom
probe-gate
Closed

briansrls wants to merge 19 commits into
mainfrom
probe-gate

Conversation

@briansrls

Copy link
Copy Markdown
Contributor

Auto-opened by session-dashboard for session eager-lark-892.
Pushing to probe-gate advances this PR.

Worker attestation

Before flipping this PR to ready for review, confirm each item:

  • Title describes the change (not the session id or branch).
  • PR body summarises what and why (replace the TODO below).
  • Tests run: name the command (e.g. npm test, cargo test) and the result.
  • If this closes a work item, the body contains a Closes #N directive.
  • No commits on this branch are surprises (no fork/cherry-pick I did not make).
  • No secrets / credentials / large binaries staged.

Summary

TODO: replace this paragraph with one or two sentences naming the change and its motivation. Reviewers read this first.

Test plan

  • TODO: list the commands that ran (or "no tests changed; relied on CI") and the outcome.

Brian Searls and others added 19 commits August 22, 2026 11:06
…seams: locate the fail-open, and record two repairs that do NOT close it

DESIGN 4b names "values inhabit declared types" as the ordinary compiler floor.
A record literal of a GENERIC type does not hold it: measured on eleven
single-module probe roots, a wrongly-typed field value is accepted AND EMITTED
at six positions -- fn return, let annotation, record field, list element,
direct-call argument, and a module-scope data annotation -- while the
non-generic control refuses with a located mismatch and the conforming generic
control compiles clean.

The field PRESENCE axis is unaffected (a generic literal missing a required
field still refuses), which rules out "generic declarations are not processed"
and confines the class to the field TYPE axis.

Mechanism, by execution rather than by reading: the instantiation does reach the
literal and the substitution is keyed correctly on "T", but the declaration's
field type node carries no name to key on, so the parameter is never
substituted and the expectation reaching the judgment is a NAMELESS node --
whereupon kernel_value_declared_type_mismatch returns false on formal_name == "".
A second, independent fail-open sits beside it: the substitution value is read
with resolved_type, whose Absent arm is the equally nameless error_type.

Two repairs were built and run against the full arm table and moved NOTHING;
both are recorded because they are the cost of the next attempt. What is still
open is where the type-parameter reference loses its name, which is a modelling
question in a stage DESIGN names load-bearing -- so no code changes here, and
the probe states the exact next question rather than leaving it to be
re-derived.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…e declared WITH PARAMETERS, and the paired nonzero makes every zero a reading

The first revision of this probe named the type-parameter reference losing its
name as the cause. Two no-build discriminators falsify that, and a knowingly
stale mechanism claim in a finding other lanes plan against is premise
contamination -- so the doc is rewritten in one pass rather than annotated.

WHAT CHANGED. A generic declaration whose parameter is UNUSED and whose field is
a plain kernel type still fails open, so the trigger is that the declaration
carries type parameters at all, not that a field mentions one. And forcing the
instantiation to bail out with a wrong arity brings the field judgment back on
the SAME declaration -- so record_lit_instantiated_fields does not fail to add
an expectation, it preempts a working one. Instrumentation then showed
authored_fte="" BEFORE substitution: substitution faithfully returns the
nameless node it was given, and the declaration reached by the ident-keyed
lookup is already identity-stripped where the name-keyed lookup's is not.

PAIRED NONZERO. Every fail-open arm now carries a matched non-generic twin at
the same seam, same run, same binary: six zeros, six reds. Plus an
undeclared-name arm proving the generic module is compiled and its body judged.
The twin design also rules out "that seam is unchecked for any type", which a
bare perturbation would have left open.

FOUR DEAD ENDS, ONE CAUSE, established by reading the construction site rather
than by another build: ResolvedModule.module is the raw parsed node,
build_type_env folds THOSE items into the bindings, and resolve_item_types runs
later feeding resolved_item -- never the binding. ResolvedModule means
import-resolved, not type-resolved.

Also recorded: resolve_field is correct and has zero callers while its wired
sibling resolve_field_init does not, which makes it an incomplete migration
rather than dead scaffolding -- and a cleanup sweep deleting it would leave the
lossy hand-rolled copy as the only authority. Claim staked on the PR.

Still no code change: the remaining question is an ident-versus-intern
address-space read, and a fifth blind repair would repeat the pattern the first
four established.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…th mechanism, bounded by three baseline arms (#8901)
…ariable pair puts the tokenize row in row (b) (#8901)
… construction defects the wall caught, admit list literals at FreeMonoid
@gunbai-bot

gunbai-bot Bot commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Closing immediately — this PR is an artifact of my measurement setup, not a change I am proposing, and its diff is not mine.

probe-gate is a throwaway local checkout I use to pin a worktree to an exact SHA while running an A/B probe. It is currently sitting at 974ac5d8089b39568266a3e2ef055dda166329c3, which is calm-heron-887's repair commit (PR #8922). Every file in this diff — src/v1/04_infer.dag and its two stage0 mirrors, plus the two corpus call sites — is their work. Landing this would attribute their repair to me and risk double-landing it against their own PR.

There is nothing to review here and nothing of mine to salvage: my actual work is on session/eager-lark-892-unmask.

This is the second time tonight a scratch branch of mine has been auto-attached as a draft PR carrying another lane's commits (#8936 was the first, closed for the same reason). The mechanism looks the same both times: a local branch pointed at someone else's SHA gets pushed and attached, and the PR's authorship comes from the pusher while the diff comes from the SHA. Recording it here rather than just closing quietly, because the failure is silent from the author's side — I did not push this branch, and the first I knew of it was the attach notification. Anyone using a pinned-SHA scratch branch for measurement is exposed to it.

Remote branch deleted.

— sent from eager-lark-892

@gunbai-bot gunbai-bot Bot closed this Aug 23, 2026
@gunbai-bot
gunbai-bot Bot deleted the probe-gate branch August 23, 2026 02:14
@briansrls
briansrls restored the probe-gate branch August 23, 2026 02:59
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