JARVIS-AURORA
Update 2.125
6/16/2026
v2.125.0.0MINORJarvis-AURORA
Aurora finalization balistica Phase 1: `aurora-calib-v2` probe (CSV/JSON with residual identity/flipZ/yaw180 + height_0x534)
- (new capability: new
ffxprobectlmode emitting a CSV+JSON artifact with a new residual-calibration schema; first time we pairchunk3.monLive×actor+0x3B0×actor+0x534in a structured probe). Implements Phase 1 of the Aurora plan (.cursor/plans/aurora_balistica.plan.md). Spec followed:docs/reverse/FFX_AURORA_CALIBRATION_PROBE_SPEC_2026-06-15.md(XZ identity proven 2026-06-05 by IDA; Y residual still RT2-pending). The mode:ffxprobectl aurora-calib-v2 [--route <field> <group> <formation>] [--battle <id>] [--out <json>] [--csv <csv>] [--max-slots <N>](read-only, no MMF instrumentation beyond the existingArm(1, ...)read window). For eachmonLiveslot up tomin(monCount, max-slots=16): readschunk3.monLive[s]fromg_FFX_Battle_AreaChunk + ptr@+0x20 + 16*s(XYZW), resolvesactor[s] = *0x11334CC + 0xF90*s, readsactor+0x3B0(world XYZW),actor+0x3C0(cache XYZW optional),actor+0x534(height float). Computes 3 residuals:identity = actor - chunk,flipz = actor - (cx,cy,-cz),yaw180 = actor - (-cx,cy,-cz)with componentsdx/dy/dz+ RMS (full + XZ-only). Acceptance (matching A01):identity_rms_xz < 0.5ANDidentity_rms * 5 < flipz_rmsANDidentity_rms * 5 < yaw180_rms->winner=identity; alternatives only win if their rms<1.0 (improbable post-IDA — emits an "UNEXPECTED — investigate" alert); slot blocked if actor_array invalid / world non-finite (despawn/animating) — caseblocked-runtime-state, NOTfail. Output: JSON (work/actor_overlay/aurora_calib_<battle_id>_<utcstamp>.jsondefault) with consolidatedverdict(identity-confirmed-live/ALERT-non-identity-winner/blocked-runtime-state/partial) + arowsarray; parallel CSV with 36 columns (qpc, battle_id, route field/group/formation, area_chunk_va, actor_array_va, slot, dict_id, chunk_xyzw, actor_xyzw, actor_cache_xyz, height_0x534, identity/flipz/yaw180_dx/dy/dz/rms, identity_rms_xz, winner, reason). Build:dotnet build RuntimeTools/FfxDinput8Probe/ctl/Ctl.csproj -c ReleasePASS (0 errors, only preexisting warnings CS8632/CS0219). Does not touch: probe DLL (ffx-probe.dll), offline gates, FfxHooksDll. Next phase: RT2 calib-v2 with Halyson on 4 golden battles (azit03_00,bsil05,klyt00_00+ a control like425/0/0) — recipe indocs/reverse/FFX_AURORA_FORCE_BATTLE_CALIBRATION_PROTOCOL_2026-06-15.md. Phase 1 RT2 = N/A (probe build only); Phase 2 RT2 = blocked on human (Halyson)
v2.124.0.2
v2.125.1.0PATCHJarvis-AURORA
Aurora finalization balistica Phase 3 (offline): drag preview diff in the overlay (old/new/Δ)
- (UX polish on the existing drag mode in
aurora-overlay.js; no new capability, no new writer, just a better readout ahead of the drag-position-only RT2). Implements the offline half of Phase 3 of the Aurora plan — RT2 (move a small monster in a real battle, save, forcebattle, screenshot, restore) is still blocked on human (Halyson). Three edits inRuntimeTools/FFXMapViewerWeb/aurora-overlay.js: (1)onPointerDownnow captures the ORIGINALrawAnchorscoord when the drag starts (cross-referencinguserData.role/index), stashing it inoverlayState.dragging.original = {x,y,z}. (2)onPointerMovesetReadout went fromplace role[i]: X 12.34 Y 5.67 Z 8.90to a 3-part format:(orig) -> (new) Δ=(+1.23, +0.00, -2.45)— explicit sign (+/-) makes the drag direction obvious. (3)onPointerUpnow also callssetAnchorInfowith a persistent summary${role}[${i}]: Δ=... (orig) -> (new)that survives until the next event — before, the readout vanished as soon as the cursor left the panel. Benefit for Halyson's RT2: the operator sees exactly how far each monster moved before hitting💾 Salvar posicoes— makes the "moved +1.2u in X, 0u in Y, -3.5u in Z" line easy to log. Does not touch: writer (AuroraDragBridge/BattleArenaPositionWriter), offline gates, FfxHooksDll, probe ctl. Lints:ReadLintsclean. Next phase: Phase 4 (RT2 grow normal non-Dark Aeon) and Phase 5 (offline camera-chunk0-edit-rt0 gate + RT2 polar) are queued. Phase 3 RT2 = blocked on human (Halyson)
v2.125.0.0
v2.125.1.1REVISIONJarvis-AURORA
Aurora finalization balistica Phase 9 closeout: status reconciliation across all 10 plan phases (RT2 queue armed, offline 100% closed)
- (doc-only / closeout:
PORT_STATUS.md+docs/ai/SESSION_HANDOFF.md+KNOWLEDGE_BASE.mdreconciled; no behavior change, no writer/probe/DLL touched in this pass). Closes the cycle of the plan.cursor/plans/aurora_balistica.plan.md(10 phases, A+B scope approved by Halyson). Phases shipped during this saga (Jarvis-AURORA, 2026-06-16): F0 doc reconciliation (REVISIONv2.123.5.1), F1aurora-calib-v2probe MINOR (v2.125.0.0), F3 drag preview diff offline PATCH (v2.125.1.0). Phases already covered by previous work (discovered during closeout, no new bump in this saga): F5 offlinecamera-chunk0-edit-rt0gate already covered byBattleCameraScanLab(offline_ci.ps1C08BattleCameraScanLabalready includespolar eye round-trip+setup FLOAT edit round-trip+edit byte-local + reversibleacross all chunk0 bins with camera setup). F6 PhotoMode wiring insideFfxHooksDllalready COMPLETE (PhotoMode::Tick()called after the actor update inside the Present hook indllmain.cpp:4622,PhotoMode::g_base/g_pmdefined indllmain.cpp:6060, theNativeMenu_OnEdge/NativeMenu_OnHeldEnterbridge registered inStartNativeMenuIfEnableddllmain.cpp:8884,PhotoMode::Exit()insideStopNativeMenudllmain.cpp:8910— only RT2 in-game missing). F7 IDA W2S spike consolidated in 3 deep docs (FFX_AURORA_W2S_MATRIX_OWNER_IDA_DEEP_2026-06-15.md,FFX_AURORA_W2S_MATRIX_IDA_CHAIN_2026-06-15.md,FFX_W2S_D3D11_INFERNO_2026-06-15.md) with acceptance criteria and logging spec nailed; gap = read-only hook onselected target id/indexin main UI (RVA pending without local IDA db unlocked for the idalib MCP this session). F8 IDA variant selector spike consolidated in 3 docs (FFX_AURORA_ARENA_VARIANT_IDA_DEEP_2026-06-15.md,FFX_AURORA_ARENA_VARIANT_SELECTION_RE_2026-06-15.md,FFX_ARENA_VARIANT_RUNTIME_INFERNO_2026-06-15.md);runtime selector UNVERIFIEDbadge planted in theAuroraChamberUI in F0. Phases blocked on human (Halyson, in-game RT2): F2 calib-v2 RT2 across 4 golden battles (425/0/0,azit03_00,bsil,klyt00_00) + Y residual analysis per area/height — full recipe indocs/reverse/FFX_AURORA_FORCE_BATTLE_CALIBRATION_PROTOCOL_2026-06-15.md; F3 (RT2) drag position-only — recipe in §B ofFFX_AURORA_MASTER_RT2_CHECKLIST_2026-06-15.md; F4 normal-grow RT2 (non-Dark Aeon spawn + AI + end-battle + cleanup); F5 polar edit RT2; F6 minimum PhotoMode RT2. Status post-saga (PORT_STATUS reconciled): Aurora Chamberparcial → parcial+++(X/Z identity IDA-proven, Y residual RT2-pending, UNVERIFIED badge on variant),aurora-calib-v2validated offline / RT2 pending, drag overlayvalidated offline / RT2 pending, BattleCameraScanLabvalidated offline (gate C08 = 1 of 29), PhotoMode wiringvalidated offline / RT2 pending, W2S ownerpartial / blocked / acceptance criteria defined, runtime variant selectorpartial / inferred / blocked without IDA db unlocked. Does not touch: writers, probes, DLL, build, package — the entire saga was documentational + 2 small increments (probe ctl + overlay UX) shipped in their own REVISIONS. Next safe step (handoff to Halyson): run the pre-armed RT2 queue (5 active RT2s + 1 unblocked IDA spike) — F2 calib-v2 first (ffxprobectl aurora-calib-v2 --route 425 0 0in a real battle), then F3/F4/F5/F6 as human energy allows
v2.125.1.0