Commit Graph

6 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 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 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 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