chore: migrate org references from Pythoughts-labs to PyModel - #66
Conversation
The GitHub org was transferred to PyModel. Old Pages URLs return 404 (no redirect), the Homebrew tap moved to pymodel/tap, and install scripts fetched releases from the old org path. Two literal replacements across all tracked files: Pythoughts-labs -> PyModel, pythoughts-labs -> pymodel. Covers README, docs site, install.sh/install.ps1, workflow org guards, Caddyfile, changelogs, flake.nix, and release scripts. The npm scope @pythoughts/* is unchanged on npm and deliberately untouched.
|
Warning Review limit reached
Next review available in: 14 seconds Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (58)
Comment |
## Related Issue No issue — follow-up to #66 (GitHub org migration). This PR moves the npm side to the new org. ## Problem The GitHub org moved to `PyModel` (#66), but every workspace package still carries the `@pythoughts` npm scope, and releases still publish to `@pythoughts/pythinker-code`. Newer versions must publish under the `pymodel` npm org. ## What changed - Renamed all 18 workspace packages from `@pythoughts/*` to `@pymodel/*`: package names, workspace dependencies, imports, and every tooling reference (changesets config, `flake.nix` workspace names, CI workflows, release/native/brew/CDN scripts, docs, README badges). - Fixed escaped-scope references a plain replace misses: the api-extractor specifier-rewrite regex in the SDK dts build, vitest/tsdown `alwaysBundle` regexes, and the Windows path marker in the postinstall reach script. - Regenerated `pnpm-lock.yaml`; the `flake.nix` `pnpmDeps` hash is unchanged (verified by rebuilding — workspace names do not affect the fetched dependency set). - Added a `minor` changeset so the next release publishes `@pymodel/pythinker-code`. Out of scope: the VS Code Marketplace publisher (`pythoughts.pythinker-code`), `api.pythoughts.com` platform URLs, and the `ai.pythoughts.pythinker-server` LaunchAgent label — these are separate identities, not npm scope. ## Merge order Merge #67, #68, #69 first — their changesets name `@pythoughts/pythinker-code` and would break `changeset version` if this PR lands before them. ## Before the first publish (npm side, manual) 1. On npmjs.com, add a Trusted Publishing (OIDC) connection for `@pymodel/pythinker-code`: repository `PyModel/pythinker-code`, workflow `release.yml`. 2. After the first successful `@pymodel` release: `npm deprecate @pythoughts/pythinker-code "Moved to @pymodel/pythinker-code"`. ## Checklist - [x] I have read the [CONTRIBUTING](https://github.com/PyModel/pythinker-code/blob/main/CONTRIBUTING.md) document. - [x] I have linked a related issue, or explained the problem above. - [x] I have added tests that prove my feature works. (Mechanical rename; existing suites cover it.) - [x] Ran `gen-changesets` skill, or this PR needs no changeset. - [x] Ran `gen-docs` skill, or this PR needs no doc update. (Docs updated in the sweep.) ## Additional commits - The sweep also caught encoded-scope references a plain replace misses: api-extractor/tsdown/vitest regexes (`@pythoughts\/`), release-tag parsing in `produce-manifest.mjs` and `install.sh`, `%40…%2F` release-download URLs in the CDN build, and split specifiers in tests. - One drive-along test-infra fix: `skill-session.test.ts` temp-dir cleanup now retries, because a late journal flush races the recursive delete under full-suite load and threw ENOTEMPTY twice while gating this push.
Related Issue
No issue — the problem is explained below.
Problem
The GitHub org was transferred from
Pythoughts-labstoPyModel. References to the old org are now broken or stale: the old GitHub Pages URLs (pythoughts-labs.github.io/pythinker-code) return 404 with no redirect, the Homebrew tap moved topymodel/tap, andinstall.sh/install.ps1fetched releases from the old org path.What changed
Two literal, case-preserving replacements across all 58 tracked files that referenced the old org (331 lines):
Pythoughts-labs→PyModelpythoughts-labs→pymodelThis covers the README, CONTRIBUTING, SECURITY, docs site + VitePress config,
install.sh/install.ps1, workflowrepository_ownerguards, the site Caddyfile Link header, changelogs,flake.nix, and the brew-formula release script.Deliberately untouched: the npm scope
@pythoughts/*— the packages did not move on npm, only the GitHub org changed.Verified: zero old-org references remain in tracked files (
git grep -iE 'pythoughts[-_]labs'is empty), every changed line differs only by the org substitution, allpackage.jsonfiles still parse,install.shkept its executable bit, and the new targets were confirmed live (PyModel/pythinker-codereleases,Formula/pythinker-code.rbinPyModel/homebrew-tap,pymodel.github.io/pythinker-codereturns 200).Checklist
gen-changesetsskill, or this PR needs no changeset. — no changeset: no runtime behavior change; package.json metadata rides the next release.gen-docsskill, or this PR needs no doc update. — doc URLs updated directly as part of the sweep.