Commit Graph

1449 Commits (e783fa5441f68ca2f53d0764df8c1f1d21d948ab)

Author SHA1 Message Date
VinPropane e783fa5441 NEO-153: refresh faction standing on completion and show issue busy copy.
Match quest HUD completion refresh and accept-busy feedback for duplicate Shift+C presses.
2026-06-28 17:58:04 -04:00
VinPropane ad29b4e930 NEO-153: fix completion rewards when first GET is already completed.
Match quest HUD transition detection so issue-then-complete races still populate reward lines.
2026-06-28 17:48:59 -04:00
VinPropane 8289f2076d NEO-153: gdformat contract_client and test merge helper. 2026-06-28 17:45:21 -04:00
VinPropane b9ffd7553b NEO-153: fix gdlint pre-push for contract HUD wiring.
Extract contract HUD main wiring, dedupe deny copy, trim main.gd, and add wiring tests.
2026-06-28 17:44:59 -04:00
VinPropane 6a48315ba5 NEO-153: fix stale issue patch merge and address review findings.
Clear _issue_contract_patch when GET includes the instance row (NEO-122
precedent); wire faction_standing_received for reward re-paint; add regression
test; update E7M4 decomposition docs and review strikethroughs.
2026-06-28 14:56:12 -04:00
VinPropane 051aae695b NEO-153: add code review for contract HUD client slice. 2026-06-28 14:51:03 -04:00
VinPropane 365e57799a NEO-153: add contract issue + progress HUD in Godot client.
Shift+C issues prototype contract via contract_client; contract_hud_controller
shows encounter objective, deny copy, and completion reward transition.
Includes scene wiring, GdUnit tests, manual QA, and README.
2026-06-28 13:49:14 -04:00
VinPropane 7deb10bf21 NEO-153: use CompareOrdinal in contract instance sort tie-break.
Fixes Roslynator RCS1235 on redundant string.Compare overload.
2026-06-28 13:47:43 -04:00
VinPropane fea992833b chore: enforce warnings-as-errors and dotnet format in CI/hooks.
Add .editorconfig (IDE0005/CS8019), Directory.Build.props
(TreatWarningsAsErrors), scripts/verify-dotnet-format.sh, pre-commit
gate on server .cs changes, and CI format step before build.
2026-06-28 13:34:16 -04:00
VinPropane b76fc60c09 NEO-153: remove redundant Skills/Encounters usings in contract tests.
CS8019 hints came from per-file imports duplicating GlobalUsings.cs
(NeonSprawl.Server.Game.Skills) and unused Encounters in ContractApiTests.
2026-06-28 13:20:30 -04:00
VinPropane 9d756c259b NEO-153: kickoff implementation plan for contract HUD client slice.
Documents E7M4-10 scope, adopted kickoff decisions (separate contract_hud_controller,
fixed prototype_contract_dev_seed), file lists, and test plan ahead of Godot work.
2026-06-28 13:17:20 -04:00
VinPropane fe0d23b01c
Merge pull request #194 from ViPro-Technologies/NEO-152-e7m4-09-contract-telemetry-hook-sites-comment-only
NEO-152: Contract telemetry hook sites (comment-only)
2026-06-28 12:53:58 -04:00
VinPropane d96a83b6ef NEO-152: Address code review doc and alignment register nits.
Add NEO-152 plan link to alignment footer; reconcile plan with
method-level CompensatingRevertAll anchor; strike review suggestions.
2026-06-28 12:46:32 -04:00
VinPropane f665841ba2 NEO-152: Add code review for contract telemetry hook sites. 2026-06-28 12:39:25 -04:00
VinPropane 0d089a6dff NEO-152: Add comment-only contract telemetry hook sites.
Anchor contract_issued, contract_complete, and reward_anomaly
for E9.M1; document hooks in server README and module docs.
2026-06-28 12:08:05 -04:00
VinPropane 6e5ea78cc8 NEO-152: Add kickoff implementation plan for contract telemetry hooks.
Document comment-only E9.M1 anchor sites for contract_issued,
contract_complete, and reward_anomaly per E7M4-09 backlog scope.
2026-06-28 11:27:51 -04:00
VinPropane 060040e87a
Merge pull request #193 from ViPro-Technologies/NEO-151-e7m4-08-contract-issue-post-per-player-contract-get
NEO-151: Contract issue POST + per-player contract GET
2026-06-28 11:24:44 -04:00
VinPropane d6ebc767e6 NEO-151: Fix Postgres ListForPlayer read race with single CTE query
Bugbot: active and completed rows now load in one statement snapshot so
GET /contracts cannot return the same instance twice after completion.
2026-06-28 11:17:21 -04:00
VinPropane 50df06a3f9 NEO-151: Fix Bruno helper path for collection-root scripts resolution
Move reset-contract-instances-helper.js to neon-sprawl-server/scripts/
and fix encounter-clear bru requires so CI can resolve modules.
2026-06-28 11:16:13 -04:00
VinPropane 5f2ab34fa2 NEO-151: Loop contract reset helper until capped GET is empty
Bugbot: Bruno pre-request cleanup now clears all contract instances,
not just the first active + 10 completed page from GET /contracts.
2026-06-28 11:07:47 -04:00
VinPropane 0888262f13 NEO-151: Address code review findings for contract HTTP API
Return 404 for whitespace path on issue POST, add seed-field validation
tests, inline Postgres ListForPlayer active query, Postgres list test,
Bruno whitespace-path 404 check, and strike through resolved review items.
2026-06-28 10:25:58 -04:00
VinPropane f6ef0a6227 NEO-151: Add code review for contract issue and list HTTP API 2026-06-28 10:23:31 -04:00
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 e0d0be65c6
Merge pull request #192 from ViPro-Technologies/NEO-150-e7m4-07-economy-validation-lint-at-issue-time
NEO-150: E7M4-07 economy validation lint at issue time
2026-06-28 10:07:33 -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 3d49230c3c NEO-150: Add issue-time contract economy validation
Introduce ContractEconomyValidation.TryValidateTemplate and wire it
into TryIssue before persist with economy_cap_exceeded and
invalid_reward_bundle deny codes.
2026-06-28 09:20:09 -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 177b316efa
Merge pull request #191 from ViPro-Technologies/chore/cleanup
chore: server and test analyzer cleanup
2026-06-27 23:32:04 -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 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 2cf8bcd0b9
Merge pull request #190 from ViPro-Technologies/NEO-149-e7m4-06-contract-completion-encounter-wiring
NEO-149: E7M4-06 contract completion on encounter clear
2026-06-27 22:05:41 -04:00
VinPropane c5b8b7a726 NEO-149: re-review after code review follow-ups 2026-06-27 21:58:26 -04:00
VinPropane eb6a4fedde NEO-149: fix CraftResult and craft API analyzer warnings
Move CraftResult param docs to primary-constructor summaries (RCS1263),
use CraftIoAppliedJson[] return and collection expression in MapIoRows,
prefer is true for debug log guard (CDT1001), and add MapResponse deny test.
2026-06-27 21:56:52 -04:00
VinPropane 6f735f8643 NEO-149: fix analyzer warnings in encounter wiring
RCS1123 parentheses in quest wiring test, CA1873 guarded LogDebug,
CA1859 List parameter for CompensatingRemoveGrants.
2026-06-27 21:52:13 -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 36ffec94e9
Merge pull request #189 from ViPro-Technologies/NEO-148-e7m4-05-reward-router-contract-completion
NEO-148: E7M4-05 contract completion reward router
2026-06-27 21:41:26 -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 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