Repository navigation
Conversation
…un (#2554) ## Summary Each loader's kept-tree path now runs as one sequence under a test: fetch, swap, skills install, cleanup. The installer in the fixture is the real wrapper (`install-skills.sh` or `install-skills.ps1`) beside a stand-in `scripts/skills_install.py` that records the `ROOT` it would pass to `claude plugin marketplace add`. Each test asserts that the recorded directory is the kept `skills-tree`, that it still holds the installer once the cleanup has run, and that no staging or retired tree is left beside it. This is the test #1756 named as its done condition: the registered directory outlives the run, on both platforms. The kept-tree design itself landed in #1773. ## Verification - **Windows, native:** `tests/test_bootstrap.py` passes (68 passed, 32 skipped). The new PowerShell case runs the real `bootstrap.ps1` functions under pwsh 7 on this host. - **Linux:** in `python:3.12-slim` as a non-root user, `TestKeptTreeHandling` passes (20 tests). `TestPowerShellKeptTreeHandling` passes too (25 tests, 5 skipped), run under pwsh 7 copied from the PowerShell image. - **Mutation:** swapping the installer ahead of the swap in each loader makes its test fail. The recorder then names `skills-tree.new`, the directory the cleanup removes. This was checked natively for `bootstrap.ps1` and in the container for `bootstrap.sh`. - **Live host:** on this Windows host, the `projecttemplate-fleet` marketplace's folder source is the kept tree under `%LOCALAPPDATA%\host-setup\skills-tree`. It is still there after the bootstrap run that registered it, with no `.new` or `.old` beside it. - **Checks:** ruff check, ruff format, mypy, and the prose gate are clean. One local strict-review pass raised no findings. Refs #1756 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
## Summary Adds a `windows-test` job to the hub's own `test-pull-request.yml`. It runs the hub's unittest suite on `windows-latest` from Git Bash under Python 3.13, and `check-workflow-status` now requires it beside `validate`. The required check's name does not change. This follows the maintainer's answer recorded on #1143: add a `windows-latest` job once the suite passes on Windows, which it has since #2488. The maintainer also chose to keep the job hub-only. The reusable `validate-task.yml` and `catalog/snippets/workflows/test-pull-request.yml` are untouched, so no other repository's gate moves. ## Notes - The job runs the same `unittest discover -s tests` as the Linux leg, without coverage, since the Linux leg owns the Codecov report. - Pins match the ones already in the repo: checkout v7.0.1 as in `validate-task.yml`, setup-python v7.0.0 as in `canonical-review-sweep.yml`. - The `spec/files.json` contract for this file is interface fidelity with `requiredJobKeys` `[check-workflow-status, validate]`, so an extra job conforms. - The hosted runner differs from a developer Windows host. It runs as admin, so symlink tests skip locally but run in CI. Its Docker is in Windows-container mode, and its temp path may be an 8.3 short name. This PR's first run is the measurement of those differences, and a failure there gets its own fix before this merges. ## Verification - actionlint and editorconfig-checker, run through `scripts/docker_lint.py`, pass. So do `scripts/repo_gate.py` (sha-pin included), `spec/validate.py`, and the prose gate with comments allowed. - One local strict-review pass raised no findings. Refs #1143 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configuration
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
🟢 Approval recommended
Both changed files were reviewed, and no unresolved issues were identified.
0 open findings
What changed in this PR
This PR promotes bootstrap skills-tree tests and a Windows CI test job to main, strengthening checks for two supported host platforms.
Changes:
- Tests that the skills installer registers a tree that survives bootstrap cleanup on Linux and Windows.
- Runs the Python test suite on Windows and requires that job to pass before the PR workflow succeeds.
| File | Description |
|---|---|
tests/test_bootstrap.py |
Adds kept-tree registration tests for both loaders. |
.github/workflows/test-pull-request.yml |
Adds a required Windows test job. |
🧠 Review effort: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #2558 +/- ##
=======================================
Coverage 58.40% 58.40%
=======================================
Files 16 16
Lines 8090 8090
=======================================
Hits 4725 4725
Misses 3365 3365
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Summary
Promotes two changes from the
windowslane.bootstrap.shandbootstrap.ps1). Each one runs the kept-tree fetch, the swap, the skills install and the cleanup in order, and asserts that the directory the installer registers as the Claude Code marketplace is the keptskills-treeand still exists after the run. It passes natively on Windows and on Linux, and running the installer before the swap fails it.windows-testjob totest-pull-request.yml. It runs the suite onwindows-latestfrom Git Bash with uv installed, andcheck-workflow-statusnow requires it. Its first green hosted run took about 196s for 2277 tests. The required check's name is unchanged, and no other repository's gate moves.Closes #1756
Closes #1143
🤖 Generated with Claude Code