VinPropane
ac75af9c73
NEON-29: remove horizontal step limit; add HorizontalStepEnabled flag
...
Expanded 45×45 district made the 18 m MaxHorizontalStep too restrictive
(floor diagonal ~63 m). Add HorizontalStepEnabled to MovementValidationOptions
(default false, matching DistrictBoundsEnabled pattern) so the check is
skipped unless explicitly opted in. Add test for disabled case (9 pass).
Update README and plan with the decision.
2026-04-11 18:17:32 -04:00
VinPropane
8b8296648b
NEON-29: add implementation plan for district expansion
...
Planning doc for expanding the prototype client district to ~5×
current footprint with terraces, step geometry, and extra obstacles
for camera/nav stress QA.
2026-04-11 18:00:14 -04:00
VinPropane
398317d64f
NEON-28: Dev obstacle smoke, nav reparent on hide, and docs
...
- Input action dev_toggle_occluder_obstacle (Ctrl+Shift+K): toggle obstacle off nav source via reparent to World, rebake NavigationRegion3D, sync NavigationAgent3D; physics/process/collision hardening unchanged intent.
- Occluder dictionary keys by instance id; related client fixes and README/project input note.
- Plan and review: PARSED_GEOMETRY_BOTH / runtime geometry removal lesson for future mechanics.
2026-04-10 23:55:50 -04:00
VinPropane
1ab3fc1dca
NEON-28: fix F9 nav rebake coroutine + resync agent goal
2026-04-10 23:13:00 -04:00
VinPropane
bb39a64ebd
NEON-28: rebake nav after F9 obstacle removal (dev smoke)
2026-04-10 23:11:01 -04:00
VinPropane
b702b14be4
NEON-28: drop freed occluder keys without material restore
2026-04-10 23:09:12 -04:00
VinPropane
e225f1c550
NEON-28: sync plan with review (physics tick, occluder handoff)
2026-04-10 22:53:36 -04:00
VinPropane
6340693b46
NEON-28: run follow camera in physics after Player (fix jitter)
2026-04-10 22:23:50 -04:00
VinPropane
15d304fa2c
NEON-28: camera contracts, E6.M2 adjacency, occluder purge
2026-04-10 22:11:40 -04:00
VinPropane
7e674c3710
NEON-28: reconcile plan with Jira (MCP sync)
2026-04-10 21:59:35 -04:00
VinPropane
92104b0b53
NEON-28: add implementation plan for camera hardening
2026-04-10 21:56:44 -04:00
VinPropane
1f5c1e7619
NEON-16: harden idle jitter follow-up
...
Harden idle settling so flat ground, obstacle contacts, and rare bump-edge cases stop drifting instead of looping corrective nudges. Also resolves the saved review follow-up items and syncs the runtime docs to the final feet-height and idle-anchor behavior.
2026-04-10 00:46:53 -04:00
VinPropane
6f4f5d4350
NEON-16: code review — idle jitter follow-up branch
...
docs/reviews/2026-04-10-NEON-16-followup.md: Request changes — two
blocking gdlint issues (export var order, line-length on
vertical_arrival_error) plus suggestions and nits.
2026-04-10 00:39:14 -04:00
VinPropane
1f8c0d04d1
NEON-30: address review — check AC boxes, add manual-check section to README
2026-04-09 23:03:17 -04:00
VinPropane
0fa2c0f93b
NEON-30: skip occluder bodies in ground-pick raycast loop
...
ground_pick.gd now checks _collider_is_occluder before the walkable
break: when the ray hits a body in the "occluder" group it advances
OCCLUDER_PICK_THROUGH past the hit point and continues, unconditionally
and regardless of OcclusionPolicy fade state. Non-occluder click
targeting is unchanged.
Three unit tests added to ground_pick_test.gd covering occluder ancestry
detection. Plan open questions and module doc updated.
2026-04-09 22:51:22 -04:00
VinPropane
f1b4e50729
NEON-27: finalise review (Approved) + Godot uid files
...
Review verdict updated to Approved; all blocking issues and suggestions
resolved and documented. Add auto-generated Godot .uid sidecar files for
occlusion_policy.gd and occlusion_policy_test.gd.
2026-04-08 23:55:29 -04:00
VinPropane
71232c36ef
NEON-27: address review suggestions — doc alignment pass
...
- Plan: reconcile null-material prose in "Material override strategy"
to match implementation (null → new StandardMaterial3D, not skipped)
- module_dependency_register.md: E1.M2 note updated — occlusion shipped,
only integration hardening (NEON-28) remains
- documentation_and_implementation_alignment.md: add E1.M2 tracking row
(NEON-25–27 shipped, NEON-28 open)
- Review: strike through both suggestions as Done
2026-04-08 23:52:46 -04:00
VinPropane
5e16fdccc8
NEON-27: restore occluders on all _process early-return paths
...
Fixes review blocking issue: when the follow target is null (freed,
renamed, or path unresolved) or the Camera3D child is missing,
_restore_all_occluders() is now called before returning so geometry
cannot be left stuck semi-transparent.
2026-04-08 23:50:48 -04:00
VinPropane
8bc2efb854
NEON-27: check off all acceptance criteria; record PR screenshots
...
Before/after evidence: obstacle fades to ~25% alpha when occluding the
player; restores on clear. All three ACs satisfied.
2026-04-08 23:42:31 -04:00
VinPropane
15d405261f
NEON-27: implement OcclusionPolicy — RayCast-based material fade
...
Adds OcclusionPolicy resource and wires it into IsometricFollowCamera.
Each _process frame, iterative rays from the camera eye to the player
focus detect bodies tagged "occluder"; their MeshInstance3D surfaces are
overridden with a transparent StandardMaterial3D (fade_alpha=0.25, instant).
Materials restore when the body clears the ray. Null-material surfaces
(e.g. the prototype Obstacle with no material assigned) receive a plain
transparent StandardMaterial3D so they fade correctly.
- client/scripts/occlusion_policy.gd — new Resource (enabled, fade_alpha,
occluder_group, occluder_collision_mask, max_occluder_cast_depth,
occluder_count_log_threshold, is_valid)
- client/resources/isometric_occlusion_policy.tres — default instance
- client/scripts/isometric_follow_camera.gd — occlusion_policy export,
_update_occlusion pipeline, _apply_occluder_fade/_restore_occluder helpers,
static occlusion_policy_is_valid guard, _exit_tree cleanup
- client/scenes/main.tscn — Obstacle tagged "occluder", policy assigned
- client/test/occlusion_policy_test.gd — new GdUnit4 unit tests
- client/test/isometric_follow_camera_test.gd — policy guard static tests
- docs/decomposition/modules/E1_M2_IsometricCameraController.md — NEON-27
snapshot + readability demo gate note
- docs/plans/NEON-27-implementation-plan.md — null-material decision recorded
2026-04-08 23:34:00 -04:00
VinPropane
b2d2500e6a
NEON-27: record planning decisions in implementation plan
...
Occluder ID: explicit group tag. Fade: instant (no Tween). Non-StandardMaterial3D
surfaces: skip + push_warning. Rationale documented in Decisions table.
2026-04-08 23:28:02 -04:00
VinPropane
185af5a7f6
NEON-27: add implementation plan for OcclusionPolicy
...
Documents RayCast-based material-fade approach, files to add/modify,
GdUnit4 test coverage, and readability risk gate note.
2026-04-08 23:21:51 -04:00
VinPropane
ae643bc81c
NEON-26: refresh review after follow-up fixes
2026-04-08 23:00:10 -04:00
VinPropane
ff830813c7
NEON-26: address code review follow-ups (zoom validation, docs)
2026-04-08 22:58:28 -04:00
VinPropane
b9ec6ccb0f
NEON-26: add code review notes for zoom bands
2026-04-08 22:55:37 -04:00
VinPropane
753ce84861
NEON-26: ZoomBandConfig, discrete zoom input, CameraState sync
2026-04-08 22:32:45 -04:00
VinPropane
f4a30b1b9d
NEON-26: add implementation plan for zoom bands
2026-04-08 22:17:36 -04:00
VinPropane
e000da20ee
NEON-15: address review nits (shutdown token, plan verification note)
2026-04-08 22:09:12 -04:00
VinPropane
adde98e4a8
chore: review follow-up uses strikethrough on suggestions, not extra section
2026-04-08 22:06:17 -04:00
VinPropane
8c3e8c0a03
NEON-15: apply code review doc suggestions (E1.M1 pointers, PR notes)
2026-04-08 21:59:53 -04:00
VinPropane
2617b65f79
NEON-15: add code review (2026-04-08)
2026-04-08 21:58:18 -04:00
VinPropane
62ff210830
NEON-15: log plan decisions; require docs sync for planning/implementation
2026-04-08 21:49:56 -04:00
VinPropane
abffd29299
NEON-15: add implementation plan for NpgsqlDataSource shutdown
2026-04-08 21:16:50 -04:00
VinPropane
e96f70d889
NEON-25: follow-up from code review (missing target warn, docs, E1.M2 status)
2026-04-07 23:54:27 -04:00
VinPropane
f4b34316a6
NEON-25: add code review for isometric follow camera
2026-04-07 23:51:46 -04:00
VinPropane
4930fd89a6
NEON-25: isometric follow camera, CameraState, tests, and docs
2026-04-07 23:46:04 -04:00
VinPropane
262abb5f2e
NEON-29: register prototype district story in E1.M2 backlog
2026-04-07 23:38:55 -04:00
VinPropane
644bfc8c3d
NEON-25: lock low-controversy camera defaults in implementation plan
2026-04-07 23:34:20 -04:00
VinPropane
00c2c4520e
NEON-25: add implementation plan for isometric follow camera
2026-04-07 23:27:44 -04:00
VinPropane
09257b4cc3
chore: align E1.M2 Jira table with NEON-25 summary
2026-04-07 23:21:45 -04:00
VinPropane
2b00de309b
chore: expand E1.M2 module doc (Jira backlog, rotation policy)
...
- Link NEON-10/NEON-25–28 under parent NEON-1 in Summary and Jira backlog table
- Document mid-project-only yaw orbit compromise; post-release camera model settled
- Extend CameraState contract and slice/risk notes accordingly
2026-04-07 23:12:48 -04:00
VinPropane
175c6e0500
chore: document Jira epic→story + labels (no Feature issues)
...
Module/slice grouping below epics is labels on stories only; Feature
work items are not used. Cross-link from jira-git-naming, story kickoff,
and documentation alignment table.
2026-04-07 00:20:01 -04:00
VinPropane
fa19ab7337
chore: migrate Jira references from NS-* to NEON-* in docs and rules
...
Rename implementation plans and dated reviews to NEON issue numbers per
Atlassian project re-key. Update browse URLs, cross-links, module docs,
client/server READMEs, and Cursor rules (project key NEON).
2026-04-07 00:15:06 -04:00
VinPropane
791c7dad1b
Merge branch 'main' into NS-21-gdscript-unit-testing
2026-04-06 22:22:16 -04:00
VinPropane
7b11d4e238
NS-24: Eliminate idle jitter and movement QA bumps (Godot client)
...
Physics: Jolt 3D; physics_interpolation off; 120 TPS. CharacterBody3D idle
path uses dual floor_max_angle, rim/straddle and ridged-contact handling,
rim settle and random-floor-bump lip/wall escape, floor_block_on_wall,
NavigationAgent3D avoidance off, per-node interp off. No global_transform in
_process (avoid render/physics ghosting).
QA geometry: random_floor_bumps.gd (load from main.gd); each bump on its own
StaticBody3D under NavigationRegion3D; random_floor_bump_collision_constants.gd
for collider fudge and RANDOM_FLOOR_BUMP_MESH_GROUP.
Scene: player safe_margin and mesh Y lift; MoveRejectPedestal / MoveRejectFarPad
renamed from NS19*; Mat_player_capsule without polygon_offset (per follow-up).
Docs: NS-24 plan + resolution, client/README manual steps, code review
2026-04-05-NS-24.md; server/README bump height note. Code/scene identifiers
avoid ticket-based ns19_* naming.
2026-04-06 00:32:41 -04:00
VinPropane
a02e54da2d
NS-21: fold test CI into gdscript.yml; document test-with-scripts policy
2026-04-05 21:21:58 -04:00
VinPropane
6ff0c77da5
NS-21: add implementation plan for GDScript unit testing
2026-04-05 21:03:12 -04:00
VinPropane
43b58a8bc7
chore: align E1.M1 decomposition with NS-10 Done (Ready)
2026-04-05 15:16:16 -04:00
VinPropane
f412da8f44
docs: Mark NS-23 code review blocking items and suggestions done
2026-04-05 15:04:39 -04:00
VinPropane
d22d252b59
docs: Link NS-24 for idle jitter (plan + client README)
2026-04-05 15:04:09 -04:00
VinPropane
14a6813985
NS-23: Document movement tradeoff — no required obstacle auto-nav
...
Align plan, client/server README, E1.M1 snapshot, and code review note with
the chosen design: descend bypass favors smooth stepped surfaces; multi-click
around obstacles is OK. NS-24 remains for idle jitter.
2026-04-05 14:56:52 -04:00
VinPropane
2891a4553a
docs: NS-23 branch code review (2026-04-05)
2026-04-05 14:52:08 -04:00
VinPropane
0ac059fa3b
NS-23: NavigationAgent3D path-follow with server move authority
2026-04-05 00:23:03 -04:00
VinPropane
1f4e3c49f6
NS-23: Resolve agent tuning and nav sync risks in implementation plan
2026-04-05 00:14:37 -04:00
VinPropane
ec3c0ee4fe
NS-23: Add implementation plan and E1.M1 snapshot for path-follow kickoff
2026-04-05 00:10:11 -04:00
VinPropane
32d2153acb
NS-19: server move validation, client rejection UX, scene QA props
2026-04-04 23:39:40 -04:00
VinPropane
7f81378361
NS-19: plan walkable bumps and tall pedestal for manual validation
2026-04-04 23:17:16 -04:00
VinPropane
8e421d09c1
NS-19: add files to add/modify and tests sections to plan
2026-04-04 23:14:47 -04:00
VinPropane
95f770d8ea
NS-19: lock move validation plan to reject policy
2026-04-04 23:13:10 -04:00
VinPropane
b043e8ac45
NS-18: InteractionRequest, client prototype, Postgres test UX
...
Server: POST /game/players/{id}/interact, HorizontalReach, prototype registry, DTOs, tests; default spawn (-5,0.9,-5); dev HttpLogging.
Client: terminal, radius glow preview, interaction_request_client (interact/E), main wiring; obstacle moved off center.
Tests: postgres.runsettings, launchSettings, Docker compose auto-start/teardown harness, async-safe init.
Docs: plan AC, E1.M1 snapshot, alignment table, server/client README, code review 2026-04-04.
2026-04-04 20:19:33 -04:00
VinPropane
06f9ce8647
NS-18: add implementation plan for InteractionRequest range check
2026-04-04 18:55:13 -04:00
VinPropane
f762240ff8
chore: document governing design axioms (fun, cyberpunk theme)
2026-04-04 18:46:55 -04:00
VinPropane
3d9ea1fc6c
chore: mark vision-plan suggestion done in final docs review
2026-04-03 22:58:14 -04:00
VinPropane
a0544f4d33
chore: final branch docs review and Epic 2 E2.M2 note fix
...
Add docs/reviews/2026-04-03-final-branch-docs-review.md. Correct epic
E2.M2 integration note: E5.M1 uses gig progression, not E2.M2 skill XP.
2026-04-03 22:55:21 -04:00
VinPropane
0dea48e9fa
chore: add zones game-design doc and cross-links
...
Add docs/game-design/zones.md for place identity (tone, economy, faction
hooks) on the E4.M1 graph, distinct from risk-security-bands tier rules.
Link from overview, README, related vision docs, brainstorm table, and
docs-review-agent; anchor Epic 4 slice 1 for deep links.
2026-04-03 22:47:05 -04:00
VinPropane
d192567f57
chore: add game-design risk-security-bands doc
...
- Add risk-security-bands.md (E4.M4 tiers, E6.M1/M2 PvP + consent, tier gates)
- epic_04: anchor epic-4-slice-2 for security tier slice
- Cross-link death, items, economy, gathering; overview combat stub + index
- Extend docs-review-agent ground truth
2026-04-03 22:35:03 -04:00
VinPropane
6602f78b4b
chore: add game-design death-loss-recovery doc
...
- Add death-loss-recovery.md (E5.M1, E3.M4, E6.M3, recovery, PvE vs PvP)
- Cross-link from overview (incl. combat stub), progression, skills, gigs, items, economy, gathering, crafting, abilities, README
- Extend docs-review-agent ground truth for death/loss
2026-04-03 22:30:11 -04:00
VinPropane
81695f93e4
chore: add game-design economy doc and cross-links
...
- Add economy.md (faucets, sinks, trade, E3.M5/E8.M3/E6.M4, mission vs loot)
- epic_03: anchor epic-3-slice-4 for stable deep links
- Wire overview, progression, skills, gigs, items, crafting, gathering, abilities, README
- Extend docs-review-agent hybrid ground truth for economy.md
2026-04-03 22:20:39 -04:00
VinPropane
6b7623615d
chore: stable Epic 3 slice anchors; deep-links from gather/craft docs
...
- epic_03: HTML ids epic-3-slice-2 / epic-3-slice-3
- gathering/crafting: where-next and prototype scope use # anchors
- game-design docs review: mark slice nit done; clarify gigs-first nit
2026-04-03 22:14:47 -04:00
VinPropane
1bdc29288d
chore: note PEP 668 / venv in docs review verification
2026-04-03 22:13:56 -04:00
VinPropane
0a07f1dec9
chore: mark game-design docs review suggestions done (strikethrough)
2026-04-03 22:02:17 -04:00
VinPropane
6b9f4e8b5f
chore: apply game-design docs review suggestions
...
- overview: drop placeholder artifact table row
- skills: next-pass cites gathering/crafting + E2.M1 slice freeze
- abilities: framing links gather → craft spine
2026-04-03 21:59:39 -04:00
VinPropane
277c25fdd0
chore: add game-design crafting & recipes doc
...
- Add crafting.md (pipeline, E3.M2 contracts, bench vs gig, module map)
- Cross-link from overview, progression, skills, gigs, items, gathering, abilities, README
- gathering.md: point pipeline follow-up to crafting.md; where-next row
- Extend docs-review-agent hybrid progression list
2026-04-03 21:51:25 -04:00
VinPropane
8d560e0df8
chore: add game-design gathering & resources doc
...
- Add gathering.md (nodes, Gather skills, gig vs skill XP, E3.M1/E4.M2)
- Cross-link from overview, progression, skills, gigs, items, abilities, README
- Extend docs-review-agent hybrid progression ground truth
2026-04-03 21:47:59 -04:00
VinPropane
f45a5d8c06
chore: tie items.md to Epic 3 modules; add combat pillars stub
...
- items.md: E3.M3 contract summary, Epic 3 module map table, expanded where-next
- overview.md: Combat pillars vision stub with Items row; fix artifact cross-links
- abilities.md: pointer to overview combat pillars stub
2026-04-03 21:44:49 -04:00
VinPropane
940cc71840
chore: add game-design items doc and cross-links
...
- Add items.md (buckets, acquisition, rarity, loadouts, open questions)
- Link from overview, progression, skills, gigs, abilities, README
- Include items.md in docs-review-agent ground-truth list
- Fix content README path in items.md
2026-04-03 21:42:18 -04:00
VinPropane
c90c5baa41
docs: add game-design abilities.md and wire cross-links
...
- Taxonomy: gig combat abilities, skill interactions, item channels
- Decisions log + open questions; links to Seams, E1.M4, E5.M1, Epic 2/5/7
- overview, progression, gigs, skills, README; docs-review-agent ground truth
2026-04-03 21:39:43 -04:00
VinPropane
d1138bfe62
docs: E2.M1 contract column lists allowedXpSourceKinds (nit #2 )
2026-04-03 21:34:49 -04:00
VinPropane
fe38ebeb4f
docs: drop classless terminology; rename Epic 2 to skills and progression
...
- Rename epic_02_classless_progression.md → epic_02_skills_and_progression.md
- Epic 2 / vision plan: Skills and Progression Framework; clarify gigs vs non-combat skills
- Replace classless prose in README, game-design, E2 modules, reviews, quest_scope
- Plan diagrams: SkillsProgression, SkillXpAndMastery
2026-04-03 21:33:53 -04:00
VinPropane
aceb6027bf
chore: align Epic 2 title with epic_02 filename (nit #1 )
...
- Rename to Classless Progression Framework in epic, vision plan, README, E2 modules, game-design links
- Update 2026-04-03 review nit status
2026-04-03 21:30:53 -04:00
VinPropane
6599e136d6
chore: CI check for decomposition hybrid vocabulary (suggestion 4)
...
- Add scripts/check_decomposition_language.py (stdlib); PR gate step
- CT.M1, content README, docs-review-agent, 2026-04-03 review updates
2026-04-03 21:29:28 -04:00
VinPropane
d11641159d
chore: Epic 2 E2.M1 stub, content CI validation, doc follow-ups
...
- epic_02: expand E2.M1 module breakdown (non-combat SkillDef, allowedXpSourceKinds)
- PR gate: Python jsonschema validate content/skills vs skill-def.schema.json
- Add scripts/validate_content.py, requirements-content.txt; ignore .venv-content
- CT.M1, E2.M1, internal-content-authoring, content README: document CI spine
- Update 2026-04-03 branch review (suggestions 2–3 done)
2026-04-03 21:27:52 -04:00
VinPropane
f9de62b563
chore: branch-wide docs review vs main + Epic 2 objective hybrid wording
...
- Save docs/reviews/2026-04-03-branch-chore-game-design-docs-vs-main.md
- Epic 2 Objective: skill vs gig progression; link progression + E2.M2
2026-04-03 21:23:36 -04:00
VinPropane
dd2fef797d
chore: align game-design docs, SkillDef schema, and docs review agent
...
- Hybrid progression: encounter gig XP, mission skill rewards, Slice 3 split
- SkillDef JSON Schema: stable id, gather/process/make/tech, allowedXpSourceKinds
- Prototype skills: salvage, refine, intrusion; expand E2.M1/E2.M2 contracts
- Add docs-review-agent rule, skills coherence review, AGENTS.md row
- gigs/progression/overview/skills cross-links; explicit HTML anchors in skills.md
2026-04-03 21:21:33 -04:00
VinPropane
b7aeccafa9
chore: defer failure XP, respec, synergy to late-stage tuning
2026-04-03 20:44:04 -04:00
VinPropane
c40923d1f9
chore: log Tech skill category roster as agreed solid for v0
2026-04-03 20:40:41 -04:00
VinPropane
681b9a6a95
chore: clarify Rigging vs Hardshell hybrid note in skills roster
2026-04-03 20:38:37 -04:00
VinPropane
08a9e67211
chore: non-combat Rigging use by specialty skill; utility items without hooks
2026-04-03 20:37:57 -04:00
VinPropane
3786bae41e
chore: gig-gate combat deployables and default Make non-consumables in combat
2026-04-03 20:36:39 -04:00
VinPropane
9f7a1e0af8
chore: split armor into Hardshell and Softshell; powered armor on Rigging
2026-04-03 20:34:09 -04:00
VinPropane
a3140e509e
chore: add Edgesmith Make skill for non-gun weapons
2026-04-03 20:29:15 -04:00
VinPropane
38021311aa
chore: keep Food synth Make skill; remove defer note
2026-04-03 20:28:18 -04:00
VinPropane
cc71b79e78
chore: cybernetic replacement cost; old unit likely becomes scrap
2026-04-03 20:27:39 -04:00
VinPropane
c21f65532c
chore: Armtech swappable vs Cybernetics body-integrated—no overlap
2026-04-03 20:27:07 -04:00
VinPropane
ad0d1bc2b5
chore: cybernetics semi-permanent and not gig-gated (Seams + decisions)
2026-04-03 20:26:25 -04:00
VinPropane
39ef946814
chore: add Cybernetics Make skill to skills roster
2026-04-03 20:23:56 -04:00
VinPropane
f6c4cb6b52
fix: stable #seams-gigs-skills anchor for Seams section links
2026-04-03 20:22:53 -04:00
VinPropane
1757e87830
chore: separate Data scrub (data/firmware) from Fab tech
2026-04-03 20:21:23 -04:00
VinPropane
e13043f09a
chore: generalize multi-stage Process note; roster intro for chain shape
2026-04-03 20:20:18 -04:00
VinPropane
b4f72c77e6
chore: document multi-stage Process chains (e.g. Composite work)
2026-04-03 20:19:27 -04:00