Skip to content

Commit b67e4ee

Browse files
authored
fix: stale desktop and docs links, legacy fixture content, lint coverage guard (#359)
## Requirement or Bug Clear the remaining tracked-content hygiene backlog: stale third-party desktop/docs links, orphan docs tree, legacy fixture content that tripped the content gates, and a lint blind spot that could report a vacuous green. ## Bug Reproduction Steps N/A (hygiene; no single user-facing bug). The lint blind spot reproduces by running `pnpm lint` inside any worktree whose parent directory carries a `*` .gitignore: oxlint scans 0 files, prints `Found 0 warnings and 0 errors`, and exits 0. ## Root Cause Four unrelated leftovers, each fixed at the root: 1. The VS Code sign-in subscribe dialog and three docs surfaces still hardcoded third-party URLs that the runtime replaced when the desktop/site constants moved to `www.pythinker.com` — the docs described a region split this product does not have. 2. `docs/en/` was an orphan duplicate of the canonical root docs (the docs site serves the root paths). 3. Legacy migration fixtures carried literal CJK user content from a recorded session; the migration under test is content-agnostic. The `multi-workdir` fixture also used a pre-rename key (`kaos`) that the migrator's schema does not read, while its sessions bucket was already named `pyaos-foo_<md5>` — an inconsistent half-rebrand. 4. Nothing failed when oxlint's file walk was neutralized by a parent ignore file: exit 0 with zero files scanned. These are fundamental fixes (content/URL corrections plus a new guard), not workarounds. ## Code Changes ```diff text/ apps/vscode/webview-ui/src/components/LoginScreen.tsx # plan button → https://www.pythinker.com/code (both region profiles share the site base) docs/reference/pythinker-command.md # install-app: single Pythinker URL, no region split docs/reference/slash-commands.md # /desktop row: same packages/agent-core-v2/.../check-pythinker-code-docs.md # docs base → https://code.pythinker.com/pythinker-code/en/ docs/en/ # removed (4 orphan files; canonical root docs unchanged) packages/migration-legacy/test/fixtures/* # CJK user content → Latin equivalents; kaos key → pyaos (schema field) packages/pyaos/test/local.test.ts # 中/文 → \u4E2D/\u6587 escapes (same code points) scripts/oxlint-coverage.mjs # NEW: wraps oxlint, fails when scanned files < floor package.json # lint chain ends in the wrapper .changeset/vscode-sign-in-plan-link.md # patch ``` ## Behavior Changes and Affected Users | Behavior | Before | After | Who relies on the old behavior | Escape hatch | |---|---|---|---|---| | VS Code sign-in 402 → plan-upgrade button target | opened a stale third-party page | opens `https://www.pythinker.com/code` | VS Code users whose provider login returns payment-required; nobody relies on the stale page (it is not this product's page) | none needed | | `check-pythinker-code-docs` builtin skill docs base (agent-facing text) | told agents to fetch `…/code/docs/en/` | tells agents to fetch `https://code.pythinker.com/pythinker-code/en/` (the published docs site the sibling builtin docs already use) | agents answering docs questions fetched the old base and could get non-Pythinker content; the published site is what enforces accuracy now | none needed | | `pnpm lint` in a worktree whose parent ignore covers the tree | exit 0 with "on 0 files" (vacuous green) | exits 2 with an explicit coverage message | developers linting from pooled/external worktrees | set `LINT_MIN_FILES` (default 1000) | | `pythinker install-app` and `/desktop` docs text | described a mainland/global URL split across third-party domains | describe the single Pythinker page the CLI actually opens | docs readers; runtime behavior unchanged (the CLI already opened the Pythinker page) | none needed | | `docs/en/*` paths | orphan duplicates of root docs | removed; root docs and the docs site unchanged | nobody — no links in source or docs referenced them (only legacy-fixture data lists old paths, which is recorded session data, not links) | none needed | | legacy migration fixture session content | literal CJK strings from a recorded session | Latin strings with identical structure; migration assertions and regenerated snapshots unchanged in shape | none — the migrator is content-agnostic; no product code reads these strings | none needed | Affected modules and coverage: VS Code webview (`pnpm -C apps/vscode test` 395 passed); agent-core-v2 builtin skill catalog (`builtinSkillSource.test.ts` 7 passed); migration-legacy (full package 224 passed, snapshots regenerated); pyaos (`local.test.ts` 58 passed); root lint/typecheck/sherif and the full suite (1032 files / 18089 tests) green. ## 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 (external PRs: issue must have a maintainer's `/approve`). - [x] I have added tests that prove my feature works. - [x] The behavior-change table above is complete, and every removed behavior or flipped default is named in the changeset and either has an escape hatch or was explicitly approved by a maintainer in this PR. - [x] Ran `gen-changesets` skill, or this PR needs no changeset. - [x] Ran `gen-docs` skill, or this PR needs no doc update. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * The VS Code sign-in screen’s plan-upgrade button now opens the Pythinker Code page instead of a third-party page. * **Documentation** * The `install-app` and `/desktop` instructions now direct users to the Pythinker Code page. * The official documentation link for Pythinker Code has been updated. * The plugin, custom themes, and ACP reference documentation pages are no longer available. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
1 parent eb7c066 commit b67e4ee

22 files changed

Lines changed: 115 additions & 2455 deletions

File tree

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@pymodel/pythinker-code": patch
3+
---
4+
5+
Fix the VS Code sign-in plan-upgrade button opening a stale third-party page instead of the Pythinker plan page.

‎apps/vscode/webview-ui/src/components/LoginScreen.tsx‎

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -70,12 +70,9 @@ export function LoginScreen({ onLoginSuccess, onSkip }: LoginScreenProps) {
7070
};
7171

7272
const handleSubscribe = () => {
73-
// TODO(region-split): derive this from the region profile's siteBase
74-
// (`https://www.kimi.ai/code` for overseas logins). The webview cannot
75-
// resolve the region itself — @pymodel/pythinker-code-oauth is not a
76-
// webview dependency and its region resolver is Node-only — so the
77-
// extension host needs to hand the site URL over the bridge first.
78-
window.open("https://www.kimi.com/code", "_blank");
73+
// Both region profiles share the same site base, so the plan page URL
74+
// is static and the webview does not need a bridge round-trip.
75+
window.open("https://www.pythinker.com/code", "_blank");
7976
setShowSubscribeDialog(false);
8077
};
8178

‎docs/en/customization/plugins.md‎

Lines changed: 0 additions & 498 deletions
This file was deleted.

‎docs/en/customization/themes.md‎

Lines changed: 0 additions & 116 deletions
This file was deleted.

‎docs/en/reference/pythinker-acp.md‎

Lines changed: 0 additions & 97 deletions
This file was deleted.

0 commit comments

Comments
 (0)