pi-ptc-subagents 7.6.0 → 7.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/README.md +12 -19
  3. package/package.json +3 -2
package/CHANGELOG.md CHANGED
@@ -5,6 +5,58 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [7.7.1] - 2026-11-02
9
+
10
+ ### Fixed
11
+
12
+ - **The new-version check now caches what it learned** (Kimi face, ADR-0023): the probe
13
+ state was written only when a newer release was found, so in the common case — the plugin
14
+ being up to date — `checkedAt` never landed on disk and the 6-hour TTL never took effect:
15
+ every single user message re-queried GitHub's `/releases/latest`. It now persists the
16
+ state as soon as it has fetched. Measured on the installed 7.7.0: the cache file was empty
17
+ after a run; it now holds `checkedAt` and `latest`.
18
+
19
+ ## [7.7.0] - 2026-11-02
20
+
21
+ ### Added
22
+
23
+ - **The plugin now says so when a newer release exists** (Kimi face, ADR-0023): a
24
+ `UserPromptSubmit` hook compares the plugin's own manifest version against the latest
25
+ GitHub Release and, when they differ, attaches the notice to your next message — the
26
+ agent then says so in its reply, with the update command. Nothing to configure, no
27
+ marketplace to point at. Kimi Code has no plugin auto-update path: the update badge
28
+ only exists for plugins a marketplace catalog can match by id, and pointing Kimi Code
29
+ at a custom catalog _replaces_ the default one (measured: the default catalog has 7
30
+ entries — 3 official, 4 curated — a custom one has 1; the official plugins drop out of
31
+ the panel and lose their "update detected" notification, which requires the default
32
+ CDN catalog). The badge is also only visible when you open `/plugins`: the desktop
33
+ "installed" row shows version, toggle and delete, and no update button.
34
+ The check reads the latest release through `/releases/latest` (a redirect, so
35
+ `api.github.com` is never called), accepts plain `x.y.z` only, caches for 6 hours,
36
+ speaks once per version (again after 7 ignored days), and stays silent offline —
37
+ fail-open, it never blocks a turn. Probes: `tests/kimi/version-check.test.mjs`, 7/7 —
38
+ one of them caught a real bug while it was being written (the cache stored a parsed
39
+ array and re-parsed it as a string, so the check exited silently — exactly the failure
40
+ this feature exists to prevent).
41
+
42
+ - **Artifact import gate** (`scripts/check-artifact-imports.mjs`, wired into `pnpm test`): a
43
+ built artifact's bare imports must be declared by the package that produced them. The rule is
44
+ "the declaration follows the artifact, not just the source" — moving code between packages used
45
+ to carry the dependency declaration along with the source, while the built `dist/index.js` kept
46
+ importing the package: on a clean install the extension could not resolve it (7 probes red, CI
47
+ red too; the local tree only stayed green because a months-old symlink in the root
48
+ `node_modules` happened to cover it). `dependencies` / `peerDependencies` /
49
+ `optionalDependencies` count, `devDependencies` does not (they do not ship), and imports shown
50
+ inside comments or strings are not imports.
51
+
52
+ ### Fixed
53
+
54
+ - **Marketplace catalog entry** (`plugin-marketplace.json`, ADR-0021): the entry's `tier`
55
+ must be `official` or `curated` — that is the parser's whitelist, which is stricter than
56
+ the response schema's enum. Writing `third-party` (read off the response schema) made the
57
+ whole catalog fail to load, taking the official entries with it. The entry now omits
58
+ `tier`, and `build:kimi` fails the build if a `tier` ever shows up.
59
+
8
60
  ## [7.6.0] - 2026-11-02
9
61
 
10
62
  ### Added
package/README.md CHANGED
@@ -81,25 +81,18 @@ URL tracks the latest GitHub Release (pinned URLs get no update checks); run `/r
81
81
  activate. A bundled `ptc` skill teaches the model when to write a program instead of
82
82
  fanning out tool calls one by one.
83
83
 
84
- **Update badges need a marketplace entry.** Kimi Code only offers "update 7.1.0 → 7.5.0" in
85
- `/plugins` for plugins the marketplace catalog can match by id — a bare GitHub install is
86
- installed but never listed, so it never gets a badge. This repo ships the catalog; point
87
- Kimi Code at it:
88
-
89
- ```bash
90
- /plugins marketplace https://raw.githubusercontent.com/a1121611810/pi-ptc-subagents/main/plugin-marketplace.json
91
- ```
92
-
93
- or keep it for every session (desktop app included):
94
-
95
- ```bash
96
- export KIMI_CODE_PLUGIN_MARKETPLACE_URL=https://raw.githubusercontent.com/a1121611810/pi-ptc-subagents/main/plugin-marketplace.json
97
- ```
98
-
99
- The entry deliberately omits `version`: Kimi Code resolves it from the latest GitHub
100
- Release, so the catalog never goes stale. A custom catalog **replaces** the official one
101
- rather than adding to it, and updates stay one keystroke (`Enter` in `/plugins`) — Kimi
102
- Code has no auto-download path.
84
+ **You get told when a new version lands.** The plugin ships a `UserPromptSubmit` hook that
85
+ compares its own version against the latest GitHub Release; when they differ, the notice is
86
+ attached to your next message and the agent says so in its reply. No marketplace setup, no
87
+ config, nothing to click. Update with
88
+ `/plugins install https://github.com/a1121611810/pi-ptc-subagents` — the bare repo URL
89
+ installs the latest release.
90
+
91
+ **Optional: the marketplace badge.** Kimi Code also shows "update 7.1.0 → 7.5.0" in `/plugins`
92
+ for plugins a marketplace catalog can match by id, and this repo ships such a catalog
93
+ (`plugin-marketplace.json`). But pointing Kimi Code at it _replaces_ the default catalog, so
94
+ the official plugins drop out of the panel and lose their update notifications. Treat it as
95
+ opt-in, not as a setup step.
103
96
 
104
97
  ## The engine on its own (no model, no pi)
105
98
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-ptc-subagents",
3
- "version": "7.6.0",
3
+ "version": "7.7.1",
4
4
  "description": "Programmable tool calling (PTC) and subagent fan-out for pi",
5
5
  "keywords": [
6
6
  "pi",
@@ -39,8 +39,9 @@
39
39
  "build:kimi": "pnpm --filter @pi-ptc/kimi-mcp run build && node scripts/assemble-kimi.mjs",
40
40
  "prepack": "pnpm run build && rm -rf dist docs/routes && cp -R packages/entry/dist dist && cp -R packages/ptc/dist dist/ptc && cp -R packages/routes/docs/routes docs/routes",
41
41
  "check": "pnpm -r --filter=!@pi-ptc/website run check",
42
+ "check:imports": "node scripts/check-artifact-imports.mjs",
42
43
  "lint": "oxlint",
43
- "test": "pnpm run test:pi && pnpm run test:output && pnpm run test:kimi && pnpm run test:standalone",
44
+ "test": "pnpm run check:imports && pnpm run test:pi && pnpm run test:output && pnpm run test:kimi && pnpm run test:standalone",
44
45
  "test:pi": "node --test tests/pi/*.test.mjs",
45
46
  "test:output": "node --test tests/output/*.test.mjs",
46
47
  "test:kimi": "node --test tests/kimi/*.test.mjs",