This website requires JavaScript.
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