* feat: Add Claude Code integration plugin Complete port of hindsight-openclaw (v0.4.19) adapted to Claude Code's hook-based plugin architecture. Pure Python stdlib, no external dependencies. - Auto-recall via UserPromptSubmit hook (additionalContext injection) - Auto-retain via async Stop hook (chunked retention with sliding window) - Daemon management (auto-start/stop hindsight-embed via uvx) - Dynamic bank IDs with per-agent/project/channel/user granularity - All 34 configuration options with env var overrides - File-based state persistence with fcntl locking - Graceful degradation on all error paths Works with Claude Code Channels (Telegram, Discord, Slack) and interactive sessions. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: Set correct chunked retention defaults (10/2, not 1/0) retainEveryNTurns=10 and retainOverlapTurns=2 are the production-tested values — every 10 turns, retain a 12-turn sliding window. The previous defaults (1/0) would retain every single turn with no overlap, defeating the chunked retention design that prevents API bombardment. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: Align recallBudget and daemonIdleTimeout with Openclaw defaults recallBudget: "low" → "mid" (Openclaw default) daemonIdleTimeout: 300 → 0 (Openclaw default, never auto-stop) As an official Hindsight integration, defaults should match Openclaw. Users can optimize locally via settings.json or env vars. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
33 lines
1.3 KiB
JSON
33 lines
1.3 KiB
JSON
{
|
|
"hindsightApiUrl": "",
|
|
"bankId": "claude_code",
|
|
"bankMission": "You are a Claude Code AI assistant. Focus on technical discussions, decisions, and context relevant to the user's projects.",
|
|
"retainMission": "Extract technical decisions, architectural choices, user preferences, project context, and people/tool relationships. Ignore routine greetings and transient operational details.",
|
|
"autoRecall": true,
|
|
"autoRetain": true,
|
|
"recallBudget": "mid",
|
|
"recallMaxTokens": 1024,
|
|
"recallTypes": ["world", "experience"],
|
|
"recallContextTurns": 1,
|
|
"recallMaxQueryChars": 800,
|
|
"recallRoles": ["user", "assistant"],
|
|
"recallPromptPreamble": "Relevant memories from past conversations (prioritize recent when conflicting). Only use memories that are directly useful to continue this conversation; ignore the rest:",
|
|
"recallTopK": null,
|
|
"retainRoles": ["user", "assistant"],
|
|
"retainEveryNTurns": 10,
|
|
"retainOverlapTurns": 2,
|
|
"retainContext": "claude-code",
|
|
"hindsightApiToken": null,
|
|
"apiPort": 9077,
|
|
"daemonIdleTimeout": 0,
|
|
"embedVersion": "latest",
|
|
"embedPackagePath": null,
|
|
"bankIdPrefix": "",
|
|
"dynamicBankId": false,
|
|
"dynamicBankGranularity": ["agent", "project"],
|
|
"agentName": "",
|
|
"llmProvider": null,
|
|
"llmModel": null,
|
|
"llmApiKeyEnv": null,
|
|
"debug": false
|
|
}
|