Conversation
…-foundation [codex] unify walker planning with pinned upstream core
[codex] revert walker upstream sync from development
Add the Rs2Death utility, Death's Office locations, event wiring, documentation, and client-thread guardrail entries. Preserve recovery state when grave or office collection is incomplete so callers can retry safely.\n\nRepository Build and the full local unit suite passed; all review threads are resolved.
Scripts now emit through an input layer that gives way to real input. Moving the mouse or pressing a key on the game canvas pauses scripts, aborts the gesture in flight, releases anything held down, and resumes after an idle window. Threshold, delay and an off switch are configurable. What the bot emits now matches the shape of real input: the click triad without the spurious ENTERED/EXITED pair, position read from actual events instead of a bot-only field that human motion could never update, and canvas boundary crossings in both directions, so leaving and returning looks like a pointer that exists. Crossing outward also fixes the moveMouseOffScreen antiban setting, which never left the canvas. MouseMotion clamps its destination to the canvas, so the cursor walked to the edge and stopped there while the client went on believing a pointer was over it. Fixes found along the way: - a takeover mid-typeString sprayed the rest of the string into the widget - a key held when the window lost focus stayed down forever - the cursor overlay drew beneath the right-click menu
All three referenced a module that does not exist. The Gradle project is named runelite with a client subproject, so IntelliJ's module is runelite.client.main, where the files asked for client.main and, in the proxy one, plain client. With no module to resolve, the generated command line carried no classpath and every run died before reaching main(). Shorten the classpath through an args file, since the full one exceeds what Windows accepts on a command line. Drop the JDK pin from the two configs that carried one. It was an SDK name from one person's IntelliJ, and the project compiles to Java 11 bytecode and builds on Java 11 in CI, so the project SDK is already the right answer.
Refreshed transport data from several weeks of live walking, delivered as data only — every file parses with the loader already on development (unknown header columns are ignored; no code changes). - agility_shortcuts, canoes, minecarts, quetzals, ships, transports, teleportation_items/spells/minigames: coverage and coordinate corrections found by live walks. - DURATION CORRECTIONS: spirit tree rows had a blank Duration column and non-teleport transports get no minimum, so every spirit tree edge cost the planner exactly ZERO — it picked them even when a short walk was faster. Spirit trees blank -> 10, gnome gliders 8 -> 12, magic mushtrees blank -> 6, proportionate to the existing convention (fairy ring 5, quetzal 6, charter 6, boats 9, ships 10). - blocked_edges/restrictions: entries for doors that never open and edges the live game refuses. - collision-map.zip regenerated (newer map areas). Part 1 of splitting chsami#1838 into reviewable PRs. Full suite (:client:runUnitTests) green on this branch. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…break Add optional long and mega breaks to Break Handler V2
feat(input): yield input to the user and clean up what the bot emits
…ap-arrow Fix Quest Helper minimap arrows and sync quest list
fix(shortestpath): refresh transport data and reopen Al Kharid Palace
Part 2 of splitting chsami#1838 into reviewable PRs. Vendors the upstream (Skretzo) shortest-path planner core under runelite-client/src/upstreamPlanner as a pinned, self-contained source set (zero imports from the microbot tree — verified), with the minimal gradle wiring: the main source set includes the pinned tree, processResources copies the existing collision archive to the root path the upstream core loads from, and checkstyle/PMD exclude the vendored package so upstream code style stays untouched. Nothing on this branch invokes the vendored planner: no runtime behavior changes and no entry points. It exists so convergence work can run both planners in one JVM for side-by-side route comparison; the comparison harness tasks arrive with part 4, where their entry points (walker test tree) live. Full suite (:client:runUnitTests) green on this branch. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…anner build(walker): vendor upstream planner core as a pinned source set
… collision, honest costs Part 3 of splitting chsami#1838 into reviewable PRs (opens after part 1). The planning engine as it runs on the fork today: - Sealed-target reverse probe: a bounded reverse flood proves an unreachable destination SEALED in ~1ms and substitutes its walkable rim, replacing the 1.1M-node full-world floods an unreachable tile used to cost (measured 37 times in one evening); the search also remembers a REACHED rim substitute so the executor can retarget once. - Live collision: capture of the loaded scene's collision into a persisted per-region overlay (doors and runtime-cleared obstacles get full-footprint deferral to the static map — a closed door's corner diagonals must never persist as walls), with conflict telemetry, a live route validator, and versioned stores that self-discard when capture semantics change. - Transport planning: config-state cache keyed by inventory/varbit fingerprint (refresh dropped from ~500ms to single-digit ms on cache hits), TransportExecutionRegistry + planning-policy seam so the planner only admits transports the executor can actually perform, item requirement resolution (staff/tome/rune providers), and PathEdge/PathTerminationReason for honest terminations. - Session-scoped learned blocked edges replace the persisted store (blocked_edges.tsv is the durable authority). Seam notes for review: dev's ShortestPathPlugin gains ONE verbatim overload (override(String, PlannerSelectionMode)) and Rs2PathApi ONE facade method (invalidateTransportRefreshCache) — the full plugin and walker wiring arrive in part 4, so the live-collision refresh loop and planner-selection machinery are compiled and unit-tested here but not yet driven at runtime. Rs2Staff/Rs2Tome/Rs2LeaguesTransport travel as the engine's item/league providers. Full suite (:client:runUnitTests) green, including the route corpus against part 1's data. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…r-v2-pause-loop Fix Break Handler V2 pause break completion
Fix world hopper TCP ping fallback
…ounds Fix POH Web Config detection for unknown Nexus destinations
…tity-retries fix(grandexchange): bound quantity entry retries
…r-controls feat(webwalker): add manual walking controls and status notices
…nuous-scene-camera Improve webwalker camera and route continuity
|
Important Review skippedToo many files! This PR contains 288 files, which is 188 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: Advanced Run ID: ⛔ Files ignored due to path filters (15)
📒 Files selected for processing (288)
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 |
Description:
Restores profile-specific bank cache saving and loading across client restarts. Bank contents refresh on live bank updates, and the walker recognizes restored snapshots for route planning while retaining fresh-update checks for banking actions.
Cache reconstruction uses saved values without dispatching to or waiting for the client thread. Snapshot publication remains synchronized.
Validation: