Repository navigation
Conversation
|
Tried this out on a firmware RE project that leans on idac heavily. We're blocked Environment
Installed with The version gate works, but
So the requirement is enforced. But It reports The failure presentation buries the reason The useful line (
Shelling out to optional third-party CLIs means Install hits supply-chain cutoffs
Correct resolver behaviour, but the message points at idac rather than at the policy. Checked and fine: exit codes are correct — Happy to retest once we're on 9.4 if that's useful — the migration table in the PR |
|
Followed up on the retest offer — we upgraded to IDA 9.4.260915 and ran this against real work. Short version: it works, and the worker lifecycle change fixes a problem that has cost us real time. Same environment as above, now on IDA Professional 9.4.260915. Exercised on ~300 big-endian AArch64 ILP32 firmware databases: The worker lifecycle is the headline for us. Our repo has Nothing to add to the earlier findings; the |
This replaces idac's bundled GUI bridge and custom headless daemon with ida-nexus for both live IDA sessions and managed headless workers. Users upgrading from 0.19 need to update target selectors, installation commands, and scripts that depend on the old lifecycle or persistent Python state.
Breaking changes and migration
The supported stack is now Python 3.11+, IDA Pro 9.4+, ida-nexus >=0.13.2, and ida-domain >=0.5.1.
setup guiinstalls the GUI component matching the installed Nexus client through the runtime ida-hcli dependency.-c db:sample.i64-c sample.i64, or an existing binary path-c pid:1234,module:, or a module name--instance RECORD_IDfromtargets list --json.idbdatabases.i64firstmisc plugin installsetup gui, then restart IDA or load the Nexus componentmisc skill installidac docs--help,--full-help, and installed skill referencesdatabase open/close,targets cleanup-c; Nexus manages worker lifecycledatabase save DESTINATIONdatabase savecheckpoints the selected databasepy exec --persisttargets list --jsonnow returns Nexus discovery records withrecord_id,state, and database/input paths. With no selector, exactly one READY instance is required. A path can attach to a matching GUI database or reuse/start a headless worker. Selection, compatibility, and execution failures propagate without switching targets or retrying the operation.Other user-facing changes
batchandpreviewown the target, timeout, and mutation artifacts. Children cannot override the target or timeout, and mutating batch children cannot set--out. Batch journals capture progress, interruption, and save/session-close failures.function prototype set --preserve-cckeeps the stored calling convention.type checkvalidates dependent declarations together without changing database types.misc renamesupports batches and previews. Unfiltered struct/enum lists require--out.AGENTS.mdfor Claude and Codex and points to the installed skill. Its preview and verification guidance now matches the skill's task-scoped workflow.doctorcompares installed idac Agent Plugin versions with the CLI version through available Codex and Claude clients. Mismatches warn with both versions without making the optional skill a runtime dependency.The README includes an upgrade guide. The unreleased changelog, development docs, plugin references, and workspace prompt are updated consistently.
Validation
mainand resolved the CI conflict while retaining its current action versions.Test (IDA 9.4)name.Release
Changelog generation now uses the pinned Codex GitHub Action with
OPENAI_CODEX_API_KEY, replacing Claude. The existing prompt still limits the release notes to user-visible changes. Actionlint validates the migrated workflow; a live changelog run is deferred until release preparation. The secret must be available to this repository through Actions secrets.After this PR merges, prepare 0.20.0 through the release workflow on
main:The workflow updates the package, lockfile, and Agent Plugin versions and opens the release PR with the versioned changelog. Merging that release PR through the queue publishes the release.