Commit Graph
14 Commits
Author SHA1 Message Date
Jonas Volman 709bfc3a3c Reconcile approved frontier ownership and admission packets
Import only independently reviewed production changes. Preserve canonical physics and virtual-keyboard repairs; keep B3 and all unresolved holds out.

Record exactly four approved canary debits (6987 meaningful bytes), six Halo admissions and two revocations. Keep vendor ioinit/storage work separate. Full build, 8252-row sweep, 1318 tests, park/admission/fake audits and 621-object binding pass within approved debit bounds.

Do not publish donor research dumps or private assets. README and unrelated user research remain untouched. See frontier_publication_reconciliation_20260927.md for complete evidence limits and accounting.
2026-09-27 17:12:48 -07:00
Jonas Volman 59757f4263 Reconcile approved type ownership, static locals and source disclosures
Independently gate storage + K, OQ-4 P-a/P-b1, four static-local packets and comment-only disclosures. Preserve all 7641 exact owner rows, 71 valid parks and 1161 passing tests; code/data credit unchanged. G and game_engine admission remain held because current canonical loses populate_statistic_buffer. Existing collision static-local repair is not duplicated. No donor tree, held candidate, scorer or private asset imported.
2026-09-27 05:17:27 -07:00
Jonas Volman 7c0af5f029 Reconcile approved compiler-application code, data and owner repairs 2026-09-26 12:02:50 -07:00
Jonas Volman f6d00a8c1d Reconcile Claude fifty-object lane with canonical
Merge verified source, data and owner corrections from 4e84c212. Resolve overlapping HS/path symbols against canonical, retain the dynavobgeom ownership rejection, document Layer 2/P7 source-shape decisions, and preserve held research. Verified 14 exact functions, 17 new Halo objects, zero regressions under objdiff 3.3.1.
2026-09-24 07:20:01 -07:00
Jonas VolmanandClaude Opus 5.5 b9a8d587a0 Batch 3: admit twelve objects; four exact functions; verified storage and data fixes
Objects admitted (Halo 363 -> 375), each with an independent adversarial review:
units (first-party names incl. the reviewer-corrected unit_vectors_are_valid, 49
static flags, '$'-defect data entry), collision_debug (/Od helper calls),
render_objects (b807f9f6 provider packet), editor_flying_camera
(_editor_camera_set_position_and_roll 432, storage + grouped entry re-pin),
rasterizer_xbox_shadows (shadow_model_draw 688), cache_files_windows
(open_cache_files 752), light_volumes (light_volume_render 912, reviewer-amended
/Od declaration order), actor_firing_position, path, biped_limp_noodle (HCEX file
statics), leaf_map and model_animations (/Od helper calls replace hand expansions).

Zero-credit/data: path_structure_bsp HCEX tables (+200 data), hud_nav_points
storage, first_person_weapons patch A (park re-baselined).

Gate (full ninja, objdiff 3.3.1): stable diff +4 strict / 2,784 padded, 0
regressions; parks 89/0/0; admission 11/0/5/0; fake scan 26 (new lead is the
/Od-attested empty then-arm in the still-parked fpw update); pytest 1157 passed;
diff --check clean. Ledger: docs/object_matching_logs/claude_fifty_objects_20260925.md
(adds the Layer 2 owner-ruling disclosure, tallies and held items).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 23:53:28 -07:00
Jonas Volman e208c87ba6 ai: restore attested quantized pathfinding tables 2026-09-23 18:44:52 -07:00
Jonas VolmanandClaude Fable 5.1 3ba2eb9106 Lane B: three exact functions under the owner's per-site rule-24 admission (+2,802 meaningful / +2,816 padded)
New strict exact:
  ai/path_structure_bsp :: _structure_test_line2d     1104  (object now 6/6)
  ai/action_obey        :: _action_obey_control         992  (object now 27/27)
  ai/actions            :: _actor_action_try_to_dive    720

OWNER ADMISSION (2026-09-21), quoted: "Admit only with per-site /Od attestation,
byte-inert cast, compatible prefix layout, strict exactness, and ledger
disclosure. Land the three; keep the fighter held."

DISCLOSURE - every NEW 3D->2D view cast in this commit, with the first-party
/Od + /RTC build (halo_cache_symbols.exe) instructions that attest the SAME
punned object at the SAME site. The punning is Bungie's: C cannot pass or copy a
3D object as a 2D one without it.

1. _actor_action_try_to_dive - ONE cast:
     dot_product2d(&left_animation_alignment, (real_vector2d const *)&actor->input.facing_vector)
   /Od fn 0x42c1f0:  0042c3e6 mov edx,[ebp-8]      ; actor
                     0042c3e9 add edx,0x140        ; &actor->input.facing_vector (real_vector3d)
                     0042c3ef push edx
                     0042c3f0 call -> fn 0x42dd30
   and fn 0x42dd30 is dot_product2d: a[0]*b[0] + a[1]*b[1], two components only.
   Byte-inert: with the cast deleted the TU compiles (C4133) and the function is
   STILL strict exact 720.
2. _structure_test_line2d - FOUR casts, (real_point2d const *)&vertexN->point:
     vector_from_points2d(v0, v1, &e0e1); (v0, p1, &e0p1); (p0, v0, &p0e0); (p0, v1, &p0e1)
   /Od fn 0x4cee00, call sites 0x4cefb6 / 0x4cefca / 0x4cefe1 / 0x4ceff8: the
   vertex pointer locals [ebp-0x5c] and [ebp-0x60] (results of
   tag_block_get_element; the 3D point is at offset 0) are pushed DIRECTLY as the
   2D point arguments, in exactly that argument order, to fn 0x42e350 =
   vector_from_points2d (two 2-component subtractions).
   Byte-inert: with the five casts deleted (operands kept) the function is STILL
   strict exact 1104.
3. _action_obey_control - ONE cast, an aggregate COPY rather than an argument:
     alignment_vector = *(real_vector2d const *)&actor->input.facing_vector;
   /Od fn 0x43c2d0:  0043c7c7 mov eax,[ebp-8]        ; actor
                     0043c7ca mov ecx,[eax+0x140]
                     0043c7d0 mov edx,[eax+0x144]
                     0043c7d6 mov [ebp-0x2c],ecx
                     0043c7d9 mov [ebp-0x28],edx
                     0043c7dc lea eax,[ebp-0x2c] / push eax / call normalize2d
   Integer mov pairs = an 8-byte STRUCT ASSIGNMENT out of the 3D vector straight
   into the one 2D local that is then normalised (member-wise real copies compile
   to movss at /Od, and there is no intermediate temp). This replaces our
   member-wise copy through a `facing` temporary.
   Byte-inertness caveat, stated plainly: this cast cannot be strip-tested - C
   rejects an aggregate assignment across types outright - so the showing here is
   the /Od aggregate copy plus the fact that a pointer cast emits no code. The
   reviewer measured every undecorated alternative (.i/.j, .j/.i,
   set_real_vector2d, bound 3D pointer member-wise) as residual.
Compatible prefix layout (math/real_math.h): real_vector2d is `real n[2]`,
real_vector3d `real n[3]`; real_point2d `real n[2]`, real_point3d `real n[3]` -
each 2D union is exactly the first 8 bytes of its 3D counterpart.
The idiom already appears 72 times in 21 canonical files, incl. math/real_math.c.

Other source evidence:
- _structure_test_line2d: both loop heads are `mov 1 / test / je` in /Od
  (while (TRUE)); the inner break lands on the outer back-jump so the tail sits
  inside the inner loop; two blocked copies. Depends on the assert-spacing
  relocation identity taken from the data lane in 7583df5d.
- _actor_action_try_to_dive: the /Od RTC descriptor lists an extra 8-byte
  aggregate `left_animation_alignment` built by set_real_vector2d(-facing.j,
  facing.i) and fed to a real dot_product2d call; without it the body is residual.

STILL HELD: _update_alien_fighter_physics_new (1,088, exact in scratch): its
cross_product2d view-cast site has not been /Od-attested; owner: keep it held.

Config: config/parked.json - _structure_test_line2d and
_actor_action_try_to_dive entries removed (now exact). Parks 171 / 0 / 0.

Verification: full ninja all_source progress semantic_progress pass (Code
1453966 -> 1456768, 7309 -> 7312). stable_verdicts vs the FROZEN baseline:
gained 21 / 12944 bytes, regressions 0. All 11,060 function and 1,706 section
report rows: 0 lost 100%, 0 missing. Guard, ownership, fake scan, line endings
clean. git diff --check clean.
Reviewer: independent adversarial agents confirmed all three EXACT and credible
and held them ONLY on rule 24, which the owner has now ruled on per site; the
orchestrator re-derived every /Od attestation above from its own dumps.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-21 11:33:18 -07:00
Jonas VolmanandClaude Fable 5.1 7583df5d62 Lane B prerequisite: take the data lane's hunks in six Lane B files
Identical text to claude/data-section-credit-20260920 for these six files
(git diff against that branch is empty), so the two branches merge cleanly.
ZERO Lane B credit is claimed: the five data sections belong to the data lane.

Taken deliberately because three of the hunks change relocation IDENTITIES
that Lane B code residuals need before they can ever gate exact:
  action_vehicle.c        0.1225f -> 0.35f*0.35f  (__real@3dfae147, January's
                          folded product) - _action_vehicle_find_destination
  collision_debug.c       assert text count<=14   - _collision_debug_render
  path_structure_bsp.c    assert spacing          - _structure_test_line2d
and three are the .bss layout law (= 0 / = FALSE on debug globals):
  player_control.c, collisions.c, bipeds.c

Units/functions: none change verdict. Strict meaningful +0, padded +0.
Fuzzy: none. Data: +489 B (116+300+43+26+4), credited to the data lane.
Stable regression: scratch/lane_b_before.json -> lane_b_w0.json, 0 regressions,
0 gains. Lane inventory row-diff: 0 losses, 0 moves. Parks 0 stale / 0 invalid.
Full ninja all_source progress semantic_progress: pass
(Code 1443979 / 1770166, 7291 / 7574; Data 2360994 -> 2361483).
Config/header changes: none. Reviewer: data lane's own verification; re-verified
here by full build and row diff.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-21 02:27:48 -07:00
Jonas VolmanandClaude Opus 5 84dce510b3 Wave 10: six functions strict exact (input_xbox complete, pill2d, smoothing)
- input.h: struct key_stroke ascii_code is a char (January stores NONE as
  -1; XINPUT_DEBUG_KEYSTROKE.Ascii is CHAR); edit_text.c drops its (byte)
  cast on the NONE test and stays 5/5. Measured board-wide over all 24
  includers: 0 regressions.
- input_xbox (27/27): _input_get_device_states with indexed gamepad and
  button loops and a MIN tick clamp (park reopen);
  _input_update_keyboard_devices with a short key-code loop and uncast
  ascii ternary (park reopen)
- _structure_test_pill2d (624 B, previously unwritten): left/right offset
  line tests via point_from_line2d and the nearer collision
- _find_turning_point: normalize2d/point_from_line2d/set_real_vector2d
  replace hand-expanded helper math
- _structure_visibility_build_surfaces_traverse_leaf: the static
  bounding_rectangles_intersect returns short through one result (park
  reopen)

Rejected: _first_person_weapon_update (removed NULL guards, UB hold).
Follow-up: _path_test_pill_endpoint_near_wall_ok_bit is file-local in both
path_smoothing.c and path_structure_bsp.c; its owner is path_structure_bsp.h.
Stable diff: 0 regressions; parks 226 -> 223.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 17:06:06 -07:00
Jonas Volman eb61c0f746 Reconcile seventh 10K exact source batch 2026-09-12 17:23:46 -07:00
Jonas Volman a565219da1 Reconcile fifth 10K exact source batch 2026-09-09 22:29:33 -07:00
Jonas Volman 8ce645173c Recover safe path structure BSP helpers 2026-08-20 19:57:07 -07:00
Jonas Volman 81783431ff Recover clipped BSP interval helper 2026-08-20 16:19:22 -07:00
punpckhdq e830efbd7c Initial commit 2025-11-27 02:27:27 +00:00