Add safe upgrades, prunable rules, and target validation; publish 0.3.0 - #3
Merged
Merged
Conversation
Correctness - init --update refreshes only files that still match the install manifest, so template improvements can reach existing installs without touching edits. - install() now separates skipped (identical to template), stale (unedited but behind it), and customized (edited and preserved). - doctor treats frontend.mdc and debugging.mdc as prunable. Localization is told to delete them when they do not apply, and that no longer fails the check. - init, doctor, and detect validate the target directory. A mistyped multi-level --target is refused rather than created. - The installer ignores OS artifacts. A stray .DS_Store in template/ was copied into every install and failed three smoke checks on macOS, which CI could not observe from Ubuntu and Windows. - frontend.mdc declares globs in the comma-separated form Cursor documents; the previous YAML block sequence may not have parsed. - Version bumped to 0.3.0 so the published package matches the documented CLI. 0.2.0 shipped without the detect command the README describes. Demo - demo/hero.svg renders the comparison inline on GitHub via CSS keyframes. - demo/index.html adds playback controls and a chrome-free recording mode. - .github/workflows/pages.yml publishes demo/ to GitHub Pages. - README leads with the comparison, then a step-by-step npm quick start. Smoke suite at 194 checks, up from 159.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This release adds safe, ownership-aware upgrades, stronger target validation and doctor diagnostics, project detection, template fixes, and a GitHub Pages demo.
Safe upgrade contract
init --updatenow treats.cursor/.cursor-os-manifest.jsonas an ownership ledger rather than a snapshot of everything found on disk.--updatemay refresh a managed file only when its current hash still matches the hash Cursor OS previously recorded.initorinit --updateruns.--updateremoves them only when they are still unchanged. Customized obsolete files are preserved.doctornow reports ownership/update health in addition to install/localization health: stale managed files, customized files, unmanaged files, pruned optional rules, filesystem conflicts, obsolete paths, and manifest validity.Other correctness fixes
init,doctor, anddetectvalidate the target directory.initmay create one final directory level when its parent exists, but refuses a mistyped missing tree..DS_Storeare ignored when enumerating the template.frontend.mdcuses Cursor's comma-separated glob form.0.3.0, matching the CLI documented by the README.Demo
demo/hero.svgrenders the comparison inline on GitHub.demo/index.htmladds playback controls and a clean recording mode.upload-pages-artifact@v4action.Regression coverage
The existing smoke suite remains in place. A separate upgrade-safety suite now covers the state transitions most likely to cause user data loss:
--updatepreserves it;--updateremoves it;Verification
npm testpackage.jsonparsesCI run #15 is green across the packaging/E2E job and all four Node/OS smoke-matrix jobs.
Contribution bar
Template impact
Notes for reviewers
The most important invariant to review is ownership: a path must never become eligible for automatic overwrite merely because Cursor OS observed its contents. Only paths Cursor OS can prove it wrote are managed by
--update.