@theglitchking/semantic-memory 1.2.0 → 1.2.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.
- package/.claude-plugin/marketplace.json +4 -4
- package/CHANGELOG.md +13 -0
- package/hooks/vault-context.js +18 -2
- package/package.json +1 -1
|
@@ -6,18 +6,18 @@
|
|
|
6
6
|
},
|
|
7
7
|
"metadata": {
|
|
8
8
|
"description": "Single-plugin marketplace for semantic-memory — the unified memory-layer plugin. v1.1.0 absorbs brain's strengths: AGENTS.md contract artifact, hard-gated verification sessions, multi-agent skill bundler (codex/copilot/pi), and SessionStart drift detection — all backwards-compatible with v1.0.x via deprecation shims.",
|
|
9
|
-
"version": "1.2.
|
|
9
|
+
"version": "1.2.1"
|
|
10
10
|
},
|
|
11
11
|
"plugins": [
|
|
12
12
|
{
|
|
13
13
|
"name": "semantic-memory",
|
|
14
14
|
"description": "Unified memory-layer plugin for Claude Code. One MCP server, 40 tools across multi-corpus search/read/write/graph/lint/sessions/contract. v1.1.0 adds: AGENTS.md contract artifact, hard-gated verification sessions (session_start/run/finish/status), proposal-mode synthesize_note + synthesize_promote, multi-agent skill bundler (codex/copilot/pi via the new `skills` CLI), and SessionStart drift detection. Backwards-compatible with v1.0.x — every previous tool name remains callable through deprecation shims (removed in v2.0.0).",
|
|
15
|
-
"version": "1.2.
|
|
15
|
+
"version": "1.2.1",
|
|
16
16
|
"author": {
|
|
17
17
|
"name": "TheGlitchKing"
|
|
18
18
|
},
|
|
19
|
-
"homepage": "https://github.com/TheGlitchKing/semantic-
|
|
20
|
-
"repository": "https://github.com/TheGlitchKing/semantic-
|
|
19
|
+
"homepage": "https://github.com/TheGlitchKing/semantic-memory",
|
|
20
|
+
"repository": "https://github.com/TheGlitchKing/semantic-memory.git",
|
|
21
21
|
"license": "MIT",
|
|
22
22
|
"keywords": [
|
|
23
23
|
"mcp",
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to semantic-memory (formerly semantic-sidekick) will be documented here.
|
|
4
4
|
|
|
5
|
+
## [1.2.1] - 2026-06-11 — Capture-cue false-positive fixes
|
|
6
|
+
|
|
7
|
+
Fixes two classes of false positives in the Stop-hook capture nudge (`hooks/vault-context.js`), where the cue scanner over-fired and asked to synthesize moments that carried no new knowledge.
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- **Conversational "gotcha" no longer fires the cue.** The `gotcha` cue was a bare-word match (`\bgotcha\b`), so filler acknowledgments like "Gotcha, ok…" tripped it. It now requires noun-context (`a/the gotcha`, `gotcha:`, `gotchas`, `gotcha is/was/here/with`). `workaround`/`hack` are unchanged.
|
|
12
|
+
- **Quoted machinery no longer re-primes the cue.** Cue detection ran over the entire raw prompt, so pasting tool output back — especially this hook's own `<vault-capture-prompt>` block, which contains the words "gotcha"/"workaround"/"hack" and the cue regexes themselves — re-primed `capture-pending` in a self-referential loop. New `stripQuotedMachinery()` removes self-emitted `<vault-*>` blocks, fenced code, and inline-code spans before matching, so only the user's own prose is scanned.
|
|
13
|
+
|
|
14
|
+
### Tests
|
|
15
|
+
|
|
16
|
+
- Extended `test/phase4/mode-hook.test.ts` with four regression cases: conversational "gotcha" does not prime; noun-context "the gotcha is…" does; pasting a `<vault-capture-prompt>` block does not re-prime; and a real cue alongside fenced machinery still primes (the strip is surgical, not total).
|
|
17
|
+
|
|
5
18
|
## [1.2.0] - 2026-05-09 — State consolidation under .claude/.semantic-memory/
|
|
6
19
|
|
|
7
20
|
Consolidates every transient state file under one namespace. Renames the legacy `.sidekick-*` files to drop the obsolete prefix. All legacy paths remain readable through v1.x via fallback; v2.0 will remove the fallback.
|
package/hooks/vault-context.js
CHANGED
|
@@ -267,13 +267,29 @@ const CAPTURE_CUES = [
|
|
|
267
267
|
/\bbecause\b/i,
|
|
268
268
|
/\bdecided\b|\bwe chose\b|\bthe decision\b/i,
|
|
269
269
|
/\bturned out to be\b|\bthe bug was\b|\bthe fix was\b/i,
|
|
270
|
-
|
|
270
|
+
// "gotcha" is also a common acknowledgment ("Gotcha, ok…") — require noun-context
|
|
271
|
+
// (a/the gotcha, gotcha:, gotchas, gotcha is/was/here/with) so bare filler doesn't misfire.
|
|
272
|
+
/\b(?:a|the|one|another)\s+gotcha\b|\bgotcha[:s]\b|\bgotcha (?:is|was|here|with)\b|\bworkaround\b|\bhack\b/i,
|
|
271
273
|
/\bnew convention\b|\bfrom now on\b|\bgoing forward\b/i,
|
|
272
274
|
];
|
|
273
275
|
|
|
276
|
+
// Cue detection must scan the user's own prose, NOT quoted machinery. Pasting
|
|
277
|
+
// tool output back into the prompt — especially this hook's own <vault-*> blocks,
|
|
278
|
+
// which literally contain the words "gotcha"/"workaround"/"hack" and the cue
|
|
279
|
+
// regexes themselves — would otherwise re-prime capture-pending in a self-
|
|
280
|
+
// referential loop. Strip self-emitted blocks, fenced code, and inline-code spans
|
|
281
|
+
// before matching. (Unterminated blocks/fences from truncated pastes strip to EOL.)
|
|
282
|
+
function stripQuotedMachinery(prompt) {
|
|
283
|
+
return prompt
|
|
284
|
+
.replace(/<vault-[a-z-]+[\s\S]*?(?:<\/vault-[a-z-]+>|$)/gi, " ")
|
|
285
|
+
.replace(/```[\s\S]*?(?:```|$)/g, " ")
|
|
286
|
+
.replace(/`[^`]*`/g, " ");
|
|
287
|
+
}
|
|
288
|
+
|
|
274
289
|
function detectCaptureCue(prompt) {
|
|
290
|
+
const prose = stripQuotedMachinery(prompt);
|
|
275
291
|
for (const re of CAPTURE_CUES) {
|
|
276
|
-
if (re.test(
|
|
292
|
+
if (re.test(prose)) return re.source;
|
|
277
293
|
}
|
|
278
294
|
return null;
|
|
279
295
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theglitchking/semantic-memory",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.1",
|
|
4
4
|
"description": "Unified memory-layer plugin for Claude Code. One MCP server, multiple typed corpora (vault, code, plans, docs, research, project-map), unified cross-corpus knowledge graph, conditional tool registration, in-process drift detection, and human↔code translation. Rebrand of @theglitchking/semantic-sidekick at v1.0 — see CHANGELOG for migration.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/core/index.js",
|