docs: contract #480 equipped publication and pin Rynthid destination
This commit is contained in:
parent
710cbb554c
commit
9556c17480
5 changed files with 202 additions and 5 deletions
|
|
@ -717,6 +717,14 @@ Update immediately when a slice changes state. Chat is not the ledger.
|
|||
|
||||
---
|
||||
|
||||
**S5 current supplement (2026-09-05, packet§50):** #477 patch written in its
|
||||
scratch, compiling/testing; no accepted return or new client run. Lead verified
|
||||
#480's retail/paired-binary child publication and contracted the separate
|
||||
shared prepared-cache fix in480-equipped-render-publication-contract.md.
|
||||
Rynthid Recall6150→3032001C corroborates owner generation4; historical route
|
||||
labels are not location evidence (479-rynthid-location-evidence.md). #479
|
||||
transform cause remains unproven. No change to G4 FAIL or the open obligations.
|
||||
|
||||
## 14. Risk register (condensed)
|
||||
|
||||
- **R1 second scene graph.** Graph records own only topology/membership facts;
|
||||
|
|
|
|||
|
|
@ -47,11 +47,27 @@ effective part replacements and cleanup; do not manually inject membership.
|
|||
Existing controller fixtures use empty Setups; registry fixtures inject
|
||||
handmade child shapes, and selection tests inject visible parts directly.
|
||||
|
||||
Agent named-retail pointers (lead binary re-verification still owed before
|
||||
any AC-specific repair contract): CPhysicsObj::add_shadows_to_cells recursively
|
||||
visits children; CPartArray::AddPartsShadow visits every non-null visual part.
|
||||
Named pseudo-C lines282819–282901 and285933–285955. No new retail claim is
|
||||
accepted merely from a successful attachment log.
|
||||
Lead independently verified the named-retail loops and paired executable:
|
||||
CPhysicsObj::add_shadows_to_cells recursively visits children with the same
|
||||
CELLARRAY; CPartArray::AddPartsShadow visits every non-null visual part.
|
||||
Named pseudo-C lines282819–282901 and285933–285955. These establish expected
|
||||
child/part publication, not the modern prepared-cache mechanism itself.
|
||||
|
||||
Paired `C:\Turbine\Asheron's Call\acclient.exe` SHA-256:
|
||||
`006FFEADC5D679C871497112A5BD1F87714D0E273E2166BAE5052DDE369297B1`.
|
||||
Lead mapped VAs using its PE image base/section table and hashed exact ranges:
|
||||
|
||||
| Function | VA / file offset / length | SHA-256 |
|
||||
| --- | --- | --- |
|
||||
| CPhysicsObj::add_shadows_to_cells | 00514AE0 / 00114AE0 / 307 bytes | E651AE6CC5C09374356B4389D44C2F5615DAF50BD2CADFFE8C4565A41C078388 |
|
||||
| CPartArray::AddPartsShadow | 00517E40 / 00117E40 / 89 bytes | 63C6ACFF37CE039B6929EBD51A08889F6EB4904B53F29C77C0E162B19CE95C75 |
|
||||
|
||||
Verified call bytes: 00514BA2 `E8 99 32 00 00` targets00517E40;
|
||||
00514BF7 `E8 E4 FE FF FF` recursively targets00514AE0. The part loop reads
|
||||
parts[i], skips null, and calls the virtual add-part slot via `FF 55 00`
|
||||
at00517E87 before increment/num_parts comparison. The pseudo-C's00517E76
|
||||
annotation identifies the expression, not that native call instruction.
|
||||
No new retail claim is accepted merely from a successful attachment log.
|
||||
|
||||
## #478 — distinguish local-light selection from High postprocessing
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,50 @@
|
|||
# #479 — Rynthid identity, before a transform diagnosis
|
||||
|
||||
2026-09-05, read-only lead investigation on production `de427d2c0`, docs
|
||||
HEAD710cbb554. No fix or visual acceptance. The owner's hanging-structure
|
||||
placement failure remains open; no owner PNG/exact affected part was captured.
|
||||
|
||||
## Verified destination
|
||||
|
||||
Rynthid Recall is spell6150/0x1806 (also present in the generated local
|
||||
SpellId enum). The primary ACE world-data row is
|
||||
[06150 Rynthid Recall.sql](https://github.com/ACEmulator/ACE-World-16PY-Patches/blob/master/Database/Patches/2%20SpellTableExtendedData/06150%20Rynthid%20Recall.sql).
|
||||
Root fetched its exact Git blob `fd301a1f944e2585a823fa7a17bcb35926786e2e`
|
||||
through the public GitHub API, without accessing server credentials or writing
|
||||
the database. The row specifies cell3032001C, XYZ(83.3,89.2,133),
|
||||
WXYZ(-0.642788,0,0,-0.766044). This is upstream ACE data, not a claim to have
|
||||
queried this running server's database.
|
||||
|
||||
The owner's recorded reveal generation4 at3032001C,
|
||||
XYZ(83.3,89.2,132.00499), therefore DOES corroborate the Rynthid visit.
|
||||
The small Z difference is the observed settled pose, not evidence of the
|
||||
reported structure displacement. No owner heading/affected-object identity
|
||||
is recovered from this correlation alone.
|
||||
|
||||
Historical `tools/connected-r6-soak.route.txt` labels3032001C "Sawato" and
|
||||
F6820033 "Rynthid". Those labels must NOT be used to identify the failed
|
||||
scene. Keep old result/checkpoint identifiers traceable; this note corrects
|
||||
their semantic use without rewriting historical evidence or changing route
|
||||
coordinates. A coordinate-validity check supersedes a copied label.
|
||||
|
||||
## Installed-DAT candidates
|
||||
|
||||
Root ran the existing Release A8CellAudit read-only `buildings 30320000 1`
|
||||
and `buildings 30320000 4` against Documents/Asheron's Call installed DATs.
|
||||
Before execution, both AcDream.App/acclient were absent; ACE UDP9000 PID13340
|
||||
was up. No graphical client was launched and no DAT was modified.
|
||||
|
||||
- 3032 itself has35 static objects and0 buildings: the recall encampment.
|
||||
- The radius4 scan includes dense2D31 with535 objects and0 buildings; many
|
||||
objects sit at Z205–225, including Setups02001BEE/02001BF0/02001BF2 and
|
||||
Gfx01004D35–01004D3A. These are candidate elevated complex components,
|
||||
NOT a proven match to the displaced part.
|
||||
- The radius4 scan totals129 shell entities and0 registry buildings (shells
|
||||
without portal cells count separately). Tool output was too large for the
|
||||
model result and truncated; no whole-scan numerical/geometry PASS is claimed.
|
||||
|
||||
Wegener is doing a bounded read-only object/part/transform trace while #477
|
||||
is tested. Next proof needs exact candidate Setup/GfxObj/part transforms from
|
||||
the current static pipeline and the installed authored frames, then a stable
|
||||
connected view after GPU repair. Do not assert rebase, quaternion, animation,
|
||||
or DAT corruption as the cause without that evidence.
|
||||
|
|
@ -0,0 +1,101 @@
|
|||
# #480 — publish equipped visual-part geometry before attachment
|
||||
|
||||
Lead contract2026-09-05. NOT IMPLEMENTED. Independent of the in-flight #477
|
||||
native synchronization repair. The commit containing this contract is the
|
||||
exact scratch base; production remains `de427d2c0` until reviewed integration.
|
||||
|
||||
## Evidence and objective
|
||||
|
||||
The owner sees no wielded hand items. `478-480-readonly-diagnosis.md` records
|
||||
the lead-verified producer-to-consumer defect: the controller resolves GfxObj
|
||||
availability through DAT but builds child render parts from an unpopulated
|
||||
PhysicsDataCache. Cold parts can therefore attach with zero RetailPartEntry
|
||||
rows and never reach the world walk. The ordinary materializer already uses
|
||||
LiveCollisionAssetPublisher to publish the required prepared views/bounds.
|
||||
The attached, Position-null route bypasses that ordinary materializer.
|
||||
|
||||
The note contains the lead's exact named-retail/paired-executable checks for
|
||||
CPhysicsObj::add_shadows_to_cells and CPartArray::AddPartsShadow. Retail
|
||||
recurses through attached children using the parent's CELLARRAY and publishes
|
||||
their non-null parts. Repair the missing modern producer edge; do not change
|
||||
those rules or infer success from an attachment log. The exact owner-item
|
||||
cache state was not captured, so a real cold-cache regression is required.
|
||||
|
||||
## Scope and implementation contract
|
||||
|
||||
- EquippedChildRenderController: reuse the existing strict live collision
|
||||
publisher to publish each DAT-resolved effective GfxObj before building
|
||||
the child's render-part membership and before materializing/announcing its
|
||||
new projection. BuildPartAvailability already visits those actual objects;
|
||||
use that path or an equally narrow shared visit, not a second decoder.
|
||||
- LivePresentationComposition: inject the SAME composition-owned publisher
|
||||
used by ordinary live hydration. A required Action<uint,GfxObj> bound to
|
||||
CacheGfxObj is acceptable to keep the public controller from exposing an
|
||||
internal concrete type. No nullable/no-op production fallback or second
|
||||
cache/source/publisher owner. Existing fixture constructor adaptations are
|
||||
permitted in the two network-presentation suites and controller suite.
|
||||
- Focused tests in the existing equipped-child controller fixture, plus at
|
||||
most one narrowly scoped test file if separating the composed witness is
|
||||
clearer. Reuse current scene/walk fixtures and prepared-source test support.
|
||||
- Update the relevant architecture paragraph and this contract's outcome.
|
||||
Every intentional deviation gets a register row in the same landing commit;
|
||||
none is expected. Do not change unrelated register history.
|
||||
|
||||
Preserve effective AnimPartChanged IDs, part ordering, absent-DAT behavior,
|
||||
Setup scale/holding-location/pose composition, exact entity/authority checks,
|
||||
parent CELLARRAY inheritance and all detach/reparent/withdrawal sequencing.
|
||||
Cache immutable asset data only; children still acquire NO independent
|
||||
collision registration or flood. Do not repair the ignored AttachChild
|
||||
Boolean by inventing a new rollback/lifetime protocol in this chunk.
|
||||
If an actual required failure-path change emerges, report it before expanding.
|
||||
|
||||
Strict prepared-source failure must remain a truthful failure before a new
|
||||
child projection/membership is published. Never manufacture bounds or silently
|
||||
fall back to parsed collision, root-cell draw selection, parent mesh parts,
|
||||
or an all-entities sweep. No changes to shaders, GPU code, Runtime authority,
|
||||
lighting, capture timing, package format or streaming policy.
|
||||
|
||||
## Discriminating proof
|
||||
|
||||
1. Drive the REAL OnSpawn attached Position-null path with a nonempty child
|
||||
Setup and real drawable GfxObj metadata, an initially empty PhysicsDataCache
|
||||
and a recording IPreparedCollisionSource behind the REAL strict publisher.
|
||||
Give the parent actual registered retail CELLARRAY membership and normal
|
||||
materialized scene projection. Do not prepopulate child cache/rows manually.
|
||||
2. Assert the child relation/materialization as a control, then exact child
|
||||
local-ID, part indices and effective GfxObj identities in every inherited
|
||||
cell. Feed the same registry and actual resulting projection into
|
||||
WalkProductionWorldData; assert its EquippedChild record. The unfixed
|
||||
producer must fail at the missing child rows, not fixture/setup failure.
|
||||
3. Cover visual-only/no-physics-BSP geometry, a cold AnimPartChanged replacement
|
||||
distinct from the original Setup ID, and repeat realization/reappearance
|
||||
without duplicate rows or unnecessary prepared reads. Missing DAT parts
|
||||
retain existing unavailable semantics. Missing prepared content must fail
|
||||
before new projection/ready publication and must not publish graph-only data.
|
||||
4. Detach/withdraw the exercised child through the real controller lifecycle;
|
||||
its rows disappear without deleting the parent's rows or registering child
|
||||
collision shapes. Preserve existing withdrawal/reparent/network tests.
|
||||
5. Bind production composition to the actual shared publisher (existing
|
||||
source/IL test idiom if needed); a fixture-only publisher call is not proof.
|
||||
|
||||
Two actual-production mutation checks: remove the new publication call;
|
||||
then publish original Setup IDs instead of effective replacement IDs. The
|
||||
corresponding cold-cache/replacement assertions must fail, not compilation.
|
||||
Restore exact raw source hashes after each and finish Release/focused green.
|
||||
No new test framework, detached model oracle, increased tolerances or skips.
|
||||
|
||||
## Workflow and closure
|
||||
|
||||
One OpenAI implementer in a fresh codex/s5-480-openai-impl scratch. No commits,
|
||||
extra agents or graphical launch by the implementer. Check both AcDream.App
|
||||
and retail acclient before EVERY build/test; neither may be running. Other
|
||||
scratches are untouched. Root independently verifies the return and repeats
|
||||
discriminating evidence; sequential retail/behavior and production/lifetime
|
||||
review lenses follow, within the owner's ten-review limit.
|
||||
|
||||
Return exact changed files/hashes, commands, green Release/focused TRX paths,
|
||||
mutation failures and raw restoration proof. Root commits/integrates and
|
||||
updates the ledger. Coordinate graphics only after #477 validation is clean:
|
||||
verify equipped hand objects in a connected client, preserve PNG paths and
|
||||
label visual PASS provisional until owner inspection. This chunk cannot
|
||||
close the overall failed owner gate or authorize a main merge.
|
||||
|
|
@ -4672,3 +4672,25 @@ Dispatch: contract commit `29730506c57b44cfa3ba454a8594e170c95d7233`, fresh
|
|||
base verified clean. James implements only that contract; no agent graphical
|
||||
launches or extra agents. Lead owns verification/review/integration and
|
||||
unchanged production remains `de427d2c0` until accepted. No repair PASS yet.
|
||||
|
||||
## 50. Parallel bounded held-item repair; Rynthid identity correction
|
||||
|
||||
#477's three production dependency fixes are written in its scratch; James
|
||||
is compiling/testing them, not yet returned or accepted. No second graphical
|
||||
run until lead verification/review/integration. Both clients absent and
|
||||
ACEUDP9000 PID13340 up at the lead's latest read-only DAT execution.
|
||||
|
||||
Lead independently re-verified #480's child/part retail loops against the
|
||||
paired executable; range hashes/call bytes are in478-480-readonly-diagnosis.md.
|
||||
`480-equipped-render-publication-contract.md` bounds the missing shared
|
||||
prepared-publication edge, real cold-cache OnSpawn-to-walk proof, replacement
|
||||
IDs, strict failure/withdrawal, and two actual-production mutations. It may
|
||||
proceed in an independent fresh scratch while GPU testing continues; no
|
||||
changes to GPU/lifetime policy, no fallback cell membership or new owner.
|
||||
Implementation/visual PASS remain owed. Lead owns commits/integration.
|
||||
|
||||
Primary ACE spell6150 resolves to3032001C and matches the owner's generation4;
|
||||
old route labels "Sawato"/"Rynthid" are unreliable identifiers. Evidence and
|
||||
candidate elevated2D31 complex are in479-rynthid-location-evidence.md. A
|
||||
read-only object/part trace is in progress; transform cause still unproven.
|
||||
All #478/#481, #476, exact route, C1c/C2/full-G4 obligations in§49 remain open.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue