Commit Graph
1570 Commits
Author SHA1 Message Date
Jonas VolmanandClaude Opus 5 a5e130d77e Record the throughput-recovery +40K checkpoint
+44,224 strict meaningful / +44,656 padded bytes, 56 functions, 5 new
all-exact objects, 0 regressions vs 9062b1e96; verification, disclosed
judgement calls, rejections.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 14:02:08 -07:00
Jonas VolmanandClaude Opus 5 2d12ba5c7e Record the throughput-recovery +10K checkpoint
+10,688 strict meaningful / +10,880 padded bytes, 29 functions, 0
regressions vs 9062b1e96; full checkpoint verification, rejected forms,
and the queued header packet.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 11:46:31 -07:00
Jonas VolmanandClaude Opus 5 9062b1e969 Close the next-150K lane: final handoff and admission manifest
Final verified result against the frozen ae10935da snapshot: +9,406 strict
meaningful bytes across 15 functions (9,504 padded), 0 regressions. 11 parks
reopened (279 -> 268), 3 zero-credit re-baselines, one symbols.json rename, and
no header changes. The 150,000 target was reported unreachable at startup and
every later measurement confirmed it.

Final verification at 26601453e: ninja passes with 268 validated ties; the stable
diff is gained 15 / regressions 0; board 309/619 objects; parks 268/0/0; admission
audit 0 contradicted; pytest 1151 passed / 5 skipped / 26 subtests, identical to
baseline; git diff --check passes. A per-file audit of all 16 changed C files
finds the _point_from_line3d guard passing everywhere except ai_debug's
pre-existing baseline failure, fake-scan increases limited to the two
owner-admitted asm blocks, and only intended owner-census changes.

The handoff replaces the interim version written at 927d135ec. It records every
owner ruling obtained, the compiler laws the lane produced (LAW Z, LAW I, M8,
F3/D/U, H3, CJ4 and the rest, with the retracted round-1 claims marked), the
adjudicated ceiling, the unresolved dependencies, and the dependency-aware
integration order. The manifest carries per-function hashes, relocations and
verification batch for all 15 credited functions, 24 rejected candidates,
89 proposals and the do-not-repeat inventory.

Nothing was pushed; the canonical checkout is untouched; none of the 6 protected
or 11 Codex-reserved files was modified.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 08:53:11 -07:00
Jonas VolmanandClaude Opus 5 26601453ef Land the final Tier B wave: three structural park reopens (+477 meaningful)
The owner-authorized final implementation wave worked only the ten Tier B
functions of the research campaign, each a structural defect confirmed by two
independent lenses; census first, five evidence-driven shapes at most, stop at
allocation, scheduling or x87 ties. Three closed, seven did not.

- hud _temporary_hud_draw_reticle: January does a SIGNED `% 16` (`and eax,
  0x8000000f; jns; dec; or -16; inc`) where ours did `and eax,0xf`. NUMBEROF
  yields size_t, so `next_point_index % NUMBEROF(points)` was an unsigned modulo;
  a signed named count NUMBER_OF_TEMPORARY_HUD_RETICLE_POINTS sizes the array and
  bounds the loop. It fixes the type, not a cast. The three point stores become
  one set_real_point3d call (laws_w2 A4).
- weapons _weapon_can_be_fired: single-exit form (A3). It writes `result = FALSE`
  in two arms, which I tested against the identical-fake-branch prohibition: the
  merged `if (age >= 1.0f || chain)` spelling is residual, while January emits a
  SEPARATE physical FALSE exit for the age test (`jne; pop edi; xor al,al; pop esi;
  pop ebp; ret` at 0x35-0x3c) before game_engine_running is ever called. Two
  distinct rejection blocks is laws_w3 A26's admission criterion, unlike the
  rejected _bink_query_analog_controller_buttons, whose edges share one block.
- rasterizer_transparent_geometry _rasterizer_transparent_geometry_initialize:
  single exit `success = success && aux_buffer()`. Semantics are unchanged; the
  error block is the last statement before the call, so the short-circuit sits
  exactly where the early return did.

All three parks removed. Not closed and reported in the wave ledgers:
_path_state_traverse, _flag_update, _bitmap_2d_sharpen, _light_volume_render,
_actor_stimulus_prop_acknowledged, _stack_memory_pool_allocate,
_particle_system_new_particle_jet.

Full ninja, parks 268 active / 0 stale / 0 invalid, stable diff vs
scratch/opus5-next150-before.json: gained 15 / 9,504 padded, regressions 0;
fake_match_scan 0 leads on all three files, matching HEAD.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 08:49:04 -07:00
Jonas VolmanandClaude Opus 5 1068df6d6f Publish the six-study compiler research campaign and its adjudication
A corpus-scale campaign ran one study per tie mechanism over all 833 January
objects against our build, each producing a law, a detector validated for false
positives against strict-exact controls, and a reclassified function list; an
adjudication pass then re-ran the load-bearing measurements itself.

Laws, each with its measured scope in the ledger:
- LAW I (inline boundary): the inliner prices a helper by its SPELLING and
  compares it with block frequency; REAL_MATH_EXTERNAL_<X> makes a helper extern
  for the whole TU. It also shows the 82K "inline boundary" family was
  misattributed - 93.6% of it makes the same inline decision at every site.
- LAW M8: the offset-0 term of an inlined helper loads first the operand with the
  smaller IL-local ordinal mod 8. Source operand order is INERT for a bare
  product, so the R3 swap never worked. Produced the two Tier A closures.
- LAW F3/D/U (frame layout): tiers of byte cells, scalars, aggregates; it refutes
  the long-standing "refs/size" rule.
- H3, LAW C, LAW E (emission order), CJ4 (cross-jump survivor binding).
- The "declaration-count oracle" resolves into three separate measurable keys:
  M8 (in-function IL locals mod 8), H3 (pre-function declarations mod 32) and F1
  (inline-body IL structure consuming per-TU numbering).

Negative register: 4,581 B proven unreachable by admissible source, 5,856 B of
csplit alias rows retired from strict credit, 1,884 B retire-pending. Ranked
attack list: Tier A 1,184 B (landed in 417fc10e4), A-R 266 B needing an owner
ruling, Tier B 7,598 B of named structural defects, and ~52 KB of Tier C
hypotheses not to be scheduled without new evidence.

The round-2 ledger is bannered: its LAW S polarity is inverted and its section
10 attack list is refuted on all four items.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 03:37:09 -07:00
Jonas VolmanandClaude Opus 5 6e26c8ed93 Publish round-2 compiler laws and correct the round-1 overclaims
A second three-angle probe re-ran the load-bearing measurements and changed two
conclusions, so the 2026-09-16 law ledger is corrected rather than left standing:

- Z2's boundary stores >= 2*uses + 1 and its U-table are DELETED. They were a
  within-function calibration, not a corpus law, and a whole-image scan of 10,568
  January functions refutes sufficiency in both directions.
- Z1's "no January function carries three callee-saved webs and a pin" is replaced
  by a 343-row MAXLIVE table plus a single-definition corollary; the EBX census
  becomes EBX 259 / EDI 51 / ESI 33 of 343.
- The 236/227 cross-tab is qualified: 128 of those rows are zero-store
  xor ebx,ebx return values, so the real-pin subset is 112 paired / 189 image-wide.
- The claim that assigning source in every switch arm is "strictly worse
  (608/41 relocations)" is corrected: that family is 608/40 and WINS the pin.

New laws this round: Z1b single-definition corollary, Z2-CARRIER, Z4 copy
coalescing (every "bind the pointer once" spelling compiles to an identical
object, which is why respelling a phi is structurally inert), Z5 web splitting
forfeits the parameter home, Z6 dead-parameter-home packing, LAW S (two-output
frame-slot assignment) and LAW X (cross-jump tail merge).

_hs_compile_and_evaluate is proven UNREACHABLE by legitimate source in this
compiler: January's parameter-home phi with cross-jumping sprintf arms needs four
references in the competing web, four references need six in-region zero stores,
and only five exist. Both escape routes are capped - web splitting at +8 (Z5) and
an added zero store at +3, because the cheapest zero store VC7 emits is 3 bytes
and two independent censuses confirm January's source has no further store. The
best clean candidate stays in scratch at 592 padded / 585 meaningful, zero credit.

The round-1 ledger is kept, bannered, as the audit trail of what was claimed first.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 01:34:04 -07:00
Jonas VolmanandClaude Opus 5 3faefe7f60 Close the next-150K lane: handoff, manifest and the constant-zero pin law
Final verified result at ae10935da: +6,804 new strict meaningful bytes across 7
functions, 0 regressions, 0 stale or invalid parks, 1151 tests passing.

The lane's most reusable output is LAW Z, measured over 572 paired objects: the
whole-function constant-zero register pin is SOURCE-determined. January pins and
we pin in 236 functions (227 strict exact); January pins and we do not in 5 (none
exact); our compiler never invents a pin January lacks. EBX is the only
byte-addressable callee-saved register, so the pin is always a two-way contest;
only zero STORES seed the web, at stores >= 2*uses(strongest interfering
competitor) + 1; and what competes is the competitor's span, not its ordinal
definition position, which refutes the "seeded flag" hypothesis carried in earlier
ledgers. The triage consequence is that "January pins, we do not" is a source
defect - a surplus long-lived value - and not a class-D register tie. The same
probe measured VC7's loop-head alignment rule (pad iff the distance to the next
16-byte boundary is 1..8).

_hs_compile_and_evaluate is NOT landed. Its best candidate reaches January's 592
padded size with [sha] only, and the residual is exactly one zero store; a census
of January's eight pin-sourced stores shows our source already writes all eight,
so no legitimate ninth statement exists and the worker correctly refused to buy
it with a redundant store or a carrier variable.

The handoff records the measured ceiling (135,795 meaningful eligible against a
150,000 target), the exhausted lever inventory, the four unresolved owner rulings,
and the dependency-aware integration order.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 00:30:55 -07:00
Jonas VolmanandClaude Opus 5 927d135ecb Recover a missing fade relocation in the looping-sound refresh (zero credit)
Wave n3a targeted the 43 eligible parked rows that still carry a structural gap,
on the evidence that all five wave n1 landings were parks whose recorded premise
did not survive a census. In already-mined units the hypothesis did not pay: no
strict exact function, and the verifiers rejected reopens in s3tc (3),
motion_sensor, bink_playback (2).

Landed at ZERO credit, both strictly closer and both still parked:
- _sound_refresh_looping: the park text blamed a compiler-merged duplicate fade
  call tail. The relocation census refutes that - it was a source defect. Removing
  the fade_in_time phi local recovers January's fourth _sound_start_fade
  relocation, so relocations are now exact at 43/43, size moves 1088 -> 1120
  against January's 1136, and alndiff regions drop 74 -> 37.
- _update_channel_for_looping_sound: size and relocations now both January-exact
  at 1360/61; the residual is [sha] only.

The verifier removed two defective hunks from the submitted refresh body before
accepting; the corrected body is byte-identical to the submission.

Full ninja, parks 274 active / 0 stale / 0 invalid, stable diff vs
scratch/opus5-next150-before.json: gained 7 / 6,832 padded, regressions 0; fake
scan 0 leads.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 23:40:34 -07:00
Jonas VolmanandClaude Opus 5 6ebd05a964 Match the perception object test and name the encounter debug renderer
Wave n2 of the next-150K lane.

- actor_perception _actor_perception_refresh_test_object (+1744).
- ai_debug _code_00041220 (+2336): closed by spelling January's counting loop as
  a while loop with the initialiser before it instead of a for with an empty
  body. It also carries a names-only rename packet: config/symbols.json line 654
  and the three C identifiers become _ai_debug_render_encounter, which is house
  rule 7 (no code_<address> names). The name is authenticated by the January map
  atlas (scratch/atlas/ai_debug.obj.txt line 44, "00041220 fuzzy ai_debug.obj
  _ai_debug_render_encounter"), whose offsets for this object cross-validate
  against symbols.json (_ai_debug_dispose_from_old_map 226736, _ai_debug_drawstack
  235808, _ai_debug_render 269120), and corroborated by caller topology
  (_ai_debug_render passes ai_debug.selected_squad_index), the encounter_* callee
  set and the firing-position assert literal. No PDB public exists at 266784,
  consistent with the static. The rename carries no additional byte credit.

Rejected and not landed: devices _device_frontfacing (exact, but a live standing
hold) and the decals _debug_decals relabel (symbols.json line 22482 has no object
at 4414816; the worker's own proposal is to delete that entry, which is a config
question, not a landing).

Full ninja, parks 274 active / 0 stale / 0 invalid, stable diff vs
scratch/opus5-next150-before.json: gained 7 / 6,832 padded, regressions 0; fake
scan 0 leads.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 22:42:41 -07:00
Jonas VolmanandClaude Opus 5 034141b121 Recover the wind sampler's integer sign-clear under an explicit owner ruling
_wind_variance_get (+224). January spills the scaled real, clears its sign bit
with a 32-bit `and dword ptr [ebp+0xc],0x7fffffff`, reloads it as a float and
takes the low byte. No floating spelling produces that: the previous fabs() body
canonicalises to x87 fabs at 208 bytes. The recovered source is a block-local
`union { real value; long bits; }` sign-clear, the two-member form that matches
the three existing in-tree precedents (path_obstacle_avoidance, render_cameras,
rasterizer_xbox_water, the last of which is an accepted strict-exact landing).

The owner lifted the 2026-08-31 "inactive union member" hold for this function
only, and the ledger records that supersession. Landed as the minimum function
hunk: no linkage change, no rename-define removal, no type or initializer edits,
and _wind_variance_initialize is untouched at its parked base 400/9.

Verified independently: whole-TU gate 8 exact / 1 residual with every baseline
row intact, guard passed, parkcheck clean apart from the reopened row, owner
census 0 added / 0 removed, fake scan 0 leads. Full ninja, parks 274 active /
0 stale / 0 invalid, stable diff vs scratch/opus5-next150-before.json: gained 5 /
2,752 padded, regressions 0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 21:52:23 -07:00
Jonas VolmanandClaude Opus 5 3083f800b5 Reopen four parks: detail objects, character draw, hud sound and bink cache
Wave n1 of the next-150K lane (fresh structural portfolio at ae10935da).

- structures _structure_render_detail_objects (+1136): reopened with the natural
  array initializer, which the w2 verifier asked for when it rejected the
  hand-written a[0]=0/memset expansion (R6).
- draw_string _bitmap_draw_character (+944).
- hud_sounds _hud_play_sound (+352): closed by removing the one-use index alias
  and reading sound_indices directly (A5), NOT by the volatile/goto body that the
  park record shows was deliberately replaced.
- bink_playback _bink_free_texture_cache (+96): the park premise was the repo's
  own match_dassert wrapper; the user-supplied Bungie random_math.c spells the
  same two sites vassert, and the tree is 874 match_vassert to 14 match_dassert.
- structures _structure_get_planar_fog: zero-credit remeasure. Adding the
  discarded fog-plane lookup January provably executes (its 15th
  _tag_block_get_element_with_size relocation at +0x16d) closes both structural
  tags; 448/448 and 15/15, residual now one register-naming window.

Rejected by the verifiers and not landed: _bink_alloc@4 (exact only with an __asm
block in a pool allocator - house rule 10 allows asm only for evidenced
helper/math routines), the progress_bar _code_000d16d0 rename (standing hold),
and the _portal_hull_from_points remeasure. wind _wind_variance_get is HELD for an
owner ruling (see its ledger).

Full ninja, parks 274 active / 0 stale / 0 invalid, stable diff vs
scratch/opus5-next150-before.json: gained 4 / 2,528 padded, regressions 0; fake
scan 0 leads.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 21:43:58 -07:00
Jonas VolmanandClaude Opus 5 ae10935da6 Match action_vehicle seat evaluation and reopen the input_xbox analog park
Wave w3d batch 1 (the structural retarget: census the frame, the [ebp+/-N] slots
and the relocations before proposing any shape).

- action_vehicle _action_vehicle_evaluate_seat (+976): the unit called
  vehicle_specific_definition_get through a C4013 implicit declaration; including
  its genuine owner units/vehicle_definitions.h fixes the call, and January's
  single-exit shape puts the three seat points in the taken branch's own block
  instead of behind an early return.
- input_xbox _input_update_analog_button_state (+48): park reopened and removed.
- effects _effect_allowed_by_environment and _effect_generate_particles: coupled
  A8 callee/caller re-baseline, ZERO credit. Both are now January-exact in padded
  size (and relocation count for the caller) and stay parked and fuzzy; the
  remeasures carry dated evidence in config/parked.json.

Full ninja, parks 277 active / 0 stale / 0 invalid, stable diff vs
scratch/claude250k-start.json: gained 3 / 1,824 bytes, regressions 0; fake scan
0 leads.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 20:14:01 -07:00
Jonas VolmanandClaude Opus 5 df21bd9389 Record three token-free lever sweeps: under-credit, namegap and history mining
Following the 150K operator's guidance, all three retired lever classes were
re-run locally at zero agent cost, and all three are negative at this HEAD:

- objdiff under-credit: 114 strict-exact functions score below 100% in objdiff,
  but every one is already in the accepted ledger, so there are no uncredited
  bytes to recover (scratch/undercredit.py).
- naming-gap attestation: namegap reports 0 proposals.
- donor/history mining: 13 functions gate exact in some historical blob, and all
  13 fail admission - two lose an exact sibling, two emit the forbidden
  _point_from_line3d, three cost 6-48 exact rows, one is an R12 overrun, one is
  the volatile/goto body the park records as deliberately replaced, and
  thread_win32's declares another TU's string symbol as a mutex_reference to use
  its link address as a loop bound (a fake match). Only _wind_variance_get (224)
  survives triage and is handed to its wave worker to decide from January bytes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 19:20:59 -07:00
Jonas VolmanandClaude Opus 5 af55bdc366 Record wave w3c batch 3: eight groups, no admissible landing
hs_runtime, hud_unit, biped_limp_noodle, leaf_map, path, motion_sensor, flags and
ai (27,200 spendable padded bytes) produced no strict exact function and no
accepted park reopen. The ledgers record what each residual actually is, which is
the useful result: leaf_map is eight rows of the P7 projection_from_vector3d
compare plus four csplit-relocation-alias rows whose bytes are already identical;
ai and biped_limp_noodle are blocked by the _point_from_line3d ruling, an
indeterminate-read UB path and a binding hold; hs_runtime, hud_unit, flags and
path are register-allocation and instruction-scheduling ties, several decoded to a
single displaced instruction. The motion_sensor _blip_begin reopen was rejected.

Tree restored to HEAD: no source file changed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 19:09:03 -07:00
Jonas VolmanandClaude Opus 5 1881e718b7 Match player_effects screen flash and complete a particle system render body
_player_effect_get_screen_flash (800) becomes strict exact by binding
effect->screen_flash to a local definition pointer used six times, which is the
A5 counter-law form: January re-reads the field through one base rather than
re-forming the address at each of the six uses.

particle_systems _particle_system_render is landed as a complete credible body at
ZERO credit (still residual); the rejected _particle_system_update hunks were
removed from the landable. Wave w3c batch 2 (8 groups, 31,392 spendable padded
bytes) produced no other strict gain; the s3tc _RGBToColor/_DecodeBlockRGB reopen
was rejected by the verifier.

Full ninja, parks 280/0/0, stable diff vs scratch/claude250k-start.json:
gained 1 / 800 bytes, regressions 0; fake scan 0 leads.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 18:05:56 -07:00
Jonas VolmanandClaude Opus 5 aa2ada3f52 Complete game_engine title string body (zero credit) and record wave w3c batch 1
_game_engine_generate_title_string was structurally incomplete (1088/70 against
January's 1152/73) and skipped January's common null-termination tail on an
unrecognised win result. The rewritten single-exit body reaches January's size,
relocation count and frame layout with two team-name wchar_t[8] buffers instead
of the union spelling, and 391/391 instructions with one transposed push. It is
still [sha] residual, so it carries ZERO byte credit; the reopen criterion is in
the ledger.

Wave w3c batch 1 (8 groups, 36,384 spendable padded bytes) landed no strict exact
function. The per-object ledgers record the measured blockers, the rejected
_bitmap_2d_smooth reopen (it loses the exact _bitmap_2d_uncompress_from_mipmap
row) and the proposals raised. Full ninja, parks 280/0/0, stable diff vs
scratch/claude250k-start.json: gained 0, regressions 0; fake scan 0 leads.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 16:25:03 -07:00
Jonas VolmanandClaude Opus 5 0483bde89e Update 150K lane handoff and final manifest after truncated wave w3b (+89,085 strict meaningful)
144 strict new exact functions / 90,112 padded vs 12f7375d4, 0 regressions; w3b batches 1-2 (16 groups) added 6 functions / 4,240 padded including the units.h action_flee owner-prototype packet; wave stopped before batch 3 for credits. Final verification re-run: ninja pass, parks 280/0/0, admission audit pass (7 whole-object candidates), pytest 1151 passed, fake scan no new leads, git diff --check pass. Target 150,000 not reached. Nothing pushed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 14:49:43 -07:00
Jonas VolmanandClaude Opus 5 fe0ec76e80 Record wave w3b (batches 1-2) ledgers
16 groups / ~55 units, second pass with the w2 laws; wave stopped before batch 3 at the owner's request (credit budget). Includes ledgers for groups without landings and the policy rejections (volatile-only cache reopens, _point_from_line3d-emitting candidates, reproduced suspicious original bug, standing holds).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 14:46:35 -07:00
Jonas VolmanandClaude Opus 5 75e3c4b95a rasterizer_text: 1 function(s) strict exact
Wave w3 landing, adversarially verified. exact: _cache_hardware_format_character. Full ninja build and per-function stable_verdicts sweep: 0 regressions.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 14:45:21 -07:00
Jonas VolmanandClaude Opus 5 2716e61191 lightning: 1 function(s) strict exact
Wave w3 landing, adversarially verified. park reopens: _lightning_offset_marker_position. Full ninja build and per-function stable_verdicts sweep: 0 regressions. 1 park(s) removed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 14:45:20 -07:00
Jonas VolmanandClaude Opus 5 6555f3d0e6 particles: 2 function(s) strict exact
Wave w3 landing, adversarially verified. exact: _particle_update_physics; park reopens: _particle_next_frame. Full ninja build and per-function stable_verdicts sweep: 0 regressions. 1 park(s) removed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 14:45:19 -07:00
Jonas VolmanandClaude Opus 5 57fc56c467 bitmap_extract: 1 function(s) strict exact
Wave w3 landing, adversarially verified. park reopens: _extract_sprites. Full ninja build and per-function stable_verdicts sweep: 0 regressions. 1 park(s) removed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 14:45:17 -07:00
Jonas VolmanandClaude Opus 5 403108e28b Update 150K lane handoff and final manifest after truncated wave w3a (+84,893 strict meaningful)
138 strict new exact functions / 85,872 padded vs 12f7375d4, 0 regressions; w3a (16 largest units) added 7 functions / 5,536 padded including the units.h/weapons.h owner-prototype packet. Final verification re-run: ninja pass, parks 284/0/0, admission audit pass (6 whole-object candidates), pytest 1151 passed, fake scan no new leads, git diff --check pass. Target 150,000 not reached (truncated for token budget). Nothing pushed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 13:06:11 -07:00
Jonas VolmanandClaude Opus 5 fe586a59b3 Normalize whitespace in wave w3 hud_weapon ledger
git diff --check only.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 13:05:01 -07:00
Jonas VolmanandClaude Opus 5 05477fda62 Record wave w3a (truncated) ledgers
16 largest-residual units, second pass with the w2 laws; includes ledgers for groups without landings and the rejected _actor_move_initialize (standing hold).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 13:03:31 -07:00
Jonas VolmanandClaude Opus 5 d792053746 projectiles: 1 function(s) strict exact
Wave w3 landing, adversarially verified. park reopens: _projectile_aim_ballistic. Full ninja build and per-function stable_verdicts sweep: 0 regressions. 1 park(s) removed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 13:01:58 -07:00
Jonas VolmanandClaude Opus 5 ec177ec2fc decals: retain verified credible source at zero credit
Wave w3 landing, adversarially verified. zero-credit fuzzy: _decal_new_from_collision. Full ninja build and per-function stable_verdicts sweep: 0 regressions.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 13:01:57 -07:00
Jonas VolmanandClaude Opus 5 c2b7503514 actor_perception: 1 function(s) strict exact
Wave w3 landing, adversarially verified. park reopens: _actor_situation_combat_status_update; zero-credit fuzzy: _prop_status_refresh, _actor_situation_update. Full ninja build and per-function stable_verdicts sweep: 0 regressions. 1 park(s) removed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 13:01:56 -07:00
Jonas VolmanandClaude Opus 5 901a6ae738 actor_moving: 3 function(s) strict exact
Wave w3 landing, adversarially verified. exact: _actor_move_avoidance_setup, _actor_move_try_evasion_direction, _actor_move_try_evasion_vector. Full ninja build and per-function stable_verdicts sweep: 0 regressions.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 13:01:55 -07:00
Jonas VolmanandClaude Opus 5 7f529504c8 actor_looking: 1 function(s) strict exact
Wave w3 landing, adversarially verified. park reopens: _actor_look_decode_direction. Full ninja build and per-function stable_verdicts sweep: 0 regressions. 1 park(s) removed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 13:01:53 -07:00
Jonas VolmanandClaude Opus 5 210aa8f810 Record 150K house-clean lane handoff and final admission manifest (+79,397 strict meaningful, truncated)
131 strict new exact functions / 80,336 padded vs 12f7375d4, 0 regressions; target 150,000 not reached (campaign truncated for token budget; wave 3 produced no results). Final verification: ninja pass, parks 288/0/0, admission audit pass (6 new whole-object candidates), pytest 1151 passed, fake scan no new leads, git diff --check pass. Nothing pushed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 10:41:54 -07:00
Jonas VolmanandClaude Opus 5 ff1acbf89b Normalize whitespace in wave w1 ledgers
git diff --check: trailing whitespace and space-before-tab indentation inside quoted code in three ledgers only.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 10:40:40 -07:00
Jonas VolmanandClaude Opus 5 1886c724af Record 150K lane checkpoint after wave w2 batch A (+62,457 strict meaningful)
108 strict new functions / 63,264 padded vs 12f7375d4, 0 regressions; parks 306/0/0; admission audit pass; pytest 1151 passed; fake scan no new leads; git diff --check pass.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 07:43:25 -07:00
Jonas VolmanandClaude Opus 5 d0c2aed7b0 Normalize whitespace in wave w2 ledgers
git diff --check: trailing whitespace and space-before-tab indentation inside quoted code in ledgers only.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 07:41:57 -07:00
Jonas VolmanandClaude Opus 5 97ed0eeeee Record wave w2 ledgers for objects without landings (blockers, rejected shapes, proposals)
Includes ledgers for groups whose landables are held for config/header prerequisites (geometry, player_control, recorded_animations, game_allegiance, player_queues_new, rasterizer_cinematics, rasterizer_xbox) or an owner asm ruling (collision_bsp).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 07:40:12 -07:00
Jonas VolmanandClaude Opus 5 1e936afab0 unit_dialogue: 3 function(s) strict exact
Wave w2 landing, adversarially verified. park reopens: _unit_dialogue_determine_variant, _unit_notify_impulse_sound, _unit_dialogue_update. Full ninja build and per-function stable_verdicts sweep: 0 regressions. 3 park(s) removed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 07:40:00 -07:00
Jonas VolmanandClaude Opus 5 4f66b6d8b0 bipeds: 1 function(s) strict exact
Wave w2 landing, adversarially verified. park reopens: _biped_fix_position. Full ninja build and per-function stable_verdicts sweep: 0 regressions. 1 park(s) removed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 07:39:59 -07:00
Jonas VolmanandClaude Opus 5 8687fae3bb files_windows: 3 function(s) strict exact
Wave w2 landing, adversarially verified. park reopens: _file_open, _file_read, _file_write. Full ninja build and per-function stable_verdicts sweep: 0 regressions. 3 park(s) removed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 07:39:58 -07:00
Jonas VolmanandClaude Opus 5 6cbfc5af53 structures: 2 function(s) strict exact
Wave w2 landing, adversarially verified. park reopens: _structure_clusters_in_cone, _structure_render_surface_from_point_and_leaf. Full ninja build and per-function stable_verdicts sweep: 0 regressions. 2 park(s) removed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 07:39:57 -07:00
Jonas VolmanandClaude Opus 5 767272749a structure_detail_objects: 1 function(s) strict exact
Wave w2 landing, adversarially verified. park reopens: _render_debug_detail_objects. Full ninja build and per-function stable_verdicts sweep: 0 regressions. 1 park(s) removed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 07:39:56 -07:00
Jonas VolmanandClaude Opus 5 be0fb070de render_debug: 5 function(s) strict exact
Wave w2 landing, adversarially verified. exact: _build_circle_points, _build_pill_points, _render_debug_circle, _render_debug_sphere; park reopens: _render_debug_point. Full ninja build and per-function stable_verdicts sweep: 0 regressions. 1 park(s) removed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 07:39:54 -07:00
Jonas VolmanandClaude Opus 5 b0d1f32181 rasterizer_xbox_widgets: 2 function(s) strict exact
Wave w2 landing, adversarially verified. exact: __rasterizer_widget_submit_occlusion_test; park reopens: __rasterizer_widget_begin. Full ninja build and per-function stable_verdicts sweep: 0 regressions. 1 park(s) removed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 07:39:53 -07:00
Jonas VolmanandClaude Opus 5 23e55289f6 rasterizer_xbox_water: 1 function(s) strict exact
Wave w2 landing, adversarially verified. park reopens: _rasterizer_water_draw. Full ninja build and per-function stable_verdicts sweep: 0 regressions. 1 park(s) removed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 07:39:52 -07:00
Jonas VolmanandClaude Opus 5 8016eb5029 rasterizer_xbox_shadows: 1 function(s) strict exact
Wave w2 landing, adversarially verified. park reopens: __rasterizer_environment_shadow_draw. Full ninja build and per-function stable_verdicts sweep: 0 regressions. 1 park(s) removed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 07:39:51 -07:00
Jonas VolmanandClaude Opus 5 667f9327cf rasterizer_xbox_decals: 2 function(s) strict exact
Wave w2 landing, adversarially verified. park reopens: __rasterizer_decals_initialize, __rasterizer_decals_draw. Full ninja build and per-function stable_verdicts sweep: 0 regressions. 2 park(s) removed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 07:39:50 -07:00
Jonas VolmanandClaude Opus 5 6dfae7d1bc rasterizer_swizzle: 1 function(s) strict exact
Wave w2 landing, adversarially verified. park reopens: _rasterizer_xbox_bitmap_swizzle. Full ninja build and per-function stable_verdicts sweep: 0 regressions. 1 park(s) removed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 07:39:49 -07:00
Jonas VolmanandClaude Opus 5 3e223c3ab1 collision_usage: 1 function(s) strict exact
Wave w2 landing, adversarially verified. park reopens: _collision_log_render. Full ninja build and per-function stable_verdicts sweep: 0 regressions. 1 park(s) removed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 07:39:48 -07:00
Jonas VolmanandClaude Opus 5 94654d61fc network_server_message_handler: 2 function(s) strict exact
Wave w2 landing, adversarially verified. park reopens: _network_game_server_handle_message_client_ping, _network_game_server_handle_datagram. Full ninja build and per-function stable_verdicts sweep: 0 regressions. 2 park(s) removed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 07:39:46 -07:00
Jonas VolmanandClaude Opus 5 6c3fef1a24 hud: 1 function(s) strict exact
Wave w2 landing, adversarially verified. park reopens: _hud_draw_screen; parked body refreshes (zero credit): _hud_show_action_response. Full ninja build and per-function stable_verdicts sweep: 0 regressions. 1 park(s) removed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 07:39:45 -07:00
Jonas VolmanandClaude Opus 5 6ddd4c8a98 first_person_weapons: 4 function(s) strict exact
Wave w2 landing, adversarially verified. park reopens: _first_person_weapon_set_visibility, _first_person_weapon_switch_weapons, _first_person_weapon_render_update, _first_person_weapon_message. Full ninja build and per-function stable_verdicts sweep: 0 regressions. 4 park(s) removed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 07:39:44 -07:00