Commit Graph

154 Commits (caa400f43d4432e403a95433f08eca825b7eb557)

Author SHA1 Message Date
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 29a6c6d1a7 NEO-41: address code review (E3.M1 status, deny-path test) 2026-05-10 19:13:56 -04:00
VinPropane c1e77280e3 NEO-41: grant salvage activity XP on resource_node interact 2026-05-10 19:10:35 -04:00
VinPropane 650767f16c NEO-41: add implementation plan for gather interact skill XP 2026-05-10 19:06:45 -04:00
VinPropane effd234ee3 NEO-40: add progression telemetry hook comment sites 2026-05-10 18:49:40 -04:00
VinPropane 178ff2b625 NEO-40: add implementation plan for telemetry hook sites 2026-05-10 18:48:18 -04:00
VinPropane 236040a5c2 NEO-39: add data-driven level curve with startup schema validation
Replace placeholder XP level math with content-backed thresholds validated in CI and at server boot, and update docs/manual QA/review artifacts to reflect NEO-39 delivery and follow-up fixes.
2026-05-06 23:10:06 -04:00
VinPropane 33b2e917e4 NEO-38: skill XP POST grant, persistence, level-up response 2026-05-06 22:17:02 -04:00
VinPropane 58b9016d40 NEO-38: add implementation plan for skill XP grant and level-up 2026-05-06 22:11:16 -04:00
VinPropane a3cbef063c NEO-37: treat skill progression JSON array order as non-contractual 2026-05-06 21:53:24 -04:00
VinPropane 295eb34c68 NEO-37: reconcile decomposition docs + review feedback 2026-05-06 21:51:44 -04:00
VinPropane 9cd96a72c3 NEO-37: add skill progression snapshot GET API, tests, Bruno, docs 2026-05-06 21:48:17 -04:00
VinPropane 413484000f NEO-37: add implementation plan for skill progression snapshot API 2026-05-06 21:46:41 -04:00
VinPropane 15ab06f3e7 docs: note canonical GitHub org for Linear and doc links 2026-05-04 21:24:25 -04:00
VinPropane e2e413f42c docs: address 2026-04-30 documentation review suggestions 2026-05-04 21:09:05 -04:00
VinPropane ab597ff350 NEO-36: expose GET /game/world/skill-definitions with tests, Bruno, QA doc 2026-05-04 20:36:06 -04:00
VinPropane 044b4f823c NEO-36: add implementation plan for skill catalog HTTP API 2026-05-04 20:33:53 -04:00
VinPropane fb863a457b NEO-35: add ISkillDefinitionRegistry and lookup tests 2026-05-04 19:50:49 -04:00
VinPropane c2ca511a35 NEO-35: add implementation plan for skill definition registry 2026-05-04 19:48:34 -04:00
VinPropane 9da5e7dbf5 NEO-34: address code review follow-ups (docs, appsettings, AAA)
Update E2.M1 alignment table for landed catalog load; add Content placeholders
to appsettings.json; align implementation plan tests/appsettings notes; expand
manual QA header to project standard; strike review suggestions; tighten host
catalog test Arrange/Act/Assert.
2026-05-02 19:50:02 -04:00
VinPropane 1a9088c77c NEO-34: fail-fast skill catalog load at server startup
Register SkillDefinitionCatalog from content/skills with JsonSchema.Net validation
mirroring validate_content.py and the prototype Slice 1 gate. Resolve paths via
Content:SkillsDirectory or discovery from AppContext.BaseDirectory. Eager-load
after WebApplication build so bad catalogs block startup. Add unit and host
tests, pin test factories to repo skills, document config in server/README, add
manual QA checklist, and extend Bruno GET /health smoke tests.
2026-05-02 19:44:10 -04:00
VinPropane 6344858541 NEO-34: add implementation plan for skill catalog startup load 2026-05-02 19:35:57 -04:00
VinPropane 583201cc7c NEO-33: Freeze prototype SkillDef trio in CI and docs 2026-05-02 19:23:47 -04:00
VinPropane 66150ea224 NEO-33: Add implementation plan after kickoff clarifications 2026-05-02 19:21:20 -04:00
VinPropane 361a6800d2 NEO-32: cooldown snapshot API, on_cooldown deny, client HUD sync 2026-04-30 21:19:32 -04:00
VinPropane b4b67bccfd NEO-32: add implementation plan for cooldown snapshot sync 2026-04-30 21:13:17 -04:00
VinPropane b5478782a8 NEO-30: cast funnel telemetry hook sites and docs 2026-04-30 20:59:47 -04:00
VinPropane 0e95918b56 NEO-30: add implementation plan for cast funnel telemetry hooks 2026-04-30 20:53:47 -04:00
VinPropane 7de8e7ecfd NEO-28: cast target authority, HUD feedback, tests + docs 2026-04-27 21:03:04 -04:00
VinPropane cc1c6f711e NEO-31: request_cast bool for telemetry hook; document cast API in server README 2026-04-27 20:44:40 -04:00
VinPropane e88e59f3a6 NEO-31: hotbar cast resolver tests, doc alignment, review follow-up 2026-04-27 20:42:36 -04:00
VinPropane eac95f0c27 chore: group Bruno hotbar-loadout and ability-cast under subfolders 2026-04-27 20:27:53 -04:00
VinPropane 7e97eb4c1d NEO-31: ability cast POST, client hotbar keys, tests, Bruno 2026-04-27 20:17:57 -04:00
VinPropane e0e9f90329 NEO-31: plan Bruno requests for ability-cast API parity 2026-04-27 20:14:29 -04:00
VinPropane e9fcf46b02 NEO-31: add E1M4-02 implementation plan (cast request path kickoff) 2026-04-27 20:13:10 -04:00
VinPropane acde9e8145 NEO-29: add HotbarLoadout v1 contract and hydration path
Ship a server-owned hotbar loadout API with Postgres-or-memory persistence so slot bindings survive reconnects in configured environments. Wire client boot hydration and add tests/docs/manual QA to keep the prototype contract and policy explicit.
2026-04-25 22:29:52 -04:00
VinPropane 09e160e955 chore: document E1.M4 backlog and Linear issue mapping
Capture the E1.M4 vertical slice backlog in-repo and sync module/dependency docs with the created Linear stories so planning and execution references stay aligned.
2026-04-25 22:12:48 -04:00
VinPropane 9c054fbcf2 NEO-27: add Slice 3 telemetry hook-site documentation
Map SelectionEvent to target_changed, reserve ability_cast_requested and ability_cast_denied hook locations, and align plan/manual QA/decomposition docs with TODO(E9.M1) telemetry follow-up.
2026-04-25 21:56:28 -04:00
VinPropane a87556f88b NEO-27: note NEO-24 blocker removed in Linear (plan risks) 2026-04-25 19:53:37 -04:00
VinPropane dd948120ff NEO-27: add implementation plan for Slice 3 telemetry hook sites 2026-04-25 19:52:45 -04:00
VinPropane 5127fe59a7 NEO-26: emit selection_event from TargetSelectionClient
Add selection_event signal when lockedTargetId changes; attribute tab, clear,
and server_correction from POST/GET paths. Optional log_selection_events print.
GdUnit coverage; README, E1.M3 snapshot, manual QA, and plan checklist updated.
2026-04-25 19:33:53 -04:00
VinPropane acb8ccf3c1 NEO-26: fix D6 rationale — interactables out of scope by ticket shape, not NEO-25 status 2026-04-25 19:28:28 -04:00
VinPropane ada7630605 NEO-26: record AskQuestion outcomes and planning recommendations 2026-04-25 19:27:17 -04:00
VinPropane 7c2f913757 NEO-26: add implementation plan for SelectionEvent surface 2026-04-25 19:19:16 -04:00
VinPropane 0e72d98177 NEO-25: move resource_node anchor clear of Obstacle at (6,1,5) 2026-04-24 20:42:12 -04:00
VinPropane ce54fcc44f NEO-25: world interactables GET, registry rows, fetch-driven Godot props + glow 2026-04-24 20:36:15 -04:00
VinPropane 6e40af1a1a NEO-25: add implementation plan (descriptor list + fetch-driven client) 2026-04-24 20:24:00 -04:00
VinPropane d6ef4fd811 NEO-24: race-free target/select via optional positionHint
Followup #5: after locking alpha, walking into beta's ring, stopping and
pressing Tab could still return `out_of_range` even when client and server
agreed on position (Δ=0). The freshness-kick move-stream POST and the
target/select POST race on separate HTTP connections so the select can be
validated against a stale stored snap.

Extend TargetSelectRequest v1 with an optional positionHint {x,y,z}.
Server uses the hint for the radius check and for the echoed
targetState.validity; the hint is advisory and does not write to the
position store (move-stream stays the sole write path). Client attaches
the hint automatically whenever set_freshness_kick(...) is wired, so
headless unit tests that skip the wiring fall through to the no-hint
behavior. Freshness kick is kept in place to refresh the stored snap for
later validity GETs but is no longer load-bearing for denial correctness.

Server: 3 new tests (hint accepts when stored is stale, hint-far denies,
hint never writes to position store). Client: 1 new test asserting the
hint is in the POST body when wired. All 62 server + 96 client tests
pass.

Plan Decision 8, review follow-up #5, manual QA section 6, and NEO-23
contract notes updated. New bruno request exercises the hint path.
2026-04-21 23:52:20 -04:00