Repository navigation
C2: typecheck materialization through the local store - #13482
gunbai-bot[bot] wants to merge 10 commits into
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
… the frontier on a unused declaration. C2 now looks up and commits TypecheckModuleRequest from reconcile using content digests, fail-closed prepare/commit/integrity arms, and a family budget derived from the existing per-entry estimate rather than a synthetic interface literal. The durable-budgets frontier stays unbound until that executing consumer is the retirement trigger. Co-authored-by: Cursor <cursoragent@cursor.com>
Review 77087 was right that a function named measured_largest_entry was still an estimate. The family unit is now typed_module_bytes_per_entry_estimate under its own name, and the wet size check no longer claims to be a real typecheck-entry reading. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Checked review 77087 against the current head (
Duplicate C2 PR #13484 was closed in favor of this one. Merge not requested: review 77087 is still REQUEST_CHANGES on the old SHA, no approval on this head, GitHub mergeStateStatus BLOCKED. |
The family byte ceiling is still estimate × residency, but the per-entry figure is no longer an untyped authored constant: it carries CitedFigureStanding with a read_obligation naming observed_largest_entry_bytes on the real typecheck commit path, and the budget frontier stays unbound. Drop the live-ladder discharge claim while those frontiers stay open. Co-authored-by: Cursor <cursoragent@cursor.com>
Import the payload type from std.materialization_object, and keep the wet cold/warm millis if-arms as EpochMs so declarations resolve. Co-authored-by: Cursor <cursoragent@cursor.com>
The wet family-budget probe refused because map(... as InterfaceHash) cannot coerce Fnv1a64Structural at eval. Seed hex imports use the same pattern. Co-authored-by: Cursor <cursoragent@cursor.com>
The hermetic floor has no DirWithTemplate/Read mock for those identities; their terminal stays the wet lane. Drop the InterfaceHash runtime cast from the hermetic key claim. Co-authored-by: Cursor <cursoragent@cursor.com>
…hority, typed counted outcomes Entry is the module's own tail (TypecheckModuleOwn); a hit restores via typecheck_module_restore from the imports. Lookup runs before collect_parent_envs. DURABLE_ROOT and durable_volume_present deleted. Unavailable/commit-missed-open/re-entry are counted and reported by store_receipt_line with largest_entry_bytes. Wet-claim route-gap enrollment reverted. InterfaceHash branded at the producer. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
C2: typecheck materialization through
materialization_store_local, with the seven review fixes.04_infer.dag is load-bearing.
typecheck_moduleis split into an import-derived head and the module's own tail (TypecheckModuleOwn). The split is required by the entry/closure boundary: the entry must be the tail only, because the full result serializes to ~4 GB (parent envs).typecheck_module_restorere-runs the head from the imports and grafts the stored tail. The stage0 mirror was regenerated in one remote dispatch; fixed point confirmed at byte grain.Behaviour on a miss is unchanged; control
real_module_round_trip(Rust test) shows restore == compute on a real module and a size control that goes red if parent envs leak in. It is not a required floor lane (rung droprust_unit_tests_over_their_cap).Items: 1
TypecheckModuleOwn; 2 lookup-first inreconcile_with_typed_cache; 3DURABLE_ROOT/durable_volume_presentdeleted, door isseed_lookup_typecheck_hex; 4OutcomeCounts+store_receipt_line; 5largest_entry_bytesreported in the receipt (frontier stays OPEN); 6 wet claims run (not route gaps), enrollment reverted; 7ifaceproducer branding.🤖 Generated with Claude Code