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.
objects.h: both bounding-sphere inline assertions report OBJECTS_H_FILE, which
defaults to January's relative "..\objects\objects.h". object_lights defines the
absolute spelling first, as January's string census shows. action_vehicle loses
its NODUP hand copy of object_get_bounding_sphere, so the header inline is the only
definition. render_objects' lighting_storage becomes the static local of
object_get_cached_render_lighting (symbols.json).
path.h: the opaque __unknown140A0[0x5C] span is HCEX's `struct path_result
result`, and path.c stores through the field instead of a punning cast.
Consumer sweep (full ninja, objdiff 3.3.1): stable diff shows 0 regressions and no
moved rows beyond the batch-1/Layer-2 gains. Parks 93/0/0, admission 15/0/7/0,
pytest 1157 passed.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
New strict exact (function board for ai/path is now 32/32):
ai/path :: _path_state_traverse 2096
ai/path :: _path_state_estimated_distance 496
ai/path :: _closest_point_to_attractor 208
This is the owner's all-inlined COMDAT admission (2026-09-21: "admit the class
... genuine shared-header __inline, byte-identical COMDAT, strict-exact caller,
full ownership/build sweep, zero regressions. No hand expansions.") doing what
it was for: path.c HAND-EXPANDED point_from_line3d at three sites because the
old emission guard forbade the real helper, and those sites were the whole
residue. The three hand expansions are replaced by the REAL
point_from_line3d(...) call. path.obj therefore newly emits _point_from_line3d
(48 B, math/real_math.h, byte-identical to January's single folded copy credited
to ai/action_charge); all three callers are strict exact. admit_check.py: PASS.
Other source changes, each read from the first-party /Od build first and then
confirmed in January's bytes:
- _path_state_estimated_distance: a genuine reconstruction BUG. After the first
walk /Od does `current_node_index = child_node_index;` (0x4c657e) and the
second walk tests and advances current_node_index, as does the `?:`. We
iterated child_node_index. With the copy, January's spilled result byte web and
its EDI/ESI/EBX assignment appear - every row of the previous ledger. Exact on
the first compile.
- _path_state_traverse: `closest_distance < 4.0f` (was distance_to_destination;
/Od 0x4c76ee compares closest_distance); the second collision_bsp pointer is a
block-scoped local; and the local below.
DISCLOSURE for owner awareness - a local that is written once and never read:
struct path_node previous_node_values; ... previous_node_values = *new_node;
It is a first-party debugging snapshot, NOT an invention: the /Od RTC descriptor
NAMES it (`previous_node_values`, size 68 = sizeof(struct path_node), [ebp-0x8ec])
and /Od does the `rep movsd` right after path_get_node. VC7 deletes the copy in
the optimised build (no rep movs, frame 0x85c unchanged), but the extra IL local
is what yields January's x87 ordering at 0x2cc-0x2d8; January also shows a
constant +1 assert-line drift across this span, consistent with extra source
lines here. Strip test on the final file: without it the function is [sha].
Same class as `jet_marker_count` in 01e16607. Revert on request.
No new representation-punning casts (castcheck real=1 landing=1). Byte-inert
/Od restructurings the worker found were deliberately NOT applied (not
confirmable in January's bytes).
Config: config/parked.json - the three path entries removed (now exact).
Parks 168 / 0 / 0.
Verification: full ninja all_source progress semantic_progress pass (Code
1456768 -> 1459551, 7312 -> 7315). stable_verdicts vs the FROZEN baseline:
gained 24 / 15744 bytes, regressions 0. All 11,060 function and 1,706 section
report rows: 0 lost 100%, 0 missing. Fake scan 0 leads, line endings preserved,
git diff --check clean.
Reviewer: the wave was stopped on the owner's token budget before a reviewer
agent ran, so the ORCHESTRATOR reviewed this packet itself: re-gated from
scratch, read the full 22-line diff, re-derived the RTC attestation from its own
/Od dump, and ran admit_check / castcheck / fake scan / unitcheck.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
ZERO exact credit. Better-evidenced bodies retained per house rule 11. No new
representation-punning casts (screened), no ownership change, no new
fake_match_scan lead, line endings preserved.
- physics/collisions.c _collision_move_point (4,752 B, not parked): reviewer byte
compare with relocation sites zeroed - differing bytes 3,847 -> 6. Size
4752 == 4752 and relocations 226 == 226. The remaining six bytes (0x595-0x597,
0x59b-0x59d) are ONE transposition of two independent instructions, so the body
is semantically January on every path. Each hunk was strip-tested alone and is
byte-bearing (position block scope, post-increment placement, ...). The owner's
collisions[-1] ban is respected; line 1572 is untouched.
- ai/path.c (both PARKED, entries refreshed in this commit):
_path_state_traverse (2,096 B): rewritten statement-for-statement from the /Od
build (fn 0x4c6a70) with each fact confirmed in January's bytes. Frame and
return count are now January's; differing regions 132 -> 61; objdiff
64.6% -> 98.6%. Padded size is now 2112 vs 2096. Residue is confined to
0x10b-0x4cc, at the hand-expanded point_from_line3d sites forced by the
emission guard (path.obj is in the owner's still-guarded all-inlined class).
_path_state_estimated_distance (496 B): size now equal (was 528), 191 == 191
instructions, objdiff 77.5% -> 95.5%; residue is a three-register cycle.
- ai/action_charge.c _action_charge_perform (3,248 B, not parked): three hunks
accepted - melee arm first, the `!ranged || underwater` arm, and the two-store
unreachable test - each a pure block move or an equivalent rewrite with the
same evaluation order. NOT landed: the worker's `__inline` added to eleven
baseline-exact local math helpers (flips their COMDAT selection for zero
credit; two earlier lanes declined the same lever; needs a helper-linkage
ruling). action_charge still emits the January-owned _point_from_line3d.
Config: config/parked.json - the two path entries re-measured in place by line
surgery (base size / sha / objdiff percent) with a dated evidence note each.
Parks 174 active / 0 stale / 0 invalid.
Verification: see the preceding strict commit (same build): 0 exact regressions,
0 report rows lost. Reviewer: independent adversarial agent per unit,
ACCEPT_FUZZY_ZERO_CREDIT; partial files built by the reviewers and re-gated by
the orchestrator.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- _hud_render_unit_interface (3,504 B): January's local-player re-read for
the HUD state, flag-macro draw flags, advancing shield color pointer,
named auxiliary panel, direct flash-time indexing (park reopen)
- _flag_render_proper: loop counters reset in the for-initializers
- _path_state_begin: single exit, distance_squared3d + square_root, a
destination pointer shared by the helper and the error text (park reopen)
- _blip_begin: January's caller pushes a zero second argument the callee
never reads; the parameter is added with a provisional name and comment
(park reopen). The caller park _render_motion_sensor is re-measured
(non-exact before and after).
Rejected: _render_debug_trigger_volumes (duplicated arm stores), leaf_map
rows (owner-declined P7 projection_from_vector3d body),
_closest_point_to_attractor (point_from_line3d COMDAT).
Stable diff vs 9062b1e96: 0 regressions; parks 230 -> 226.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Wave w1 Batch B (adversarially verified, held for config): the address-named 16-byte stub _code_0004c7b0 is January's private path_heap_verify (Bungie's 2001-09-25 Xbox linker map, same link slot between path_state_reset and path_heap_bubble_up; not a January PDB public, so static). Its TRUE body is inlined at the heap insert/pop entry and exit checks, following path_obstacle_avoidance.c's heap_verify. symbols.json line renamed in place with "static": true. Full ninja build and stable sweep: 0 regressions.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Declaration/assignment order from January store order, chain-walk index idiom and surface edge selection by right_surface. 4 park(s) removed. Adversarially verified (wave D park re-investigation); full build of the combined wave D set: 0 regressions, parks 402/0/0.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
+1 strict exact function, 1,184 padded bytes. The obstacle-avoidance
failure record moves inside the avoidance arm directly after the failing
_path_avoid_obstacles call ('if (state->debug && !path_build_success)'),
matching January's store placement. Behaviour is unchanged. path: 23 exact.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>