Commit Graph

18 Commits

Author SHA1 Message Date
Dhravya Shah 38f8ab265d fix: mid-luminance brand tint so the ◪ reads on dark and light terminals
#3B35F3 measured 2.4:1 against a dark background — below the 3:1
legibility floor. rgb(124,120,250) measures 4.7:1 on dark and 3.5:1 on
light; shimmer tiers re-derived from the new base.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-18 20:00:42 -07:00
Dhravya Shah 7c2eb06613 feat: recall dedup across the session; brand-colored banners
Injected memories are hashed into a per-session recalled.json (pruned
with statusline state, capped at 500) so a memory already in context is
never re-injected — the banner reports only fresh hits, with repeats as
a gray '… already in context' tail. Banners share lib/colors.js: brand
blue for the ◪ mark, red for recall failures.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-18 19:49:37 -07:00
Dhravya Shah f76ec6757f fix: readStdin resolves on complete JSON instead of waiting for stream end
Fixes #25: on Windows the stdin 'end' event never fires for hook
subprocesses, hanging every hook for its full timeout. readStdin now
parses incrementally and resolves as soon as the payload is complete
JSON, with a 3s fallback timer — the same pattern the statusline
renderer already used. Also drops dead formatRelativeTime code.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-18 19:15:47 -07:00
Dhravya Shah a0f5d5bc49 feat: recall reads chunk/document hits, not just memories
Search results are memory-shaped (.memory) or document/chunk-shaped
(.chunk/.content/.text with a filepath); recall now injects both,
annotating chunks with their filepath.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-18 19:13:26 -07:00
Dhravya Shah 74d0ed0fe4 feat: recall on every substantive prompt, done by the hook itself
The recall directive was advisory — the model had to choose to spend a
tool call, so mid-session recall almost never happened. The
UserPromptSubmit hook now searches supermemory with the prompt itself
(4s timeout, skips short prompts and /, !, # inputs) and injects the
top matches directly, with a visible '◪ recalled N memories' notice
and statusline search state. A configured recallDirective restores
advisory mode.

Also fixes recall-approve missing the claude.ai connector namespace
(mcp__claude_ai_supermemory__*), which silently dropped the recall
notice and statusline count when the model did search.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-18 19:12:06 -07:00
Dhravya Shah 1e6e887173 chore: align version to 0.1.3 everywhere; statusline tip includes refreshInterval
latest.json (update-check) and package.json were stuck at 0.0.16 while
plugin.json moved on. The one-time statusline tip now gives the full
settings snippet including refreshInterval, without which the animation
freezes between renders while idle.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-18 19:02:26 -07:00
Dhravya Shah 42441eb948 feat: ◪ replaces ◆ as the supermemory mark; natural attribution phrasing
All hook surfaces now use ◪ and the recall directive asks for natural
sentences ("◪ last week you told me about X") instead of the
"◆ from memory:" label. Source is always named "supermemory", never
"memory".

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-18 18:49:01 -07:00
Dhravya Shah 1d1c9d8f57 feat: live statusline tally + one-time ◆ explainer
Resting label is now a session tally (N loaded · N captured · N recalls)
that ticks on every turn and every recall, instead of a static count with
decaying flashes. First session shows a one-time notice teaching that ◆
marks anything sourced from supermemory.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-18 17:34:35 -07:00
Dhravya Shah 104aa48c86 feat: ◆ is the supermemory mark — one glyph across every surface
Statusline, systemMessages, injected memory lines, and the attribution rule
all carry ◆. The mark ships on the injected data itself, so the model
propagates it naturally when citing memories: if you see ◆, it came from
supermemory.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-18 17:32:04 -07:00
Dhravya Shah e9f018c6b6 checkpoint: visibility fixes in src + new CLI-free hooks architecture (pre-restructure)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-18 17:19:14 -07:00
Sreeram Sreedhar 2556183965 feat: reasoned per-turn memory recall with auto-approve
Re-introduces the reasoned recall feature (previously reverted in #64),
source files only — generated plugin/scripts/*.cjs are intentionally not
included and must be produced by the build step.

- recall-hook (UserPromptSubmit): injects a per-turn directive so Claude
  decides whether recalling saved memory helps the current message.
- recall-approve (PreToolUse): auto-approves only the supermemory-search
  tool call (narrow allow-list, rejects shell-laced commands).
- settings: recallDirective override + getRecallConfig.
- build/hooks wiring and version bump to 0.0.8.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 23:13:17 -07:00
Vedant Mahajan ba4595dacb Revert "feat: reasoned per-turn memory recall with auto-approve" 2026-06-16 11:32:10 +05:30
Sreeram Sreedhar 0493e6ee47 feat: reasoned per-turn memory recall with auto-approve
Add a UserPromptSubmit hook that injects a directive telling Claude to
reason — per message — about whether recalling memory would help, and
only then search via the supermemory-search skill. A PreToolUse hook
auto-approves that search so it runs silently, like auto-capture, instead
of interrupting with a permission prompt.

Reasoned recall and auto-approve are built-in (no toggles): searching
only when it helps keeps more usage on the user's plan. The auto-approve
is scoped to the read-only search and refuses any command laced with
shell chaining/redirection. SUPERMEMORY_DEBUG surfaces a per-turn
[recall-decision] line for debugging. SessionStart profile load and the
Stop-hook save are unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 14:30:40 -07:00
Dhravya Shah f5f77c5e65 Merge branch 'main' into fix/windows-hook-path-spaces 2026-02-05 16:05:06 -07:00
Prasanna721 f8906e6f98 v2: Claude Code Supermemory Refreshed
Refresh plugin architecture with Supermemory

 - Add project-level configuration system (.claude/.supermemory-claude/config.json) for per-repo API keys and container tags
  - Add /project-config command to manage project settings
  - Add /super-save skill for saving project knowledge (architectural decisions, bug fixes, design patterns)
  - Add repo container tag support for team-shared memories (separate from personal memories)
  - Rename prompt-hook to save-project-memory with dedicated repo-level memory saving
  - Remove observation hook (consolidate into other hooks)
  - Enhance context hook, search memory, and summary hook scripts
  - Update supermemory client with repo entity context support
  - Remove MCP config file
2026-02-04 19:14:37 -08:00
yash f6b6a7741c fix(windows): quote hook command paths to support spaces 2026-02-02 00:49:54 +05:30
Prasanna721 2dd97f3e32 Zero-dependency bundled plugin with session-based memory
1. Bundled Scripts — Used esbuild to bundle all dependencies into self-contained .cjs files. Users don't need npm install.
  2. Session-Based Memory — One document per session using sessionId as customId. All hooks append to same document.
  3. Fixed Double Shebang — Source files had shebang + esbuild added another. Removed from source, esbuild adds via banner.
  4. Code Cleanup — Removed unnecessary comments and spacing. Clean source in src/, built output in plugin/scripts/.
  5. Simplified README — Removed MCP, architecture, comparisons. Kept installation and config only.
2026-01-22 21:26:56 -08:00
Prasanna721 89b95c3299 initial commit 2026-01-21 19:53:41 -08:00