VinPropane
4734df1bbc
Merge pull request #95 from ViPro-Technologies/NEO-60-e3m1-get-world-resource-node-definitions-bruno
...
NEO-60: GET world resource-node-definitions + Bruno
2026-05-24 14:58:07 -04:00
VinPropane
2b66df86b8
NEO-60: address code review — register footnote and Bruno comment
...
Extend E3.M1 dependency register note with NEO-57–NEO-60 landed slices;
add StringComparer.Ordinal comment to Bruno ordinal test for parity.
2026-05-24 14:49:15 -04:00
VinPropane
b60920b2e2
NEO-60: add code review document
2026-05-24 14:48:16 -04:00
VinPropane
97f8f31682
NEO-60: add GET /game/world/resource-node-definitions endpoint
...
Versioned read-only projection backed by IResourceNodeDefinitionRegistry
with nested yield DTOs, integration test, Bruno, manual QA, and docs.
2026-05-24 14:47:23 -04:00
VinPropane
78dbf1c454
NEO-60: add implementation plan for resource-node-definitions GET
...
Kickoff plan mirrors NEO-53 item-definitions pattern with nested yield
projection, Bruno, manual QA, and integration tests on IResourceNodeDefinitionRegistry.
2026-05-24 14:44:04 -04:00
VinPropane
878454e3ed
Merge pull request #94 from ViPro-Technologies/NEO-59-e3m1-resource-node-definition-registry-di
...
NEO-59: E3.M1 resource-node definition registry + DI
2026-05-24 14:41:20 -04:00
VinPropane
1e1ca5519c
NEO-59: address code review follow-ups
...
Simplify GetDefinitionsInIdOrder to iterate key-value pairs directly,
avoiding the intermediate sorted-keys array and second dictionary lookup.
2026-05-24 14:31:20 -04:00
VinPropane
dc66b5cef4
NEO-59: add code review document
2026-05-24 14:29:46 -04:00
VinPropane
01dec2b6c8
NEO-59: document registry in README, alignment, and backlog
...
Mark acceptance criteria complete in the implementation plan.
2026-05-24 14:26:23 -04:00
VinPropane
bd43951f80
NEO-59: add IResourceNodeDefinitionRegistry and DI adapter
...
Thin registry over ResourceNodeCatalog with node/yield lookup,
enumeration, and AAA unit + host DI tests mirroring NEO-52.
2026-05-24 14:26:23 -04:00
VinPropane
4921f2c25b
NEO-59: add implementation plan for resource node registry + DI
2026-05-24 14:23:55 -04:00
VinPropane
6748a848af
Merge pull request #93 from ViPro-Technologies/NEO-58-e3m1-server-resource-node-catalog-load-fail-fast
...
NEO-58: E3.M1 server resource-node catalog load (fail-fast)
2026-05-24 14:18:40 -04:00
VinPropane
44fc8d7b62
NEO-58: address code review follow-ups
...
Document optional Bruno smoke in plan; add empty-catalog file loader tests;
tighten host DI test AAA; strike through resolved review items.
2026-05-24 14:04:42 -04:00
VinPropane
6656853473
NEO-58: add code review for resource-node catalog load
2026-05-24 14:03:19 -04:00
VinPropane
fdaf5b7231
NEO-58: note NEO-57 merged and branch rebased on main
...
Update plan after PR #92 ; precursor content is on main.
2026-05-24 14:01:36 -04:00
VinPropane
0384b63046
NEO-58: add fail-fast resource-node catalog load at startup
...
Loader, Slice 2 gates, DI registration, AAA tests, README and plan updates.
Cross-checks yield itemIds against ItemDefinitionCatalog loaded first.
2026-05-24 14:01:29 -04:00
VinPropane
2de699b7bd
NEO-58: add implementation plan for resource-node catalog load
...
Kickoff plan for E3M1-02: fail-fast server loader mirroring NEO-51/NEO-57,
stacked on NEO-57, catalog-only DI until NEO-59 registry story.
2026-05-24 14:01:29 -04:00
VinPropane
8c1e0552b3
Merge pull request #92 from ViPro-Technologies/NEO-57-e3m1-prototype-resourcenodedef-yield-schemas-ci
...
NEO-57: E3.M1 prototype ResourceNodeDef + yield tables + schemas + CI
2026-05-24 14:01:09 -04:00
VinPropane
fba6bff24f
NEO-57: align E3.M1 contract table with two-file content layout
...
Update illustrative fields to match landed node + yield row schemas.
2026-05-24 13:54:42 -04:00
VinPropane
f0a4183598
NEO-57: close review follow-ups on E3M1 backlog and review doc
...
Clarify two-file yield layout in backlog; mark review suggestions
resolved and verdict Approve.
2026-05-24 13:54:36 -04:00
VinPropane
ca1a15fce1
NEO-57: align E3M1 backlog with landed content + review follow-ups
...
Mark E3M1-01 acceptance complete, document resource-yield-row schema
choice, and strike through resolved review suggestions.
2026-05-24 13:53:25 -04:00
VinPropane
2584947953
NEO-57: add code review for resource node content + CI
2026-05-24 13:53:04 -04:00
VinPropane
b68d74b0b8
NEO-57: add prototype resource node catalogs, schemas, and CI gates
...
Four frozen ResourceNodeDef rows and per-node yield tables under
content/resource-nodes/ with JSON Schema validation and Slice 2 gates
(four nodeDefIds, gatherLens coverage, scrap_metal_bulk yields only).
2026-05-24 13:49:47 -04:00
VinPropane
b7f29dcd6a
NEO-57: add implementation plan for resource node content + CI
...
Kickoff clarifications: two-file catalog layout, maxGathers in content,
differentiated yield quantities, decomposition docs merged from chore branch.
2026-05-24 13:47:55 -04:00
VinPropane
17daf9a9ca
NEO-57: merge E3.M1 Slice 2 decomposition docs
...
Bring E3M1-prototype-backlog, E3.M1 freeze table, and register notes
from chore/e3m1-slice2-decomposition onto the story branch.
2026-05-24 13:47:55 -04:00
VinPropane
597c3873d4
Merge pull request #91 from ViPro-Technologies/NEO-56-item-created-transfer-failure-telemetry-hooks
...
NEO-56: E3.M3 item_created / inventory_transfer_denied telemetry hook sites
2026-05-24 13:45:19 -04:00
VinPropane
011289a154
chore: decompose E3.M1 Slice 2 gather backlog (NEO-57–64)
...
Epic 3 Slice 2 follows completed E3.M3 inventory work: eight-story
backlog, expanded module doc, register note, and Linear issues for
resource nodes, yields, depletion, and gather integration.
2026-05-24 13:43:23 -04:00
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
b8e0cce582
NEO-56: add code review for inventory telemetry hook sites
2026-05-24 13:33:39 -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
786513ba56
NEO-56: add implementation plan after kickoff clarifications
...
Engine-only comment hooks for item_created and inventory_transfer_denied;
kickoff decisions recorded in plan.
2026-05-24 13:31:18 -04:00
VinPropane
3d43b00fa9
chore: harden kickoff AskQuestion + recommendation rule
...
Require Recommend preamble in chat before AskQuestion, mark recommended
options in labels, and call out AskQuestion-only turns as violations.
2026-05-24 13:30:20 -04:00
VinPropane
9c35ad1e08
Merge pull request #90 from ViPro-Technologies/NEO-55-player-inventory-getpost-bruno
...
NEO-55: Player inventory GET/POST HTTP + Bruno
2026-05-23 23:08:25 -04:00
VinPropane
b8ee4b55ee
NEO-55: fix Bruno local module resolution for inventory helper
...
Move helper to scripts/ and whitelist via bruno.json
additionalContextRoots so pre-request require() works in Bruno.
2026-05-23 22:59:58 -04:00
VinPropane
1cbe6302b5
NEO-55: make inventory Bruno tests order-independent
...
Shared inventory-api-helper seeds stock and records baselines in
pre-request scripts; assertions use exact deltas instead of cumulative
at.least checks. Harden C# remove round-trip add assertion.
2026-05-23 22:57:53 -04:00
VinPropane
00ada50b95
NEO-55: fix Bruno GET inventory test for persistent dev player state
...
Assert slot shape rules instead of requiring an all-empty grid when
dev-local-1 already holds items from prior collection runs.
2026-05-23 22:53:50 -04:00
VinPropane
fddbb95a45
NEO-55: address code review suggestions for inventory HTTP
...
Add remove round-trip and invalid_quantity API tests, Bruno remove request,
dependency register NEO-55 footnote, and strike-through review follow-ups.
2026-05-23 22:51:59 -04:00
VinPropane
d127de7bbb
NEO-55: add code review for inventory GET/POST HTTP and Bruno.
2026-05-23 22:49:31 -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
db3b80d242
NEO-55: add implementation plan for inventory GET/POST + Bruno
...
Kickoff clarifications: single POST with mutationKind, full fixed slot
arrays, applied response field; no manual QA doc per user choice.
2026-05-23 22:41:05 -04:00
VinPropane
658b627903
Merge pull request #89 from ViPro-Technologies/NEO-54-player-inventory-store-stackslot-rules
...
NEO-54: Player inventory store + stack/slot rules engine
2026-05-23 22:35:42 -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
362608ed5f
NEO-54: add code review for inventory store and rules engine.
2026-05-23 19:29:37 -04:00
VinPropane
3724a54f07
NEO-54: note inventory DI chained from item catalog registration
2026-05-23 19:27:06 -04:00
VinPropane
01e391b03a
NEO-54: player inventory store, stack/slot rules engine, and tests
2026-05-23 19:26:57 -04:00
VinPropane
e5ffa1b951
NEO-54: add implementation plan for inventory store and rules engine
2026-05-23 19:20:01 -04:00
VinPropane
97a64d179c
Merge pull request #88 from ViPro-Technologies/NEO-53-get-world-item-definitions-bruno
...
NEO-53: GET world item-definitions + Bruno
2026-05-23 19:16:19 -04:00