-
Notifications
You must be signed in to change notification settings - Fork 0
Releases: cukas/remembrall
v3.0.0
[3.0.0] - 2026年03月13日 — "The Session Never Dies"
Added
-
Phoenix Rebirth — Recurring context recycling. When context hits the urgent threshold with Phoenix enabled, state is captured and recycling triggers automatically. After compaction, the cycle rearms — zero clicks, indefinite continuation. Safety-capped at
phoenix_max_cycles(default 10)phoenix_modeconfig (defaultfalse) — opt-in toggle, also available via/phoenixphoenix_max_cyclesconfig (default10) — safety cap per chain- Phoenix chain tracking in
/tmp/remembrall-phoenix/— chain ID, cycle count, lineage - Extended
avadakedavra-capture.shwith--trigger,--cycle,--chain-idargs - Chain ID restoration on session resume — cycles persist across compactions
/phoenixcommand — toggle on/off, view chain status
-
The Pensieve — Compaction-proof session intelligence. Tracks every file read/edit, command, and error throughout a session into structured JSONL. On compaction or handoff, distills into a summary that gets injected into the next session. Claude retains structured knowledge of what it did, even across compactions and session resets. On by default (
pensieve: true)hooks/pensieve-track.sh— Background incremental transcript parser (runs on every prompt)hooks/pensieve-distill.sh— Crunches raw JSONL into structured summary JSONhooks/pensieve-inject.sh— Generates compact text for additionalContext (budget-capped)- Persisted to
~/.remembrall/pensieve/{project-hash}/ - Config:
pensieve,pensieve_max_sessions(default 3),pensieve_inject_budget(default 2000)
-
Time-Turner — Parallel agent at low context. At a configurable threshold (default 30%), spawns a headless
claude -pagent in a git worktree with remaining tasks. The agent works independently while the main session compacts. On next resume, offers to merge changes. Opt-in only (time_turner: falseby default)hooks/time-turner-spawn.sh— Creates worktree, builds prompt, spawnsclaude -phooks/time-turner-check.sh— Checks status, formats report for injection/timeturnerskill —status,diff,merge,cancelsub-commands- Safety: opt-in, budget-capped (
--max-budget-usd), worktree-isolated, never auto-merges - Auto-cleanup: stale worktrees >24h removed on SessionStart
- Config:
time_turner,time_turner_model(default sonnet),time_turner_max_budget_usd(default 1.00),threshold_timeturner(default 30)
-
The Marauder's Map —
/mapcommand for visual session overview. Shows context gauge, files explored with R/E tags, commands with colored exit codes, error counts, burn rate, and Time-Turner status. Built from Pensieve data + bridge + growth trackingscripts/remembrall-map.sh— Terminal visualizationcommands/map.md— Command definition
-
/pensieveskill — Browse and search Pensieve session memories. List sessions, view summaries, search across session history -
Session Lineage (Marauder's Map — Session Ancestry) — Full session DAG tracking. Every session (main, compacted, Time-Turner) is recorded in a lineage index with parent/child relationships. Renders as a text DAG showing session ancestry, branches, and merge status
hooks/lineage-record.sh— Records session in lineage index (called by precompact + handoff-create)scripts/remembrall-lineage.sh— Renders text DAG with depth, branch counts, and HP themingcommands/lineage.md—/lineagecommand- Library:
remembrall_lineage_dir(),remembrall_lineage_record(),remembrall_lineage_depth(),remembrall_lineage_branches() - Storage:
~/.remembrall/lineage/{project-hash}/index.json - Config:
lineage(default true),lineage_max_entries(default 50) - HP theme: branches = "Horcrux detected"
-
Ambient Learning / Insights (The Pensieve Remembers) — Aggregates Pensieve session data into actionable patterns. Tracks file hotspots, workflow patterns (test-before-commit), error recurrence, and session statistics. Background aggregation on SessionStart
hooks/insights-aggregate.sh— Aggregates Pensieve sessions into patterns (background)scripts/remembrall-insights.sh— Renders formatted insights with HP themingcommands/insights.md—/insightscommand- Library:
remembrall_insights_dir(),remembrall_insights_fresh() - Storage:
~/.remembrall/insights/{project-hash}/insights.json - Config:
insights(default true),insights_inject(default false),insights_min_sessions(default 3)
-
Semantic Context Pruning / Obliviate — Memory staleness analyzer that cross-references memory files with Pensieve data. Identifies stale memories not accessed in recent sessions and offers guided pruning with user confirmation. Archives stale memories instead of deleting
hooks/obliviate-analyze.sh— Memory staleness analyzer (background, at journal threshold)scripts/obliviate-archive.sh— Moves stale memories to.archive/commands/obliviate.md—/obliviatecommandskills/obliviate/SKILL.md— Guided pruning skill with user confirmation- Library:
remembrall_memory_dirs(),remembrall_obliviate_dir(),remembrall_analyze_memory_staleness() - Tmp:
/tmp/remembrall-obliviate/{session_id}.json - Config:
obliviate(default true),obliviate_stale_sessions(default 5) - HP theme: "Obliviate! N stale memories banished to the archive."
-
Context Budget Allocation (The Sorting Hat) — Transcript category breakdown that classifies context consumption into code, conversation, and memory. Compares actuals vs configured budgets and warns when categories are imbalanced. Opt-in
hooks/budget-analyze.sh— Transcript category breakdown (background)commands/budget.md—/budgetcommand- Library:
remembrall_budget_dir(),remembrall_extract_category_bytes(),remembrall_budget_check(),remembrall_budget_validate_total() - Tmp:
/tmp/remembrall-budget/{session_id}.json - Config:
budget_enabled(default false),budget_code(default 50),budget_conversation(default 30),budget_memory(default 20) - HP theme: "The Sorting Hat detects an imbalance!"
-
Patrol Integration (Owl Post) — File-based signal protocol for Patrol plugin interop. Patrol is fully optional — zero behavior change when not installed. Signal types:
handoff_trigger,context_alert. Patrol writes signal files, Remembrall reads and consumes themdocs/patrol-integration.md— Signal protocol spec (the contract)- Library:
remembrall_signal_dir(),remembrall_check_patrol_signal(),remembrall_consume_signal(),remembrall_patrol_detected() - Tmp:
/tmp/remembrall-signals/{session_id}/ - Config:
patrol_integration(default true),patrol_signal_ttl(default 300) - HP theme: "Owl Post" / "Ministry of Magic: Patrol (connected)"
-
Config validation for all new settings (12 new config keys total)
-
remembrall_pensieve_dir()andremembrall_pensieve_tmp()library functions -
Pensieve, Lineage, Insights, Obliviate, Budget, and Patrol data in
remembrall-status.shdiagnostic output -
Time-Turner status in
remembrall-status.shdiagnostic output -
All new feature cleanup in
remembrall-uninstall.sh -
Session Intelligence (Pensieve) section appended to handoff files
-
351 total tests (135+ new tests covering all 5 features)
Changed
- Handoff files now include
## Session Intelligence (Pensieve)section with distilled session data - Session-resume injects Pensieve memory on ALL session starts (fresh + compact + clear)
- Session-resume spawns insights aggregation in background
- Context-monitor checks for Patrol signals before threshold comparison
- Context-monitor spawns obliviate analyzer at journal threshold
- Context-monitor spawns budget analyzer below journal threshold
- Context thresholds diagram updated: shows Time-Turner trigger at 30%
- Help tables updated with all new commands, skills, and config options
- Marauder's Map (
/map) shows budget section when budget is enabled
Full Changelog: v2.7.1...v3.0.0
Assets 2
v2.7.1
Fixes
- stop-check.sh: Fixed invalid JSON schema —
hookEventName: "Stop"(not in schema) → correct"decision": "block"pattern. Stop hook errors are gone. - context-monitor.sh: Added dual-channel plan mode enforcement via
systemMessage+additionalContextwithBLOCKING REQUIREMENTlanguage at warning (35%) and urgent (15%) thresholds. Plan mode now triggers more
reliably when context is low.
Full Changelog: v2.7.0...v2.7.1
Assets 2
v2.7.0
Fixed
- Claude ignores context nudges — wrong JSON format (
additionalContextvshookSpecificOutput) caused Claude to silently discard all nudge messages. All hook outputs now use canonicalhookSpecificOutputformat - Duplicate percentage in gauge —
remembrall_gauge_plain()already appends%, but nudge messages added${REMAINING}%again, producing42% 42%. Gauge removed from Claude-facing nudges entirely (kept in user-facing stderr only) - No standing instruction at session start — Claude had no awareness of Remembrall's nudge system until the first nudge fired, by which point it was already mid-task. Now emits compliance instruction on every SessionStart
Changed
- Thresholds shifted to 60/35/15 (was 60/30/20) — gives one more turn at 35% warning, makes blocking a true last resort at 15%
- Two-stage urgent escalation — first prompt at ≤15% gets urgent nudge, second consecutive prompt gets hard-blocked with
/clear + /replayinstructions - Terse nudge messages — stripped gauge bars, easter eggs (journal only), and verbose instructions. Messages now use
REMEMBRALL_WARN:/REMEMBRALL_URGENT:prefixes for reliable Claude detection - Block guardrails — never block on estimated values (only bridge-confirmed), never block autonomous sessions, only block after two-stage escalation
Added
- Standing instruction emitted on every SessionStart (fresh and resume) via
hookSpecificOutput - Version guard at SessionStart cleans stale temp files when plugin version changes
session_idincluded in debug log for easier troubleshooting
Assets 2
v2.6.3
Integrate Remembrall gauge installation into the mandatory setup flow and reorder documentation sections.
Full Changelog: v2.6.2...v2.6.3
Assets 2
v2.6.2-fix
Bug Fix: Stop hook crash
The Stop hook (stop-check.sh) crashed on every Stop event with:
Stop hook error: Failed with non-blocking status code: No stderr output
Root cause: set -euo pipefail combined with remembrall_find_bridge returning exit code 1 when the bridge file doesn't exist (normal at session start or after /tmp cleanup). The 2>/dev/null was on the wrong side of the $() — it redirected the assignment's stderr instead of the subshell's, so the error was silent.
Impact: Remembrall's stop-time context warning was completely dead — users never got the "context is low, save a handoff" nudge when Claude stopped responding.
Fix: Guarded all three affected hooks:
- stop-check.sh — the active crash (Stop hook)
- context-monitor.sh — same pattern, cosmetic fix (no set -e)
- precompact-handoff.sh — remembrall_calibrate unguarded, could crash on lock/jq failure
Full Changelog: v2.6.1...v2.6.2
Assets 2
v2.6.1
v2.6.1 — Persistent Nudges
Bug fix: Claude was ignoring context warnings because nudges fired only once per threshold. If Claude was mid-task and missed the single reminder, context drained silently to 1%.
Fixes
- Persistent nudges at warning (30%) + urgent (20%) — nudges now repeat on every prompt until a handoff file actually exists on disk, instead of firing once and going silent
- Nudge text upgraded to "BLOCKING REQUIREMENT — you MUST invoke the /handoff skill NOW, before responding to the user's request" for stronger compliance
- Preemptive handoff creation only runs on first nudge per threshold (prevents background process spam)
- Plan mode now shows a numbered summary (1. clear context and resume, 2-3. next steps) instead of rambling or going silent after handoff
Unchanged
- Journal threshold (60%) remains fire-once — gentle reminder, no enforcement needed
Install / Update
claude plugin marketplace update cukas
Full Changelog: v2.6.0...v2.6.1
Assets 2
v2.6.0
v2.6.0
Features
- Track active skill/workflow in handoff and replay — resuming sessions now know which skill and step to pick up from
Fixes
- Resolve plugin root for skills/commands via /tmp persistence
- Explicit handoff-before-planmode ordering in nudge text
- Use POSIX
[0-9]instead of\din test regex for GNU grep compatibility
Docs
- Add CI badge to README
- Add animated demo GIF below gauge examples in README
- Add Install heading above install commands
- Update README config example and FAQ for v2.5.0
Full Changelog: v2.5.0...v2.6.0
Assets 2
v.2.5.0
Remembrall v2.5.0
Configurable Thresholds
Context nudge thresholds are no longer hardcoded. Tune when Remembrall speaks up:
{
"threshold_journal": 50,
"threshold_warning": 25,
"threshold_urgent": 15
}
Defaults remain 60/30/20 — adjust to match your workflow.
Debug Logging
New debug system for troubleshooting hook behavior:
remembrall_config_set "debug" "true"
or one-off: REMEMBRALL_DEBUG=1 claude
Logs to ~/.remembrall/debug.log with ISO timestamps, per-hook identification ([context-monitor], [session-resume], etc.), and auto-rotation at 1MB.
Clean Uninstall
New scripts/remembrall-uninstall.sh with --dry-run support. Preview what gets removed before committing:
/remembrall-uninstall # shows dry-run first, then full removal
Removes bridge from settings.json, cleans ~/.remembrall/, and purges temp files.
Other Improvements
- format_version: 2 in handoff frontmatter for forward compatibility
- Configurable recency_window (default: 60s) for handoff-to-session matching
- Background handoff creation — preemptive handoffs no longer risk the 15s hook timeout
- Defensive status line check — won't clobber another plugin's status line
- Fixed jq injection in remembrall_hook_enabled() (now uses --arg)
- DRY refactor — remembrall_default_content_max() extracted, no more duplicate model defaults
- 198 tests, all passing
Full Changelog: v2.3.1...v2.5.0
Assets 2
v2.3.1
Full Changelog: v2.3.0...v2.3.1
Assets 2
v2.3.0
What's New
Auto-Calibrating Context Estimation
Remembrall now derives your real context limit from bridge data — no compaction events needed. The formula content_max = content_bytes / (used_pct / 100) runs continuously while the bridge is active, auto-calibrating per user and per model. Your specific plugin overhead, skill count, and system prompt size are all accounted for automatically. Calibration
samples are stored once context usage reaches 20%.
Bridge Auto-Creation
Zero setup required. On first session start, session-resume.sh auto-injects the bridge snippet into ~/.claude/settings.json. If you already have a custom status line, the bridge is injected into it. If you don't have one, Remembrall creates a minimal one. No more manual /setup-remembrall needed.
Two-Branch Estimation Strategy
The estimation system now uses a clear two-branch approach:
- Bridge active → use real context % directly (most accurate), calibrate content_max as a side effect
- Bridge unavailable → structural JSONL parser first, raw file-size fallback second — both using calibrated limits when available
Removed Staleness Timeout
The bridge file no longer has a staleness timeout. Context % is read whenever the bridge file exists and invalidated on compact/clear events. This eliminates false fallbacks to estimation when the bridge was simply not refreshed between prompts.
20 Audit Fixes
A comprehensive code audit resolved bugs across all hooks, skills, and config:
- ANSI in JSON — Nudge messages now use plain-text gauges for valid JSON output
- Dead PreCompact hook — Safety net now fires on actual system compaction events
- Calibration race condition — File locking prevents data corruption with concurrent sessions
- Cross-session handoff theft — Recency fallback now verifies frontmatter session ID
- Nudge oscillation — Warning can no longer re-fire after urgent has already triggered
- Stop hook async — Now runs synchronously to block task completion as intended
- Filename safety — Replaced xargs trim with POSIX-safe whitespace handling
- Plus 13 additional fixes across skills, commands, and hook registration
Full Changelog: v2.2.0...v2.3.0