VinPropane
b233fa040d
chore: analyzer cleanup for server and tests
...
Apply Roslyn/dotnet-format fixes across NeonSprawl.Server and
NeonSprawl.Server.Tests: collection expressions, concrete helper
return types, record XML docs, logging guards, quest store refactors,
and removal of redundant usings via GlobalUsings.cs. Extend
csharp-style.md with the recurring patterns.
2026-06-27 22:55:50 -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
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
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
73403622f2
NEO-141: consolidate faction telemetry hook comment sites
...
Complete reputation_delta anchor in ReputationOperations, extend
faction_gate_blocked on both gate deny paths, remove router duplicate
stub, and add README Faction telemetry hooks subsection.
2026-06-17 19:25:25 -04:00
VinPropane
3f08812e93
NEO-139: add GET faction-standing snapshot API with tests and Bruno.
...
Expose client-readable standing for all catalog factions; 404 unknown players via position gate; Bruno asserts +15 after operator chain.
2026-06-16 17:19:50 -04:00
VinPropane
6999eb3303
NEO-138: clear delivery and audit on quest fixture reset.
...
resetQuestIds now clears IRewardDeliveryStore rows and quest-completion
audit deltas so Bruno re-runs re-apply rep grants after standing reset.
2026-06-15 23:10:58 -04:00
VinPropane
4ee29e867b
NEO-138: quest-fixture resetFactionIds for gate deny Bruno.
...
Clear prototype faction standing in seq 10 pre-request so stale +15 from
prior seq 11 runs does not pass the grid contract gate locally.
2026-06-15 23:00:21 -04:00
VinPropane
0241cc31e3
NEO-137: Wire FactionGateOperations into quest accept with tests and docs.
...
Evaluate FactionGateRule rows before TryActivate; deny with faction_gate_blocked
when standing is below minStanding. Integration and Bruno deny smoke included.
2026-06-15 21:11:27 -04:00
VinPropane
ddaf33ce87
NEO-136: fix rollback applied delta and normalize ids at ops boundary
2026-06-15 20:52:04 -04:00
VinPropane
8aae9625e7
NEO-136: add ReputationOperations auditable standing apply
2026-06-15 20:48:42 -04:00
VinPropane
94acf57e5b
NEO-135: apply standing deltas from clamped effective value
...
Compute newStanding from previousStanding + deltaAmount so stale
out-of-band persisted values match TryGetStanding before mutation.
2026-06-15 20:35:24 -04:00
VinPropane
2ac804ed6c
NEO-135: validate faction before player gate in in-memory store
...
Match PostgresFactionStandingStore check order so unknown faction ids
return unknown_faction even when the player is not writable.
2026-06-15 20:32:53 -04:00
VinPropane
d5f16f4cf4
NEO-135: address code review findings
...
Update decomposition docs for E7M3-03, add in-memory read-clamp test via
test seed hook, fix empty factionId deny code, AAA integration test,
Postgres FK orchestration notes, and strike review suggestions Done.
2026-06-15 20:27:36 -04:00
VinPropane
4fca45bf7c
NEO-135: add faction standing and reputation delta audit stores
...
Per-player IFactionStandingStore with clamped reads/writes and fail-closed
unknown-faction deny; append-only IReputationDeltaStore; in-memory plus
Postgres V009/V010 when configured. Tests, Bruno health smoke, README.
2026-06-15 20:23:57 -04:00
VinPropane
aa3eb3597c
NEO-134: address code review findings
...
Update decomposition tracking docs, add faction loader integration tests,
reorder standing-band gate before freeze, and guard success logging.
2026-06-15 20:11:55 -04:00
VinPropane
48bca98467
NEO-134: fail-fast faction catalog load with E7M3 quest gates
...
Add Game/Factions loader, registry, and CI-parity prototype rules; extend
quest catalog to parse faction gates/rep grants and cross-check at startup.
2026-06-15 20:08:46 -04:00