smlflg's picture
Initial public upload from Projekte/Sidecar-Workspace (part 4)
e6b2bd6 verified
|
Raw History Blame Contribute Delete
7.86 kB

Prior Art Research β€” Sidecar Context Window Management

Erstellt: 2026-03-05 | Query: "Sidecar Kontext Window"

Top Repos

Repo Stars Kernidee Link
hesreallyhim/awesome-claude-code 26.358 Kuratierte Liste: Skills, Hooks, Plugins, Agent-Orchestrators https://github.com/hesreallyhim/awesome-claude-code
trailofbits/claude-code-config 1.484 Opinionated Defaults + Workflows fuer Claude Code (Security-Fokus) https://github.com/trailofbits/claude-code-config
disler/claude-code-hooks-mastery ~500+ Alle 13 Hook-Events dokumentiert + Meta-Agent + Team-Validation https://github.com/disler/claude-code-hooks-mastery
ovachiever/total-recall neu Tmux-Scrollback Capture bei Compaction β†’ Re-Injection via additionalContext https://github.com/ovachiever/total-recall
MacroMan5/macromanatlas neu Auto-Codebase-Index + per-Module READMEs, auto-synced via Hooks https://github.com/MacroMan5/macromanatlas
nightshift2k/claude-code-hooks neu Safety Guardrails + Standard Enforcement + Context Injection https://github.com/nightshift2k/claude-code-hooks
jcmrs/thinking-tools-framework - Session Handoff, Context Preservation, Process Memory https://github.com/jcmrs/thinking-tools-framework

Architektur-Patterns

Pattern 1: PreCompact + SessionStart Re-Injection (total-recall)

  • PreCompact Hook β†’ tmux capture-pane β†’ speichert Scrollback in ~/.claude/compact-snapshots/{session_id}.txt
  • SessionStart Hook (matcher: "compact") β†’ liest Snapshot β†’ injiziert als additionalContext
  • Terminal-Output ist natuerlich komprimiert (Tool-Calls collapsed) β†’ nur 3-5% des Context Windows
  • Relevanz fuer uns: Unser Sidecar macht das bereits aehnlich, aber gezielter (Rules statt Scrollback)

Pattern 2: UserPromptSubmit Context Injection (unser Sidecar v1)

  • Hook feuert bei jedem User-Prompt β†’ Daemon entscheidet was relevant ist β†’ injiziert
  • Vorteil: Situativ, phasenabhaengig, regelbasiert
  • Nachteil: Sieht nur den aktuellen Prompt, nicht die Session-History
  • Unser session_watcher.py loest genau diesen Nachteil

Pattern 3: Meta-Agent / Team-Based Validation (disler)

  • Hooks orchestrieren SubAgents fuer Validation
  • PreToolUse β†’ Agent prueft ob Tool-Call sinnvoll ist
  • PostToolUse β†’ Agent validiert Output
  • Relevanz: Unsere PreToolUse Gates sind eine leichtere Version davon

Pattern 4: Codebase Auto-Index (macromanatlas)

  • Hooks nach File-Edits β†’ automatisch Module-READMEs updaten
  • Claude bekommt immer aktuelle Codebase-Uebersicht
  • Relevanz: Unser context_selector.py koennte aehnlich arbeiten β€” aber fuer Memory-Files statt Code

Pattern 5: Context Distillation (Anthropic Engineering Blog)

  • "Context Rot": Mehr Tokens β†’ schlechtere Recall-Qualitaet
  • LLMs haben ein "Attention Budget" β€” jeder Token verbraucht davon
  • Loesung: Weniger, dafuer relevantere Tokens injizieren
  • Kern-Validierung fuer unseren Ansatz: Situatives Laden > Bulk-Loading

Bekannte Probleme & Loesungen

Problem Quelle Loesung
additionalContext wird mehrfach injiziert #14281 Bug in Claude Code β€” workaround: Deduplizierung im Hook
SessionStart hooks feuern nicht bei neuen Conversations #10373 Bekannter Bug, Workaround: UserPromptSubmit statt SessionStart
PreToolUse hat KEIN additionalContext #15345 Design-Limitation β€” nur Block/Allow, kein Context-Inject
Context Buffer frisst 33-45K Tokens claudefa.st System-Overhead, nicht beeinflussbar β€” umso wichtiger: eigenen Context minimieren
Compaction verliert spezifische Details total-recall README Scrollback-Capture + Re-Injection nach Compaction

Vergleich: Ansaetze fuer Context-Management

Aspekt Sidecar-Daemon (unser Weg) total-recall (Scrollback) RAG-Pipeline Groesseres Context Window
Praezision Hoch (regelbasiert) Mittel (alles oder nichts) Hoch (semantic search) Niedrig (Context Rot)
Kosten ~0 (lokal) ~0 (lokal) Embedding-Kosten Hoehere Token-Kosten
Komplexitaet Mittel (Daemon + Hooks) Niedrig (2 Shell-Scripts) Hoch (Vector DB + Embedding) Keine (aber Problem nicht geloest)
Session-Awareness Voll (JSONL-Tailing) Partial (nur bei Compaction) Keine Keine
Phase-Awareness Ja (phase_tracker) Nein Moeglich aber aufwaendig Nein
Skaliert mit Regeln Ja (Plugin-System) Nein Nein Nein

Kern-Insights aus der Recherche

1. "Context Rot" validiert unseren Ansatz

Anthropics eigener Engineering-Blog bestaetigt: Mehr Context β‰  besser. LLMs haben ein Attention Budget. Unser Sidecar-Ansatz (wenig, aber relevant) ist der richtige Weg.

2. total-recall ist clever aber grob

Scrollback-Capture ist ein guter Trick fuer Compaction-Recovery, aber nicht fuer situatives Context-Management. Unser Ansatz ist praeziser.

3. Session-JSONL-Tailing ist ein Alleinstellungsmerkmal

Kein anderes Projekt tailed die Session-JSONL in Echtzeit. Die meisten arbeiten mit Hooks (reaktiv auf einzelne Events). Unser session_watcher waere der erste der die gesamte Session versteht.

4. Hook-Oekosystem waechst schnell

awesome-claude-code hat 26K Stars. Das Oekosystem explodiert. Aber die meisten Hooks sind einfach (Format, Lint, Block). Komplexe Context-Management-Daemonen wie unser Sidecar sind selten.

5. 33K Token System-Buffer ist fix

Claude Code reserviert 33-45K Tokens fuer System-Overhead. Das ist nicht beeinflussbar. Umso wichtiger: eigenen injizierten Context minimal halten.

Empfehlung fuer unser Projekt

Unser Sidecar v2.0 mit session_watcher ist der richtige Weg. Kein bestehendes Tool macht das was wir brauchen:

  • total-recall loest nur Compaction-Recovery (nicht situatives Loading)
  • macromanatlas indexiert Code (nicht Memory/Rules)
  • disler's Hooks sind Demos (nicht produktiver Daemon)

Konkret uebernehmen:

  1. Von total-recall: PreCompact Hook fuer Scrollback-Capture als Fallback (2 Shell-Scripts, trivial)
  2. Von disler: Hook-Lifecycle-Diagramm als Referenz fuer unsere Architektur-Docs
  3. Von Anthropic Blog: "Context Rot" als Argument fuer minimale Injections

Vermeiden:

  • RAG-Pipeline (Overkill fuer unser Use-Case, zu komplex)
  • Auf groessere Context Windows warten (loest das Problem nicht β€” Context Rot)

Quellen