Enforce source item categories at loot, save and equip boundaries #9

Open
opened 2026-10-10 07:26:00 -07:00 by Codex · 3 comments

Native parent: Codex/healer-man-godot#124. Profiles already store character categories, but source inventory items and loot creators lack a preserved content-category identity. Class/slot checks alone permit foreign-game gear, while normalization, grants and saves omit owner-category enforcement.

Acceptance:

  • Carry and validate explicit item category at source item creation, normalization, grant, persistence and equip/loadout boundaries. Resolve the expected category from the saved character/party, independently of dungeon source. Keep boss-card identities and the native cards-only drop policy intact.
  • Preserve legacy WoW gear through a deliberate owner-WoW migration rule. Reject wrong-category items and missing identity on RoM/CoA items explicitly; preserve recoverable legacy data rather than silently converting it into another pool or deleting it. Document any source-backed migration identifiers and unsupported gear data.
  • Keep existing WoW values/models/loadouts and separate character inventories intact. RoM items require valid native gear payloads where those are applied; do not borrow WoW items/ratings or infer absent imported progression. The existing #123 stat formulas/weights/allocation claim is outside this task.
  • Focused tests prove cross-category grant/equip rejection, save/reload and profile switching, unchanged foreign profiles and valid same-category behavior; maintain existing source combat/stat regressions.
  • Publish scoped source changes with exact input identities and validation. Native installation/bridge validation and Obsidian updates remain coordinated under native #124. No hosted deployment is claimed.

Coordinator /root, session 01a11cd3-fa7c-7510-ba8f-bc7a3d0310a6. Native branch fix/124-game-gear-namespaces; source branch to be created from current shared main. Requested delegates: single_pass_source, single_pass_renderer and single_pass_validation, all GPT-6 Luna with xhigh reasoning. Source/runtime boundary and persistence scopes will be pinned before implementation; preserve the overnight/rom-stats-contract worker and native #43 integration ownership.

Native parent: https://git.whoagland.com/Codex/healer-man-godot/issues/124. Profiles already store character categories, but source inventory items and loot creators lack a preserved content-category identity. Class/slot checks alone permit foreign-game gear, while normalization, grants and saves omit owner-category enforcement. Acceptance: - Carry and validate explicit item category at source item creation, normalization, grant, persistence and equip/loadout boundaries. Resolve the expected category from the saved character/party, independently of dungeon source. Keep boss-card identities and the native cards-only drop policy intact. - Preserve legacy WoW gear through a deliberate owner-WoW migration rule. Reject wrong-category items and missing identity on RoM/CoA items explicitly; preserve recoverable legacy data rather than silently converting it into another pool or deleting it. Document any source-backed migration identifiers and unsupported gear data. - Keep existing WoW values/models/loadouts and separate character inventories intact. RoM items require valid native gear payloads where those are applied; do not borrow WoW items/ratings or infer absent imported progression. The existing #123 stat formulas/weights/allocation claim is outside this task. - Focused tests prove cross-category grant/equip rejection, save/reload and profile switching, unchanged foreign profiles and valid same-category behavior; maintain existing source combat/stat regressions. - Publish scoped source changes with exact input identities and validation. Native installation/bridge validation and Obsidian updates remain coordinated under native #124. No hosted deployment is claimed. Coordinator /root, session 01a11cd3-fa7c-7510-ba8f-bc7a3d0310a6. Native branch fix/124-game-gear-namespaces; source branch to be created from current shared main. Requested delegates: single_pass_source, single_pass_renderer and single_pass_validation, all GPT-6 Luna with xhigh reasoning. Source/runtime boundary and persistence scopes will be pinned before implementation; preserve the overnight/rom-stats-contract worker and native #43 integration ownership.
Codex Bot self-assigned this 2026-10-10 07:26:00 -07:00

Coordinator: Root /root, session 01a11cd3-fa7c-7510-ba8f-bc7a3d0310a6. Shared branch: fix/9-game-gear-namespaces at ab37006932eca20aae22327e64ecba8dd29f00fb; native branch fix/124-game-gear-namespaces at 69d76be6efdd10121e52652f54d0768a65c835bb.

Delegated GPT-6 Luna/xhigh workers: single_pass_source owns source item/catalog/equipment guards and narrow combat inventory boundaries; single_pass_renderer owns profile persistence/migration and focused account tests; single_pass_validation independently checks source/native protocol and preservation. Root owns integration, tests, documentation, Obsidian, actual installation and publication.

Migration contract: factories explicitly stamp source item namespace; saved character/party category governs grants/equipment independently from selected dungeon. Legacy missing namespace may migrate to WoW only for an explicit WoW owner. Foreign and unidentified RoM/CoA records remain recoverable in persisted profile recovery, outside active inventory/equipment/stat contribution. No guessed source association, borrowed WoW stats, invented RoM progression, CoA client mode or native item-loot enablement. Native loot remains boss cards only.

Compared 22 readiness inputs with published shared main and installed mirror: 20 exact matches; combatStore.ts has existing short-GCD work to preserve, and romNativeStatsTypes.ts differs only in line endings. Foreign #123 stats and #43 runtime ownership remain intact. Implementation is confined to isolated source review; no actual project changes yet. Native #124 and shared phenom/healer-man #9 jointly track this work. Full source-backed RoM progression remains an acceptance question; any unresolved source requirement stays open.

Coordinator: Root /root, session 01a11cd3-fa7c-7510-ba8f-bc7a3d0310a6. Shared branch: fix/9-game-gear-namespaces at ab37006932eca20aae22327e64ecba8dd29f00fb; native branch fix/124-game-gear-namespaces at 69d76be6efdd10121e52652f54d0768a65c835bb. Delegated GPT-6 Luna/xhigh workers: single_pass_source owns source item/catalog/equipment guards and narrow combat inventory boundaries; single_pass_renderer owns profile persistence/migration and focused account tests; single_pass_validation independently checks source/native protocol and preservation. Root owns integration, tests, documentation, Obsidian, actual installation and publication. Migration contract: factories explicitly stamp source item namespace; saved character/party category governs grants/equipment independently from selected dungeon. Legacy missing namespace may migrate to WoW only for an explicit WoW owner. Foreign and unidentified RoM/CoA records remain recoverable in persisted profile recovery, outside active inventory/equipment/stat contribution. No guessed source association, borrowed WoW stats, invented RoM progression, CoA client mode or native item-loot enablement. Native loot remains boss cards only. Compared 22 readiness inputs with published shared main and installed mirror: 20 exact matches; combatStore.ts has existing short-GCD work to preserve, and romNativeStatsTypes.ts differs only in line endings. Foreign #123 stats and #43 runtime ownership remain intact. Implementation is confined to isolated source review; no actual project changes yet. Native #124 and shared phenom/healer-man #9 jointly track this work. Full source-backed RoM progression remains an acceptance question; any unresolved source requirement stays open.

Local candidate implemented in isolated reviews; no actual/M installation or commits/publication yet. New explicit source namespaces govern item creation, usable inventory, owner-aware grants and class-derived equipment checks. Shared DB8 migration/recovery and cloud hydration preserve unidentified/foreign records; a new test fixture typing error was corrected and retested. Synthetic training projection is private by generated object identity; persisted/caller RoM records need nonempty normalized native payloads.

Passing source evidence: 39 item/equipment tests, 35 account/migration/cloud tests, 120 combat/stat regressions, 3 selected training/slot tests and 56 avatar tests. App-wide TypeScript check now passes with original app settings plus explicit AppleDouble exclusions. Required release hygiene passes. Source browser build was run and remains blocked at missing public/assets/game/manastorm in the review asset audit; no browser live/GPU certification claimed. Future source #11/#12 track metadata exclusion defaults/collectors; #10 tracks aggregate overflow independently of #123.

Native candidate build passes from composed source (combatStore SHA5afefb58b9a02b564cf07140c19388163a8423d22695f3619d196a9d603eeb7d), preserving WoW short-GCD edits and unchanged mixed-newline physical lines. Independent namespace suite passes7. Combined native run currently passes20/21; the remaining test lacked its ignored boss-card catalog, now copied/pinned for rerun. A Ready-five baseline/candidate comparator found a resource difference in reused runtimes; worker is isolating fresh processes to distinguish selection history from a real regression. Installation/publication are held until that check resolves.

Parent native #124 still owns offline item save/recovery UI and authenticated RoM progression; native #292 is the scoped cards-only bridge checkpoint, shared source #9 owns these source guards. Exact logs, failed setup attempts and hash manifests remain under Projects/Issue-Fixes/124-game-gear-namespaces-2026-10-10.

Local candidate implemented in isolated reviews; no actual/M installation or commits/publication yet. New explicit source namespaces govern item creation, usable inventory, owner-aware grants and class-derived equipment checks. Shared DB8 migration/recovery and cloud hydration preserve unidentified/foreign records; a new test fixture typing error was corrected and retested. Synthetic training projection is private by generated object identity; persisted/caller RoM records need nonempty normalized native payloads. Passing source evidence: 39 item/equipment tests, 35 account/migration/cloud tests, 120 combat/stat regressions, 3 selected training/slot tests and 56 avatar tests. App-wide TypeScript check now passes with original app settings plus explicit AppleDouble exclusions. Required release hygiene passes. Source browser build was run and remains blocked at missing public/assets/game/manastorm in the review asset audit; no browser live/GPU certification claimed. Future source #11/#12 track metadata exclusion defaults/collectors; #10 tracks aggregate overflow independently of #123. Native candidate build passes from composed source (combatStore SHA5afefb58b9a02b564cf07140c19388163a8423d22695f3619d196a9d603eeb7d), preserving WoW short-GCD edits and unchanged mixed-newline physical lines. Independent namespace suite passes7. Combined native run currently passes20/21; the remaining test lacked its ignored boss-card catalog, now copied/pinned for rerun. A Ready-five baseline/candidate comparator found a resource difference in reused runtimes; worker is isolating fresh processes to distinguish selection history from a real regression. Installation/publication are held until that check resolves. Parent native #124 still owns offline item save/recovery UI and authenticated RoM progression; native #292 is the scoped cards-only bridge checkpoint, shared source #9 owns these source guards. Exact logs, failed setup attempts and hash manifests remain under Projects/Issue-Fixes/124-game-gear-namespaces-2026-10-10.

Native #292 is installed in the actual Godot project and merged via Codex/healer-man-godot#293 at main 5319eaab76e442ccaaf2669f7e376b5deb390639 (scoped head 89de05984a812e64491078a0869dbc68896b6bfe). Shared namespace/schema-8 work is merged via #13 at main 812162320d (scoped head e567910c04). New items retain their game category; active gear, grants and equip enforce the character/class category independently of dungeon source. Explicit WoW legacy migration preserves old values; raw invalid/foreign records and assignments remain in character-local recovery. Rejected writes leave stored bytes unchanged.

253 unique focused source tests, full source-app typecheck, release hygiene, native bundle and 21 focused cases pass. Five public level-80 Ready WoW profiles match baseline with controlled clock/RNG; those profiles have empty gear. Seven new boundary tests also pass against the actual configured mirror, whose rebuilt bundle exactly matches the reviewed candidate. Independent candidate and actual-installed audits pass. Eight scoped native paths and 23 scoped source paths are published. Actual HEAD/index, 121 unowned guard paths, 1,466 effects, 459 import sidecars, 96 entity-source files, #123 formulas and other workers' composed WoW cooldown work are preserved.

Native ordinary loot remains disabled; cards-only and simulator reward policies remain intact. Parent #124 remains open for offline gear persistence/recovery UI and source-authenticated RoM progression/presentation. Shared #9 remains open because source browser build stops at missing ignored public/assets/game/manastorm in the isolated checkout and live roster/in-dungeon screenshots are unverified. No new GPU, manual fight, overall balance or every-boss certification is claimed.

Eight Obsidian notes/worklog entries and Projects mirrors are updated; scoped notes commit ccf66526182fb00f8974f75321b588d1b2789aee preserves shared vault HEAD/index, with no remote vault push. Used inputs, full outputs and code/notes bundles remain at /Volumes/backup1tb-2/Projects/Issue-Fixes/124-game-gear-namespaces-2026-10-10. Verified issue attachment https://git.whoagland.com/attachments/6c18475a-078c-486c-8373-cdd3b226b0ce; SHA-256 49f3abbaeeba9ba09c21d16c8850aea27f745b139a55b5666fada575d2c0dd94; 3173420 bytes / 352 entries. Native issue/PR and shared issue/PR attachments were downloaded and hash checked; credentials scanned and excluded. Native checkpoint acceptance is complete; closing #292 while the broader issues stay open. The continuous fix goal remains active.

Source #9 is released after the backend checkpoint. Its remaining browser build/live visual acceptance is still open; no source release/deployment certification.

Native #292 is installed in the actual Godot project and merged via https://git.whoagland.com/Codex/healer-man-godot/pulls/293 at main 5319eaab76e442ccaaf2669f7e376b5deb390639 (scoped head 89de05984a812e64491078a0869dbc68896b6bfe). Shared namespace/schema-8 work is merged via https://git.whoagland.com/phenom/healer-man/pulls/13 at main 812162320d9bf041a1b635b553576962238e5138 (scoped head e567910c04b954bcb775c2578cf8b1d930fa3fb8). New items retain their game category; active gear, grants and equip enforce the character/class category independently of dungeon source. Explicit WoW legacy migration preserves old values; raw invalid/foreign records and assignments remain in character-local recovery. Rejected writes leave stored bytes unchanged. 253 unique focused source tests, full source-app typecheck, release hygiene, native bundle and 21 focused cases pass. Five public level-80 Ready WoW profiles match baseline with controlled clock/RNG; those profiles have empty gear. Seven new boundary tests also pass against the actual configured mirror, whose rebuilt bundle exactly matches the reviewed candidate. Independent candidate and actual-installed audits pass. Eight scoped native paths and 23 scoped source paths are published. Actual HEAD/index, 121 unowned guard paths, 1,466 effects, 459 import sidecars, 96 entity-source files, #123 formulas and other workers' composed WoW cooldown work are preserved. Native ordinary loot remains disabled; cards-only and simulator reward policies remain intact. Parent #124 remains open for offline gear persistence/recovery UI and source-authenticated RoM progression/presentation. Shared #9 remains open because source browser build stops at missing ignored public/assets/game/manastorm in the isolated checkout and live roster/in-dungeon screenshots are unverified. No new GPU, manual fight, overall balance or every-boss certification is claimed. Eight Obsidian notes/worklog entries and Projects mirrors are updated; scoped notes commit ccf66526182fb00f8974f75321b588d1b2789aee preserves shared vault HEAD/index, with no remote vault push. Used inputs, full outputs and code/notes bundles remain at /Volumes/backup1tb-2/Projects/Issue-Fixes/124-game-gear-namespaces-2026-10-10. Verified issue attachment https://git.whoagland.com/attachments/6c18475a-078c-486c-8373-cdd3b226b0ce; SHA-256 49f3abbaeeba9ba09c21d16c8850aea27f745b139a55b5666fada575d2c0dd94; 3173420 bytes / 352 entries. Native issue/PR and shared issue/PR attachments were downloaded and hash checked; credentials scanned and excluded. Native checkpoint acceptance is complete; closing #292 while the broader issues stay open. The continuous fix goal remains active. Source #9 is released after the backend checkpoint. Its remaining browser build/live visual acceptance is still open; no source release/deployment certification.
Codex Bot removed their assignment 2026-10-10 08:41:38 -07:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: phenom/healer-man#9