Skip to content

v2.17.2

Choose a tag to compare

@github-actions github-actions released this 30 Jun 17:18
· 188 commits to main since this release

Fixed

  • Transcript capture independenceperformTranscriptCapture now runs on session idle independently of auto-capture (no longer gated by autoCaptureEnabled). Previously, disabling auto-capture also silently disabled transcript storage. New test tests/transcript-idle-wiring.test.ts verifies the wiring.
  • Node 22 ESM JSON import — Added with { type: "json" } import attribute to src/plugin.ts's package.json import. Without it, Node 22's ESM loader throws ERR_IMPORT_ATTRIBUTE_MISSING and opencode silently skips loading the plugin when installed via npm.
  • Structured output for opencode provider — Rewrote generateStructuredOutput in opencode-provider.ts for AI SDK v7 compatibility.
  • Web server empty-query transcript searchGET /api/transcripts/search with an empty query now calls handleListTranscripts instead of crashing FTS5 MATCH on an empty string.
  • Timeline includePrompts orphaning — Linked memories are now retained when includePrompts=false. Previously they were orphaned in linkedPairs and filtered out by Boolean(p.memory && p.prompt).
  • Latent SQL ESCAPE bug in vector-search.ts — Template literal ESCAPE '\' produced an empty escape character, causing SQLite errors in the getMemoriesBySessionID LIKE fallback path. Fixed to ESCAPE '\\'.
  • Release workflow changelog extraction — The awk regex used an unescaped [, matching wrong sections. Replaced with index() string matching.

Changed

  • Ponytail-audit round 1 — Dead code removed, fetchWithTimeout/apiErrorResponse hoisted to BaseAIProvider, UserProfileValidator → zod schema. 22 files, net -92 lines.
  • Ponytail-audit round 2 — 13 verified-dead symbols removed across 35 files (-308 lines net). DeduplicationService.cosineSimilarity → import shared. runOneTimeScoringRecalculation inlined.
  • DeepSource remediation — JS-0356 (dead imports/vars), JS-W1041/JS-0331/JS-R1004 (boolean returns, redundant types, template literals), skipcq annotations.

Removed

  • Dead methods: MemoryMetadata interface, MigrationService.getStatus(), MigrationProgressTracker.reset(), applyConfidenceDecay/deleteProfile/getAllActiveProfiles, getArchivedCount.
  • Legacy superseded methods: AISessionManager.addMessage/deleteSession/clearMessages (prod uses addMessageAtomic + TTL cleanup).
  • Test-only production methods: insertManyForTest/searchForTest, getTranscript, countUncapturedPrompts/getUncapturedPrompts/markMultipleAsCaptured. Removed from production classes; tests updated.
  • Dead config field: injection.queryAwareFiltering (never read in production).
  • Dead script/tooling: 4 warning-only lint-deepsource.sh checks, test:bun script, .coderabbit.yaml coverage exclude.

Infrastructure

  • Minimal Codespace devcontainer — .devcontainer/devcontainer.json (typescript-node:22 base, sshd feature, port 4096).

Notes

  • src/types/usearch.d.ts retained — Load-bearing ambient module declaration; deleting it broke typecheck. File restored.
  • DeepSource: JavaScript check remains in pre-existing failure state (Documentation Coverage metric). This release resolved 27 issues, introduced 0 new ones.

Contributors

No community contributors for this release. All work by @ZeR020.

Full Changelog: v2.17.1...v2.17.2