Skip to content

Releases: AlexAgo83/cdx-manager

v0.22.0

Choose a tag to compare

@AlexAgo83 AlexAgo83 released this 25 Oct 11:50

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 rescue can hand a limit-stopped conversation to a ready account. It also detects limit stops in the transcript and avoids duplicate rescue attempts.
  • cdx status reports 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 run accepts a label and a concurrency cap. Cap checks, hook ownership, and blocked-status reporting have been corrected.
  • Interactive session launch accepts --task and an optional --end-state to describe the authorized goal.
  • cdx stats --by project|model breaks 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

Choose a tag to compare

@AlexAgo83 AlexAgo83 released this 22 Oct 15:18

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 own cdx instead of a stale system-wide one (#23).
  • cdx set <name> --scrub-env on launches Claude with CLAUDE_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.md explains 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.cmd now returns the real exit code; it always returned 0;
    • cdx ready schedules its task on any Windows language, where schtasks refused the date on non-US systems;
    • provider output is read as UTF-8;
    • cdx -v and --help work without a home directory;
    • the check after cdx update no longer prints "Could not determine home directory" (#22, #23).
  • cdx run stops the provider when it receives SIGTERM or SIGHUP (a kill, a systemctl stop or 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 set and clear no 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 --json publishes every run error code and warning code. cdx run sets its error codes at the source instead of reading the message text (#25).

Housekeeping

  • CI also tests Python 3.9, the minimum version declared in pyproject.
  • The tray builds with cargo --locked.
  • The test suite no longer touches the developer's real macOS keychain (#24, #25).

v0.21.5

Choose a tag to compare

@AlexAgo83 AlexAgo83 released this 22 Oct 13:32

CDX Manager 0.21.5

Claude logins

  • cdx status shows each Claude profile's auth type in a TYPE column: setup-token or full-login (a /login run inside the profile). It also appears in the single-session view and as auth_type in --json. Within 30 days of a setup-token's one-year expiry, the column shows setup-token 12d, or setup-token expired once it has lapsed, and cdx doctor warns with the cdx login command 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 login on 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 ready never showed its notification: the scheduled job ran cdx 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.json is written atomically, through symlinks, and keeps its permissions (#18).
  • Token prices reviewed on 2026-10-22:
    • claude-sonnet-5-5 cache reads are $0.10/MTok;
    • claude-haiku-5-5 is added;
    • context variants such as claude-opus-5-5[1m] are priced at the base model's rates (#20).

Housekeeping

  • runs.json keeps every running run plus the newest 500 finished ones.
  • Handoff entries older than 7 days are deleted when a new one is prepared.
  • Dead log-rotation code and duplicated helpers are removed.
  • New tests cover the state-changing cdx tray commands (#17, #19).

v0.21.4

Choose a tag to compare

@AlexAgo83 AlexAgo83 released this 20 Oct 08:59

CDX Manager 0.21.4

Start a session on a first message

  • cdx <name> --prompt TEXT and cdx <name> --prompt-file PATH launch an interactive session that starts on that message, for launcher scripts that open a session already pointed at a task. Both spellings --flag value and --flag=value work. They are refused before the provider starts when combined with each other, with --resume or cdx resume, with --prompt-file - (the session needs standard input), and for Ollama sessions (ollama run answers once and exits). A relative --prompt-file path 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 as CLAUDE_CODE_DISABLE_* still pass through. Contributed by Nicolas Rigaudy (#14).
  • A prompt starting with - (from --prompt, cdx handoff or cdx run) is now passed after --, so Claude, Codex and Ollama no longer read it as an option (for example -h printed the provider's help instead of starting).

v0.21.3

Choose a tag to compare

@AlexAgo83 AlexAgo83 released this 13 Oct 09:57

CDX Manager 0.21.3

Fixes

  • Claude in Chrome now works from CDX Claude profiles (claude --chrome, /chrome, or cdx 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/Chrome on macOS, ~/.config/google-chrome on 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

Choose a tag to compare

@AlexAgo83 AlexAgo83 released this 11 Oct 14:39

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 launch could 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

Choose a tag to compare

@AlexAgo83 AlexAgo83 released this 11 Oct 14:10

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 cdx command on GitHub.

v0.21.0

Choose a tag to compare

@AlexAgo83 AlexAgo83 released this 04 Oct 15:59

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

Choose a tag to compare

@AlexAgo83 AlexAgo83 released this 04 Oct 14:18

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 weighted COST~
    stats: 5% of input for GPT-6.1 Sol and Opus 5.5, and 2.5% for Fable/Mythos 5.1.
  • CDX_TOKEN_PRICES accepts an optional cache_read price 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 update after 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

Choose a tag to compare

@AlexAgo83 AlexAgo83 released this 26 Sep 10:51

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 bare cdx <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_instructions already set in
    the profile's config.toml rather than replacing it. When that value cannot be
    read (Python older than 3.11 without tomli), 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-flags now verifies the options used to pass it.

Logics update hint

  • The update notice now suggests logics-manager update instead of the legacy
    logics-manager self-update alias.

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 own developer_instructions.