-
Notifications
You must be signed in to change notification settings - Fork 102
Comparing changes
Open a pull request
base repository: ChiChou/grapefruit
base: v1.1.0
head repository: ChiChou/grapefruit
compare: v1.1.2
- 17 commits
- 64 files changed
- 1 contributor
Commits on Mar 30, 2026
-
ci: add r2hermes WASM build to publish workflow
The npm job was missing the wasi-sdk setup and r2hermes build steps, causing the gui build to fail when it needs hbc.wasm in public/. Add the same cache/build/copy steps used in build-cli.yml.
Configuration menu - View commit details
-
Copy full SHA for df27c44 - Browse repository at this point
Copy the full SHA df27c44View commit details -
ci: refactor build workflows, fix frida patch for bun SEA
- Extract shared CI setup into composite action (.github/actions/setup) - Split bun and npm builds into separate workflows to avoid conflicts - Gate npm publish and GitHub release on all builds + tests passing - Coverage workflow now skips unnecessary agent/gui builds - Add [email protected] patch (was missing, broke compiled CLI binary) - Remove outdated [email protected] and [email protected] patches - Remove build-npm.ts workaround, externalize assets.tgz in tsdown - Move bun install out of build:cli/build:all scripts into workflows - Fix tsconfig moduleResolution for tsgo compatibility
Configuration menu - View commit details
-
Copy full SHA for b20991b - Browse repository at this point
Copy the full SHA b20991bView commit details -
Configuration menu - View commit details
-
Copy full SHA for c0ea026 - Browse repository at this point
Copy the full SHA c0ea026View commit details -
refactor: replace prepare hook with explicit setup script
- Remove automatic prepare hook to avoid cascading builds on bun install - Add `bun run setup` for first-time local dev (submodules, agent, gui, WASM) - Rename dev:both → dev:all with 4-pane tmux layout (server, gui, agent watches) - CI workflows explicitly install what they need
Configuration menu - View commit details
-
Copy full SHA for de62f96 - Browse repository at this point
Copy the full SHA de62f96View commit details -
refactor: dev:both → dev:all with two-tab tmux layout
Tab 1: agent watches (fruity, droid, transport) in 3 columns Tab 2: server + gui dev side by side
Configuration menu - View commit details
-
Copy full SHA for 1df9849 - Browse repository at this point
Copy the full SHA 1df9849View commit details -
Configuration menu - View commit details
-
Copy full SHA for c629bf1 - Browse repository at this point
Copy the full SHA c629bf1View commit details -
feat(gui): radare2 analysis panels, minimap, split view, and persistence
Add Binary Ninja / Iaito-inspired features to the R2 binary viewer: - Dashboard (binary overview with arch, hashes, entropy, sections) - Memory maps visualization with segment bar chart - Synchronized split panes (disassembly + CFG side by side) - Disassembly minimap with click-to-jump-to-function - Inline opcode bytes toggle - Cross-reference graph with dagre layout - Rename dialog for functions - Binaries/libraries panel - Multi-mode search (string, hex, ROP, assembly) - Type editor with Monaco - Bookmarks with localStorage persistence - CFG export as SVG Persist selected function, view mode, and left tab across page reload. Add R2 context provider for address sync and shared state. Add i18n keys (en + cn) for all new UI strings. Replace hardcoded colors with CSS variables for light/dark mode.
Configuration menu - View commit details
-
Copy full SHA for 8b80a39 - Browse repository at this point
Copy the full SHA 8b80a39View commit details -
refactor: drop server-side DEX analysis, use browser WASM r2
DexViewerTab now fetches the file from the device via HTTP and analyzes it entirely in the browser using the r2 WASM worker, same as the standalone R2Page. - Remove useDexR2Session (Socket.IO client hook) - Remove ic/strings socket events from r2ws.ts - Remove openDeviceFile path from r2ws open handler - DexViewerTab fetches file via /api/download or /api/apk-entry, then passes ArrayBuffer to useR2File → R2Viewer
Configuration menu - View commit details
-
Copy full SHA for 8e13cc3 - Browse repository at this point
Copy the full SHA 8e13cc3View commit details -
refactor: remove magika, use file extension for syntax detection
Magika WASM init freezes the browser for several seconds with no workaround. Replace with extension-based language detection from the existing LANGUAGES table; users can still switch syntax manually.
Configuration menu - View commit details
-
Copy full SHA for 2abeaba - Browse repository at this point
Copy the full SHA 2abeabaView commit details -
feat: text editor toolbar, save RPC, readonly gating, oversized guard
- Notepad2-style toolbar: Save, Undo/Redo, Cut/Copy/Paste, Find, Fold/Unfold, Word Wrap toggle, Download - Save calls existing fs.saveText RPC (both platforms) - Writable flag passed from FilesTab; disables editing and write actions when directory is readonly - Agent preview() now throws on files >1MB instead of silently truncating - Map plist extension to XML syntax highlighting
Configuration menu - View commit details
-
Copy full SHA for a420f6e - Browse repository at this point
Copy the full SHA a420f6eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3fd7eed - Browse repository at this point
Copy the full SHA 3fd7eedView commit details -
feat: async hex editor, Range header support, posix/file refactor
Hex editor: - Paged on-demand loading via fs.range RPC (64KB pages, LRU cache) - HexView dual mode: buffer (existing consumers) and paged (hex editor) - Data inspector sidebar (int/float/string formats via DataView) - Toolbar with stride selector, go-to-offset, download - Status bar with file path, size, loaded pages - Wide scrollbar styled as minimap via CSS Agent: - Split posix.ts into thin syscall wrappers + file.ts for higher-level file operations (readFile, readRange, size, rename, isWritable) - Add fs.range(path, offset, length) and fs.size(path) RPCs - Bump text preview limit to 4MB - Add streaming pullRange to transport agent for Range requests Server: - Download route now supports HTTP Range headers via streaming pullRange (chunked posix reads with backpressure) Audio preview: - Simplified to direct URL — browser handles Range natively, no blob TextEditorTab: - Fix tooltip render prop (render= instead of asChild)
Configuration menu - View commit details
-
Copy full SHA for 3534518 - Browse repository at this point
Copy the full SHA 3534518View commit details -
refactor: dev script with Bun.$, add dev:both mode
- Refactor scripts/dev.ts to use Bun.$ for tmux, Bun.spawn for wt - Accept argv: "both" (server + gui) or "all" (agent + server + gui) - Add bun run dev:both script
Configuration menu - View commit details
-
Copy full SHA for cc5792f - Browse repository at this point
Copy the full SHA cc5792fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8e686c2 - Browse repository at this point
Copy the full SHA 8e686c2View commit details -
fix(ci): publish workflow artifact paths and npm build
- build-npm: build agent and gui before npm pack; fix upload path (npm pack outputs to root, not build/) - publish: use working-directory for npm publish to avoid glob interpreted as git URL; fix CLI binary download paths (upload-artifact strips common prefix); remove coverage gate
Configuration menu - View commit details
-
Copy full SHA for 071a8b7 - Browse repository at this point
Copy the full SHA 071a8b7View commit details -
fix: atomic r2 cmd for HTML output to prevent race in split view
The 3-step scr.color=1 → cmd → scr.color=0 sequence allowed concurrent calls (loadDisassembly + loadCfg) to interleave on the shared r2 worker, causing empty disassembly in split mode. DEX files were most affected due to slower af analysis widening the race window. Also fixed missing ansi.toHtml in useR2Live HTML path.
Configuration menu - View commit details
-
Copy full SHA for 7003ac2 - Browse repository at this point
Copy the full SHA 7003ac2View commit details -
Configuration menu - View commit details
-
Copy full SHA for b7176b4 - Browse repository at this point
Copy the full SHA b7176b4View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v1.1.0...v1.1.2