Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: ChiChou/grapefruit
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.1.0
Choose a base ref
...
head repository: ChiChou/grapefruit
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v1.1.2
Choose a head ref
  • 17 commits
  • 64 files changed
  • 1 contributor

Commits on Mar 30, 2026

  1. 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.
    ChiChou committed Mar 30, 2026
    Configuration menu
    Copy the full SHA
    df27c44 View commit details
    Browse the repository at this point in the history
  2. 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
    ChiChou committed Mar 30, 2026
    Configuration menu
    Copy the full SHA
    b20991b View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    c0ea026 View commit details
    Browse the repository at this point in the history
  4. 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
    ChiChou committed Mar 30, 2026
    Configuration menu
    Copy the full SHA
    de62f96 View commit details
    Browse the repository at this point in the history
  5. 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
    ChiChou committed Mar 30, 2026
    Configuration menu
    Copy the full SHA
    1df9849 View commit details
    Browse the repository at this point in the history
  6. ci: bump actions/cache to v5

    ChiChou committed Mar 30, 2026
    Configuration menu
    Copy the full SHA
    c629bf1 View commit details
    Browse the repository at this point in the history
  7. 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.
    ChiChou committed Mar 30, 2026
    Configuration menu
    Copy the full SHA
    8b80a39 View commit details
    Browse the repository at this point in the history
  8. 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
    ChiChou committed Mar 30, 2026
    Configuration menu
    Copy the full SHA
    8e13cc3 View commit details
    Browse the repository at this point in the history
  9. 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.
    ChiChou committed Mar 30, 2026
    Configuration menu
    Copy the full SHA
    2abeaba View commit details
    Browse the repository at this point in the history
  10. 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
    ChiChou committed Mar 30, 2026
    Configuration menu
    Copy the full SHA
    a420f6e View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    3fd7eed View commit details
    Browse the repository at this point in the history
  12. 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)
    ChiChou committed Mar 30, 2026
    Configuration menu
    Copy the full SHA
    3534518 View commit details
    Browse the repository at this point in the history
  13. 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
    ChiChou committed Mar 30, 2026
    Configuration menu
    Copy the full SHA
    cc5792f View commit details
    Browse the repository at this point in the history
  14. 1.1.1

    ChiChou committed Mar 30, 2026
    Configuration menu
    Copy the full SHA
    8e686c2 View commit details
    Browse the repository at this point in the history
  15. 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
    ChiChou committed Mar 30, 2026
    Configuration menu
    Copy the full SHA
    071a8b7 View commit details
    Browse the repository at this point in the history
  16. 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.
    ChiChou committed Mar 30, 2026
    Configuration menu
    Copy the full SHA
    7003ac2 View commit details
    Browse the repository at this point in the history
  17. 1.1.2

    ChiChou committed Mar 30, 2026
    Configuration menu
    Copy the full SHA
    b7176b4 View commit details
    Browse the repository at this point in the history
Loading