| Commit message (Expand) | Author | Files | Lines |
| 62 min. | tests: run the scenario suite on a scratch copy, not the tracked targetHEADmain | blasty | 1 | -0/+44 |
| 7 hours | app: delete DisasmView, superseded by the unified listing | blasty | 1 | -2/+2 |
| 9 hours | listing: syntax-highlight assembly from IDA's own token tags | blasty | 1 | -1/+55 |
| 22 hours | load dialog: reachable address field, project mode, and a way back from a bad... | blasty | 1 | -0/+25 |
| 22 hours | loading: ask how to load an unrecognised file, like IDA does | blasty | 1 | -0/+21 |
| 24 hours | nav: one notion of "which pane you're in" — delete _pref | blasty | 1 | -0/+17 |
| 25 hours | nav: don't stack a history entry for the place you're already standing on | blasty | 1 | -0/+15 |
| 25 hours | palette: match case-insensitively in BOTH directions | blasty | 1 | -0/+9 |
| 30 hours | help: lay the cheatsheet out as fluid columns of cards | blasty | 1 | -4/+9 |
| 30 hours | strings: F2 widens the strings browser to the whole project | blasty | 1 | -2/+2 |
| 32 hours | projects: project-wide symbol search over a SQLite FTS5 index (phase 2) | blasty | 1 | -8/+8 |
| 32 hours | exit: ask before quitting with unsaved database changes | blasty | 1 | -6/+36 |
| 32 hours | tests: fix the "filter flake" and the view_toggle cascade — suite is 187/0 | blasty | 1 | -8/+29 |
| 33 hours | ui: drop the footer cheatsheet; F1 opens a key reference instead | blasty | 1 | -7/+31 |
| 34 hours | decomp: Home/End move along the line instead of scrolling to top/bottom | blasty | 1 | -0/+34 |
| 34 hours | retype: 'y' now retypes globals too, not just prototypes and locals | blasty | 1 | -1/+98 |
| 35 hours | split: propagate pure scrolls (wheel/scrollbar) to the companion pane | blasty | 1 | -0/+22 |
| 35 hours | split: keep the companion pane level with the driver's cursor | blasty | 1 | -0/+19 |
| 45 hours | strings: browse every string in the binary and jump to it (IDA's Shift+F12) | blasty | 1 | -1/+44 |
| 46 hours | split: follow the decomp across functions as the listing cursor crosses bounds | blasty | 1 | -0/+13 |
| 46 hours | split: click a pane to drive it (not just Tab) + spell it out in the status | blasty | 1 | -0/+7 |
| 46 hours | split-view phase 4: split-aware status, min-width gate, verified nav | blasty | 1 | -0/+16 |
| 46 hours | split-view phase 3: rich per-line instruction region highlight | blasty | 1 | -0/+21 |
| 48 hours | split-view phase 2: cursor sync + linked-row highlight | blasty | 1 | -0/+36 |
| 2 days | split: guard toggle behind prompt-active; clear _split in the pilot reset | blasty | 1 | -0/+1 |
| 2 days | split-view phase 1: side-by-side listing <-> pseudocode layout | blasty | 1 | -2/+29 |
| 2 days | decomp: fix stuck 'decompiling' spinner when re-opening a loaded function | blasty | 1 | -0/+10 |
| 2 days | decomp: restore the 'decompiling…' overlay on F5/Tab from the listing | blasty | 1 | -6/+7 |
| 2 days | palette: replace the stock Ctrl+P command palette with real ida-tui actions | blasty | 1 | -0/+23 |
| 2 days | hex: freeze the cursor's screen position on scroll (not clamp-to-edge) | blasty | 1 | -12/+17 |
| 2 days | hex: cursor follows the scroll (stays visible on wheel/scrollbar) | blasty | 1 | -4/+5 |
| 2 days | hex: click to place the byte cursor (hex + ascii panes) | blasty | 1 | -0/+22 |
| 2 days | mcp: collapse app + launcher to worker-only | blasty | 1 | -18/+14 |
| 2 days | tests: pass url=""/db=None to IdaTui in the worker pilot path | blasty | 1 | -1/+1 |
| 2 days | tests: add --worker <binary> to run the pilot suite against the idalib worker | blasty | 1 | -5/+16 |
| 3 days | fix: don't let a late navigation steal focus from an open prompt | blasty | 1 | -1/+5 |
| 3 days | listing: two-level indent, address on headers, drop 'near', opcode cap+cycle | blasty | 1 | -3/+3 |
| 3 days | listing: IDA-style function boundary banners in the unified view | blasty | 1 | -0/+25 |
| 3 days | unify: the continuous listing is the one code view; deprecate DisasmView | blasty | 1 | -140/+100 |
| 3 days | listing: F5/Tab decompiles the function under the cursor (IDA-style) — step 2 | blasty | 1 | -0/+18 |
| 3 days | listing: render opcode bytes (shared engine with disasm) — M4/UX step 1 | blasty | 1 | -1/+11 |
| 3 days | app: 'L' opens the continuous segment listing (functions+data interleaved) | blasty | 1 | -0/+27 |
| 4 days | listing: expand struct-typed globals into member rows (M4 item 3) | blasty | 1 | -0/+48 |
| 4 days | app: 'a' — make string literal in the listing (M4 richness) | blasty | 1 | -0/+49 |
| 4 days | app: listing 'n' names the address (can name a bare/undefined byte) | blasty | 1 | -0/+63 |
| 4 days | app: on startup, land on main() (else pop the symbol picker) | blasty | 1 | -3/+36 |
| 4 days | app: 'd' — define typed data in the listing (make_data, M3) | blasty | 1 | -0/+41 |
| 4 days | app: ListingView — virtualized flat code+data listing for regions (M2) | blasty | 1 | -15/+81 |
| 4 days | app: non-function regions — open a flat listing + c/p/u edit verbs (M0) | blasty | 1 | -0/+50 |
| 2026-07-10 | app: multi-line comments via literal \\n (long notes were clipping) | blasty | 1 | -4/+12 |