maniator / maniator/verticopolis
[P3] segment-gripe-copy: unmet-demand gripe text still floor-level
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 5
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Description
Deferred from /gds-code-review of the #647 segment-routing change (v1.102.0). Edge Case Hunter finding, low severity, practically shadowed.
unmetDemandGripeText (src/game/gripeCopy.ts) still keys on sim.floorReachable(u.floor) rather than the segment-aware sim.positionReachable(u.floor, u.x). In practice this branch is shadowed: a unit stranded on a disconnected segment resolves to noTransport in dominantGripe before the unmet-demand branch is ever reached, so the mismatched copy is not surfaced. Recorded for consistency only; no player-visible defect today. Byte-identical / no golden impact (floor-level == segment-level on a gap-free floor).
Fix when picked up: switch the reachability read to positionReachable(u.floor, u.x) so the copy path is segment-consistent with the rest of #647, in case a future refactor changes the dominantGripe ordering.
/gds-code-review.
Correction (2026-07-29): this issue and its backlog row previously named the file as src/engine/sim/gripeCopy.ts, which does not exist. The correct path is src/game/gripeCopy.ts. Caught by the Acceptance Auditor on PR #633, which noted the backlog row had been corrected but the issue body had not, leaving the two halves of the mirror rule out of step.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in src/game/gripeCopy.ts by reading unmetDemandGripeText and the dominantGripe path, then compare its reachability check with the segment-routing change described in the issue. Done means the copy path uses segment-aware reachability consistently, with no change to current gap-free-floor output.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- game-dev
- Issue type
- Bug
- Difficulty
- 1/5
- Estimated time
- Under an hour
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 84/100