Skip to content

Release Microbot 2.6.24: promote development updates - #1870

Merged
chsami merged 81 commits into
mainfrom
codex/release-microbot-2.6.24
Sep 20, 2026
Merged

chsami merged 81 commits into
mainfrom
codex/release-microbot-2.6.24

Conversation

@chsami

@chsami chsami commented Sep 20, 2026

Copy link
Copy Markdown
Owner

Promote the reviewed development changes to stable and release Microbot 2.6.24, preserving the RuneLite 1.12.39 update and interaction-highlight fix already on main.

Includes the newly merged bank-cache persistence/refresh (#1868), bank container widget correction (#1866), and walker execution/recovery integration (#1856), plus the previously merged development updates for walker planning/transports, continuous navigation and controls, Break Handler V2, death recovery, Grand Exchange retries, world hopping, POH detection, and Quest Helper.

The release commit merges development 59e44f465573c017e58f2b9da8d4c0785aaed77a into stable 18956bfe8a and increments only microbot.version from 2.6.23 to 2.6.24. There were no merge conflicts. The automatic client Gradle integration preserves stable build configuration and includes the pinned planner source/resources and comparison tasks. No blocked or draft PRs were added.

Validation: client compilation and reflection metadata generation passed; generated reflection keys are unchanged (timestamp-only churn discarded). Full CI-equivalent build/unit tests and shaded artifact validation are recorded below before merge. Existing transport TSV trailing tabs are preserved as empty fields.

Completed local validation: ./ci/build.sh passed (full buildAll plus 1855 unit tests, 1 skipped, no failures/errors); :client:assemble passed. The shaded release JAR identifies Microbot 2.6.24 / RuneLite 1.12.39 and includes the pinned planner and both collision-resource namespaces.

sami3p and others added 30 commits August 5, 2026 20:08
…ation

[codex] unify walker planning with pinned upstream core
…nc-foundation"

This reverts commit 5c1afb1, reversing
changes made to 9066ed8.
[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 #1838 into reviewable PRs. Full suite
(:client:runUnitTests) green on this branch.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Add optional long and mega breaks to Break Handler V2
feat(input): yield input to the user and clean up what the bot emits
Fix Quest Helper minimap arrows and sync quest list
fix(shortestpath): refresh transport data and reopen Al Kharid Palace
Part 2 of splitting #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>
build(walker): vendor upstream planner core as a pinned source set
… collision, honest costs

Part 3 of splitting #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>
MuffinKid23 and others added 28 commits September 8, 2026 14:32
…ause-loop

Fix Break Handler V2 pause break completion
Fix POH Web Config detection for unknown Nexus destinations
…etries

fix(grandexchange): bound quantity entry retries
…rols

feat(webwalker): add manual walking controls and status notices
…scene-camera

Improve webwalker camera and route continuity
Rs2Bank.emptyContainers() clicked widget 786471, which decodes to (12,39) -
a non-interactable LINE decoration in the bank interface, not a button.

The call failed silently rather than loudly: getWidget() returned non-null so
the null guard passed, clickWidget() dispatched against a widget with no
actions, and the method still returned true. Callers saw success and no
containers were ever emptied.

Use InterfaceID.Bankmain.DEPOSITCONTAINERS = (12,45) instead. Verified against
a live client at the Grand Exchange: (12,45) is the GRAPHIC carrying the
"Empty containers" action with interactable: true, while (12,39) reports type
LINE with an empty action list.

emptyContainers() has no in-tree callers but is public API surface, so every
external script calling it has been a no-op.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…cution

fix(walker): complete runtime execution and recovery integration
@coderabbitai

coderabbitai Bot commented Sep 20, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 313 files, which is 213 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.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Advanced

Run ID: bd458fc3-d242-412c-b99a-be543cb36b64

📥 Commits

Reviewing files that changed from the base of the PR and between 18956bf and 274c788.

⛔ Files ignored due to path filters (15)
  • runelite-client/src/main/resources/net/runelite/client/plugins/microbot/shortestpath/agility_shortcuts.tsv is excluded by !**/*.tsv
  • runelite-client/src/main/resources/net/runelite/client/plugins/microbot/shortestpath/blocked_edges.tsv is excluded by !**/*.tsv
  • runelite-client/src/main/resources/net/runelite/client/plugins/microbot/shortestpath/canoes.tsv is excluded by !**/*.tsv
  • runelite-client/src/main/resources/net/runelite/client/plugins/microbot/shortestpath/collision-map.zip is excluded by !**/*.zip
  • runelite-client/src/main/resources/net/runelite/client/plugins/microbot/shortestpath/gnome_gliders.tsv is excluded by !**/*.tsv
  • runelite-client/src/main/resources/net/runelite/client/plugins/microbot/shortestpath/magic_mushtrees.tsv is excluded by !**/*.tsv
  • runelite-client/src/main/resources/net/runelite/client/plugins/microbot/shortestpath/minecarts.tsv is excluded by !**/*.tsv
  • runelite-client/src/main/resources/net/runelite/client/plugins/microbot/shortestpath/quetzals.tsv is excluded by !**/*.tsv
  • runelite-client/src/main/resources/net/runelite/client/plugins/microbot/shortestpath/restrictions.tsv is excluded by !**/*.tsv
  • runelite-client/src/main/resources/net/runelite/client/plugins/microbot/shortestpath/ships.tsv is excluded by !**/*.tsv
  • runelite-client/src/main/resources/net/runelite/client/plugins/microbot/shortestpath/spirit_trees.tsv is excluded by !**/*.tsv
  • runelite-client/src/main/resources/net/runelite/client/plugins/microbot/shortestpath/teleportation_items.tsv is excluded by !**/*.tsv
  • runelite-client/src/main/resources/net/runelite/client/plugins/microbot/shortestpath/teleportation_minigames.tsv is excluded by !**/*.tsv
  • runelite-client/src/main/resources/net/runelite/client/plugins/microbot/shortestpath/teleportation_spells.tsv is excluded by !**/*.tsv
  • runelite-client/src/main/resources/net/runelite/client/plugins/microbot/shortestpath/transports.tsv is excluded by !**/*.tsv
📒 Files selected for processing (313)
  • .run/Microbot.run.xml
  • .run/Runelite with proxy.run.xml
  • .run/Runelite.run.xml
  • docs/decisions/adr-0007-vendored-planner-correctness-backports.md
  • docs/entity-guides/README.md
  • docs/entity-guides/death.md
  • docs/entity-guides/items.md
  • docs/entity-guides/movement.md
  • docs/entity-guides/worlds.md
  • gradle.properties
  • runelite-client/build.gradle.kts
  • runelite-client/src/main/java/net/runelite/client/plugins/devtools/MicrobotMouseOverlay.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/AGENTS.md
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/Microbot.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/MicrobotConfig.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/MicrobotOverlay.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/MicrobotPlugin.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/Script.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/api/npc/models/Rs2NpcModel.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/breakhandler/breakhandlerv2/BreakHandlerV2Config.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/breakhandler/breakhandlerv2/BreakHandlerV2Overlay.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/breakhandler/breakhandlerv2/BreakHandlerV2Script.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/QuestScript.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/collections/ItemCollections.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/helpers/quests/deserttreasureii/ChestCodeStep.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/helpers/quests/fallenfromgrace/FallenFromGrace.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/helpers/quests/thebloodmoonrises/CastleDrakan.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/helpers/quests/thebloodmoonrises/CastleDrakanActionStep.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/helpers/quests/thebloodmoonrises/CastleDrakanGoalStep.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/helpers/quests/thebloodmoonrises/CastleDrakanRoomNetwork.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/helpers/quests/thebloodmoonrises/CastleDrakanRoomStep.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/helpers/quests/thebloodmoonrises/DrakanClockSolver.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/helpers/quests/thebloodmoonrises/GildedBookPuzzle.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/helpers/quests/thebloodmoonrises/TheBloodMoonRises.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/helpers/quests/thebloodmoonrises/treesolvers/TreeSolver.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/helpers/quests/thebloodmoonrises/treesolvers/TreeSolver1.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/helpers/quests/thebloodmoonrises/treesolvers/TreeSolver2.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/helpers/quests/thebloodmoonrises/treesolvers/TreeSolver3.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/helpers/quests/thebloodmoonrises/treesolvers/TreeSolver4.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/helpers/quests/thebloodmoonrises/treesolvers/TreeSolver5.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/helpers/quests/thebloodmoonrises/treesolvers/TreeSolver6.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/helpers/quests/thebloodmoonrises/treesolvers/TreeType.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/helpers/quests/theidesofmilk/TheIdesOfMilk.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/helpers/quests/theredreef/TheRedReef.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/panel/questorders/IronmanOptimalQuestGuide.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/panel/questorders/OptimalQuestGuide.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/panel/questorders/ReleaseDate.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/panel/queststepsection/QuestSectionSection.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/questinfo/ExternalQuestResources.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/questinfo/QuestHelperQuest.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/questinfo/QuestVarbits.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/requirements/item/ItemRequirement.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/requirements/util/Port.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/steps/DetailedQuestStep.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/steps/NpcStep.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/steps/QuestStep.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/steps/WorldEntityStep.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/steps/tools/QuestPerspective.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/util/QuestStepIcon.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/shortestpath/PlannerSelectionMode.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/shortestpath/PohPanel.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/shortestpath/PurchasableItemCatalog.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/shortestpath/ShortestPathConfig.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/shortestpath/ShortestPathPanel.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/shortestpath/ShortestPathPlugin.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/shortestpath/ShortestPathScript.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/shortestpath/Transport.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/shortestpath/TransportExecutionRegistry.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/shortestpath/TransportItemRequirement.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/shortestpath/TransportItemResolver.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/shortestpath/UPSTREAM_COMPARISON.md
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/shortestpath/WEBWALKER_IMPROVEMENT_PLAN.md
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/shortestpath/WalkingNoticeOverlay.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/shortestpath/pathfinder/CollisionMap.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/shortestpath/pathfinder/LearnedBlockedEdges.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/shortestpath/pathfinder/Node.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/shortestpath/pathfinder/PathEdge.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/shortestpath/pathfinder/PathTerminationReason.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/shortestpath/pathfinder/Pathfinder.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/shortestpath/pathfinder/PathfinderConfig.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/shortestpath/pathfinder/TransportNode.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/shortestpath/pathfinder/TransportPlanningPolicy.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/shortestpath/pathfinder/live/LiveCollisionCapture.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/shortestpath/pathfinder/live/LiveCollisionConflicts.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/shortestpath/pathfinder/live/LiveRouteValidator.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/testing/TestRunnerPlugin.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/testing/webwalker/F2PWebWalkerHarnessPlugin.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/testing/webwalker/F2PWebWalkerRoute.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/testing/webwalker/GeLumbridgeTeleportHarnessPlugin.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/Global.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/bank/Rs2Bank.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/bank/Rs2BankData.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/camera/Rs2Camera.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/death/DeathsOfficeLocation.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/death/Rs2Death.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/depositbox/Rs2DepositBox.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/gameobject/Rs2GameObject.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/grandexchange/GrandExchangeWidget.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/grandexchange/Rs2GrandExchange.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/input/AwtEmitter.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/input/CanvasInputListener.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/input/InputArbiter.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/input/InputDiagnostics.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/input/InputLoop.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/input/PointerState.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/input/StretchMapper.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/keyboard/Rs2Keyboard.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/leaguetransport/LeaguesTransportInjection.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/leaguetransport/Rs2LeaguesTransport.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/magic/Rs2Magic.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/magic/Rs2Staff.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/magic/Rs2Tome.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/mouse/Mouse.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/mouse/VirtualMouse.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/mouse/naturalmouse/NaturalMouse.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/npc/Rs2Npc.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/npc/Rs2NpcManager.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/player/Rs2Player.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/poh/PohTeleports.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/poh/data/NexusPortal.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/skills/slayer/Rs2Slayer.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/tile/Rs2Tile.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/LoginStabilityPolicy.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/Rs2ActiveRouteStatus.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/Rs2HotAirBalloon.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/Rs2InteractionApproach.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/Rs2PathApi.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/Rs2PlannerCanaryPerformanceStats.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/Rs2PlannerShadowComparison.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/Rs2PlannerShadowContext.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/Rs2PlannerShadowCoverageStats.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/Rs2PlannerShadowStats.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/Rs2PlanningSnapshot.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/Rs2RouteMetrics.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/Rs2RoutePlanner.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/Rs2RoutePolicy.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/Rs2RouteRequest.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/Rs2RouteResult.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/Rs2RouteStep.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/Rs2RouteTermination.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/Rs2TerminalTravelMode.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/Rs2TransportEdge.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/Rs2TransportExecutor.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/Rs2TransportItemRequirement.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/Rs2TransportLoadout.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/Rs2TransportPlanningPolicy.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/Rs2TransportType.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/Rs2Walker.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/Rs2WalkerDoors.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/Rs2WalkerMovement.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/Rs2WalkerShadowExecutionStats.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/Rs2WalkerTransports.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/TransportRouteAnalysis.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/UpstreamRoutePlanner.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/WalkPassStats.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/WalledDoorClaimPolicy.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/awaits/Rs2WalkerRuntimeAwaits.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/banking/Rs2WalkerBankingPlanner.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/door/DoorAttemptLedger.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/door/Rs2DoorClassifier.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/door/Rs2DoorDetection.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/door/Rs2DoorGeometry.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/door/Rs2DoorHandler.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/door/Rs2DoorProbe.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/door/Rs2WalkerAwaits.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/lifecycle/Rs2WalkerLifecycleRuntime.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/obstacle/LiveScene.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/obstacle/ObstacleResolution.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/obstacle/Rs2LiveScene.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/obstacle/Rs2ObstacleHandler.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/obstacle/TransportResolver.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/puzzles/DraynorBasementSolver.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/recovery/CantReachTargetRecovery.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/recovery/FrontierDecision.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/recovery/RouteRecovery.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/recovery/TailDecision.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/segment/SegmentGate.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/stall/Rs2WalkerStallPolicy.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/state/WalkExit.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/state/WalkerRouteState.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/world/Rs2WorldUtil.java
  • runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/ping/Ping.java
  • runelite-client/src/test/java/net/runelite/client/plugins/devtools/MicrobotMouseOverlayTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/MicrobotConfigTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/breakhandler/breakhandlerv2/BreakHandlerV2DeferralTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/shortestpath/LiveCollisionTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/shortestpath/RouteClickTargetRegressionTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/shortestpath/SealedTargetFastPathTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/shortestpath/ShortestPathCoreTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/shortestpath/ShortestPathManualWalkingTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/shortestpath/ShortestPathScriptInputYieldTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/shortestpath/ShortestPathTier1RegressionTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/shortestpath/TransportExecutionRegistryTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/shortestpath/TransportItemRequirementTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/shortestpath/TransportSkillRequirementDataTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/shortestpath/WalkerRouteCorpusTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/shortestpath/pathfinder/LearnedBlockedEdgeSessionTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/shortestpath/pathfinder/LearnedBlockedEdgeStrikesTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/shortestpath/pathfinder/LearnedBlockedEdgesTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/shortestpath/pathfinder/PathfinderConfigTransportRefreshHashTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/shortestpath/pathfinder/PathfinderHomeTeleportTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/shortestpath/pathfinder/PathfinderItemRequirementTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/shortestpath/pathfinder/PathfinderPathMaterializationTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/shortestpath/pathfinder/PathfinderSpecialRequirementTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/shortestpath/pathfinder/PathfinderTerminationReasonTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/shortestpath/pathfinder/PortalNexusConfigTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/shortestpath/pathfinder/TransportPlanningPolicyTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/shortestpath/pathfinder/live/LiveCollisionConflictsTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/testing/TestRunnerPluginTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/testing/webwalker/F2PWebWalkerRouteTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/bank/Rs2BankMirrorCacheTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/input/CanvasBoundaryTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/input/FocusLossReleasesHeldInputTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/input/GestureAbortTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/input/InputArbiterTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/input/InputDiagnosticsTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/input/InputEmissionTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/input/YieldOnHumanTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/keyboard/Rs2KeyboardHeldKeysTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/poh/data/NexusPortalTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/tile/Rs2TileEdgePassableTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/walker/LocalPlannerComparisonMain.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/walker/LoginStabilityPolicyTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/walker/RouteProgressWatermarkTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/walker/Rs2HotAirBalloonTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/walker/Rs2InteractionApproachTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/walker/Rs2PathApiPlanningTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/walker/Rs2PlannerShadowContextTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/walker/Rs2WalkerStaminaTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/walker/Rs2WalkerTransportsCombatTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/walker/Rs2WalkerUnitTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/walker/TargetWalkabilityPreflightTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/walker/TransportRouteAnalysisTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/walker/UpstreamRoutePlannerTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/walker/WalkExitTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/walker/WalkSessionStateResetTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/walker/WalkerArchitectureGuardTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/walker/WalledDoorClaimPolicyTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/walker/banking/BankedTransportItemPlanningTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/walker/door/DoorAttemptLedgerTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/walker/door/Rs2DoorClassifierTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/walker/door/Rs2DoorGeometryTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/walker/door/Rs2DoorHandlerTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/walker/door/Rs2DoorProbeTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/walker/door/Rs2WalkerAwaitsTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/walker/obstacle/MineableResolverTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/walker/obstacle/ObstacleRegistryTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/walker/obstacle/TransportResolverTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/walker/puzzles/DraynorBasementSolverTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/walker/recovery/CantReachTargetRecoveryTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/walker/recovery/FrontierDecisionTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/walker/recovery/RouteRecoveryTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/walker/recovery/TailDecisionTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/walker/segment/SegmentGateTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/util/walker/stall/Rs2WalkerStallPolicyTest.java
  • runelite-client/src/test/java/net/runelite/client/plugins/worldhopper/ping/PingTest.java
  • runelite-client/src/test/java/shortestpath/pathfinder/VendoredPathfinderRegressionTest.java
  • runelite-client/src/test/java/shortestpath/transport/VendoredTransportRegressionTest.java
  • runelite-client/src/test/resources/threadsafety/client-thread-guardrail-baseline.txt
  • runelite-client/src/upstreamPlanner/ADAPTER_PATCHES.md
  • runelite-client/src/upstreamPlanner/LICENSE
  • runelite-client/src/upstreamPlanner/README.md
  • runelite-client/src/upstreamPlanner/UPSTREAM_REVISION
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/Destination.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/DestinationRequirements.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/ItemVariations.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/JewelleryBoxTier.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/PrimitiveIntHashMap.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/PrimitiveIntList.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/ShortestPathConfig.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/ShortestPathPlugin.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/TeleportationItem.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/TileCounter.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/TileStyle.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/Util.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/WorldPointUtil.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/leagues/LeagueModeState.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/leagues/LeagueRegion.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/leagues/LeagueRegionChecker.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/pathfinder/AbstractNodeKind.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/pathfinder/CollisionMap.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/pathfinder/EdgeOverride.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/pathfinder/IntDeque.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/pathfinder/IntMinHeap.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/pathfinder/NodeGraph.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/pathfinder/OrdinalDirection.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/pathfinder/PathStep.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/pathfinder/PathTerminationReason.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/pathfinder/Pathfinder.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/pathfinder/PathfinderConfig.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/pathfinder/PathfinderResult.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/pathfinder/SplitFlagMap.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/pathfinder/TransportAvailability.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/pathfinder/VisitedTiles.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/pathfinder/WildernessChecker.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/transport/BankPickupRequirements.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/transport/LoadInterner.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/transport/Transport.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/transport/TransportLoader.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/transport/TransportType.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/transport/TransportTypeConfig.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/transport/parser/FieldParser.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/transport/parser/ItemRequirementParser.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/transport/parser/QuestParser.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/transport/parser/SkillRequirementParser.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/transport/parser/TransportRecord.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/transport/parser/TsvParser.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/transport/parser/VarCheckType.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/transport/parser/VarRequirement.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/transport/parser/VarRequirementParser.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/transport/parser/WorldPointParser.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/transport/requirement/ItemRequirement.java
  • runelite-client/src/upstreamPlanner/src/main/java/shortestpath/transport/requirement/TransportItems.java

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@chsami
chsami merged commit 03a72b7 into main Sep 20, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants