VinPropane
c0252ee8be
NEO-151: Add contract issue POST and per-player contract GET HTTP API
...
Wire ContractIssueApi and ContractListApi with ListForPlayer store reads,
integration tests, Bruno issue/clear/GET spine, and docs reconciliation.
2026-06-28 10:21:10 -04:00
VinPropane
9994aee3cf
NEO-151: Add kickoff implementation plan for contract HTTP API
...
Document POST issue and GET list endpoints, store ListForPlayer read path,
and kickoff decision to return active plus up to 10 recent completed rows.
2026-06-28 10:13:39 -04:00
VinPropane
70e3e9a17d
NEO-150: Address code review findings
...
Extract ContractPrototypeTestFixtures, add skill XP over-cap test,
null-guard template, validation-order comment, and NEO-151 handoff note.
2026-06-28 10:01:08 -04:00
VinPropane
e3d8458a66
NEO-150: Add code review for economy validation at issue
2026-06-28 09:56:37 -04:00
VinPropane
d5de4e81ef
NEO-150: Document economy validation at issue and reconcile plan
...
Update server README, E7.M4 module doc, alignment register, and
implementation plan reconciliation for E7M4-07.
2026-06-28 09:20:10 -04:00
VinPropane
039542aa74
NEO-150: Add E7M4-07 economy validation kickoff plan
...
Document issue-time band-cap and cross-ref validation approach,
deny reason codes, file lists, and tests before implementation.
2026-06-28 09:10:59 -04:00
VinPropane
299de3c796
chore: address cleanup review follow-ups and Postgres test flake
...
Fix gig persistence integration flake with FakeTimeProvider on the Postgres
host, restore StringComparer.Ordinal on quest counter copies, remove the Bruno
docs block, and record resolved review items.
2026-06-27 23:24:18 -04:00
VinPropane
c5b8b7a726
NEO-149: re-review after code review follow-ups
2026-06-27 21:58:26 -04:00
VinPropane
68ba26724b
NEO-149: address code review follow-ups
...
Update E7.M4 alignment register, add quest-fixture contract reset
API test, align mark-complete deny codes with instance reason codes,
refactor idempotent replay test AAA, strike review findings done.
2026-06-27 21:51:17 -04:00
VinPropane
d1df940084
NEO-149: add code review for contract completion wiring
2026-06-27 21:50:13 -04:00
VinPropane
bcf6fd2641
NEO-149: wire contract completion on encounter clear
...
Add ContractCompletionOperations orchestrator (deliver-then-mark,
outcome audit), hook from EncounterCompletionOperations after E5.M3
loot and quest wiring, extend dev fixture reset for contract rows,
Bruno quest-fixture reset request, and cover with tests (904 green).
2026-06-27 21:48:17 -04:00
VinPropane
8d9d02fde5
NEO-149: add E7M4-06 implementation plan for contract completion wiring
...
Kickoff plan for ContractCompletionOperations orchestrator, encounter
hook after E5.M3 loot, and integration test coverage; Bruno HTTP loop
deferred to NEO-151.
2026-06-27 21:43:46 -04:00
VinPropane
7268935bc7
NEO-148: address code review doc follow-ups
...
Add E7.M4 alignment register entry, E7.M2 cross-ref, Postgres store-key
migration note, and defer contract fixture reset to NEO-149.
2026-06-27 21:24:12 -04:00
VinPropane
e75ac3932f
NEO-148: add code review for contract reward router
2026-06-27 19:59:31 -04:00
VinPropane
76ce1943c7
NEO-148: add contract completion reward router and delivery store extension
...
TryDeliverContractCompletion reuses the quest grant-apply path with
contract-specific idempotency keys and source-kind-aware delivery store rows.
2026-06-27 19:58:07 -04:00
VinPropane
b20d7d001e
NEO-148: add E7M4-05 implementation plan for contract reward router
2026-06-27 19:54:16 -04:00
VinPropane
c237bead53
NEO-147: guard DenyCreateFailure when create snapshot is null
2026-06-27 19:43:44 -04:00
VinPropane
fbb248770f
NEO-147: update decomposition tracking and strike review findings
2026-06-27 19:23:17 -04:00
VinPropane
be0525b152
NEO-147: add code review for contract generator TryIssue
2026-06-27 19:21:24 -04:00
VinPropane
60aa0be4f0
NEO-147: document generator operations and reconcile plan
2026-06-27 19:15:14 -04:00
VinPropane
e0efaa3c15
NEO-147: add E7M4-04 contract generator kickoff plan
2026-06-27 19:12:27 -04:00
VinPropane
1cf80a4e4e
NEO-146: fix stale active index race in TryGetActiveForPlayer
...
Read the active index under the player lock and remove stale entries
only when the indexed instance id still matches, preventing concurrent
get/complete/reissue from dropping a newer active pointer.
2026-06-24 21:21:02 -04:00
VinPropane
a64f7100a2
NEO-146: update plan reconciliation test count to 874
2026-06-24 21:13:44 -04:00
VinPropane
6c4221072a
NEO-146: fix in-memory create/complete lock ordering
...
Nest player and instance locks in TryCreateActive, TryMarkComplete, and
TryClearInstance so concurrent create and complete cannot leave a stale
active index or mismatched snapshot.
2026-06-24 21:05:56 -04:00
VinPropane
7740d2145f
NEO-146: address Bugbot findings on contract outcome stores
...
Ensure instance schema before outcome DDL, require matching player/instance
on Postgres append, catch unique violations on concurrent duplicates, and
add parity plus concurrency integration tests.
2026-06-24 20:58:17 -04:00
VinPropane
b087c03a47
NEO-146: address re-review in-memory outcome guard parity
...
InMemoryContractOutcomeStore checks IContractInstanceStore.TryGet before
append; add unit test, README/plan updates, and close r2 review items.
2026-06-24 20:52:49 -04:00
VinPropane
a9bc1acaa8
NEO-146: add re-review after cleanup and review follow-up
2026-06-24 20:51:04 -04:00
VinPropane
1922900477
NEO-146: address code review findings for contract stores
...
Add Postgres race/deny tests, duplicate instance id coverage, FK-safe
outcome append, MakeInstanceKey locking, decomposition alignment updates,
and strike-through review doc.
2026-06-24 20:37:16 -04:00
VinPropane
be53d80705
NEO-146: add code review for contract instance and outcome stores
2026-06-24 20:35:16 -04:00
VinPropane
ae641a4dd0
NEO-146: add contract instance and outcome stores with Postgres split
...
Durable per-player contract instances (one active) and append-only
outcome audit rows, mirroring NEO-116/135 store patterns with V011/V012
migrations, AAA tests, README docs, and Bruno health smoke.
2026-06-24 20:27:32 -04:00
VinPropane
82c45941ae
NEO-146: add E7M4-03 contract instance and outcome stores kickoff plan
2026-06-22 20:36:47 -04:00
VinPropane
56bc22c70d
NEO-145: address review findings — tests and decomposition docs.
...
Rename cross-ref unit test; add loader freeze-overflow and missing-schema
negatives; update E7.M4/CT.M1 alignment tables and strike through review.
2026-06-20 19:36:25 -04:00
VinPropane
1b904b594d
NEO-145: add code review for contract catalog load branch.
2026-06-20 19:34:37 -04:00
VinPropane
937412eda6
NEO-145: reconcile implementation plan with shipped catalog load.
2026-06-20 19:31:54 -04:00
VinPropane
215493f63b
NEO-145: add E7M4-02 contract catalog load implementation plan.
...
Kickoff plan for fail-fast server loader, IContractTemplateRegistry,
and CI-parity E7M4 gates following NEO-144 content landing.
2026-06-20 19:26:34 -04:00
VinPropane
9cfbf43936
NEO-144: reconcile plan and strike through review follow-ups
...
Document band-cap constant naming, NEO-145 C# port note, and mark review items done.
2026-06-20 19:22:02 -04:00
VinPropane
fe9b706092
NEO-144: add code review for contract catalog CI slice
2026-06-20 19:21:01 -04:00
VinPropane
2afd29e4d9
NEO-144: document contract catalog CI and reconcile plan
...
Update content README, module docs, alignment register, and backlog AC for E7M4-01 land.
2026-06-20 19:18:58 -04:00
VinPropane
c7a9e81067
NEO-144: align Epic 7 decomposition docs with E7M4 backlog
...
Update module status, freeze table, register, and Slice 4 DoD links for contract generator work.
2026-06-20 19:15:58 -04:00
VinPropane
4238038e11
NEO-144: add E7M4 Slice 4 pre-production backlog
...
Land NEO-144–NEO-154 story order, freeze table, and cross-link from E7M3 downstream.
2026-06-20 19:15:56 -04:00
VinPropane
53122f9f2a
NEO-144: add E7M4-01 contract catalog kickoff plan
...
Lock ContractTemplate schemas, CI gates, and file lists before server load in NEO-145.
2026-06-20 19:15:43 -04:00
VinPropane
24a70d3566
NEO-143: Add Slice 3 faction capstone manual QA and docs.
...
Ship NEO-143 capstone checklist extending NEO-132, client README
end-to-end faction loop section, cross-links, and E7.M3 Ready alignment.
2026-06-17 21:43:35 -04:00
VinPropane
0903bf00bd
NEO-143: Add Slice 3 faction capstone implementation plan.
...
Kickoff clarifications adopt docs-primary scope, NEO-132-extended
capstone path, and NEO-142 regression for gate deny verification.
2026-06-17 21:40:03 -04:00
VinPropane
ee918c5412
NEO-142: reconcile docs and close out code review findings
...
Check off AC in plan/backlog; update E7.M3 module + alignment register;
strike through addressed review suggestions and nits.
2026-06-17 21:16:17 -04:00
VinPropane
187ecc9c0d
NEO-142: add code review for faction standing HUD branch
2026-06-17 21:14:49 -04:00
VinPropane
84bd46635d
NEO-142: document faction HUD and manual QA checklist
...
Add client README section, NEO-142 manual QA steps, and plan reconciliation.
2026-06-17 21:10:36 -04:00
VinPropane
fb9a8ab8b2
NEO-142: add E7M3-10 client faction HUD implementation plan
...
Kickoff plan for Godot faction standing label, gate deny feedback, and
reputationGrants reward lines after NEO-139/140 server APIs landed.
2026-06-17 21:08:56 -04:00
VinPropane
b4d48f6e36
NEO-141: remove server-only manual QA doc after story end
...
Comment-only infrastructure story — acceptance fully covered by dotnet
test; align with NEO-140 and planning-implementation-docs skip rule.
2026-06-17 19:36:33 -04:00
VinPropane
0a4450a199
NEO-141: address review — backlog wording and class summary
...
Align E7M3-09 in-scope bullet with ops-only hook anchors; pluralize
FactionGateOperations telemetry remark; mark review findings done.
2026-06-17 19:27:27 -04:00
VinPropane
cbd8444da3
NEO-141: add code review for faction telemetry hook sites
2026-06-17 19:26:54 -04:00