Walker overhaul: decomposed executor, door ledger, planner-selection gate - #1838
Walker overhaul: decomposed executor, door ledger, planner-selection gate#1838infuse21 wants to merge 2 commits into
Conversation
The complete walker as live-tested on the fork: the decomposed executor (Rs2Walker route loop + Rs2WalkerTransports + Rs2WalkerDoors + Rs2WalkerMovement), the door-attempt ledger and door decision layer, the route-state holder, the WalkExit taxonomy, the planner-selection gate with the vendored upstream planner source set, refreshed transport data files, and the walker test suite (decision tables, route corpus, guardrail baseline regenerated for this tree). Support-file changes limited to what the walker compiles against: Rs2Tile (edge passability), Rs2Magic/Rs2Staff/Rs2Tome (cast + rune providers), Rs2LeaguesTransport injection, and the client build script (upstreamPlanner source set + planner comparison tasks). Deliberately excluded: the Rs2Death API (tracked separately in PR chsami#1834), gameval/script drift owned by the release flow, and the reverted PR chsami#1832 sync machinery (scripts/, evidence docs, shadow handler). Full unit suite green on this branch. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Important Review skippedToo many files! This PR contains 182 files, which is 82 over the limit of 100. To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch. Upgrade to a paid plan to raise the limit. This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry. ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (13)
📒 Files selected for processing (182)
You can disable this status message by setting the Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
The Build check is green, but I’m holding this from merge because the review surface is too large to validate safely as one PR: 193 files / ~47k changed lines across executor decomposition, door behavior, planner vendoring/build wiring, transport data, and generated test/resources. CodeRabbit did not review it because the PR exceeded its 100-file limit, so the green status currently provides compilation/tests but no code-review coverage. Please split this into reviewable, independently testable PRs — for example: (1) executor decomposition with behavior-preservation tests, (2) door ledger/cascade changes, (3) planner-selection/source-set gate, and (4) transport/data refresh. Each part should be cut from current This is substantial enough that I don’t want to make ad-hoc maintainer edits or merge it on Build alone. |
…atch Log-driven fixes from live walks since the PR was opened, each verified on the routes that exposed it: - Crossed-edge guard: a planned transport edge whose destination SIDE the player is already on (strictly closer to destination than origin, same plane) is never re-dispatched — one tile of landing drift was enough to walk an agility shortcut backward in front of players. - Terminal-travel landing release: the destination-dialogue wait also releases on landing in the destination AREA (radius 5, moved-closer guard keeps short ferries honest), and its budget outlasts the longest direct flight (5s -> 12s) so it cannot warn at touchdown. - One click per pass: a successful route click ends the pass instead of stacking 2-3 clicks with their own bounded waits — this was the 8-15s 'arrive and stand' stall; cruising cadence is now 2-3.5s/click. - Live-collision capture: wall doors get full-footprint deferral (a closed door also blocks its corner diagonals; those were captured known+blocked and PERSISTED, sealing a farm interior across sessions); CAPTURE_VERSION 2 -> 3 auto-discards existing stores. - Sealed-destination retarget: when the reverse probe proves a clicked tile unreachable and the substitute search reached its rim, the walk retargets to the rim once — no more 50k-node sealed replans per pass. - Progress-aware walk budget + eight-stage pass_slow stopwatch (WalkPassStats) + far-unreachable pre-gate (FrontierDecision). Baseline regenerated on-branch; verified identical to the walker-only delta. Full suite (:client:runUnitTests) green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
3fd0a03 to
97fee66
Compare
|
Agreed — splitting it. Proposed stack, each cut from the
One adjustment to your sketch: the executor decomposition and the door ledger/cascade can't be honestly separated — the door subsystem is one of the extracted components, and an intermediate "decomposed but with old door behavior" state never existed and was never live-tested; manufacturing it for review would put synthetic, untested code in front of you. PR 4 carries both, with behavior-preservation evidence. Parts 1 and 2 are independent and will open first; 3 and 4 follow as their predecessors merge so each stays a clean cut from 🤖 Generated with Claude Code |
What
The walker as it runs on my fork today, delivered as one clean commit cut directly from the current `development` tip (post-revert of #1832), so it auto-merges with no unrelated history attached.
Support-file changes are limited to what the walker compiles against: `Rs2Tile` (edge passability), `Rs2Magic`/`Rs2Staff`/`Rs2Tome` (cast + rune providers), `Rs2LeaguesTransport` injection, and the client build script (source set + verification tasks).
Why
The walker's runtime executor was the failure source (path generation was healthy). This is several weeks of log-driven fixes, each verified on live walks — multi-gate corridors that took minutes now run in ~90–120s; long cross-map walks (e.g. Lumbridge→Varlamore, 2 gates + 2 NPC travels) complete clean with zero recovery interventions.
Notes for review
🤖 Generated with Claude Code
Update 2026-08-14 (second commit)
A day of log-driven reliability fixes on top of the original snapshot, each live-verified on the route that exposed it:
pass_slow) for diagnosing slow passes from logs.Full suite green on the branch; guardrail baseline regenerated on-branch.