Commit Graph
1720 Commits
Author SHA1 Message Date
Ole André Vadla Ravnås 69c706789f Follow the pattern compiler's module API
Compile, then decode through the module. Pass platform before arch,
and default both to the host rather than darwin/arm64.
2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås 53d2c52f1c gtk: Stop leaking every event controller
Add controllers through the binding, which now takes the widget's ref
itself, so the extra ref the helper took no longer outlives them.
2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås 374007158d core: Free host call arguments when a call fails 2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås ff39657cd8 gtk: Let the completion provider forget its view
Hold the view unowned, so the view's own completion object no longer
keeps it alive.
2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås 1ffe1e7470 gtk: Unparent context menus when they close 2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås 703a953ab3 gtk: Fold code and preview colours in the editor
Put fold chevrons in the gutter, fading in while the pointer is over
it, a guide down each open scope, and a placeholder after a folded one.
Number lines past folded ones, and put a swatch before each colour the
server reports.
2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås a744f8ce24 gtk: Encode VM screenshots with GDK 2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås a8d412e202 gtk: Show decoded patterns in the inspector 2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås 5d5cfe2ffe gtk: Add a patterns section with an editor
List pattern files and their types in the sidebar, and create, import,
rename, delete and edit them.
2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås 6eaa8115ea gtk: Move insight refreshes to the sidebar menu 2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås 531468e7b9 gtk: Visualize decoded patterns
Open a field's visualizer from its tree row, and draw each kind in the
render tests.
2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås 1885b87427 gtk: Decode hex dumps against pattern types
Outline decoded fields over the hex view, list them in a tree beside
it, and place types from its context menu. Read more of an insight's
memory when a decode runs out.
2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås ebd2b8ad3a gtk: Wrap the hex caret across rows 2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås 72621a231d ui: Show decoded patterns in the inspector 2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås 2fd413ec9c core: Decode patterns from Pharo
Answer the image's requests on a task and signal a semaphore once
done, so only the asking process waits.
2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås 0659f5f14e core: Expose virtual machines to LLMs 2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås 660946f2c0 Share VM keystroke events 2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås a8816543d8 core: Pass tool images over MCP 2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås 3d20980966 ui: Read more memory when a decode runs out 2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås bbf63ec269 core: Expose patterns to LLMs
Let a model list, check and write patterns, decode memory with them,
and place them on insights.
2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås a3cdd5df5f core: Derive the approval-gated tool list 2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås f96764edf7 ui: Move insight refreshes to the sidebar menu 2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås b93116f9e9 ui: Collapse patterns in the sidebar 2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås f3e36dbeba ui: Visualize and navigate decoded patterns
Show detached visualizers in popovers and inline ones in place. Move
through the tree with the keyboard, and scroll the hex view and the
tree separately.
2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås ad61503b47 core: Decode pattern visualizers
Interpret each of ImHex's visualizers from its arguments, and
disassemble through r2.
2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås 65e2cab5ae ui: Give the pattern editor a pane's chrome
Drop its padding and border for a divider along the top, so it sits
flush against the sidebar as Xcode's editor does.
2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås a6f769221f ui: List pattern types in the sidebar
Show each file's declared types under it, with a browse popover when
there are many, and reveal a type's declaration when it is chosen.
2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås 5e81f32cba ui: Fold code and preview colours in the editor
Draw line numbers and the current line's band in a gutter, with fold
chevrons that fade in while the pointer is over it, and a guide down
each open scope. Collapse a folded range behind a placeholder, and put
a swatch before each colour the server reports.
2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås d4823dc950 core: Fetch folding ranges and colours 2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås b83995dcce ui: Add a patterns section with an editor
List the library's files in the sidebar with new, import, rename and
delete, and edit each in the code editor, which now colours by syntax.
2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås 1a4ff666ee core: Manage pattern files in the library
Create from a template, import, write, rename and delete, with .hexpat
for patterns and .pat for libraries.
2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås 465d8f1b92 core: Lex and describe pattern sources for editing
Give the lexer a keyword set and a regex switch, and add a pattern
flavour on top of it. Let the decoder describe text that is not yet a
file.
2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås 3f70d259d3 core: Persist pattern placements
Store them with the REPL cell and the address insight, as a JSON
column each, and bind the decode view to them. Older rows and wire
cells without the field decode as none.
2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås 82a228204d ui: Decode hex dumps against pattern types
Place a struct at any byte from the context menu, or run a file's own
placements. Outline each leaf field in the hex view, and select the
innermost field on a byte click.
2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås f2883eb24c core: Add a pattern library and decoder
Scan the data directory's Patterns folder for .hexpat and .pat files,
and describe and decode them through Frida.PatternCompiler.
2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås 3916fbf131 ui: Wrap the hex caret across rows 2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås 1aa3cbca29 deps: Bump frida-core, frida-swift and gir2swift 2026-10-01 20:49:11 +02:00
Ole André Vadla Ravnås 11c9de137d emulator: Prewarm backend before listing AVDs
availability() reads the AVD cache that only reloadAVDs()
fills, so the check found no AVD until prewarm() ran. Call
prewarm() first.
2026-09-30 15:12:13 +02:00
Ole André Vadla Ravnås 78789032c2 emulator: Convert display frames off main actor
The per-frame RGBA-to-BGRA conversion ran on the main actor
and starved the async continuations that drive injection, so
attaching to a booted emulator stalled. Move it into
nonisolated helpers that adopt() awaits, and mark
SharedFrameBuffer Sendable so it can cross the actor hop.
2026-09-30 15:12:13 +02:00
Ole André Vadla Ravnås c94525fb8a ui: Match the machines empty state to the notebook
Share the notebook's heading, add a button that boots a machine, and
leave out the panel title while there is nothing under it.
2026-09-29 15:38:58 +02:00
Ole André Vadla Ravnås 19071308ce ui: Lay out the side panel without HSplitView
HSplitView sizes itself to its panes' preferred widths rather than the
window, so at narrow widths the panel ran past the window's edge and
was clipped. Hold the panel's width ourselves and resize it through a
handle, keeping it within what the detail pane leaves.
2026-09-29 15:38:58 +02:00
Ole André Vadla Ravnås f4b1b8ab08 gtk: Follow light and dark themes in the hex view
Pick light or dark variants of the byte colours, dim the ASCII column
and zero bytes from the theme's foreground, and redraw on a switch.
2026-09-28 20:11:25 +02:00
Ole André Vadla Ravnås 2bb14e1dff gtk: Keep the hex view fast at any size
Draw the bytes once, a glyph run per colour per row, and show the
selection as themed bands beneath them, so a drag repaints only what
changed. Lay the rows out on a character grid, as the SwiftUI view
does.
2026-09-28 20:03:23 +02:00
Ole André Vadla Ravnås c888fcdc83 gtk: Carry the app icon on a spawn target 2026-09-28 19:40:57 +02:00
Ole André Vadla Ravnås df18361fd5 ui: Render hex view rows lazily
Draw each row as a single Text in a LazyVStack, redraw only rows whose
selection changed, and hit-test from the font's metrics instead of
measuring every cell.
2026-09-28 18:50:12 +02:00
Ole André Vadla Ravnås 6a4389b5cb core: Drop a stale single-core comment 2026-09-28 17:35:15 +02:00
Ole André Vadla Ravnås f599f7c785 core: Stream the emulator at its native size 2026-09-28 17:35:15 +02:00
Ole André Vadla Ravnås d03d600547 ui: Show a boot screen while the VM starts 2026-09-28 17:35:15 +02:00
Ole André Vadla Ravnås 9edcbd969e ui: Span the event stream across the window 2026-09-28 17:35:15 +02:00
Ole André Vadla Ravnås e0ad16494c ui: Make the detach banner error readable 2026-09-28 17:35:15 +02:00