summaryrefslogtreecommitdiffstats
path: root/uv.lock
diff options
context:
space:
mode:
authorblasty <peter@haxx.in>2026-07-31 09:47:15 +0200
committerblasty <peter@haxx.in>2026-07-31 09:47:15 +0200
commit01802644a4256868342644df87743884b7962a44 (patch)
tree2f7ae49fd12a1df2574a4fc2a0a8f52423630c0e /uv.lock
parentrpc: stop lying to the driver about renames, modals and teardown (diff)
downloadida-tui-01802644a4256868342644df87743884b7962a44.tar.gz
ida-tui-01802644a4256868342644df87743884b7962a44.tar.xz
ida-tui-01802644a4256868342644df87743884b7962a44.zip
rpc: a navigation that timed out reported success and corrupted the next edit
goto/open ran `settle(app, pred, timeout)` and threw the result away. On a large database the listing build routinely outruns the default 20 s, so the verb returned a normal snapshot while the view had not moved. Every subsequent rename/comment then applied to wherever the caller *used* to be. Reproduced on a live pane against a 4 MB Go binary: `goto 0x1002019b0` returned ok with the view still at 0x100001000, and the following `rename main_inflate_zlib` renamed internal/abi.BoundsDecode instead — then the rename's own snapshot showed `main_inflate @ 0x1002019b0`, because by the time it was taken the goto had finally landed. Success reported, right-looking readback, wrong function edited, and it survived a save. This is what made an agent session stamp net_writeFull onto main_usage and conclude the tooling was flaky. goto/open now raise TimeoutError naming the target and where we actually are, suggesting a larger timeout=. _press() does the same for follow/toggle_view/ hex/xrefs/structs, which had the identical "predicate ignored" shape. tests/test_scenarios.py: 212 passed, 0 failed.
Diffstat (limited to 'uv.lock')
0 files changed, 0 insertions, 0 deletions