Commit Graph

1406 Commits (e75ac3932f07cb59da00271acf01fb1d6ef45beb)

Author SHA1 Message Date
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 52ab7dbec2
Merge pull request #188 from ViPro-Technologies/NEO-147-e7m4-04-contract-generator-try-issue
NEO-147: E7M4-04 contract generator TryIssue
2026-06-27 19:50:36 -04:00
VinPropane c237bead53 NEO-147: guard DenyCreateFailure when create snapshot is null 2026-06-27 19:43:44 -04:00
VinPropane 81f4cde673 chore: remove redundant test namespace using in gate tests 2026-06-27 19:40:13 -04:00
VinPropane 58a188eac0 chore: dedupe faction id constants in gate operation tests 2026-06-27 19:30:28 -04:00
VinPropane 39805ef8e6 chore: fix QuestDefinitionCatalogLoader analyzer warnings 2026-06-27 19:26:52 -04:00
VinPropane fbb248770f NEO-147: update decomposition tracking and strike review findings 2026-06-27 19:23:17 -04:00
VinPropane 3549b647a5 NEO-147: add standing and duplicate-seed review follow-up tests 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 c37c3c76a3 NEO-147: use class-level grid faction id in generator tests 2026-06-27 19:18:23 -04:00
VinPropane 44f4e4c3ce NEO-147: mark faction id locals const in generator tests 2026-06-27 19:15:43 -04:00
VinPropane 60aa0be4f0 NEO-147: document generator operations and reconcile plan 2026-06-27 19:15:14 -04:00
VinPropane 87a0eb25ec NEO-147: add contract generator unit and integration tests 2026-06-27 19:15:14 -04:00
VinPropane 7f62f43f92 NEO-147: add ContractGeneratorOperations.TryIssue orchestrator 2026-06-27 19:15:11 -04:00
VinPropane e0efaa3c15 NEO-147: add E7M4-04 contract generator kickoff plan 2026-06-27 19:12:27 -04:00
VinPropane 29bc2423b5
Merge pull request #187 from ViPro-Technologies/NEO-146-e7m4-03-contract-instance-outcome-stores
NEO-146: E7M4-03 contract instance and outcome stores
2026-06-24 21:27:51 -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 93bd45d49a NEO-146: fix in-memory outcome idempotency race and clear parity
Lock idempotency keys alongside row ids in TryAppend so concurrent
duplicate keys cannot both succeed; return true from TryClearInstance
when the row is absent to match Postgres idempotent DELETE behavior.
2026-06-24 21:13:42 -04:00
VinPropane 237e39c8ca NEO-146: simplify using declarations in outcome persistence tests
Apply IDE0063 where braced scopes have no name clashes with later blocks.
2026-06-24 21:11:53 -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 01e82f38f6 NEO-146: fix record struct docs and collection spread in tests
Replace param XML on record struct mutation outcomes with summary cref
docs to avoid Roslynator RCS1263 false positives; apply IDE0305 in
RewardRouterOperationsTests and update style guide guidance.
2026-06-24 20:47:40 -04:00
VinPropane a4f37db594 NEO-146: restore test layout section in csharp-style guide
Fix IDE0270 section that accidentally overwrote the test project layout heading.
2026-06-24 20:46:27 -04:00
VinPropane b519f4e9eb NEO-146: fix mutation outcome docs and null-check style
Add summary and Kind param XML docs on mutation outcome records, simplify
PostgresDockerHelper null guard with ?? throw, and document RCS1139/IDE0270.
2026-06-24 20:46:23 -04:00
VinPropane b6b0b87534 NEO-146: fix remaining C# analyzer style warnings
Apply using simplification, inline declarations, const locals, and
Lock in PostgresDockerHelper; document RCS1118 and IDE0018 in style guide.
2026-06-24 20:44:30 -04:00
VinPropane e0877fea7f NEO-146: use collection spread in EncounterProgressApi
Apply IDE0305 to defeated-target ordering, assert stable sort in API
tests, and document sorted defeatedTargetIds in Bruno.
2026-06-24 20:41:40 -04:00
VinPropane b455ff5ad5 NEO-146: apply C# collection and using style fixes
Replace .ToArray() with collection spread, simplify single-statement
await using blocks, use Lock for Postgres schema gates, and document
IDE0063/IDE0305/IDE0330/CA1859 conventions in csharp-style.md.
2026-06-24 20:41:25 -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 f18309809a
Merge pull request #186 from ViPro-Technologies/chore/neo-145-contract-catalog-analyzer-warnings
chore: fix contract catalog analyzer warnings
2026-06-20 19:53:37 -04:00
VinPropane 93fd8864dc chore: fix contract catalog analyzer warnings.
Primary constructor on ContractTemplateCatalog; concrete List return
types in loader parse helpers; collection spread in NormalizeBundle;
const emptyCatalog in roster gate test.
2026-06-20 19:46:39 -04:00
VinPropane e3988874d2
Merge pull request #185 from ViPro-Technologies/NEO-145-e7m4-02-server-contract-template-catalog-load-fail-fast
NEO-145: E7M4-02 server contract template catalog load (fail-fast)
2026-06-20 19:43:56 -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 5ab5022704 NEO-145: add fail-fast contract template catalog load and registry.
Startup loader mirrors validate_content.py E7M4 gates (roster, freeze,
cross-ref, band caps); IContractTemplateRegistry resolves templates by id.
Bruno health smoke confirms host boot after catalog validation.
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 b5a0f71bca
Merge pull request #184 from ViPro-Technologies/NEO-144-e7m4-01-contracttemplate-catalog-schemas-ci
NEO-144: E7M4-01 contract template catalog, schemas, and CI
2026-06-20 19:23:42 -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 f7a014fe69 NEO-144: address review findings in contract CI gates
Use E7M3 bundle normalization for rep grants, smoke-test contract-seed schema,
and apply cross-ref/band-cap checks to all loaded template rows.
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 7ecc8746f5 NEO-144: validate contract templates in content CI
Add roster, freeze, cross-ref, and band-1 economy cap gates for E7M4 prototype templates.
2026-06-20 19:18:58 -04:00