Code changes addressing PR #135 review (Tyre + Hoshe):
- **T3 (blocking):** test_merge_path_flows_sprint37.gd `_load_main_menu`
and `_load_char_create` now assert the scene loaded instead of silently
returning. Missing .tscn → red test, not falsely green.
- **T1:** sim_bridge.gd signal `handshake_complete(protocol_version: int)`
was D-192 residue with no listeners. Drop the int parameter entirely
and the literal-0 emit.
- **H4:** test_new_game_catalog_snapshot_resolves_loading_state now
asserts SimBridge.state == CONNECTED terminus, not just the loading
flag — guarantees full flow completion, not merely flag-clear.
- **H5:** test_protocol_bridge.gd file-level comment refreshed; drops
reference to removed protocol-version check tests.
- **H6:** test_p0_regressions.gd `_make_snapshot_bytes` comment refreshed
and version field removed from fixture dict (D-192: not required).
- **H7:** test_merge_path_flows_sprint37.gd `_make_catalog_snapshot`
drops version field from fixture dict (D-192).
Follow-up tickets filed for reviewer suggestions:
- **T2:** #889 — revive EntityRenderer sprite constants coverage
(D-044 ENTITY_WIDTH/HEIGHT, asserted by deleted test_sprite_integration).
- **T4:** #890 — UI timeout fallback for bookmark catalog wait in
main_menu (systemic 'catalog never arrives' class beyond #872's
TCP-batch race).
- **T5/T6:** #891 — scene-flow test tier docs + test-only reset
helpers (SimBridge.reset_for_test, MetaStack.reset_for_test) +
minimal public API on scenes so UI refactors don't break all four
flow tests simultaneously.
Verification:
- `make lint-client` — no script errors
- `gdlint client/scripts/ client/ui/` — no problems
- `make test-client` — 2428/2488 passing. 60 remaining failures are
pre-existing, unrelated to sprint 37 (test_dialogue_sprint20 #558
signals, test_input_roundtrip integration-sans-server, etc.).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- character_creation.gd:1614: type-annotate dir_name to fix GDScript
inference parse error. CARDINAL_DIRS is an untyped const Array, so
`var dir_name := CARDINAL_DIRS[idx]` failed type inference and blocked
test_character_creation_sprint28.gd test discovery. Runtime was lenient
but gdUnit4's scanner is strict.
- test_merge_path_flows_sprint37.gd (_load_char_create): call add_child
before _update_start_btn_state so @onready vars (_footer_start) are
bound when the helper dereferences them. Unblocks 2 merge-path tests.
- test_anti_tedium.gd (test_bug_report_sends_unpause_on_close): call
dialog.close() instead of the old dialog._close() rename casualty.
`on_close()` is a lifecycle hook — it doesn't actually transition
state; `close()` is what MetaScreen exposes.
- test_anti_tedium.gd (before_test): clear MetaStack._stack. Prior tests
leave stale freed dialog refs on the stack; _any_pausing() iterates
the stack during close() and crashes with "previously freed".
Net: sprint-37 test files (test_merge_path_flows_sprint37.gd,
test_anti_tedium.gd) now pass. Overall suite: 2428/2488 passing
(60 remaining failures are pre-existing, unrelated to sprint 37).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Removes the version-mismatch guard from Protocol.decode_snapshot() and the
PROTOCOL_VERSION constant from the client (server side done in #874).
Core changes:
- protocol.gd: remove const PROTOCOL_VERSION, remove version mismatch guard,
remove "version" from return dict, add gauntlet_mode/room_id decode
- sim_bridge.gd: remove handshake version check; relax handshake guard to
require only a valid Dictionary (server no longer sends protocol_version);
emit handshake_complete(0) for API compat
- loading_screen.gd: drop "· protocol N" suffix from version label
- test_harness.gd: replace Protocol.PROTOCOL_VERSION with literal 23
Test updates (21 files): replace "version": Protocol.PROTOCOL_VERSION with
"version": 23 in all snapshot bytes dicts; remove snapshot.version == N
assertions; remove version-rejection tests (test_rejects_version_6,
test_decode_snapshot_rejects_missing_version, test_decode_snapshot_rejects_old_version,
test_protocol_rejects_version_mismatch, test_sim_bridge_test_snapshot_uses_current_protocol_version).
Also includes: #872 bookmark_catalog carry-forward regression test, and
#873 merge-path flow tests (test_merge_path_flows_sprint37.gd).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>