Skip to content

Commit 88a0928

Browse files
author
Mateusz
committed
refactor: rename --dynamic-compression-enabled to --enable-dynamic-compression
Rename CLI flag to follow project naming convention (--enable-* pattern). Remove --dynamic-compression-disabled toggle (consistent with other features). Rename env var DYNAMIC_COMPRESSION_ENABLED to ENABLE_DYNAMIC_COMPRESSION.
1 parent 6f7af37 commit 88a0928

9 files changed

Lines changed: 37 additions & 41 deletions

File tree

docs/user_guide/cli-parameters.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -229,8 +229,7 @@ See the [Dynamic Tool Output Compression Guide](features/dynamic-tool-output-com
229229

230230
| CLI Argument | Environment Variable | Description |
231231
| :--- | :--- | :--- |
232-
| `--dynamic-compression-enabled` | N/A | Enable dynamic tool-output compression in request preparation. |
233-
| `--dynamic-compression-disabled` | N/A | Disable dynamic tool-output compression in request preparation. |
232+
| `--enable-dynamic-compression` | `ENABLE_DYNAMIC_COMPRESSION=true` | Enable dynamic tool-output compression in request preparation. |
234233
| `--dynamic-compression-level LEVEL` | N/A | Base compression level (`conservative`, `balanced`, `aggressive`). |
235234
| `--dynamic-compression-max-level LEVEL` | N/A | Maximum level allowed during escalation. |
236235
| `--dynamic-compression-min-bytes BYTES` | N/A | Minimum output size required before compression is eligible. |

docs/user_guide/features/dynamic-tool-output-compression.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ dynamic_compression:
5959
Or via CLI:
6060
6161
```bash
62-
python -m src.core.cli --dynamic-compression-enabled
62+
python -m src.core.cli --enable-dynamic-compression
6363
```
6464

6565
### Complete Configuration Reference
@@ -144,8 +144,7 @@ dynamic_compression:
144144
145145
| Flag | Description |
146146
|------|-------------|
147-
| `--dynamic-compression-enabled` | Enable dynamic compression |
148-
| `--dynamic-compression-disabled` | Disable dynamic compression (mutually exclusive with enabled) |
147+
| `--enable-dynamic-compression` | Enable dynamic compression |
149148
| `--dynamic-compression-level LEVEL` | Set base level: `conservative`, `balanced`, `aggressive` |
150149
| `--dynamic-compression-max-level LEVEL` | Set escalation ceiling |
151150
| `--dynamic-compression-min-bytes BYTES` | Minimum output size for compression |

src/core/cli_support/applicators/dynamic_compression_applicator.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,17 +29,13 @@ def apply(
2929
) -> None:
3030
dynamic_overrides: dict[str, Any] = {}
3131

32-
if getattr(args, "dynamic_compression_enabled", None) is not None:
33-
dynamic_overrides["enabled"] = args.dynamic_compression_enabled
32+
if getattr(args, "enable_dynamic_compression", None) is not None:
33+
dynamic_overrides["enabled"] = args.enable_dynamic_compression
3434
resolution.record(
3535
"dynamic_compression.enabled",
36-
args.dynamic_compression_enabled,
36+
args.enable_dynamic_compression,
3737
ParameterSource.CLI,
38-
origin=(
39-
"--dynamic-compression-enabled"
40-
if args.dynamic_compression_enabled
41-
else "--dynamic-compression-disabled"
42-
),
38+
origin="--enable-dynamic-compression",
4339
)
4440

4541
if getattr(args, "dynamic_compression_level", None) is not None:

src/core/cli_support/argument_parser_builder.py

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -735,22 +735,13 @@ def _add_dynamic_compression_arguments(
735735
"Dynamic Tool Output Compression",
736736
"Options for strategy-based tool output compression in request preparation",
737737
)
738-
toggle_group = dynamic_group.add_mutually_exclusive_group()
739-
toggle_group.add_argument(
740-
"--dynamic-compression-enabled",
741-
dest="dynamic_compression_enabled",
742-
action="store_const",
743-
const=True,
738+
dynamic_group.add_argument(
739+
"--enable-dynamic-compression",
740+
dest="enable_dynamic_compression",
741+
action="store_true",
744742
default=None,
745743
help="Enable dynamic tool output compression",
746744
)
747-
toggle_group.add_argument(
748-
"--dynamic-compression-disabled",
749-
dest="dynamic_compression_enabled",
750-
action="store_const",
751-
const=False,
752-
help="Disable dynamic tool output compression",
753-
)
754745
dynamic_group.add_argument(
755746
"--dynamic-compression-level",
756747
dest="dynamic_compression_level",
@@ -1214,6 +1205,13 @@ def _add_session_testing_arguments(self, parser: argparse.ArgumentParser) -> Non
12141205
default=None,
12151206
help="Disable automatic && to ; replacement in commands for Windows clients",
12161207
)
1208+
parser.add_argument(
1209+
"--disable-auto-continue-removal",
1210+
action="store_true",
1211+
dest="disable_auto_continue_removal",
1212+
default=None,
1213+
help="Disable automatic removal of trailing [AUTO-CONTINUE] marker",
1214+
)
12171215

12181216
def _add_b2bua_arguments(self, parser: argparse.ArgumentParser) -> None:
12191217
"""Add B2BUA session handling arguments."""

src/core/config/env/from_env_part2.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ def apply_config_part2(
314314

315315
config["dynamic_compression"] = {
316316
"enabled": _env_to_bool(
317-
"DYNAMIC_COMPRESSION_ENABLED",
317+
"ENABLE_DYNAMIC_COMPRESSION",
318318
False,
319319
env,
320320
path="dynamic_compression.enabled",

tests/unit/core/cli_support/applicators/test_dynamic_compression_applicator.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
def _empty_args() -> argparse.Namespace:
1111
return argparse.Namespace(
12-
dynamic_compression_enabled=None,
12+
enable_dynamic_compression=None,
1313
dynamic_compression_level=None,
1414
dynamic_compression_max_level=None,
1515
dynamic_compression_min_bytes=None,
@@ -27,7 +27,7 @@ def test_dynamic_compression_applicator_sets_overrides_and_resolution() -> None:
2727
)
2828

2929
args = _empty_args()
30-
args.dynamic_compression_enabled = True
30+
args.enable_dynamic_compression = True
3131
args.dynamic_compression_level = "balanced"
3232
args.dynamic_compression_max_level = "aggressive"
3333
args.dynamic_compression_min_bytes = 2048

tests/unit/core/cli_support/test_argument_parser_builder.py

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -451,6 +451,7 @@ class TestSessionTestingFlags:
451451
"--no-test-execution-reminder-enabled",
452452
"--disable-dangerous-git-commands-protection",
453453
"--disable-double-ampersand-fixes-for-windows",
454+
"--disable-auto-continue-removal",
454455
],
455456
)
456457
def test_session_testing_flags_present(
@@ -460,6 +461,15 @@ def test_session_testing_flags_present(
460461
flags = _collect_cli_flags(parser)
461462
assert flag in flags, f"Flag {flag} not found in parser"
462463

464+
def test_disable_auto_continue_removal_flag_shape(
465+
self, parser: argparse.ArgumentParser
466+
) -> None:
467+
"""--disable-auto-continue-removal uses expected destination defaults."""
468+
action = _get_action_by_dest(parser, "disable_auto_continue_removal")
469+
assert action is not None
470+
assert "--disable-auto-continue-removal" in action.option_strings
471+
assert action.default is None
472+
463473

464474
# =============================================================================
465475
# Tool Access Control Flags Tests
@@ -1014,17 +1024,12 @@ def test_parse_mutually_exclusive_brute_force(
10141024
]
10151025
)
10161026

1017-
def test_parse_mutually_exclusive_dynamic_compression(
1027+
def test_parse_enable_dynamic_compression(
10181028
self, parser: argparse.ArgumentParser
10191029
) -> None:
1020-
"""Parser enforces mutual exclusivity for dynamic compression toggle flags."""
1021-
with pytest.raises(SystemExit):
1022-
parser.parse_args(
1023-
[
1024-
"--dynamic-compression-enabled",
1025-
"--dynamic-compression-disabled",
1026-
]
1027-
)
1030+
"""Parser correctly parses --enable-dynamic-compression flag."""
1031+
args = parser.parse_args(["--enable-dynamic-compression"])
1032+
assert args.enable_dynamic_compression is True
10281033

10291034
def test_parse_model_alias(self, parser: argparse.ArgumentParser) -> None:
10301035
"""Parser correctly parses --model-alias with pattern=replacement format."""

tests/unit/core/cli_support/test_dynamic_compression_cli_flags.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,7 @@ def _collect_flags() -> set[str]:
1414

1515
def test_dynamic_compression_flags_are_registered() -> None:
1616
flags = _collect_flags()
17-
assert "--dynamic-compression-enabled" in flags
18-
assert "--dynamic-compression-disabled" in flags
17+
assert "--enable-dynamic-compression" in flags
1918
assert "--dynamic-compression-level" in flags
2019
assert "--dynamic-compression-max-level" in flags
2120
assert "--dynamic-compression-min-bytes" in flags

tests/unit/core/config/test_dynamic_compression_config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@ def test_dynamic_compression_env_is_loaded_and_tracked() -> None:
285285
resolution = ParameterResolution()
286286
cfg = AppConfig.from_env(
287287
environ={
288-
"DYNAMIC_COMPRESSION_ENABLED": "true",
288+
"ENABLE_DYNAMIC_COMPRESSION": "true",
289289
"DYNAMIC_COMPRESSION_LEVEL": "balanced",
290290
"DYNAMIC_COMPRESSION_MAX_LEVEL": "aggressive",
291291
"DYNAMIC_COMPRESSION_MIN_BYTES": "512",

0 commit comments

Comments
 (0)