Release v0.2.0 and first npm publish - #1
Merged
Merged
Conversation
realpathSync-normalize both sides of the entry-point comparison so the CLI still runs main() when invoked through a symlinked path (e.g. macOS /tmp -> /private/tmp). Verified with npm test (112 checks passing).
… defaults, CI hardening - Fix doctor never reaching "installed and localized": template instruction notes no longer contain the literal word TODO, and the localization prompt instructs deleting them when done (counts 5/12 -> 4/10). - Require an explicit command: bare invocation prints help and writes nothing; args without a command error out (breaking, pre-publish). - init now runs an automatic post-install health check with placeholder count, next step, and a Cursor CLI tip for running localization. - doctor reports version drift between the installed marker and the current package version. - Harden CI: Node 20/22 x Ubuntu/Windows matrix plus a checks job (node --check, package.json parse, npm pack --dry-run). - Raise engines to Node >=20 (18 is EOL). - Polish: lstat in listFiles (symlink-cycle safe), hoist TODO_FILES, remove dead smoke-test variable, absolute-path display for external targets, dynamic README version badge, vX.Y.Z example outputs. - Record decisions in docs/decision-log.md; update README, CHANGELOG, RELEASE_CHECKLIST, examples, and root AGENTS.md accordingly. Verified: npm test (126 checks passing), npm run pack:dry-run, package.json parse, manual CLI walkthrough of init/doctor/bare/drift.
- Bump version to 0.2.0; date the changelog
- Switch README/examples install instructions to npx cursor-os
- Add exports field for programmatic import { install, doctor }
- Add runtime Node >= 20 guard with a clear error message
- Add .gitattributes (LF enforcement) and gitignore *.tgz
- CI: e2e test installs the packed tarball and runs the bin
- Dogfood: cursor-os installed and localized on this repo
- Add no-auto-commit rule for agent sessions
There was a problem hiding this comment.
Pull request overview
Prepares Cursor OS for the v0.2.0 release and first npm publish by hardening the CLI defaults (read-only by default), adding packaging/import support, and tightening release/CI verification so the published tarball is exercised end-to-end.
Changes:
- Publishes via npm (
npx cursor-os <command>), addsexports, raises Node floor to 20, and adds a runtime Node version guard. - Makes CLI safer by requiring an explicit subcommand and adding a post-install “health check” plus version-drift reporting in
doctor. - Expands smoke/CI coverage and adds repo-level docs (decision log, quality rubric, repo memory) to support release operations.
Reviewed changes
Copilot reviewed 17 out of 18 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| template/prompts/localize-cursor-os.md | Updates localization instructions to remove install-time notes after localization. |
| template/docs/repo-memory.md | Adjusts install-time guidance to avoid non-placeholder “TODO” usage and to remove the note after localization. |
| template/AGENTS.md | Adjusts install-time guidance wording to avoid non-placeholder “TODO” usage and to remove the note after localization. |
| scripts/smoke-test.mjs | Adds smoke coverage for localized success, version drift, post-install messaging, and safer CLI behavior. |
| scripts/init.mjs | Hardens CLI parsing, adds Node>=20 guard, post-install check, version-drift reporting, and symlink-safe file listing behavior. |
| RELEASE_CHECKLIST.md | Adds packaging integrity and pre-publish checklist items for tarball/bin/import verification. |
| README.md | Updates install/docs to the npm (npx) flow, updates examples and roadmap, and removes “not published yet” language. |
| package.json | Bumps to 0.2.0, raises engines to Node>=20, adds exports, and tightens published files list. |
| examples/localization-example.md | Updates example commands/output to match npx cursor-os and localized success messaging. |
| docs/repo-memory.md | Adds repo-level “durable facts” documentation for maintainers. |
| docs/quality-rubric.md | Adds a repo-level quality gate checklist for verification/release discipline. |
| docs/decision-log.md | Adds an append-only decision record for v0.2.0 behavioral changes. |
| CHANGELOG.md | Documents v0.2.0 additions/breaking changes/fixes for the npm release. |
| AGENTS.md | Updates repo layout section to include the new docs/ directory purpose. |
| .gitignore | Ignores npm pack artifacts and local dogfooded install output. |
| .github/workflows/ci.yml | Adds a “checks” job (syntax/package/pack/e2e tarball) and expands smoke testing matrix. |
| .gitattributes | Enforces LF line endings repo-wide to protect the published shebang. |
| .cursor/rules/no-auto-commit.mdc | Adds a Cursor rule preventing accidental git/publish write operations. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
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.
No description provided.