VinPropane
56233bfe2c
NEO-50: Add E3.M3 prototype backlog and decomposition doc links.
...
Documents Epic 3 Slice 1 story order (NEO-50–NEO-56), frozen prototype item ids,
and register/module pointers for ItemizationAndInventorySchema.
2026-05-17 21:15:42 -04:00
VinPropane
1ad04f05cd
Merge pull request #83 from ViPro-Technologies/NEO-48-perk-state-get-branch-selection-post-bruno
...
NEO-48: perk state GET + branch selection POST + Bruno
2026-05-17 21:08:11 -04:00
VinPropane
00c5937872
NEO-48: revert WhenWritingNull on skill-progression grant API
...
Keep omit-null reasonCode only on new perk-state responses; restoring
the existing grant endpoint wire format (reasonCode: null on success).
2026-05-17 20:59:37 -04:00
VinPropane
12e52bccc9
NEO-48: fix in-memory TrySetSkillXpTotal zero on absent skill
...
Setting XP to 0 is a no-op success when no row exists, matching Postgres DELETE
semantics and TrySetSkillXpTotals behavior.
2026-05-17 20:46:55 -04:00
VinPropane
aa83790703
NEO-48: omit null reasonCode from success JSON responses
...
WhenWritingNull on PerkBranchSelectResponse and SkillProgressionGrantResponse
matches hotbar/cast/interaction; fixes Bruno tier1 undefined check.
2026-05-17 20:46:28 -04:00
VinPropane
e9c02eded7
NEO-48: mark review items resolved — Approve verdict
2026-05-17 20:38:02 -04:00
VinPropane
aba26446d3
NEO-48: address r2 review — atomic fixture, tests, docs
...
Batch skillXp then resetPerkState with XP rollback; 400 for invalid skillXp;
MasteryFixtureApi gate tests; README fixture vs grant semantics; Bruno GET playerId.
2026-05-17 20:37:00 -04:00
VinPropane
2bb02d76e9
NEO-48: add re-review for mastery fixture testing refactor
2026-05-17 20:34:36 -04:00
VinPropane
ffdbed26f2
NEO-48: dev mastery-fixture API for Bruno state setup
...
Replace fixture player ids with POST …/__dev/mastery-fixture (resetPerkState,
absolute skillXp). Bruno deny tests set state in pre-request on dev-local-1.
Gated to Development/Testing or Game:EnableMasteryFixtureApi.
2026-05-17 20:31:26 -04:00
VinPropane
b72201b1f0
NEO-48: Bruno fixture players for deterministic perk deny tests
...
Seed neo48-perk-fresh and neo48-perk-branch via Game:FixturePlayerIds;
level_too_low uses isolated fresh player, branch_already_chosen sets up
neo48-perk-branch in pre-request instead of skipping on shared state.
2026-05-17 20:26:21 -04:00
VinPropane
f4c3fe86e4
NEO-48: skip level_too_low Bruno when dev player already progressed
...
Pre-request checks salvage level and tier-1 pick; bru.skipRequest avoids
false failure after branch_already_chosen or skill-progression grants.
2026-05-17 20:23:42 -04:00
VinPropane
d5b65c94f6
NEO-48: fix Bruno pre-request baseUrl for branch_already_chosen
...
Use getEnvVar fallback and axios like other collection scripts; Invalid URL
when baseUrl was undefined in pre-request.
2026-05-17 20:22:22 -04:00
VinPropane
3ba8300652
NEO-48: address code review — Bruno deny, API deny tests
...
Add self-contained branch_already_chosen Bruno request, HTTP deny smoke
for unknown track/tier/branch and null-body 400, folder docs for level_too_low.
2026-05-17 20:21:42 -04:00
VinPropane
0838e661c9
NEO-48: add code review for perk-state HTTP
2026-05-17 20:16:46 -04:00
VinPropane
39c54c3881
NEO-48: perk-state HTTP, Bruno, tests, and docs
...
GET/POST /game/players/{id}/perk-state with versioned JSON, engine-backed
branch selection, PerkStateApiTests, Bruno collection, README, and E2.M3 alignment.
2026-05-17 20:10:31 -04:00
VinPropane
5290044845
NEO-48: add implementation plan for perk-state HTTP
...
Kickoff plan for GET/POST /game/players/{id}/perk-state, Bruno, and API
tests; records user choices on route path and unlockedEvents on success.
2026-05-17 20:06:52 -04:00
VinPropane
1c102af15e
Merge pull request #82 from ViPro-Technologies/NEO-49-perk-unlock-telemetry-hook-sites
...
NEO-49: perk_unlock telemetry hook sites
2026-05-17 19:28:45 -04:00
VinPropane
5058bc1963
NEO-49: address code review follow-ups for telemetry hooks
2026-05-17 19:21:21 -04:00
VinPropane
7ce9dc172c
NEO-49: add code review for perk_unlock telemetry hooks
2026-05-17 19:15:17 -04:00
VinPropane
38ef54c238
NEO-49: document perk_unlock hook sites in README, module, and manual QA
2026-05-17 19:10:14 -04:00
VinPropane
340dbbe60d
NEO-49: add comment-only perk_unlock telemetry hook in TryUnlockPerks
2026-05-17 19:10:12 -04:00
VinPropane
0d63965724
chore: gitignore VS Code C# Dev Tools auto-generated runners
2026-05-17 19:09:10 -04:00
VinPropane
f3e48f4077
NEO-49: kickoff implementation plan for perk_unlock telemetry hooks
2026-05-17 19:08:54 -04:00
VinPropane
01a02da923
Merge pull request #81 from ViPro-Technologies/NEO-47-perk-unlock-engine-perkstate-persistence
...
NEO-47: Perk unlock engine + PerkState persistence
2026-05-17 19:00:18 -04:00
VinPropane
76e710b491
NEO-47: re-review — follow-ups verified, approve for merge
2026-05-17 18:46:25 -04:00
VinPropane
0a2a6fe45b
NEO-47: address code review follow-ups for perk unlock engine
...
Retroactive path-auto unlock on branch pick, unlock rollback, CanWritePlayer
gate, expanded deny tests, gather-hook smoke, decomposition docs, review strikethroughs.
2026-05-17 18:45:11 -04:00
VinPropane
2520a80b6e
NEO-47: add code review for perk unlock engine
2026-05-17 18:42:28 -04:00
VinPropane
38774a5b39
NEO-47: perk unlock engine, PerkState persistence, and tests
...
Add V004 perk tables, in-memory/Postgres stores, PerkUnlockEngine (tier-1 branch
pick, path-auto tier-2 unlocks), level-up hook in skill XP grants, and AAA tests.
Bruno docs note internal perk reevaluation on level-up (HTTP in NEO-48).
2026-05-17 18:38:41 -04:00
VinPropane
e297b3a023
NEO-47: add implementation plan for perk unlock engine
...
Kickoff clarifications, tier-2 auto-path recommendation, and file/test lists for PerkState persistence and level-up hooks.
2026-05-17 18:34:50 -04:00
VinPropane
619146da85
Merge pull request #80 from ViPro-Technologies/NEO-46-mastery-catalog-startup-load
...
NEO-46: Server loads mastery catalog at startup (fail-fast)
2026-05-17 18:28:19 -04:00
VinPropane
28bafaf77d
chore: enforce commit-as-you-go via rule, AGENTS.md, and stop hook.
...
Add alwaysApply commit-as-you-go checklist, Critical git commits in AGENTS.md,
and a stop hook that follow-ups when NEO-* branches end with a dirty tree.
2026-05-17 18:22:46 -04:00
VinPropane
07fc566e2c
NEO-46: address code review follow-up.
...
Add loader deny-path and registry enumeration tests, tierIndex 1..N gate
in validate_content.py, E2.M3 handoff doc update, and review strikethroughs.
2026-05-17 18:12:39 -04:00
VinPropane
174c390aa4
NEO-46: fail-fast mastery catalog load at server startup.
...
Mirror validate_content.py gates in MasteryCatalogLoader, expose IMasteryCatalogRegistry, cross-check skillIds against the skill catalog, and enforce tierIndex 1..N per track.
2026-05-17 18:06:50 -04:00
VinPropane
898f935b4f
NEO-46: add implementation plan for mastery catalog boot load.
2026-05-17 18:03:30 -04:00
VinPropane
4ede4798d9
Merge pull request #79 from ViPro-Technologies/NEO-45-salvage-mastery-catalog-schemas-ci
...
NEO-45: Lock prototype salvage mastery catalog, schemas, and CI
2026-05-17 18:00:06 -04:00
VinPropane
594287c199
NEO-45: address docs review suggestions for E2.M3 Slice 4.
...
Expand data contract and NEO-46 handoff, gigs.md gig-mastery clarification,
acceptance footnote, and mark docs review items Done.
2026-05-17 13:16:49 -04:00
VinPropane
4a9730c577
NEO-45: address code review doc alignment and CI nits.
...
Align E2.M3 In Progress status, backlog checkboxes, perks map doc;
reject unreferenced PerkDef rows; tier-2 branch displayNames; review Done.
2026-05-16 20:05:51 -04:00
VinPropane
1f6fe86a1c
chore: require commit-as-you-go on story work in agent rules.
...
Override ambiguous global guidance; AGENTS.md, commit-and-review, and
git-workflow now tell agents to commit on the story branch without waiting
for an explicit "commit" request.
2026-05-16 20:02:08 -04:00
VinPropane
f5f04d8258
NEO-45: lock prototype salvage mastery catalog, schemas, and CI.
...
Add mastery JSON schema and salvage-only Slice 4 catalog with tier/branch
freeze; extend validate_content.py for skillId, perkId, and branch gates;
update E2.M3 decomposition, content README, and implementation plan.
2026-05-16 19:50:09 -04:00
VinPropane
d64c6baa0a
Merge pull request #78 from ViPro-Technologies/NEO-43-mission-quest-rewards-skill-xp
...
NEO-43: Mission reward skill XP prep (mission_reward grant hook)
2026-05-15 20:42:32 -04:00
VinPropane
0b16de6d6f
NEO-43: close code review doc follow-ups (alignment + E7 status)
2026-05-15 20:36:08 -04:00
VinPropane
2af9b1c011
NEO-43: mission reward skill XP grant helper and docs
2026-05-15 20:30:43 -04:00
VinPropane
48c59d4560
NEO-43: add implementation plan (kickoff)
2026-05-11 13:03:45 -04:00
VinPropane
66d4c7a3f2
Merge pull request #77 from ViPro-Technologies/NEO-42-craft-refine-skill-xp-activity
...
NEO-42: Craft / refine skill XP prep (RefineActivitySkillXpGrant + docs)
2026-05-10 19:54:38 -04:00
VinPropane
caa400f43d
NEO-42: address review — decomposition docs, plan AC, grant helper, test assert
2026-05-10 19:46:49 -04:00
VinPropane
15bf598228
NEO-42: add refine activity XP grant helper and tests
2026-05-10 19:38:30 -04:00
VinPropane
20a141ba37
NEO-42: add implementation plan for craft/refine skill XP
2026-05-10 19:36:04 -04:00
VinPropane
49f67ecf4c
Merge pull request #76 from ViPro-Technologies/chore/ci-bruno-dotnet-workflow
...
chore: Run Bruno server collection in .NET CI workflow
2026-05-10 19:31:00 -04:00
VinPropane
596b319493
chore: run Bruno server collection in .NET GitHub workflow
2026-05-10 19:27:25 -04:00
VinPropane
371d2d17cc
Merge pull request #75 from ViPro-Technologies/NEO-41-gather-loop-awards-skill-xp-activity
...
NEO-41: Award gather skill XP (activity source) on prototype resource_node interact
2026-05-10 19:25:36 -04:00