Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
116fff7
refactor(install): split install.py into submodules (#1078 Commit 1a)
Jun 5, 2026
59a9601
refactor(install): cut services.py complexity via bundle/options reus…
Jun 5, 2026
1aafdc5
refactor(install): clear PLR0913 in mcp/lsp via shared MCPRequestSpec…
Jun 5, 2026
ad88dfa
refactor(install): extract resolve download closure into _TransitiveD…
Jun 5, 2026
abd883d
refactor(install): split sources.py into base + fresh modules (#1078)
Jun 5, 2026
548e9e9
refactor(install): decompose targets.run() to cut complexity (#1078)
Jun 5, 2026
e2d112f
refactor(install): split pipeline.py preflight + extract orchestratio…
Jun 6, 2026
f80b207
refactor(integration): split hook_integrator.py into transforms + mer…
Jun 6, 2026
6c6786f
refactor(integration): split skill_integrator.py under Stage 2 thresh…
Jun 6, 2026
73947a0
refactor(integration): split base_integrator I/O primitive, fix retur…
Jun 6, 2026
3e269ea
refactor(integration): extract target-profile dataclasses to sibling
Jun 6, 2026
bccf3ee
refactor(integration): tighten mcp_integrator_install.py complexity
Jun 6, 2026
d8f0bc5
refactor(integration): split mcp_integrator.py under 800-line budget
Jun 6, 2026
9bd613c
refactor(deps): split apm_resolver/plugin_parser/bare_cache under 800…
Jun 6, 2026
2ff44ee
refactor(deps): split github_downloader/download_strategies under 800…
Jun 6, 2026
12ea829
refactor(commands): split commands+bundle under 800-line guardrail (#…
Jun 6, 2026
1a7b6ee
refactor(models,compilation): split under 800-line guardrail (#1078)
Jun 6, 2026
9eb251b
refactor(#1078): Stage 2 commit 6 - core/adapters/cache/utils/output …
Jun 6, 2026
7c9eec4
refactor(policy,marketplace): split second-tier length offenders unde…
Jun 6, 2026
3434eb3
refactor: enforce Stage 2 complexity + file-length thresholds (#1078)
Jun 6, 2026
5df41d1
Merge origin/main into design-loop-issue-1078 (#1078)
Jun 9, 2026
fe3a3df
Merge origin/main into design-loop-issue-1078 (sync #1695, #1704)
Jun 9, 2026
946e43a
Merge origin/main into design-loop-issue-1078 (port #1709 skill subset)
Jun 9, 2026
0f29213
fix(lint): dedupe _skill_subset_name_filter to clear R0801
Jun 9, 2026
2d5bca3
Merge origin/main into design-loop-issue-1078 (port #1700 hook transp…
Jun 9, 2026
2882770
Merge origin/main into design-loop-issue-1078 (port #1718 skill bundl…
Jun 9, 2026
a41eb50
Merge origin/main (v0.20.0) into design-loop-issue-1078
Jun 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ jobs:
run: |
# Ruff has no max-module-lines rule. This check prevents new files from
# exceeding the current worst case. Tighten the threshold over time.
MAX_LINES=2100 # Stage 1 (was 2450); target 1400 deferred to Stage 2
MAX_LINES=800 # Stage 2 (issue #1078); Stage 1 was 2100
VIOLATIONS=$(find src/ -name '*.py' -print0 | xargs -0 -I{} awk -v max="$MAX_LINES" \
'END { if (NR > max) printf "%s: %d lines (max %d)\n", FILENAME, NR, max }' {})
if [ -n "$VIOLATIONS" ]; then
Expand Down
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Changed

- Tightened Stage 2 code-complexity thresholds (`max-statements` 120,
`max-branches` 40, `max-complexity` 35, `max-args` 12, `max-returns` 8) and
lowered the source file-length guardrail to 800 lines, splitting the remaining
oversized `policy/` and `marketplace/` modules into focused submodules with no
behaviour change. (#1681)

## [0.20.0] - 2026-06-11

### Added
Expand Down
16 changes: 8 additions & 8 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -94,16 +94,16 @@ ignore = [
# High initial thresholds set just above current codebase maximums.
# Prevents new code from exceeding the worst existing violations.
# Tighten these over time via dedicated refactoring PRs.
# Stage 1 thresholds (PR #1464, issue #1077).
# Roadmap: Stage 2 targets max-complexity<=20, max-branches<=25 (McCabe standard).
max-statements = 200 # Stage 1 (was 275)
max-args = 15 # Stage 1 (was 18)
max-branches = 60 # Stage 1 (was 115)
max-returns = 12 # Stage 1 (was 18)
# Stage 2 thresholds (issue #1078). Stage 1 (#1077/#1464) values shown for history.
# A future stage may tighten further toward the McCabe standard (<=20 complexity).
max-statements = 120 # Stage 2 (Stage 1 was 200)
max-args = 12 # Stage 2 (Stage 1 was 15)
max-branches = 40 # Stage 2 (Stage 1 was 60)
max-returns = 8 # Stage 2 (Stage 1 was 12)

[tool.ruff.lint.mccabe]
# Stage 1 (was 100). Stage 2 target: <=20 (McCabe industry standard).
max-complexity = 50
# Stage 2 (issue #1078). Stage 1 was 50. A future stage may target <=20.
max-complexity = 35

[tool.ruff.lint.per-file-ignores]
# Subprocess calls are intentional in a CLI tool
Expand Down
490 changes: 490 additions & 0 deletions src/apm_cli/adapters/client/_base_env.py

Large diffs are not rendered by default.

396 changes: 396 additions & 0 deletions src/apm_cli/adapters/client/_copilot_env.py

Large diffs are not rendered by default.

Loading
Loading