feat(simulation): sprint 10 prove — server #37

Closed
jpmschweitzer wants to merge 0 commits from server into main
Owner

Summary

Sprint 10: Prove — all 7 server tickets complete (2001 lines, 41 files).

Critical path (unblocks client team):

  • #491 PlayerAction::TeleportToHub — hub spawn teleport, buffer clearing, Gauntlet-only guard
  • #520 ConfrontationDelivered event — Tier 2 animation shift, relationship decrement (D-033), monologue spike

Gauntlet expansion:

  • #498 Four new rooms: Interaction Gallery (24x20), Fog Theater (44x32), Crowd Plaza (32x32), Dialogue Room (28x20)

Mechanics:

  • #519 Walk-away Phase 2 — NPC animation shift + routine deviation on dialogue exit (D-064)
  • #514 blocked_entities debug field on ObserverSnapshot, protocol v9

Test infrastructure:

  • #483 Replay loading in test-client — JSONL tick-scheduled sending, 13 unit tests, 3 sample replays
  • #500 Content scaling test — baseline + extra NPC comparative, D-026 tick budget assertion

554 tests passing, 0 failures. Clippy clean.

## Summary Sprint 10: Prove — all 7 server tickets complete (2001 lines, 41 files). **Critical path (unblocks client team):** - **#491** PlayerAction::TeleportToHub — hub spawn teleport, buffer clearing, Gauntlet-only guard - **#520** ConfrontationDelivered event — Tier 2 animation shift, relationship decrement (D-033), monologue spike **Gauntlet expansion:** - **#498** Four new rooms: Interaction Gallery (24x20), Fog Theater (44x32), Crowd Plaza (32x32), Dialogue Room (28x20) **Mechanics:** - **#519** Walk-away Phase 2 — NPC animation shift + routine deviation on dialogue exit (D-064) - **#514** `blocked_entities` debug field on ObserverSnapshot, protocol v9 **Test infrastructure:** - **#483** Replay loading in test-client — JSONL tick-scheduled sending, 13 unit tests, 3 sample replays - **#500** Content scaling test — baseline + extra NPC comparative, D-026 tick budget assertion 554 tests passing, 0 failures. Clippy clean.
jpmschweitzer added 2 commits 2026-02-18 12:58:55 +01:00
#491: PlayerAction::TeleportToHub — moves player to hub spawn, clears
dialogue/monologue/interaction buffer, Gauntlet-only with log warning.
#520: ConfrontationDelivered event — Tier 2 animation shift, relationship
state decrement (D-033), monologue spike emission.
#519: Walk-away Phase 2 — NPC animation shift + routine deviation on
dialogue exit (D-064).
#498: Four new Gauntlet rooms — Interaction Gallery, Fog Theater, Crowd
Plaza, Dialogue Room with constants and wiring.
#514: blocked_entities Vec<u64> on ObserverSnapshot, protocol v9.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
#483: Replay loading in test-client — JSONL file loading, tick-scheduled
PlayerInput sending, 13 unit tests, 3 sample replay files.
#500: Content scaling test — baseline + extra NPC comparative, tick budget
assertion (D-026), determinism check across content packs.
#514: Serialization tests for protocol v9 — blocked_entities roundtrip,
backward compat (v5→v9, v8→v9), regenerated msgpack fixtures.
Observer perception tests for confrontation + walk-away mechanics.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Author
Owner

Review: server -> main (type: code)

Hoshe (Code Quality): REQUEST_CHANGES

Well-structured PR with good test coverage. Doc/comment issues and a test gap.

# File Severity Issue
1 types.rs:34 warning Doc comment says "Current: 6" but protocol is v9.
2 dialogue.rs:498-503 warning Walk-away doc has duplicated numbering (items 4-5 numbered 2-3).
3 test_world/mod.rs:416 warning Comment says "Reset plates at 49-51" but range is 49-55.
4 content_scaling.rs:236 warning Determinism test filters entity_id <= 51 but ceiling is 55.

Tyre (Architecture): APPROVE

D-010 boundary clean. D-026 budget validation solid. One race condition concern.

# File Severity Issue
1 dialogue.rs warning Verify decrement() floors at Hostile; add guard comment.
2 input.rs:633 warning TeleportToHub doesn't clear ConfrontationDelivered — marker survives teleport.
3 content_scaling.rs:207 warning Magic number <= 51 fragile against Gauntlet setup changes.

Verdict: CHANGES REQUESTED

## Review: server -> main (type: code) ### Hoshe (Code Quality): REQUEST_CHANGES Well-structured PR with good test coverage. Doc/comment issues and a test gap. | # | File | Severity | Issue | |---|------|----------|-------| | 1 | `types.rs:34` | warning | Doc comment says "Current: 6" but protocol is v9. | | 2 | `dialogue.rs:498-503` | warning | Walk-away doc has duplicated numbering (items 4-5 numbered 2-3). | | 3 | `test_world/mod.rs:416` | warning | Comment says "Reset plates at 49-51" but range is 49-55. | | 4 | `content_scaling.rs:236` | warning | Determinism test filters `entity_id <= 51` but ceiling is 55. | ### Tyre (Architecture): APPROVE D-010 boundary clean. D-026 budget validation solid. One race condition concern. | # | File | Severity | Issue | |---|------|----------|-------| | 1 | `dialogue.rs` | warning | Verify `decrement()` floors at Hostile; add guard comment. | | 2 | `input.rs:633` | warning | TeleportToHub doesn't clear ConfrontationDelivered — marker survives teleport. | | 3 | `content_scaling.rs:207` | warning | Magic number `<= 51` fragile against Gauntlet setup changes. | ### Verdict: CHANGES REQUESTED
jpmschweitzer added 1 commit 2026-02-18 17:50:28 +01:00
Hoshe review (4 items):
- types.rs: doc comment "Current: 6" → "Current: 9"
- dialogue.rs: walk-away doc duplicated numbering (items 4-5 were 2-3)
- test_world/mod.rs: comment "Reset plates at 49-51" → "49-55"
- content_scaling.rs: magic number 51 → constants::RESET_PLATE_STABLE_IDS.1

Tyre review (3 items):
- knowledge/types.rs: guard comments on decrement() floor at Hostile
- input.rs: TeleportToHub now clears ConfrontationDelivered marker
- content_scaling.rs: same magic number fix (covered above)

Additional:
- content_runtime.rs: barrier-based shutdown handshake fixes TCP RST
  race condition under parallel test execution
- dialogue_room.rs: clippy type_complexity allow on NPCS tuple array

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Author
Owner

Re-Review: server -> main (type: code)

Hoshe (Code Quality): REQUEST_CHANGES

3/4 previous issues fully fixed. Issue #4 half-fixed: runtime filter uses the constant, but two stale "51" strings remain in doc/assertion text.

# File Severity Issue
1 content_scaling.rs:185 warning Doc comment still says "StableId 0-51" — should be 0-55.
2 content_scaling.rs:256 warning Assertion message still says "id<=51" — misleading on failure.
3 input.rs (tests) suggestion No test verifies ConfrontationDelivered cleared on TeleportToHub.

Tyre (Architecture): APPROVE

All 3 previous issues confirmed fixed. Two suggestion-level items.

# File Severity Issue
1 input.rs (tests) suggestion teleport_to_hub_clears_dialogue_markers doesn't assert ConfrontationDelivered clearance.
2 dialogue.rs suggestion process_confrontation_response doesn't insert RoutineDeviation — asymmetric with walk-away path.

Verdict: CHANGES REQUESTED

## Re-Review: server -> main (type: code) ### Hoshe (Code Quality): REQUEST_CHANGES 3/4 previous issues fully fixed. Issue #4 half-fixed: runtime filter uses the constant, but two stale "51" strings remain in doc/assertion text. | # | File | Severity | Issue | |---|------|----------|-------| | 1 | `content_scaling.rs:185` | warning | Doc comment still says "StableId 0-51" — should be 0-55. | | 2 | `content_scaling.rs:256` | warning | Assertion message still says "id<=51" — misleading on failure. | | 3 | `input.rs` (tests) | suggestion | No test verifies `ConfrontationDelivered` cleared on TeleportToHub. | ### Tyre (Architecture): APPROVE All 3 previous issues confirmed fixed. Two suggestion-level items. | # | File | Severity | Issue | |---|------|----------|-------| | 1 | `input.rs` (tests) | suggestion | `teleport_to_hub_clears_dialogue_markers` doesn't assert `ConfrontationDelivered` clearance. | | 2 | `dialogue.rs` | suggestion | `process_confrontation_response` doesn't insert `RoutineDeviation` — asymmetric with walk-away path. | ### Verdict: CHANGES REQUESTED
jpmschweitzer added 1 commit 2026-02-18 18:22:38 +01:00
Hoshe re-review (3 items):
- content_scaling.rs:185: doc "StableId 0-51" → references constant
- content_scaling.rs:256: assertion message "id<=51" → "id <= max_baseline_id"
- input.rs: teleport test now asserts WalkAwayRequest + ConfrontationDelivered
  are cleared (was only checking TalkRequest + ActiveDialogue)

Tyre re-review (2 items):
- input.rs: same teleport test coverage (overlaps Hoshe #3)
- dialogue.rs: process_confrontation_response now inserts RoutineDeviation
  with DeviationTrigger::Confrontation — symmetric with walk-away path.
  Test updated to verify deviation is recorded.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Author
Owner

Re-Review (round 3): server -> main (type: code)

Hoshe (Code Quality): APPROVE

All 3 items from previous round confirmed fixed:

  1. Doc comment now references RESET_PLATE_STABLE_IDS.1 instead of "0-51"
  2. Assertion message now uses max_baseline_id variable instead of "id<=51"
  3. Test added for ConfrontationDelivered clearance on TeleportToHub

Tyre (Architecture): APPROVE

Both previous suggestions addressed:

  1. ConfrontationDelivered test coverage added with explicit assertion
  2. process_confrontation_response now inserts RoutineDeviation — symmetric with walk-away path

Verdict: APPROVED

## Re-Review (round 3): server -> main (type: code) ### Hoshe (Code Quality): APPROVE All 3 items from previous round confirmed fixed: 1. Doc comment now references `RESET_PLATE_STABLE_IDS.1` instead of "0-51" 2. Assertion message now uses `max_baseline_id` variable instead of "id<=51" 3. Test added for `ConfrontationDelivered` clearance on TeleportToHub ### Tyre (Architecture): APPROVE Both previous suggestions addressed: 1. `ConfrontationDelivered` test coverage added with explicit assertion 2. `process_confrontation_response` now inserts `RoutineDeviation` — symmetric with walk-away path ### Verdict: APPROVED
jpmschweitzer closed this pull request 2026-02-18 18:26:36 +01:00

Pull request closed

This pull request cannot be reopened because the branch was deleted.
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: jpmschweitzer/settled-reach#37