Skip to content

Funded plan: resolved-graph representation minimization (root-first, v1-survivable) - #5880

Merged
briansrls merged 1 commit into
mainfrom
plan/representation-minimization
Jun 27, 2026
Merged

briansrls merged 1 commit into
mainfrom
plan/representation-minimization

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

Authors the operator-funded structural-leanness plan as a .dag plan-doc — the follow-on to the acute floor-OOM fix (#5867 shared InternTable: whole-tree resolve 14.2 → 5.5 GiB, 61% reclaimed). This lane is representation minimization at the root, distinct from the allocation lane (docs/plans/resource-aware-scheduler.md); it repoints the orphaned tidy-wren-707 resolved-graph-minimization lane.

The discriminator (operator steer: "v1 is going away")

Every item is gated on one test: does the fix live in the .dag authority (survives the v2 self-host) or is it a hand-edit to the doomed v1 Rust seed (dies with v1)? Root items are pillars; v1-only polish is explicitly bank-if-cheap.

Root-first sequencing

  1. Emitter determinism is THE GATE for Lever B — points at Make Rust emitter deterministic: correct variant owner-selection + sort import keys #5879 (stern-fox-585) as the single authority for the gate's status/mechanism; this plan only sequences on it (does not re-own it).
  2. Lever C (stream/evict) — biggest mover for the all-at-once figure, no emitter dependency; authored as one batching-and-eviction model shared with the prune-resolve / affected_set selector lane.
  3. Lever B (variant-Node minimal representation) — after the gate; modeled in std/ and emitted so it regenerates rather than being hand-edited into the seed (hence gated on Make Rust emitter deterministic: correct variant owner-selection + sort import keys #5879).
  4. func_env.sigs single-authority — resolve each signature once and share the Rc; ~hundreds-of-MiB (heavy provenance payloads are already Rc-shared, established by code read of declared_to_resolved / merge_scope_from_imports, not a probe).
  5. Cheap v1-seed hygiene — bank-if-cheap, NOT a pillar (lives in the doomed seed). Records the correction: Node.ident is NOT dead (an execution refuted a 0%-used reflection claim).

Plumbing & gates

  • Code-graph inbound link: registered in plan_registry_batch_g.
  • Doc-graph inbound link: one short ROADMAP link line (2 insertions).
  • docs/plans/representation-minimization.md is a generated projection of the .dag authority (regenerated via main_wet, drift-gated — do not hand-edit).
  • Verified green by execution (reprmin-baked binary): doc_graph_has_no_orphan_docs, doc_graph_has_no_dangling_links, every_registered_plan_has_dissolution_trigger, every_registered_plan_is_titled, and the generated-artifact drift gate.

🤖 Generated with Claude Code

…v1-survivable)

Author the operator-funded follow-on to the acute floor-OOM fix (#5867 shared
InternTable: whole-tree resolve 14.2 -> 5.5 GiB, 61% reclaimed). This lane is
REPRESENTATION minimization at the root (distinct from the ALLOCATION lane,
resource-aware-scheduler.md), repointing the orphaned tidy-wren-707 lane.

Operator steer: minimal representation, attack root causes as much as we can,
v1 is going away. Every item is gated on one discriminator -- does the fix live
in the .dag authority (survives the v2 self-host) or is it a hand-edit to the
doomed v1 Rust seed (dies with v1). Root-first sequencing:

  1. Emitter determinism is THE GATE for Lever B -- points at PR #5879
     (stern-fox-585) as the single authority for the gate's status/mechanism;
     this plan only sequences on it.
  2. Lever C (stream/evict) -- biggest mover, no emitter dependency; one
     batching-and-eviction model shared with the prune-resolve/affected_set lane.
  3. Lever B (variant-Node minimal representation) -- after the gate, modeled in
     std/ and emitted (so it regenerates, not hand-edited into the seed).
  4. func_env.sigs single-authority -- resolve each sig once, share the Rc;
     hundreds-of-MiB (payloads already Rc-shared, established by code read).
  5. Cheap v1-seed hygiene -- bank-if-cheap, NOT a pillar (dies with v1);
     Node.ident is NOT dead (execution-refuted a 0%-used reflection claim).

Plumbing: registered in plan_registry_batch_g (code-graph inbound link);
ROADMAP link line (doc-graph inbound link, one short line); docs/plans md is a
generated projection (regenerated via main_wet, drift-gated). Gates verified
green by execution: no-orphan-docs, no-dangling-links, plan dissolution+title.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@briansrls
briansrls merged commit 0bb1350 into main Jun 27, 2026
2 checks passed
@briansrls
briansrls deleted the plan/representation-minimization branch June 27, 2026 23:36
briansrls added a commit that referenced this pull request Jun 28, 2026
resolve_func_sigs_with_parent_resolved is the single call site;
resolve_func_sigs had zero callers after the func_env.sigs dedup change.
Delete from both .dag authority and hand-synced Rust seed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
briansrls pushed a commit that referenced this pull request Jun 28, 2026
… to main (re-regen reconciles), Path-B HAND_MAINTAINED re-applied for main.rs/parse.rs

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
briansrls added a commit that referenced this pull request Jun 28, 2026
… into executable RegenVerifyGate (cargo-green self-host fixed point, ONE PR) (#5873)

* WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in

* Part B: dissolve parked regen_verify_gate plan into executable RegenVerifyGate

Adds RegenVerifyGate to the CI floor (ci_spec type Gate + gunbc_ci_floor_gates),
wires all exhaustive Gate matches (ci_floor_plan gate_node/gate_runnable/
gate_is_heavy_resolve/gate_spawns_host_compiler, ci_gates.run_spec_gate,
floor_effect_gate_witness). New dsl/tools/regen_verify_{gate,transport}.dag run
regen_stage0 --verify (the §7 self-host fixed-point wall) via a new
ensure_regen_stage0_built host-prelude helper. Deletes the parked plan, its
empty plan_registry_batch_a, the generated required-facts md, and repoints the
roadmap carrier.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in

* WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in

* Part A: two-generation cutover regen to the cargo-green self-host fixed point

Applies #5865's casing fix (05_emit_rust.dag) and runs the 2-pass cutover regen:
pass-1 advances the self-host blob + emitter (gen-1 drops v1_rt starts_with/
ends_with/trim, the one-generation-ahead seed-cement), rebuild, pass-2 re-emits
them fresh (PascalCase). regen_stage0 --verify now exits 0 (a 3rd pass is
byte-identical = THE fixed point). Registers extdeps_uri_path.rs in
GENERATED_STAGE0_FILES (the legit unregistered-emit gap). Regenerates ROADMAP.md.
Drift checks: cargo-header reproduced via emit_cargo_toml, wire_value_serialize.rs
unchanged (hand-maintained, copy-preserved), v1_rt.rs emitted-fresh.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in

* Path B: parse.rs hand-maintained + re-regen against fresh main (#5818/#5819)

Operator ruled Path B for the #5864 parser seed-cement: v1_compiler_parse.rs
moves to HAND_MAINTAINED_STAGE0_FILES (copy-preserved, so #5864's O(N) cursor
optimization survives the regen instead of being reverted to the O(N^2) baseline
that 02_parse.dag still models). Named dissolution trigger marked on the carrier.
Re-regenerated the two-generation cutover against fresh main (incl #5865 casing,
#5818 Uri grounding, #5819 ci.yml thin-shim). regen_stage0 --verify exit 0.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in

* WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in

* Fix stage0_core crate membership + hand-test for the faithful fixed point

The full-workspace build (the broadened oracle CI rust_tests uses) exposed two
more pre-existing main non-fixed-points that the cutover surfaces:

1. stage0_core E0432/E0433: the faithful regen emits use crate::extdeps_uri /
   extdeps_external_authority in the extdeps_languages_* modules and
   use crate::std_realization_schedule/std_decl_ref in std_effects/std_emit_model,
   but stage0_crates.dag's CoreCrate modules list omitted them. Added the full
   transitive closure (9 modules: extdeps_external_authority, extdeps_uri,
   std_decl_ref, std_lens_verdict, std_magnitude, std_measure, std_nat,
   std_pareto, std_realization_schedule) so stage0_core is closed under crate:: deps.

2. effects.rs (hand-test) imported parse_path_template/PathTemplateParseResult from
   std_http_path, but #5818 moved them to extdeps_uri_path in the authority (main
   never regenerated, so its stale seed + test still pointed at std_http_path).
   Repointed the imports to the fixed-point location.

regen_stage0 --verify exit 0; cargo build --workspace --all-targets -D warnings 0/0;
parse.rs still byte-identical to origin/main (#5864 preserved).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in

* WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in

* WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in

* WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in

* Merge origin/main (#5874/#5878/#5880) into cutover branch; seed reset to main (re-regen reconciles), Path-B HAND_MAINTAINED re-applied for main.rs/parse.rs

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* Restore compilable pre-regen interim: all source authoring (reg-2 A1+S5, reg-3, both grounded witnesses, extdeps_uri_path reg) on main seed; regen HELD pending #5878 empty_node_list ruling

The faithful regen is blocked: #5878's empty_node_list thread_local singleton is an
ungrounded seed-cement (hand-edited into v1_std_core.rs seed, not in any .dag); a regen
drops the definition while 2 HAND_MAINTAINED files (parse.rs/dag_collect_support.rs)
still call it. Escalated to manager (empty_node_list grounding option + #5878-documented
emitter non-determinism vs RegenVerifyGate bit-identity premise). Seed kept = origin/main
(compilable) until the ruling.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in

* WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in

* WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in

* WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in

* WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in

* WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in

* WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in

* WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in

* WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in

* WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in

* WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in

* WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in

* WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in

* WIP: Two-generation regen cutover + dissolve parked regen_verify_gate plan in

---------

Co-authored-by: Brian Searls <briansearls1@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
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