Skip to content

AgentPack 2.0.0

Choose a tag to compare

@darkaimzzz darkaimzzz released this 12 Sep 18:34
· 11 commits to main since this release

Cross-agent package manager for MCP servers and plugins — Claude Code, Codex and OpenCode.

Download: AgentPack-2.0.0-win-x64.exe (Windows x64, portable, unsigned). Requires Node.js 22.17+ with npm on PATH; the app bundles Electron but launches MCP servers with the machine's Node.

Run AgentPack-2.0.0-win-x64.exe --demo for a sandboxed demo with three sample agent configs and a nested Next.js + Supabase project. Without --demo it reads and writes your real agent configuration.

What changed since 1.6.0

An external agent reviewed the codebase and filed seven defects. All seven are fixed. It had no access to the reasoning behind the code, ran its own fault-injection fixtures, and found three P1 failures that the normal-path tests were concealing. Each was reproduced with the reviewer's own fixture before being touched, and every defect provable without a desktop window now has a regression test.

Severity Defect Fix
P1 A failed post-write snapshot defeated rollback, and dormancy dropped its own recovery entry The post-image hash is taken before the copy, and the copy may fail; a written flag separates "nothing to undo" from "cannot attribute"; the dormant stash is dropped only once the live entry is demonstrably back
P1 A malformed existing config leaked pre-existing credentials into errors The TOML parser appends offending source lines to its message, and those lines can hold secrets from entries we never wrote and therefore cannot redact. Every parse error now keeps the diagnostic and drops the excerpt
P1 An errored watcher stayed open and kept activating capabilities after Stop It closes itself before reporting, and the IPC layer stops through the handle instead of discarding the only reference that could close it
P2 Duplicate JSONC sections produced Installed/Verified with no readable entry Duplicated top-level keys are refused as ambiguous, and install now reads every entry back before claiming success
P2 A validly quoted marketplace table blocked Codex plugin installation The document is parsed rather than matched with a bare-header regex
P2 The rehearsal falsely passed a partial cross-agent conflict Conflicts count as problems, and the clean-baseline guard reports partial dirtiness
P3 Rollback deleted comments added after installation Wholesale byte restore is reserved for formats that cannot carry comments; TOML and JSONC take a surgical path, and table removal no longer swallows trailing comments

The review is published in full, unedited, at docs/INDEPENDENT-REVIEW.md.

A production pass over the whole codebase. No TODOs, no debug output outside test fixtures, no commented-out code and no silently empty catch blocks. What it did find: the Codex adapter removed plugin tables with a hand-rolled scan that duplicated the shared one — and because it was a separate copy, it never received the trailing-comment fix, so plugin removal still deleted user comments where server removal no longer did. Both paths now share one implementation. Seven helpers that nothing outside their own module imported are private again, and a branch_glob trigger variant that was declared but never implemented has been removed rather than left promising behaviour the engine does not have.

Server launches are 25× faster here. While verifying the fixes, the renderer acceptance run began failing. It would have been easy to blame the review fixes or machine load; it was neither. npm ping reports CERT_HAS_EXPIRED on this machine, and npm was retrying for a fixed ~70 seconds before falling back to a cache it already had. Health checks now ask npm to prefer that cache for the exact version each capability pins — 73 seconds per launch became under three. The network is still used when a package is genuinely missing.

Verification for this build

Run with no environment overrides:

Check Result
TypeScript clean
Focused regressions 31 / 31
Self-check suite 75 passed
Engine acceptance 14 / 14, configs restored byte-identically
Renderer UI (real preload + IPC) 8 / 8
Smoke ok, no console errors
Real tools/call 3 / 3
Packaged portable launch exit 0

Known limits

Unchanged, and stated rather than hidden. A green tool list proves the server starts and answers, not that a credential is valid. Plugin status reads Configured, never Verified, because a plugin loads inside the agent where we cannot see it. Context figures are tool-schema estimates (characters divided by four), not billed tokens, and apply to an agent's next session. Authenticated GitHub and Supabase operations have not been exercised with real accounts, and no coding-agent session has been started to confirm it loads the generated config. The artifact is unsigned.

Full assessment: docs/READINESS.md. Demo script: docs/DEMO.md.

SHA-256: 0532907D8ACE87EB963E615F691AFCEEB4EC020ADBCA2A1772D68ACCEE0B85D6