Commit Graph
11 Commits
Author SHA1 Message Date
Alexander KiselevandClaude Opus 4.5 33dc10dcca feat: Implement daemon-only architecture for query operations
This commit implements the daemon-only architecture where all query
operations (functions, strings, decompile, memory, summary, xrefs)
must go through the persistent daemon instead of spawning new Ghidra
processes per command.

Key changes:
- Wire IPC client in main.rs to route queries through daemon
- Add requires_daemon() to determine which commands need daemon
- Add execute_via_daemon() to translate CLI commands to IPC calls
- Deprecate HeadlessExecutor with migration notice
- Fix filter.pest hex number parsing order (hex before number)
- Add #[allow(dead_code)] to infrastructure modules for future use
- Mark E2E tests requiring daemon as #[ignore]

Architecture benefits:
- Faster queries: Ghidra stays loaded, no 5-30s startup per command
- Simpler code: One execution path instead of two
- Better UX: Clear daemon requirement with helpful error messages

When daemon is not running, users see:
  Error: This command requires the daemon to be running.
  Start the daemon with: ghidra daemon start --project <name>

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 03:06:08 -08:00
Alexander KiselevandClaude Opus 4.5 2fe77ac4a2 docs: Rewrite plan for daemon-only architecture
Key changes:
- Remove HeadlessExecutor as execution path
- All query operations require daemon
- Wire IPC layer (already implemented) as primary client
- 9 milestones for complete implementation

Rationale: Binary analysis is slow enough that persistent
daemon is always preferable to per-command process spawning.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 02:24:48 -08:00
Alexander KiselevandClaude Opus 4.5 3335e72b95 docs: Finalize open source release plan with code diffs
Plan covers 7 milestones:
- M1: Fix Cargo.toml repository URL
- M2: Fix unused import warnings (7 files)
- M3: Fix dead code warnings (10 files)
- M4: Implement XRefs query type
- M5: Add XRefs E2E tests
- M6: Expand README.md
- M7: Technical documentation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 02:18:59 -08:00
Alexander KiselevandClaude Opus 4.5 592958f8fe chore: Add open source release plan and update e2e tests
- Add docs/plan-prod.md with comprehensive release plan
- Include sample_binary test fixture
- Update e2e tests

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 01:54:02 -08:00
Alexander Kiselev 5f2ee92bc1 feat: Enable Ghidra decompile script to find functions by name or address, standardize script argument parsing and error output, and add a sample binary fixture. 2026-01-25 01:54:02 -08:00
Alexander Kiselev 370e578cae jython script works? 2026-01-25 01:54:02 -08:00
Alexander Kiselev 759dda6c2a refactor notes 2026-01-20 16:19:44 -08:00
Alexander Kiselev 35a864bd2f refactoring to use python bridge and a persistent ghidra 2026-01-20 16:15:02 -08:00
Alexander Kiselev 6b5097463c deleted outdated readme. need to rewrite it later 2026-01-20 12:18:07 -08:00
Alexander Kiselev bd4291795b ghidra setup command 2026-01-20 12:04:00 -08:00
Alexander Kiselev 8344c2b4ed added refactor and setup command plans (Setup first) 2026-01-20 11:55:12 -08:00