VinPropane
deed0c4314
NEO-56: address code review follow-ups
...
Extend E3.M3 dependency register footnote; expand post-mutation deny hook
comments; clarify Deny payload at call sites; strike review items Done.
2026-05-24 13:40:12 -04:00
VinPropane
dc5141ed03
NEO-56: add inventory telemetry hook comment sites
...
item_created on successful TryAddStack; inventory_transfer_denied on
all Denied paths. README, module docs, manual QA, plan ACs updated.
2026-05-24 13:32:21 -04:00
VinPropane
69327f50b4
NEO-55: player inventory GET/POST HTTP, Bruno, and docs
...
Versioned snapshot read and mutationKind add/remove POST backed by
PlayerInventoryOperations; AAA API tests; Bruno happy path + deny case.
2026-05-23 22:45:27 -04:00
VinPropane
126d979939
NEO-54: dedupe slot cloning on PlayerInventorySnapshot
2026-05-23 19:54:27 -04:00
VinPropane
3f664261b7
NEO-54: preserve validation reason codes when player store missing
...
Deny helper returns Denied + reasonCode even without a snapshot bucket,
so invalid_quantity/invalid_item are stable before NEO-55 HTTP mapping.
2026-05-23 19:44:07 -04:00
VinPropane
dafe3cb92f
NEO-54: fix in-memory inventory races with atomic TryMutateSnapshot
...
Re-read snapshot under per-player lock; route add/remove through
TryMutateSnapshot so read-modify-write is serialized for in-memory
and wrapped in one transaction for Postgres.
2026-05-23 19:42:50 -04:00
VinPropane
ac3900c194
NEO-54: address code review suggestions for inventory tests and docs
2026-05-23 19:31:26 -04:00
VinPropane
01e391b03a
NEO-54: player inventory store, stack/slot rules engine, and tests
2026-05-23 19:26:57 -04:00
VinPropane
08428c4da4
NEO-53: GET world item-definitions, Bruno, docs, and tests
...
Registry-backed read model at /game/world/item-definitions; Bruno
collection, manual QA checklist, README and module alignment updates.
2026-05-23 19:09:46 -04:00
VinPropane
792b38d8a9
NEO-52: add IItemDefinitionRegistry with DI and lookup tests
...
Thin adapter over ItemDefinitionCatalog mirroring NEO-35 skill registry;
registers singleton in AddItemDefinitionCatalog with TryGetDefinition,
GetDefinitionsInIdOrder, and AAA unit + host DI tests.
2026-05-23 18:11:33 -04:00
VinPropane
c2366eed4c
NEO-51: Guard item catalog startup log for CA1873.
...
Skip LogInformation argument evaluation when Information is disabled.
2026-05-17 22:00:27 -04:00
VinPropane
0a3c28ae5c
NEO-51: Primary constructor on ItemDefinitionCatalog; test tidy.
...
Restore explicit Content:ItemsDirectory in test factory; use const
for schema-violation fixture JSON.
2026-05-17 21:58:53 -04:00
VinPropane
2ba129dca1
NEO-51: Fail-fast item catalog load at server startup.
...
Mirror NEO-34/validate_content.py: *_items.json schema validation,
Slice 1 gate, ItemDefinitionCatalog DI, loader/host tests, Bruno health smoke.
2026-05-17 21:56:09 -04:00