Commit Graph
65 Commits
Author SHA1 Message Date
Alexander KiselevandClaude Opus 4.6 b72ddd1894 fix: use dynamic addresses in comment tests instead of hardcoded values
The comment tests used hardcoded addresses (0x118910, 0x118920, etc.)
that assumed a specific binary layout. These addresses don't have code
units on CI-compiled binaries, causing "No code unit at address" errors.
Now uses get_function_address/get_function_addresses helpers to
dynamically resolve valid addresses.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 13:54:25 -08:00
Alexander KiselevandClaude Opus 4.6 57dbf62fd4 fix: handle batch commands locally and require Java 21 in CI
Batch was broken because it sent a single "batch" command to the Java
bridge, which rejected it. Now the Rust CLI parses each line of the
batch file as a sub-command and dispatches them individually through
execute_via_bridge, collecting results into a JSON response.

Also updated CI to install Java 21 (required by Ghidra 12.0.1).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 13:28:08 -08:00
Alexander KiselevandClaude Opus 4.6 ae2d882f26 fix: add --project/--program to BatchArgs and fix arg order in tests
BatchArgs was missing --project and --program fields, so batch commands
couldn't specify which project to use. Also fixed argument ordering in
all test files to place --project/--program after the subcommand name,
matching clap's per-subcommand argument parsing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 13:19:16 -08:00
Alexander KiselevandClaude Opus 4.6 1e0837dd31 fix: correct project path in test harness to match CLI default
The test harness used dirs::data_local_dir() (~/.local/share) to compute
the project path, but the CLI defaults to dirs::cache_dir() (~/.cache).
This caused different MD5 hashes for port file lookup, so the test harness
could never find the port file written by the bridge.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 13:02:58 -08:00
Alexander KiselevandClaude Opus 4.6 5b595ab58a fix: add require_ghidra!() guard to all integration tests
Tests that use DaemonTestHarness or ensure_test_project were missing the
require_ghidra!() macro, causing them to attempt bridge startup in CI
where Ghidra is not installed, resulting in 120s timeouts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 12:44:11 -08:00
Alexander KiselevandClaude Opus 4.6 e26634c03c style: fix clippy warnings and cargo fmt formatting
- Replace redundant closure with function reference (clippy::redundant_closure)
- Use is_some_and instead of map_or(false, ...) (clippy::unnecessary_map_or)
- Run cargo fmt across all files

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 12:09:55 -08:00
Alexander KiselevandClaude Opus 4.6 31bbefee33 fix: address code review issues across codebase
- Make --quiet flag functional by threading it through execute_via_bridge()
- Fix --sort hyphen ambiguity with allow_hyphen_values in clap
- Replace deprecated atty crate with std::io::IsTerminal
- Use config.default_limit as fallback when user doesn't specify --limit
- Respect per-command --json flag in QueryOptions format detection
- Remove dead src/daemon/ module and src/ipc/transport.rs
- Deduplicate headless_script lookup (GhidraClient delegates to bridge)
- Fix stop_bridge() SIGTERM race with graceful shutdown wait loop
- Extend config set to support all config keys
- Clean up dead code warnings and remove blanket #![allow(dead_code)]

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 12:07:52 -08:00
Alexander Kiselev 2447137ffc fixes 2026-02-04 21:38:09 -08:00
Alexander Kiselev 3293e1a545 bumped version v0.1.3 2026-02-04 19:42:15 -08:00
Alexander Kiselev 8aadc35e0d refactor: update CLI commands and remove deprecated quick analysis feature 2026-02-04 19:36:16 -08:00
Alexander Kiselev 9ce351575b cleanup 2026-02-04 18:54:58 -08:00
Alexander Kiselev 3d20a3104f fixes 2026-02-04 14:26:33 -08:00
Alexander Kiselev a550ad1d35 more work on v2 java bridge 2026-02-04 14:14:15 -08:00
Alexander Kiselev ac1fb7b931 v2 wip 2026-02-04 14:04:32 -08:00
Alexander Kiselev 005581c960 new java plugin plan 2026-02-04 13:35:09 -08:00
Alexander KiselevandClaude Opus 4.5 25ca14ab34 Add troubleshooting documentation for common setup issues
- Add Troubleshooting section to main README with:
  - Missing X11 libraries fix for Linux/WSL (libXtst)
  - Java version requirements (JDK 17+ not JRE)
  - WSL-specific notes
  - How to view daemon logs
  - Doctor command usage
- Document startup logging in daemon README

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 03:09:49 -08:00
Alexander KiselevandClaude Opus 4.5 beb78c2b03 Add comprehensive logging for Ghidra startup diagnostics
- Capture and log both stdout and stderr from Ghidra/pyghidra at info level
- Log the full command being executed for debugging
- Spawn separate thread to capture stderr while reading stdout
- Include stderr output in error messages when bridge fails to start
- Change default log level from debug to info so logs are visible without RUST_LOG

This helps diagnose issues like missing system libraries (e.g., libXtst.so.6
on WSL/Linux) which previously caused cryptic failures.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 03:09:01 -08:00
Alexander Kiselev 9c189a32e9 daemon fixes and use cache dir instead of git 2026-02-04 02:24:40 -08:00
Alexander Kiselev 3d669349ef Refactor daemon process management: implement OS-level locking with fslock and update info file handling v0.1.2 2026-02-02 02:36:22 -08:00
Alexander Kiselev 9ea0d6a2b0 added ilspy-cli 2026-02-02 02:30:17 -08:00
Alexander Kiselev 6857a7457d vbump v0.1.1 2026-02-01 09:22:13 -08:00
Alexander Kiselev 1f4f6ca883 work workity work 2026-02-01 09:21:59 -08:00
Alexander Kiselev 8b9b39729d fix agents 2026-01-31 22:30:48 -08:00
Alexander Kiselev 50c33cb0f5 Enhance CI workflows: unify test jobs and add caching for Ghidra and Rust 2026-01-26 16:27:58 -08:00
Alexander Kiselev 76fde9c3f7 Getting ready for v0.1.0 v0.1.0 2026-01-26 16:04:00 -08:00