Repository navigation
Releases: AlexAgo83/cdx-manager
Releases · AlexAgo83/cdx-manager
Release list
v0.22.0
CDX Manager 0.22.0
This release adds account-aware session recovery, clearer run controls, and more useful usage reporting. It also hardens credential handling and fixes several run and status edge cases.
Account choice and recovery
- Set an account's automatic selection policy with
cdx set <name> --policy use|ask-first|never. The policy is respected when CDX chooses an account for a run or rescue. cdx rescuecan hand a limit-stopped conversation to a ready account. It also detects limit stops in the transcript and avoids duplicate rescue attempts.cdx statusreports when an account may run out at its current pace and includes ISO 8601 reset times in JSON output.- Claude conversations keep their own names, and handoffs work when a session has used multiple workspaces.
Run and usage tools
cdx runaccepts a label and a concurrency cap. Cap checks, hook ownership, and blocked-status reporting have been corrected.- Interactive session launch accepts
--taskand an optional--end-stateto describe the authorized goal. cdx stats --by project|modelbreaks down usage, and stats can show estimated time saved by RTK over the selected period.- Read-only session retrospectives are available on demand for an account.
- Profiles can share Claude auto-memory, and RTK history can be shared across profiles.
- One-hour cache writes are priced at the correct 2× rate.
Security and reliability
- Credential isolation, backup-bundle import, session-name handling, and setup-token logging are hardened.
- Runtime fixes cover reset-time parsing, run hooks and status, and small CLI and documentation inconsistencies.
- The security policy is documented in
SECURITY.md.
v0.21.6
CDX Manager 0.21.6
Security
- Windows toasts. PowerShell also ends a single-quoted string on the typographic quotes ‘ ’ ‚ ‛, so those are now escaped too, in cdx and in the tray. A crafted folder name or response preview could run code. French text such as "l’agent" no longer drops the toast (#23).
- Tray over WSL. The tray no longer passes its commands through the WSL shell, which expanded
$(...)and split arguments containing spaces. It also finds the user's owncdxinstead of a stale system-wide one (#23). cdx set <name> --scrub-env onlaunches Claude withCLAUDE_CODE_SUBPROCESS_ENV_SCRUB=1. The Bash commands, hooks and MCP servers the agent starts then no longer receive credentials, including the setup-token. It is off by default;docs/operations.mdexplains the trade-off (#26).- Backup bundles that include auth use a stronger key derivation (scrypt N=2^17, or PBKDF2 at 600k iterations) and record its cost. Older bundles still import, and a crafted cost is refused (#25).
- Claude profile creation no longer replaces an unparseable or symlinked
settings.json, and keeps its permissions (#23). - PyPI releases are published with Trusted Publishing, without a stored API token (#27).
Fixes
- Windows:
cdx.cmdnow returns the real exit code; it always returned 0;cdx readyschedules its task on any Windows language, whereschtasksrefused the date on non-US systems;- provider output is read as UTF-8;
cdx -vand--helpwork without a home directory;- the check after
cdx updateno longer prints "Could not determine home directory" (#22, #23).
cdx runstops the provider when it receives SIGTERM or SIGHUP (akill, asystemctl stopor a closed SSH session), not only on Ctrl+C (#24).- No more lost writes when two commands overlap:
- tray events published while another is being acknowledged are kept;
cdx context setandclearno longer race with an append (#24).
cdx set:- the usage line, help and docs list every flag;
- a bad on/off value names the flag, for example "Unsupported notify value: maybe (on|off)" (#25).
cdx schema --jsonpublishes every run error code and warning code.cdx runsets its error codes at the source instead of reading the message text (#25).
Housekeeping
v0.21.5
CDX Manager 0.21.5
Claude logins
cdx statusshows each Claude profile's auth type in a TYPE column:setup-tokenorfull-login(a/loginrun inside the profile). It also appears in the single-session view and asauth_typein--json. Within 30 days of a setup-token's one-year expiry, the column showssetup-token 12d, orsetup-token expiredonce it has lapsed, andcdx doctorwarns with thecdx logincommand to run. Based on work by Nicolas Rigaudy (#15, #16, #21).- The operations guide explains why a setup-token never loads claude.ai connectors such as Microsoft 365, and how to switch with
/login. - On macOS,
cdx loginon a Claude profile now also removes the profile's keychain/login, so the new setup-token is the one used at launch. Before, the keychain login kept winning. The misleading "falling back to claude setup-token" message is reworded (#18).
Fixes
cdx readynever showed its notification: the scheduled job rancdx notify, which now only serves agent hooks. On macOS the job was also written under the profile home inside a cdx session, where launchd never reads it (#18, #21).- Windows:
- the session store lock now waits up to 120 seconds instead of failing after 10;
- the process-alive check no longer sends Ctrl+C to the process it probes (#18).
- Agent alert hooks work when the cdx path contains a space. Claude's
settings.jsonis written atomically, through symlinks, and keeps its permissions (#18). - Token prices reviewed on 2026-10-22:
claude-sonnet-5-5cache reads are $0.10/MTok;claude-haiku-5-5is added;- context variants such as
claude-opus-5-5[1m]are priced at the base model's rates (#20).
Housekeeping
v0.21.4
CDX Manager 0.21.4
Start a session on a first message
cdx <name> --prompt TEXTandcdx <name> --prompt-file PATHlaunch an interactive session that starts on that message, for launcher scripts that open a session already pointed at a task. Both spellings--flag valueand--flag=valuework. They are refused before the provider starts when combined with each other, with--resumeorcdx resume, with--prompt-file -(the session needs standard input), and for Ollama sessions (ollama runanswers once and exits). A relative--prompt-filepath is read from the current directory, not--dir. Contributed by Nicolas Rigaudy (#13).
Fixes
- Claude sessions started from inside a running Claude Code session (a hook, or a terminal or script it spawned) saved no transcript: they inherited the parent's session markers (
CLAUDECODE,CLAUDE_CODE_CHILD_SESSION, ...) and ran as a child session, which broke resume and interactive usage backfill. CDX now drops those markers for every Claude spawn; user settings such asCLAUDE_CODE_DISABLE_*still pass through. Contributed by Nicolas Rigaudy (#14). - A prompt starting with
-(from--prompt,cdx handofforcdx run) is now passed after--, so Claude, Codex and Ollama no longer read it as an option (for example-hprinted the provider's help instead of starting).
v0.21.3
CDX Manager 0.21.3
Fixes
- Claude in Chrome now works from CDX Claude profiles (
claude --chrome,/chrome, orcdx set <name> --extra-args '--chrome'). Profile isolation redirects HOME, so Claude Code looked for Chrome and its Claude extension inside the profile home, found neither, and never installed its native-messaging host where Chrome reads it. CDX now links the real Chrome directory into each Claude profile home, as it already did for the macOS keychain:~/Library/Application Support/Google/Chromeon macOS,~/.config/google-chromeon Linux. Windows needed no change: Chrome lives under%LOCALAPPDATA%and the host is registered in the registry, neither of which CDX redirects. Profile copies keep the link as a link and never copy the Chrome profile itself.
v0.21.2
CDX Manager 0.21.2
Fixes
- Keep the tray companion visible to CDX on long runs: macOS purges per-user temp files untouched for about three days, which removed the companion's instance lock. CDX then saw no tray, so an update replaced the binary without stopping the old process and
cdx tray launchcould not start a new one. The companion now restores its lock within a minute when it disappears.
Release process
- GitHub release titles are exactly their tag (
vX.Y.Z); the checksum workflow now enforces it on publish.
v0.21.1
CDX Manager 0.21.1
Fixes
- Stop the macOS tray companion from leaking memory: each poll rebuilt the menu and status icon outside any autorelease pool, so nothing was ever freed and a week-old companion reached a footprint of about 19 GB.
- Cache a failed cdx-manager release check like a successful one and lower its network timeout from 5 s to 2 s, so a degraded network no longer stalls every
cdxcommand on GitHub.
v0.21.0
CDX Manager 0.21.0
Recovery and usage reliability
- Preserve imported sessions when an early credential failure triggers forced recovery, and serialize context and run-history appends across independent CLI processes.
- Attribute headless failover attempts and their usage to the actual session. Keep interactive usage totals at real launch boundaries; overlapping sessions with ambiguous attribution are marked uncertain instead of assigned invented totals.
- Use the recorded serving model for headless usage pricing. Handle model-specific cache rates and undefined relative weights consistently in stats.
- Bind handoff recovery to one exact native source file, improve native and terminal transcript discovery, and remove duplicate finalization paths.
- Add regression coverage for persistence, failover totals, usage boundaries, and handoff source selection.
Documentation
- Turn the README into a short product overview and move detailed setup, feature, CLI, operation, and technical guidance into linked guides shipped with the npm package.
Validation
- Python tests, project lint, Logics lint/audit, npm package inspection, and Python package build and metadata checks are part of release preparation. Publication and version-specific checksum verification remain separate release gates.
v0.20.14
CDX Manager 0.20.14
Current model prices in stats
- Add GPT-6.1 Sol, GPT-6 Sol, GPT-6 Luna, Claude Fable 5.1, Claude Mythos 5.1,
Claude Opus 5.5 and Claude Sonnet 5.5 to the built-in token price table,
reviewed against official provider documentation on 2026-10-04. - Honor model-specific cache-read prices in both
USD~and weightedCOST~
stats: 5% of input for GPT-6.1 Sol and Opus 5.5, and 2.5% for Fable/Mythos 5.1. CDX_TOKEN_PRICESaccepts an optionalcache_readprice in USD per million
tokens, including zero. Existing two-field overrides keep the 10% fallback.- Recorded runs using these models are priced when stats are read. Unknown
models remain unpriced; account model selections are unchanged.
Updating the price table
- Run
cdx updateafter publication to receive the new table. Updating only
Codex or Claude does not update cdx-manager's built-in prices. - Document the complete maintainer and installed-machine workflow in the
pricing runbook: exact IDs, official sources, helper limitations, regression
tests, release preparation and version/stats verification. - Costs remain estimates at standard short-context list prices. Fast/priority,
Batch/Flex, regional premiums, tool fees, one-hour cache writes and per-request
long-context premiums are not modelled.
Validation
-
All 1058 Python tests pass; project lint and Logics lint pass.
-
npm package contents, Python sdist/wheel build and Twine metadata checks pass.
-
Regression coverage includes the seven model rates, mixed token classes,
cache overrides, backwards compatibility and stats ranking. -
Local history recognizes all eight recorded models, including 30 Opus 5.5
runs that were previously unpriced.
v0.20.13
CDX Manager 0.20.13
Launches no longer open with a message you never typed
- RTK and Logics guidance used to be passed as the provider's positional prompt,
which Claude Code and Codex submit as a user turn: a barecdx <session>
opened with that guidance shown as your message plus a model reply to it, and
every resume sent it again as a new message. - Claude now receives the guidance through
--append-system-prompt, and Codex
through-c developer_instructions=.... Launch, resume, and headless runs are
all covered, and no turn is ever submitted on your behalf. - Codex guidance is appended after any
developer_instructionsalready set in
the profile'sconfig.tomlrather than replacing it. When that value cannot be
read (Python older than 3.11 withouttomli), cdx leaves it untouched and adds
no guidance. - Antigravity has no instruction channel and, like Ollama, no longer receives
the guidance. cdx doctor --check-provider-flagsnow verifies the options used to pass it.
Logics update hint
- The update notice now suggests
logics-manager updateinstead of the legacy
logics-manager self-updatealias.
Validation
- 1055 Python tests and project lint pass.
- Verified against real CLIs on macOS, Linux (WSL), and Windows: Claude Code
(2.1.177, 2.1.283) and Codex CLI (0.156.1, 0.157.1) receive the guidance, and
interactive launches and resumes no longer add a user turn to the provider
transcript, where 0.20.12 added one. Codex guidance also survives a resumed
thread and merges with a profile's owndeveloper_instructions.