Commit b67e4ee
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
- .changeset
- apps/vscode/webview-ui/src/components
- docs
- en
- customization
- reference
- release-notes
- reference
- packages
- agent-core-v2/src/features/skill/catalog/builtin
- migration-legacy/test
- fixtures
- legacy-protocol-1.3
- multi-workdir/.pythinker
- recent-protocol-1.10
- with-subagent-collapsed
- sessions/__snapshots__
- pyaos/test
- scripts
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
70 | 70 | | |
71 | 71 | | |
72 | 72 | | |
73 | | - | |
74 | | - | |
75 | | - | |
76 | | - | |
77 | | - | |
78 | | - | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
79 | 76 | | |
80 | 77 | | |
81 | 78 | | |
| |||
This file was deleted.
This file was deleted.
This file was deleted.
0 commit comments