Commit Graph
5 Commits
Author SHA1 Message Date
Ole André Vadla Ravnås ce32477080 Adopt unified SwiftyR2 cmd API
Move to the single cmd that returns an R2CommandResult with an
optional output, and handle the nil that r2 yields for commands
with no string result (e.g. an invalid command from completion).
Bump the SwiftyR2 pin to the revision with that fix.
2026-06-26 18:33:16 +02:00
Ole André Vadla Ravnås 8cc5c127c8 core: Silence r2 log echo to the console
cmdWithLogs adds a collector callback for hasErrors but never
muted radare2's own stderr printing, so read-only function
probes flooded the console. Set log.quiet on both disassembler
cores; the collector still fires, so error detection is
unchanged.
2026-06-24 17:37:23 +02:00
Ole André Vadla Ravnås 962fd4bfb1 core: Decode real trace instruction addresses
Return each instruction's real address (the pDj "addr" field)
so callers can map lines without assuming fixed-width
instructions.
2026-06-24 13:23:19 +02:00
Ole André Vadla Ravnås 7a43a42744 Replace isDarkMode with Appearance enum
New LumaCore.Appearance (light, dark). DisassemblyRequest,
Disassembler and TraceDisassembler key on it directly; the
r2 theme mapping lives in one place. ThemeWatcher returns
Appearance; remaining C-interop callers compare to .dark at
the boundary. CFG views use themeAppearance to avoid clashing
with NSView's inherited appearance property.
2026-05-20 21:03:29 +02:00
Ole André Vadla Ravnås 0e669be3dc Move the rest of business logic into LumaCore
Workspace is now a thin host adapter. Engine owns sessions and
notebook entries (via store observation), GitHub auth + OAuth
device flow, hook-pack discovery, address annotations and address
actions, the disassembler cache, and all instrument lifecycle.
EventLog is @Observable so SwiftUI tracks it directly; the host
no longer mirrors event arrays or version counters.

R2 (live disassembly + trace inspection) lives entirely in
LumaCore as concrete Disassembler / TraceDisassembler classes
returning portable StyledText spans. ProcessNodeViewModel and
InstrumentRuntime are gone; views read engine.processNodes /
node.instruments / engine.descriptor(for:) directly.

Reorganize Luma/Models/ — instrument UI dispatch lives under
Luma/Instruments/, Monaco editor glue under Luma/Editor/, and the
remaining UI types sit at the top of Luma/.
2026-04-07 10:11:31 +02:00