Commit Graph

  • 3ed47ed822 fix: raise maintenance budget for cross-act routes; document Trav findings (#40) main origin/main origin/HEAD Alex 2026-09-02 10:13:46 +02:00
  • ec6599f6d3 Merge pull request #39 from alexpolo1/fix/pather-abort-never-fired Alex 2026-08-29 00:52:03 +02:00
  • b8a36e8231 docs: operating handover — run, diagnose, and what is still outstanding origin/fix/pather-abort-never-fired alexpolo1 2026-08-29 00:16:52 +02:00
  • 1c19b8bdc8 fix(pather): scan for the threshold BEFORE the anti-stuck move alexpolo1 2026-08-28 22:21:06 +02:00
  • f43824f11d fix(pather): the heading-rejection abort never actually fired alexpolo1 2026-08-28 21:57:35 +02:00
  • b5922b6b19 Merge pull request #38 from alexpolo1/fix/game-menu-guard Alex 2026-08-28 19:30:08 +02:00
  • a139fb3230 fix(view): pause the panel check during save_and_exit — the menu guard raced the shutdown alexpolo1 2026-08-28 19:26:45 +02:00
  • 914a107a72 fix(health): detect and close the in-game ESC menu — one bug behind three incidents alexpolo1 2026-08-28 18:53:15 +02:00
  • 9c06cd8474 Merge pull request #37 from alexpolo1/release/v0.10.0 v0.10.0 Alex 2026-08-28 17:05:38 +02:00
  • e17b8c6c94 release: v0.10.0 — the stealth subsystem actually runs origin/release/v0.10.0 alexpolo1 2026-08-28 17:04:38 +02:00
  • 3597c01b17 Merge pull request #36 from alexpolo1/fix/walk-hud-guard Alex 2026-08-28 17:04:11 +02:00
  • ee39aa5dbf test: scope the HUD-click invariant to every movement method, not just move() alexpolo1 2026-08-28 16:57:01 +02:00
  • e6ba9ad830 fix(char): guard walk() against HUD clicks too, and set a >=5h session budget alexpolo1 2026-08-28 16:44:33 +02:00
  • 48f46fba7f Merge pull request #35 from alexpolo1/fix/hud-click-guard Alex 2026-08-28 15:09:53 +02:00
  • bc398c471f fix(char): apply move jitter BEFORE the HUD guard, not after origin/fix/hud-click-guard alexpolo1 2026-08-28 15:04:01 +02:00
  • 91e201c5f6 fix(char): move() clicked into the HUD and toggled the loot filter alexpolo1 2026-08-28 14:55:38 +02:00
  • 74c3050163 Merge pull request #31 from alexpolo1/feat/prices Alex 2026-08-28 14:47:10 +02:00
  • ce394c2cb6 Merge pull request #34 from alexpolo1/fix/restart-loop-cap Alex 2026-08-28 14:46:54 +02:00
  • 0ce92b4e7c Merge pull request #32 from alexpolo1/tools/spellbook-mapper Alex 2026-08-28 14:46:40 +02:00
  • 3942ad4cf5 docs: how to tell an AFK break from a stuck bot, and why break lengths lie alexpolo1 2026-08-28 14:42:12 +02:00
  • 913eeeff75 fix(stealth): cap the real AFK idle at ~15m, not ~26m alexpolo1 2026-08-28 14:36:33 +02:00
  • dfd64b8f4d fix(bot): bound the restart loop — a persistent failure restarted forever alexpolo1 2026-08-28 09:23:22 +02:00
  • a7e9f4e50f Merge pull request #33 from alexpolo1/feat/stealth-wiring Alex 2026-08-28 14:15:50 +02:00
  • 1f440cfed2 fix(health): detect and close CENTRED panels — Chronicle blocked every template match origin/feat/stealth-wiring alexpolo1 2026-08-28 13:28:57 +02:00
  • c8e63bc9fa fix(stealth): roll the AFK break on the path a single-route rotation actually takes alexpolo1 2026-08-28 12:46:41 +02:00
  • fd889a4df7 tools(spellbook): detect grid state, template-match the hotkey labels origin/tools/spellbook-mapper alexpolo1 2026-08-28 10:42:36 +02:00
  • 2feb13f44a tools: add spellbook mapper — read skill binds from the game, compare to config alexpolo1 2026-08-28 10:27:07 +02:00
  • 5b386391df prices: diablo2.io scraper + discord report + FG date fix + refreshed data origin/feat/prices alexpolo1 2026-08-28 10:19:02 +02:00
  • 963b19dbe5 fix(control): accepted hermes connections were non-blocking — the root of every socket timeout alexpolo1 2026-08-28 06:50:59 +02:00
  • 93185cb93c fix(control): make hermes 'start' idempotent and report pause state in status alexpolo1 2026-08-28 06:40:19 +02:00
  • 2162046dac fix(pather): abort after repeated heading rejections instead of guessing alexpolo1 2026-08-28 01:25:55 +02:00
  • 55075d2c23 fix(town): never fall back to Qual-Kehk when Tyrael is unreachable alexpolo1 2026-08-28 01:19:27 +02:00
  • 83c211bd5f fix(pickit): stealth pickup-skip spun on one item until the phase timed out alexpolo1 2026-08-28 01:11:49 +02:00
  • 31dacab9e3 test: pin the act-margin invariant for BOTH act-deciding functions alexpolo1 2026-08-28 01:03:01 +02:00
  • 0a4575ea6a fix(town): apply the Bug 28 act-margin rule to wait_for_town_spawn too alexpolo1 2026-08-28 00:59:13 +02:00
  • f0f50a9332 perf(town): stop pending sales from triggering the A5->A4 vendor trip alexpolo1 2026-08-28 00:54:49 +02:00
  • 2966ba4f7b Merge pull request #29 from alexpolo1/feat/stealth-wiring Alex 2026-08-28 00:53:11 +02:00
  • 8aa150d6a3 test: use a neutral character name in the personality seed test alexpolo1 2026-08-28 00:47:23 +02:00
  • 371abafa35 fix(stealth): actually wire the per-game chicken roll, and make the manifest check call sites alexpolo1 2026-08-28 00:43:01 +02:00
  • 00e047db98 feat(stealth): session rhythm, idle behaviour, and unproductive actions alexpolo1 2026-08-28 00:35:31 +02:00
  • 4bdc5b90db fix(input): an unbound skill key is a no-op, not a thread-killing ValueError alexpolo1 2026-08-28 00:18:39 +02:00
  • 5211564df4 fix(stealth): manifest reports a 0% behaviour as disabled, not wired alexpolo1 2026-08-28 00:17:20 +02:00
  • e42211231e fix(paladin): stop pressing unbound skill keys — F4 was toggling the loot filter alexpolo1 2026-08-28 00:15:33 +02:00
  • c3557678d5 feat(stealth): implement the four-phase remediation end to end alexpolo1 2026-08-28 00:02:55 +02:00
  • da83f71bef fix(stealth): make configured stealth behaviour actually run alexpolo1 2026-08-27 23:52:45 +02:00
  • 3d153e67f5 Merge pull request #28 from alexpolo1/stable Alex 2026-08-27 22:29:49 +02:00
  • f70e118f88 Merge remote-tracking branch 'origin/main' into stable alexpolo1 2026-08-27 22:25:22 +02:00
  • 11186e2c7d fix(town): A5 waypoint HUD false-positive, safe merc-panel dismiss, Tyrael for resurrect alexpolo1 2026-08-27 21:37:33 +02:00
  • 6ac1105fc7 fix(merc): always dismiss the panel the merc check opens (CHRONICLE stayed up all game) alexpolo1 2026-08-27 20:17:38 +02:00
  • cad7d898a4 Merge pull request #27 from alexpolo1/stable Alex 2026-08-27 19:40:49 +02:00
  • 4de8f6192e Merge remote-tracking branch 'origin/main' into stable alexpolo1 2026-08-27 19:39:56 +02:00
  • 7763afdcb8 ci: don't fail the build when the coverage artifact upload hits the storage quota alexpolo1 2026-08-27 19:22:35 +02:00
  • c0e5241eb9 Merge pull request #26 from alexpolo1/stable Alex 2026-08-27 19:13:50 +02:00
  • 831e0d9319 docs: refresh post-mortem commit hashes after the pre-PR history rewrite alexpolo1 2026-08-27 19:10:46 +02:00
  • 489f779849 merge: bring origin/main into stable ahead of the PR alexpolo1 2026-08-27 19:10:19 +02:00
  • 402c768fc8 docs: add the run_pindle post-mortem (26-27 Aug 2026) alexpolo1 2026-08-27 19:03:26 +02:00
  • 2e7517f9b8 docs: how to read FAIL> records and tune runs from the timing digest alexpolo1 2026-08-27 18:22:31 +02:00
  • 9325c9cc63 feat(discord): 2-hourly timing + failure digest, and self-contained FAIL> records alexpolo1 2026-08-27 18:21:36 +02:00
  • 8da4c8eb9d feat(log): time every phase and fold stealth into one spawn-to-loot timeline alexpolo1 2026-08-27 18:07:33 +02:00
  • f01610e53f feat(log): constant town timeline — every maintenance step start/ok/skip/fail alexpolo1 2026-08-27 17:38:33 +02:00
  • e976749910 fix(npc): raise grid-sweep name-tag threshold so it stops clicking noise alexpolo1 2026-08-27 17:12:17 +02:00
  • dfacb12393 fix(main): catch EOFError on shutdown so a clean exit stops logging a fake crash alexpolo1 2026-08-27 16:50:46 +02:00
  • 2402c18e06 fix(inventory): stash protected items the pickit rejected instead of hoarding them alexpolo1 2026-08-27 16:04:26 +02:00
  • 4a5459ab15 config: let the pickit decide on charms, freeing inventory slots for the cube alexpolo1 2026-08-27 15:56:53 +02:00
  • a213509a03 fix(a5): stop burning two 4s timeouts before walking to the waypoint alexpolo1 2026-08-27 15:38:57 +02:00
  • 938554e622 fix(maintenance): top up ID scrolls at 8 remaining instead of 2 alexpolo1 2026-08-27 08:01:40 +02:00
  • b7ce002e4e config: stop blocking shield sales — 130 blocked sells clogged the pack alexpolo1 2026-08-27 06:40:15 +02:00
  • fa72da56e3 fix(merc): stop re-hunting an undetectable resurrect NPC every game (~80s each) alexpolo1 2026-08-27 06:26:01 +02:00
  • abe0a54849 fix(town): don't decide the act on a 1.7pp template margin — A5 pathing ran inside Act 4 alexpolo1 2026-08-27 06:04:39 +02:00
  • 4db82cfcd6 fix(pindle): don't hard-fail the portal retry when no town marker is visible alexpolo1 2026-08-26 20:58:58 +02:00
  • 97703acf85 config: disable gem transmuting; document the live pickit set and keep/id/sell interaction alexpolo1 2026-08-26 19:04:50 +02:00
  • 5df9ff4732 fix(transmute): gem conversion ran in the PERSONAL tab — tab click missed the tab bar alexpolo1 2026-08-26 18:26:55 +02:00
  • 98e12c0e00 fix(pindle): restore Pindle runs — portal template, fake success, wall-walk, false chicken alexpolo1 2026-08-26 12:30:32 +02:00
  • e9b6c71607 Merge pull request #25 from alexpolo1/baalxp Alex 2026-08-26 06:03:27 +02:00
  • c26f249268 fix(input): snap cursor to exact target before click (SetCursorPos can land 1-2px off) alexpolo1 2026-08-25 00:26:44 +02:00
  • a014fc538e fix(baal_xp): harden handler — real DeathManager, stealth hide-click, exception safety, on_end_run town shortcut, config enabled parse alexpolo1 2026-08-24 23:13:00 +02:00
  • 09bfd330e6 feat(baal_xp): join public Baal games, hide, collect XP, leave alexpolo1 2026-08-24 22:30:04 +02:00
  • ce930f2a76 feat(tools): add launch_d2r — direct exe launch with a Play-button fallback alexpolo1 2026-08-23 08:30:39 +02:00
  • c8a6657b0a feat(cold_plains): map-based walk-back + self-sustain for no-TP levelling chars alexpolo1 2026-08-22 20:41:12 +02:00
  • 1d8a6657e2 fix(melee_hunt): make move/scan/attack a fixed rotation, not a fallback alexpolo1 2026-08-22 20:09:20 +02:00
  • 81c8d65375 fix(set_controls_keyo): also cover builds without skill_preflight rules alexpolo1 2026-08-22 08:39:43 +02:00
  • 28b7c210d8 fix(set_controls_keyo): verify the active build's skills, not a hardcoded list alexpolo1 2026-08-22 08:21:44 +02:00
  • aa48c29df8 fix(set_controls_keyo): select .keyo by char_name, not the profile name alexpolo1 2026-08-22 07:46:31 +02:00
  • f1b0f6439c feat(tools): add melee_hunt — motion-based monster scan with staff attacks alexpolo1 2026-08-22 19:20:58 +02:00
  • cf4c557a26 docs(bot): clarify walk-back town marker semantics in _walk_back_to_town alexpolo1 2026-08-22 14:51:07 +02:00
  • 7a7950e752 feat(bot): support no-TP levelling chars (cold-plains-only grinder) alexpolo1 2026-08-22 14:11:05 +02:00
  • fc9a7bfae1 fix(misc): make focus_d2r_window actually win the foreground alexpolo1 2026-08-22 09:20:45 +02:00
  • fd82f0ff05 feat(tools): add firebolt_roam — standalone roam-and-cast for levelling alexpolo1 2026-08-22 09:00:55 +02:00
  • 394aca35f4 fix(messages): don't let an optional Discord import take down the whole bot alexpolo1 2026-08-22 09:00:55 +02:00
  • e091a3cca4 feat(run): add cold_plains — roam an outdoor area and kill with one skill alexpolo1 2026-08-22 08:47:16 +02:00
  • f69d5c01c4 fix(skill_preflight): add fohdin build support alongside hammerdin alexpolo1 2026-08-08 13:48:02 +02:00
  • 14f5876524 fix: recapture A5 waypoint template (112x125, 24KB vs old 201x120, 68KB) alexpolo1 2026-08-08 11:28:46 +02:00
  • 9e4ef6721a fix(test): skip log analyzer tests that require historical failure data on CI alexpolo1 2026-08-08 10:05:08 +02:00
  • c04c60ead7 release: v0.9.1 — production cleanup alexpolo1 2026-08-08 09:59:31 +02:00
  • 35aa13473e Remove personal profile references from repo files v0.9.1 alexpolo1 2026-08-07 20:59:52 +02:00
  • e03f866fbb fix: improve resilience for pindle, A5 WP, stash, NPC, and Diablo battle alexpolo1 2026-08-07 16:21:07 +02:00
  • 968c75fefd feat: self-healing test framework with log analysis and auto-fixing alexpolo1 2026-08-07 15:25:17 +02:00
  • 7839b4ed82 fix: replace GetAsyncKeyState polling with WH_KEYBOARD_LL hook alexpolo1 2026-08-07 14:53:20 +02:00
  • 75e88dbdc2 fix: don't skip bot startup when SetWindowPos is denied alexpolo1 2026-08-07 14:46:47 +02:00
  • c5d9fe4541 fix: catch SetWindowPos access denied in all window functions alexpolo1 2026-08-07 14:33:07 +02:00