Commit Graph
29 Commits
Author SHA1 Message Date
Jonas Volman 6bfd956737 Reconcile approved Halo fidelity packets and bounded data credit
Recover transparent geometry submit (+1,285 meaningful code, zero exact losses); reconcile COMMON ownership and Q10 85+EXT1 credit, actions/main data, and separately disclosed denominator corrections. Preserve canonical-only repairs and all held research. C09 is ordinary disclosed cleanup, not a claim of proven scaffolding intent. Clean rebuild, 1,663 tests, parks, audits, provider links and independent EXT1 check pass. Local reconciliation only.
2026-09-29 13:52:37 -07:00
Jonas Volman f3aadeab98 Reconcile five Halo functions and approved declaration batches
Integrate coherent B3, P2/K17 prerequisites, completed K1-K16 + S, and the independent profile/effects rulings. Five gains and two explicitly approved B3 debits: net +3 strict functions, +2770 meaningful/+2800 padded bytes (+2774 progress credit). No additional losses; Halo objects 394 to 396 and data unchanged.

Clean rebuild, identical 8252-row stable sweep, 68 valid parks, admission/provider checks, 467-unit warning comparison, unchanged fake scan, and 1318 tests passed. Preserve canonical helper recoveries and unrelated work. Full evidence and disclosures in docs/object_matching_logs/astra_five_function_reconciliation_20260928.md.
2026-09-28 23:17:10 -07:00
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 VolmanandClaude Opus 5 94c3273708 Define and use ai_script_squad_separator: +3,920 data bytes
January's ai_script.obj carries a one-byte external .rdata object,
_ai_script_squad_separator = '/', which our build did not emit at all. Our
source used the literal '/' at the one site that splits an "encounter/squad"
name with strrchr.

Now defined as a file-scope char const and used at that site. VC7 folds the
const into the immediate, so the function's code is byte-identical and
ai_script stays 116/116 exact - and because the object keeps external linkage it
is still emitted, matching January exactly: .rdata, one byte, class external,
0x2f, and zero code relocations to it on either side.

The defining-only variant also matches the bytes but was rejected: a global that
nothing uses exists only to emit a byte, which is what the no-fake-matching rule
forbids. Using it at the split site is what explains why January had it.

The data metric moved far more than one byte, from 2,360,994 to 2,364,914
(+3,920), which suggests the build credits a unit's data only once all of it
matches. That is being investigated separately.

Verified: full ninja green, code unchanged at 1,460,468 / 7,301, parks 181
active / 0 stale / 0 invalid, forbid guard exit 0, fake_match_scan 0 findings.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-20 20:58:17 -07:00
Jonas VolmanandClaude Opus 5 8fd76228b9 Apply independent-review corrections to the ai_script BUG disclosure
The owner's ruling was to accept the 214-byte ai_script match only with a
documented target-proven BUG and an independent review. The review returned
CONFIRMED WITH CORRECTIONS; this commit lands every correction it required.

Code (comment only, zero bytes changed):
- Evidence now leads with January's 34-byte .rdata literal
  "%s: ai_migrate_and_speak %s %s %s". The 0x14 cleanup proves three VALUES;
  only the literal proves four CONVERSIONS, so the literal is the primary
  evidence and the cleanup is corroboration.
- Struck "so no shipping configuration runs it". Both gate flags are exposed
  as the HaloScript external globals ai_print_migration / ai_print_scripting
  (source/hs/hs_globals_external.c:1468,1470) and are therefore settable at
  runtime by a scenario script or the debug console in the very build being
  matched. The disclosure now says the path is reachable.

Documentation:
- Removed the dangling "house rule 24" citation; docs/campaign_house_rules.md
  has 22 rules. The governing text is the original-bug policy in
  docs/matching_methodology.md, now cited directly with a correction note.
- Withdrew the "always-executed paths" distinction from the two donors the
  owner previously excluded; reachability is not the owner's stated reason.
- Recorded the review itself, including the two checks it added that the
  author had not made (the literal has exactly one relocation in the whole
  object; the 2020 cross-build defect verified first-hand at VA 0x00948864)
  and its finding that fake_match_scan cannot clear a variadic-arity case.
- Manifest: split source_commit into per-row landing_commit and
  lane_tip_commit, which were previously conflated.

Re-verified after the edit: EXACT 224, source/ai/ai_script 116/116,
relocdiff sha equal with 0 differing rows, 16/16 relocations; full rebuild
reproduces 1,444,193 / 1,770,166 (7,292 / 7,574); parks 184 active / 0 stale
/ 0 invalid.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-20 13:56:46 -07:00
Jonas VolmanandClaude Opus 5 9eca0524de Close ai_script.obj at 116/116 (+214 meaningful bytes)
_ai_scripting_migrate_and_speak becomes strict exact: 224/224 padded bytes,
16/16 relocations, relocdiff reports sha equal and zero differing rows.

January's call site cleans 0x14 bytes (five dwords) and loads speech_type only
afterwards at +0x7d, while the format literal read out of January's .rdata is
"%s: ai_migrate_and_speak %s %s %s" - four %s conversions for three values. Our
source was passing speech_type as a fourth value and cleaning 0x18.

Landed under the original-bug policy with a BUG (preserved for exact matching)
comment that records the evidence, the runtime consequence (the fourth
conversion's slot is the saved-EDI home, so vsprintf dereferences the caller's
entry EDI as a char *) and the corrected form. The branch is reachable only
under ai_debug.print_migration / print_scripting.

Flagged for owner ratification in the wave report; reverting is a single token.

Verification: full ninja build 1,444,193/1,770,166 Halo bytes (7,292/7,574
functions); stable_verdicts diff gained 1 / 224 bytes / 0 regressions; accepted
ledger +214 meaningful / 0 regressions; parks 184 active / 0 stale / 0 invalid;
admission audit 19/0/8/0; fake scan 0 findings in the changed file and the same
2 inherited findings across source/ai; git diff --check clean.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-20 12:14:50 -07:00
Jonas VolmanandClaude Opus 5 dcede5fd11 Wave 13: four functions strict exact (rasterizer_text complete, ai_script)
- _rasterizer_draw_string / _rasterizer_draw_unicode_string: geometry
  parameter and bounds locals declared at the top of the debug block
- _ai_scripting_renew: real_math.h random_range replaces the hand-written
  seed_random_range(get_global_random_seed_address(), ...) (select-any
  _random_range COMDAT, a genuine January function; A4 class)
- _ai_index_from_string: single-exit success flag with one reference store

Rejected: _light_volume_render (point_from_line3d COMDAT).
Wave 14 (second pass over actor_moving, physics, decals, projectiles,
hud_weapon, ui_widget, encounters, weapons) closed nothing.
Stable diff: 0 regressions.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 19:44:31 -07:00
Jonas VolmanandClaude Opus 5 51c94f13e5 Harvest per-function donor bodies: 11 functions strict exact
Per-function transplant of historical and worktree donor bodies into the
current tree (whole-blob mining had rejected them for unrelated losses).
Each landing is the minimum hunk, strict exact in its whole-TU gate with
zero inherited losses, and reviewed for house rules and hard holds:
- helper spellings replace hand-expanded math (_device_frontfacing,
  _point_in_triangle3d, _actor_look_valid_aim/look_vector)
- _pill_test_vector3d normalizes directly into the output normal
- natural control-flow/declaration forms reopen five parks
  (_structure_cluster_mark/unmarked, __rasterizer_widget_draw_sprite2d,
  _rasterizer_set_model_skinning, _ai_handle_editing)
- two byte-proven non-UB original bugs kept under the documented
  original-bug policy with BUG comments (_ai_handle_editing unscaled
  csmemmove counts, _ai_scripting_follow_target_ai repeated name)

Stable diff vs 9062b1e96: +11 functions, 0 regressions; parks 268 -> 263.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 10:37:04 -07:00
Jonas VolmanandClaude Opus 5 ffd0e1d4b8 ai_script: 1 function(s) strict exact
Wave w1 landing, adversarially verified. park reopens: _ai_scripting_allegiance_broken. Full build of the combined batch: 54 strict gains / 29,440 padded, 0 regressions, parks 355/0/0. 1 park(s) removed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 02:50:16 -07:00
Jonas VolmanandClaude Opus 5 a76d937e7f Match ai_script migrate, command-list status and vehicle encounter paths
+8 strict exact functions / 4,208 padded bytes, all previously residual:
_ai_scripting_migrate_internal (1,360; masked NONE test and scenario lookups
in January's order, source reference in January's private register ABI),
_ai_scripting_migrate_find_target_squad (1,072; January's two additional
scenario-definition lookups, found_squad_index initialized to NONE),
_ai_scripting_migrate (160; unchanged body, exact through its callee's ABI),
_ai_scripting_migrate_by_unit_internal (240),
_ai_scripting_command_list_status (592; MAX over per-actor status),
_ai_scripting_command_list_status_internal (80; single exit over a
bounds-checked command pointer), _ai_index_actor_iterator_new (208) and
_ai_scripting_vehicle_encounter (496). Behaviour is unchanged; no top-level
declaration, include or type was added. Adversarial review accepted all
eight; both ai_script parks are unchanged. ai_script: 109 exact / 7 residual.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 15:21:29 -07:00
Jonas Volman 5d3444f799 Reconcile eighth 10K exact source batch 2026-09-13 02:47:59 -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 4fd6e01fba Narrow AI erase prototype ownership 2026-09-09 07:20:55 -07:00
Jonas Volman 063674629d Reconcile Opus AI scripting packet 2026-09-09 07:12:05 -07:00
Jonas Volman f1dfe0bc50 Reconcile Fable AI script exact wave 2026-09-02 15:43:43 -07:00
Jonas Volman 125b26d6ef Snapshot Fable AI script wave for salvage 2026-09-02 15:43:40 -07:00
Jonas Volman af15449fc1 Recover authenticated AI communication trio 2026-08-31 11:08:42 -07:00
Jonas Volman ca0846407c Integrate AI script vehicle dispatch cluster 2026-08-29 21:58:49 -07:00
Jonas Volman acf8ee8326 Integrate AI script list wrappers 2026-08-29 21:46:17 -07:00
Jonas Volman fb4c8bb5d5 Integrate AI script vehicle status cluster 2026-08-29 21:43:13 -07:00
Jonas Volman eb7282b2b2 Integrate AI script allegiance setter cluster 2026-08-29 21:31:30 -07:00
Jonas Volman d997bcef04 Integrate AI script conversation kill cluster 2026-08-29 21:24:35 -07:00
Jonas Volman 1fb088d7de Integrate AI script count family 2026-08-29 21:16:04 -07:00
Jonas Volman f73ead2f30 Match AI script deselect 2026-08-27 11:08:16 -07:00
Jonas Volman ee829d324e Match AI status and retreat bridges 2026-08-27 09:54:30 -07:00
Jonas Volman 3a798b15c7 Match AI conversation line bridge 2026-08-27 09:47:12 -07:00
Jonas Volman 98f069bce4 Match AI script lifecycle 2026-07-15 08:04:57 -07:00
punpckhdq e830efbd7c Initial commit 2025-11-27 02:27:27 +00:00