Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
50060d7
refactor(app): global and comprehensive refactoring (Stage #1).
orenlab Apr 20, 2026
254bee3
refactor(app): global and comprehensive refactoring (Stage #2).
orenlab Apr 21, 2026
29edffc
refactor(core): global cleanup of Any
orenlab Apr 21, 2026
3eb8bce
refactor(analysis,report): remove empty TYPE_CHECKING guards
orenlab Apr 21, 2026
7008ddc
fix(cache): prune stale deleted file entries
orenlab Apr 21, 2026
39430ab
refactor(report,mcp): reduce import dependency chains
orenlab Apr 21, 2026
0ed1b03
test(coverage): cover validation and renderer edges
orenlab Apr 21, 2026
f648d1f
refactor(app): global and comprehensive refactoring (Stage #1).
orenlab Apr 21, 2026
2235c50
docs(architecture): refresh docs for b6 layout
orenlab Apr 22, 2026
3ba948c
fix(defaults): centralize shared runtime defaults
orenlab Apr 22, 2026
7bb8b05
fix(readme): make wordmark render on PyPI with absolute asset URLs
orenlab Apr 22, 2026
f95a4c7
chore(preview): tighten MCP docs and refresh b6 client metadata
orenlab Apr 22, 2026
8415466
refactor(mcp): split session and remove duplicated CLI helper tails
orenlab Apr 23, 2026
f0dd2a2
feat(cli): show one-time VS Code extension hint in interactive terminals
orenlab Apr 23, 2026
7bd2a11
refactor(report): move html template into canonical html package
orenlab Apr 23, 2026
67a0ade
refactor(analysis,findings): move suppressions and golden fixtures to…
orenlab Apr 23, 2026
ddf41e8
fix(dependencies): align depth threshold docs and UI with health model
orenlab Apr 23, 2026
013af81
feat(dependencies): switch to adaptive depth profiling and surface it…
orenlab Apr 23, 2026
59a23f8
chore(cli,report): refine dependency visuals and runtime warnings
orenlab Apr 23, 2026
d7f8447
chore(dev): drop codegraphcontext from dev dependencies
orenlab Apr 23, 2026
28534bd
ci(release): add trusted publishing workflow and harden benchmark iso…
orenlab Apr 23, 2026
fcc0809
chore(docs, licence): documentation has been updated and the recognit…
orenlab Apr 23, 2026
9afd5f0
chore(docs): marking version 1.4.x as no longer supported (EOL)
orenlab Apr 23, 2026
c34ac27
chore(release): polish b6 notes, health scoring, and PyPI license links
orenlab Apr 24, 2026
36f274c
fix(mcp): preserve reviewed finding summary payload
orenlab Apr 24, 2026
ed8d198
fix(clients,docs): restore local fallback and refresh client surfaces
orenlab Apr 24, 2026
e04d213
fix(clients,docs): make Codex plugin install-safe and parallelize VS …
orenlab Apr 24, 2026
1b3a9e9
fix(runtime): complete cp314 migration and clean baseline trust UX
orenlab Apr 24, 2026
414097b
fix(tests): keep provenance mismatch checks matrix-safe
orenlab Apr 24, 2026
5ea6657
feat(report): add report-only security surfaces inventory across cach…
orenlab Apr 28, 2026
3ae9a55
feat(vscode): add source-first Security Surfaces review flow with Cov…
orenlab Apr 28, 2026
e6e7ef1
docs(release): tighten b6 notes and sync report schema with MCP cache…
orenlab Apr 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/actions/codeclone/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ jobs:

| Input | Default | Purpose |
|-------------------------|---------------------------------|-------------------------------------------------------------------------------------------------------------------|
| `python-version` | `3.13` | Python version used to run the action |
| `python-version` | `3.14` | Python version used to run the action |
| `package-version` | `""` | CodeClone version from PyPI for remote installs; ignored when the action runs from the checked-out CodeClone repo |
| `path` | `.` | Project root to analyze |
| `json-path` | `.cache/codeclone/report.json` | JSON report output path |
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/codeclone/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ inputs:
python-version:
description: "Python version"
required: false
default: "3.13"
default: "3.14"

package-version:
description: "CodeClone version from PyPI for remote installs (ignored when the action runs from the checked-out CodeClone repo)"
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/benchmark.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ jobs:
if: env.BENCH_ENABLED == '1' && runner.os == 'macOS'
uses: actions/setup-python@v6.2.0
with:
python-version: "3.13"
python-version: "3.14"
allow-prereleases: true

- name: Set up uv (macOS local benchmark)
Expand All @@ -98,7 +98,7 @@ jobs:

- name: Install dependencies (macOS local benchmark)
if: env.BENCH_ENABLED == '1' && runner.os == 'macOS'
run: uv sync --all-extras --dev
run: uv sync --extra dev

- name: Set benchmark output path
if: env.BENCH_ENABLED == '1'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/codeclone.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
- name: Run CodeClone
uses: ./.github/actions/codeclone
with:
python-version: "3.13"
python-version: "3.14"
fail-on-new: "true"
fail-health: "60"
sarif: "true"
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v6.2.0
with:
python-version: "3.13"
python-version: "3.14"
allow-prereleases: true

- name: Set up uv
Expand All @@ -33,7 +33,7 @@ jobs:
enable-cache: true

- name: Install project dependencies
run: uv sync --dev
run: uv sync --extra dev

- name: Configure GitHub Pages
uses: actions/configure-pages@v5
Expand Down
116 changes: 116 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
name: publish
run-name: >-
publish • ${{ github.event_name }} •
${{ github.event.release.tag_name || inputs.repository || github.ref_name }}

on:
release:
types: [published]
workflow_dispatch:
inputs:
repository:
description: Target package index
required: true
default: testpypi
type: choice
options:
- testpypi
- pypi

permissions:
contents: read

concurrency:
group: publish-${{ github.event.release.tag_name || github.ref }}
cancel-in-progress: false

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6.0.2

- name: Set up Python
uses: actions/setup-python@v6.2.0
with:
python-version: "3.14"
allow-prereleases: true

- name: Set up uv
uses: astral-sh/setup-uv@v5
with:
enable-cache: true

- name: Verify release tag matches project version
if: ${{ github.event_name == 'release' }}
shell: bash
run: |
set -euo pipefail
project_version="$(python - <<'PY'
import pathlib, tomllib
payload = tomllib.loads(pathlib.Path("pyproject.toml").read_text(encoding="utf-8"))
print(payload["project"]["version"])
PY
)"
release_tag="${{ github.event.release.tag_name }}"
normalized_tag="${release_tag#v}"
if [ "$normalized_tag" != "$project_version" ]; then
echo "release tag $release_tag does not match project version $project_version" >&2
exit 1
fi

- name: Build distributions
run: uv run --with build python -m build --sdist --wheel

- name: Validate distributions
run: uv run --with twine twine check dist/*

- name: Upload distributions
uses: actions/upload-artifact@v4
with:
name: python-package-distributions
path: dist/
if-no-files-found: error

publish-testpypi:
if: ${{ github.event_name == 'workflow_dispatch' && inputs.repository == 'testpypi' }}
needs: build
runs-on: ubuntu-latest
environment: testpypi
permissions:
contents: read
id-token: write
steps:
- name: Download distributions
uses: actions/download-artifact@v5
with:
name: python-package-distributions
path: dist/

- name: Publish to TestPyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
repository-url: https://test.pypi.org/legacy/

publish-pypi:
if: >-
${{
github.event_name == 'release' ||
(github.event_name == 'workflow_dispatch' && inputs.repository == 'pypi')
}}
needs: build
runs-on: ubuntu-latest
environment: pypi
permissions:
contents: read
id-token: write
steps:
- name: Download distributions
uses: actions/download-artifact@v5
with:
name: python-package-distributions
path: dist/

- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
10 changes: 5 additions & 5 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,19 +35,19 @@ jobs:
enable-cache: true

- name: Install dependencies
run: uv sync --all-extras --dev
run: uv sync --extra dev --extra mcp

- name: Run tests
# Smoke CLI tests intentionally disable subprocess coverage collection
# to avoid runner-specific flakiness while keeping parent-process coverage strict.
run: uv run pytest --cov=codeclone --cov-report=term-missing --cov-fail-under=99

- name: Verify baseline exists
if: ${{ matrix.python-version == '3.13' }}
if: ${{ matrix.python-version == '3.14' }}
run: test -f codeclone.baseline.json

- name: Check for new clones vs baseline
if: ${{ matrix.python-version == '3.13' }}
if: ${{ matrix.python-version == '3.14' }}
run: uv run codeclone . --ci

lint:
Expand All @@ -59,15 +59,15 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v6.2.0
with:
python-version: "3.13"
python-version: "3.14"

- name: Set up uv
uses: astral-sh/setup-uv@v5
with:
enable-cache: true

- name: Install dependencies
run: uv sync --all-extras --dev
run: uv sync --extra dev --extra mcp

- name: Ruff
run: uv run ruff check .
Expand Down
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,8 @@ site/
/package-lock.json
extensions/vscode-codeclone/node_modules
/coverage.xml
/.cgcignore
/mcp.json
/scripts/refactor_guard.sh
/docs/refactoring-spec.md
/smoke_cli.sh
Loading
Loading