cdx-manager 0.7.4 → 0.7.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # CDX Manager
2
2
 
3
- [![License](https://img.shields.io/badge/license-MIT-4C8BF5)](LICENSE) ![Version](https://img.shields.io/badge/version-v0.7.4-4C8BF5) ![Python](https://img.shields.io/badge/python-3.9%2B-3776AB?logo=python&logoColor=white)
3
+ [![License](https://img.shields.io/badge/license-MIT-4C8BF5)](LICENSE) ![Version](https://img.shields.io/badge/version-v0.7.5-4C8BF5) ![Python](https://img.shields.io/badge/python-3.9%2B-3776AB?logo=python&logoColor=white)
4
4
 
5
5
  **Run multiple Codex, Claude, Antigravity, and Ollama sessions from one terminal. Switch between accounts instantly.**
6
6
 
@@ -136,7 +136,7 @@ For a specific version:
136
136
 
137
137
  ```bash
138
138
  curl -fsSL https://raw.githubusercontent.com/AlexAgo83/cdx-manager/main/install.sh -o install.sh
139
- CDX_VERSION=v0.7.4 sh install.sh
139
+ CDX_VERSION=v0.7.5 sh install.sh
140
140
  ```
141
141
 
142
142
  From source:
@@ -291,7 +291,7 @@ cdx power all default
291
291
  cdx model provider:ollama default
292
292
  ```
293
293
 
294
- `--power` maps to Codex `model_reasoning_effort` and Claude `--effort`. `--permission` maps to provider-native permission flags. `--fast on` uses low effort when no explicit power is set. `--priority` is a 0..100 selector preference used as a tie-breaker after readiness and availability. `--rtk on` injects a launch instruction that encourages assistants to use RTK (`rtk <command>`) for noisy terminal commands when RTK is available, while keeping raw commands for exact output.
294
+ `--model` maps to Codex `--model`, Claude `--model`, and Ollama `ollama run <model>`. `--power` maps to Codex `model_reasoning_effort` and Claude `--effort`. `--permission` maps to provider-native permission flags. `--fast on` clears the stored power setting and uses low effort; setting `--power` again disables fast mode. `--priority` is a 0..100 selector preference used as a tie-breaker after readiness and availability. `--rtk on` injects a launch instruction that encourages assistants to use RTK (`rtk <command>`) for noisy terminal commands when RTK is available, while keeping raw commands for exact output.
295
295
 
296
296
  ### Launch History
297
297
 
@@ -0,0 +1,35 @@
1
+ # Changelog (`0.7.4 -> 0.7.5`)
2
+
3
+ Release date: 2026-06-02
4
+
5
+ ## Launch Settings
6
+
7
+ - Applied persisted `--model` settings to interactive Codex and Claude launches, matching the existing headless behavior.
8
+ - Switched Codex model launches to the explicit `--model` flag for both interactive and headless runs.
9
+ - Documented provider-specific model mapping for Codex, Claude, and Ollama.
10
+
11
+ ## Fast Mode
12
+
13
+ - Fixed `--fast on` so it clears the default stored power setting and actually launches Codex and Claude with low effort.
14
+ - Made explicit `--power` settings disable fast mode again, keeping launch settings readable and predictable.
15
+ - Restored `power=medium` when `--fast off` is set and no explicit power is present.
16
+
17
+ ## Coverage and Tests
18
+
19
+ - Added regression coverage for persisted model settings on interactive Codex and Claude launches.
20
+ - Added regression coverage for `fast on` launching Codex with `model_reasoning_effort="low"` and Claude with `--effort low`.
21
+ - Increased the Python test suite to 280 tests.
22
+
23
+ ## Release Metadata
24
+
25
+ - Updated package metadata, CLI version output, README badge, pinned installer example, and release changelog to `v0.7.5`.
26
+
27
+ ## Validation and Regression Evidence
28
+
29
+ - `npm run lint`
30
+ - `npm test`
31
+ - `python3 -m pytest -q`
32
+ - `npm audit --omit=dev --json`
33
+ - `sh -n install.sh`
34
+ - PowerShell parser check for `install.ps1`
35
+ - `python3 -m logics_manager lint --require-status`
@@ -44,6 +44,10 @@
44
44
  "v0.7.3": {
45
45
  "github_tarball_sha256": "f68ac90a51c723eef9ae2b66106baa954f2fff8129fb5353e8eeb26b258b06c9",
46
46
  "github_zip_sha256": "dde2512701808450b39c5c4431317d95d017f9944435db83ac4497b645feb719"
47
+ },
48
+ "v0.7.4": {
49
+ "github_tarball_sha256": "02b399899e611300ddf367bfb8c22ad57b499e94265e50256c8afe3f4bd73851",
50
+ "github_zip_sha256": "87043d49cdd50dcd7d51349984ea4abfb1a2ff50f2eab69c75a421bedd2f2fe8"
47
51
  }
48
52
  }
49
53
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cdx-manager",
3
- "version": "0.7.4",
3
+ "version": "0.7.5",
4
4
  "description": "Terminal session manager for Codex and Claude accounts.",
5
5
  "license": "MIT",
6
6
  "author": "Alexandre Agostini",
package/pyproject.toml CHANGED
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "cdx-manager"
7
- version = "0.7.4"
7
+ version = "0.7.5"
8
8
  description = "Terminal session manager for Codex and Claude accounts."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
package/src/cli.py CHANGED
@@ -60,7 +60,7 @@ from .status_view import (
60
60
  )
61
61
  from .update_check import check_for_update
62
62
 
63
- VERSION = "0.7.4"
63
+ VERSION = "0.7.5"
64
64
 
65
65
 
66
66
  # ---------------------------------------------------------------------------
@@ -314,7 +314,11 @@ def _build_launch_spec(session, cwd=None, env_override=None, initial_prompt=None
314
314
  env_override = env_override or {}
315
315
  env = {**os.environ, **env_override}
316
316
  if session["provider"] == PROVIDER_CLAUDE:
317
- args = ["--name", session["name"]] + _launch_config_args(session)
317
+ launch = session.get("launch") or {}
318
+ args = ["--name", session["name"]]
319
+ if launch.get("model"):
320
+ args += ["--model", launch["model"]]
321
+ args += _launch_config_args(session)
318
322
  if initial_prompt:
319
323
  args.append(initial_prompt)
320
324
  auth_home = _get_auth_home(session)
@@ -360,7 +364,11 @@ def _build_launch_spec(session, cwd=None, env_override=None, initial_prompt=None
360
364
  },
361
365
  "label": "ollama",
362
366
  }, capture_transcript=capture_transcript, env=env)
363
- args = ["--no-alt-screen", "--cd", cwd] + _launch_config_args(session)
367
+ launch = session.get("launch") or {}
368
+ args = ["--no-alt-screen", "--cd", cwd]
369
+ if launch.get("model"):
370
+ args += ["--model", launch["model"]]
371
+ args += _launch_config_args(session)
364
372
  if initial_prompt:
365
373
  args.append(initial_prompt)
366
374
  return _wrap_launch_with_transcript(session, {
@@ -414,7 +422,7 @@ def _build_headless_launch_spec(session, cwd=None, env_override=None, initial_pr
414
422
  if session["provider"] == PROVIDER_CODEX:
415
423
  args = ["exec", "--json", "-C", cwd]
416
424
  if model:
417
- args += ["-m", model]
425
+ args += ["--model", model]
418
426
  if power:
419
427
  args += ["-c", f'model_reasoning_effort="{power}"']
420
428
  if permission:
@@ -816,6 +816,16 @@ def create_session_service(options=None):
816
816
  raise CdxError("At least one launch setting is required.")
817
817
  current = _normalize_launch_settings(session.get("launch") or {})
818
818
  launch = {**current, **updates}
819
+ explicit_power = "power" in updates or "reasoning_effort" in updates
820
+ if explicit_power and "fast" not in updates:
821
+ launch["fast"] = False
822
+ if "fast" in updates and not explicit_power:
823
+ if updates["fast"] is True:
824
+ launch.pop("power", None)
825
+ launch.pop("reasoning_effort", None)
826
+ launch.pop("reasoningEffort", None)
827
+ elif not any(key in launch for key in ("power", "reasoning_effort", "reasoningEffort")):
828
+ launch["power"] = DEFAULT_LAUNCH_SETTINGS["power"]
819
829
  now = _local_now_iso()
820
830
  return store["update_session"](name, lambda s: {
821
831
  **s,