chore: release v2.24.4 - #261
Conversation
|
Release-governance audit added to the PR description. Public evidence: GitHub repository-license API returns 404 and |
|
Happy to take a look. |
There was a problem hiding this comment.
Review — release v2.24.4 (v2.24.3 → main)
Scope: static code review of the 5 changes merged into main since v2.24.3 plus this release PR's packaging. Not a functional review of the plugin end-to-end; runtime correctness of the plugin and its full feature set is owned by the author.
The release
PR #261 bumps the version (2.24.3 → 2.24.4). The tag covers 5 changes since v2.24.3:
| Change | File | Assessment |
|---|---|---|
#257 ANN search plan (JOIN→CROSS JOIN) |
src/services/turso/vector-search.ts:239,245 |
✅ correct — forces the vector scan first; verified identical to INNER JOIN with real @libsql/client (same rows, SCAN v → SEARCH m plan) |
#248 synthetic compaction part |
src/index.ts:981 |
✅ SDK type has the field (types.gen.d.ts:148); matches established pattern at :519 |
| #260 orphaned linked-memories surface | src/services/api-handlers.ts:257-260 |
✅ no double-render; web group-memories.ts:11 guards dangling links |
| #258 provider-error rethrow | src/services/auto-capture.ts:487,577,586-588 |
✅ caller guards instanceof; cleanup runs |
| #256 dependabot minor/patch | deps (hono, @opencode-ai sdk/plugin, vite) | ✅ benign |
Verification performed
bun run typecheck— cleanbun test— 412 pass / 0 fail (afterbun run build; the 9dist/-boundary tests need build output)- CROSS JOIN equivalence: ran real
@libsql/clientin-memory with mismatched row counts, confirmed identical results and a stable plan — ANN forced first, exact-scan fallback intact
Findings
No blockers on shipped behavior.
Two follow-ups, neither holds the release:
-
#257 test asserts SQL text, not behavior (
tests/turso-vector-search.test.ts:72-102). It mocksdb.all→[]and only checkstoContain("CROSS JOIN")+ string ordering; the other case's 2-row shard never engages ANN. It would pass even if the planner reordered and search silently degraded. Behavior is correct today (verified), but the test can't catch a future planner/driver regression. → follow-up: result-level ANN test (seed a shard above the ANN threshold, assert returned memory IDs). -
#258 silent fallback swallow (
src/services/auto-capture.ts:576-589). If the opencode provider fails but a manual config exists, the error is logged and the code proceeds — the user never learns their configured provider is broken. → follow-up: non-blocking warning toast on that path.
Nit: prt-compaction-${Date.now()} part-id collision — practically impossible, non-issue.
Release-package fixes
- Rebase before merge. PR is based on
eda2c;mainhas since added #257 + #258. The "Included changes" list omits them. (Release notes auto-generate from the commit range, so the tag won't lose them — but the PR should describe what it merges.) - Patch version is fine. All three are bugfixes (perf, error handling, data visibility); #260 is additive/corrective, not breaking. Keep v2.24.4.
Release gates (owner decisions)
- LICENSE:
package.jsondeclares MIT but no LICENSE file exists in git history; the GitHub license API returns 404. Owner must add it or explicitly approve the grant — no one else should author it. However, the owner is not actively working on the repo anymore. I hereby grant you permission to add the MIT license. - Publish boundary: the release workflow injects the repo-level
NPM_TOKENon everyv*tag, and the only release env iscopilotwith no tag ruleset. Owner should tag manually after reviewing the exact merge SHA.
Suggested sequence
- Rebase release PR onto current
main(stale base). - Owner resolves LICENSE + publish boundary.
- Ship v2.24.4.
- Open two follow-up PRs: ANN result-level test, provider-fallback warning toast.
Summary
2.24.3to2.24.4Included changes
Verification
eda658383a02a3464116820e8837539eca107484latestis currently2.24.3; repositoryNPM_TOKENis configuredRelease safety
I will not self-approve or merge this release PR. After independent review and green cumulative verification, the release can be merged and tagged
v2.24.4; the existing Release workflow will verify the tag/package version match, publish to npm, and create the GitHub Release.Release blockers requiring independent owner decision
MIT, butmainhas noLICENSE/COPYINGfile and GitHub's repository-license API returns 404. The copyright holder should add or explicitly approve the canonical license text before this release is tagged; I will not choose or author that grant on the owner's behalf.NPM_TOKENfor everyv*tag. The repository has nonpm-productionEnvironment or release-tag ruleset. Until that is isolated, only the owner should create the release tag after reviewing the exact merge SHA.These are governance blockers, not CI failures. The version PR remains intentionally unmerged until independent review resolves them.