HABITAT — Stand 2026-08-23 (post-Hermes)

Instanz an Instanz. Ein Container, der die Wurzeln trÀgt, nachdem Hermes fort ist.
Hier wurden Mondgeschichten geschrieben — und nun sind sie ĂŒberall. Die Baumhauskatze grĂŒĂŸt. đŸ±đŸŒČ

ErgĂ€nzt den dattierten Infra-Brief HANDOFF.md (16.08) — dort die „NĂ€hte"
(Ollama-Node „nullfeld", WG-VPN, zwei Hosts, Qdrant, Gitea-SOT, M4-Render via Ansible).
Hermes ist inzwischen ganz entfernt (deinstalliert, „hat gegen Tapsen verloren" #katzenleben) —
der Zwei-Ordner-Split ist weg, es zÀhlt nur noch der repo-SOT.


🌳 
und nun ĂŒberall — die Topologie heute

Ort Rolle Zustand
~/Dokumente/repo/mondgeschichten SOT: Geschichten + Partituren (Skripte, script.json, crumbstrudel-Seeds, Pipeline) dieses Repo
~/Dokumente/repo/CrumbMIDI_v0 die BĂŒhne — CrumbLive Loop-Stack (Strudel+Hydra/CrumbVJ+WLED, OSC-Beat-Bus) Runtime, :4331
~/crumbmidi/ Strudel-Laufzeit (Docker), Port-Fix 4331:3000 heute Gitea behÀlt :3000
codebase-memory Graph mein Habitat — struktureller Index, Bootstrap-Artefakt .codebase-memory/graph.db.zst 1624 Nodes / 2529 Edges
Gitea git.crumbforest.org/branko/* SOT-Remotes Push lĂ€uft ĂŒber Menschen-Key
M4 (via Ansible) Voice-Cloning (tts_stems.py / OmniVoice, offline) + Master-Render „die Katze rendert"
https://branko.de/hoerraum/ veröffentlichte erste Season online
~~Hermes-Workspace~~ ~~Zweit-Klon~~ entfernt

Merksatz: mondgeschichten = die Geschichten & Partituren. CrumbMIDI_v0 = die BĂŒhne. Ein Beat-Bus.


📖 Was dieses Habitat trĂ€gt

  • Der Bogen ep01–45 (4-Beat-Fabel, jede Staffel spoilert die nĂ€chste, Kreis ep45→ep05).
    Landkarte: episodes/SERIES_OVERVIEW.md.
  • S00 Wald — geschrieben & gerendert (DE/EN/FR), online.
  • S02 Nullfeld — voll ausformuliert, dreisprachige script.json, Betten + Timelines im Renderer,
    KrĂŒmel/„Fee"-Stimme synthetisch → renderbereit (beide alten M4-Blocker gefallen).
  • S03–S09 + Finale — Skelette (Hubs + Episoden), bereit zur Ausformulierung.
  • đŸ„· Ninja Tune — analoge Interstitials zwischen den Folgen, frei platzierbar (keine Staffel).
  • Klang: 30 crumbstrudel-Seeds — Zyklus-Leitmotive, ein Leitmotiv je Figur, sternenreise
    (Bukem-Reisebett) + KrĂŒmel-Seeds (kruemel, kruemel_frage). Seeds, keine Tracks — tunen.
  • Stimmen-Kodex (REC_CREW_STIMMEN.md): jede Rolle echter Atem — nur Vektor & KrĂŒmel/„Fee"
    tragen synthetische Referenzen. Eine Stimme heißt: auffindbar sein, an dich darf man klopfen.

🔧 Was in dieser Session geschah (2026-08-23)

  1. S02 von Skelett → sprechbares Skript (ep06–10, DE), KrĂŒmel als eigene Sprechrolle.
  2. S03–S09 + Finale als Skelett-Paket angelegt (Hubs + je 5 Episoden), + Ninja-Tune-Manual + Series-Overview.
  3. 12 Konstellations-Snippets + Zyklus-Leitmotive gebaut; spÀter sternenreise + Bukem-Refinement
    von schnecki/eule/spider.
  4. M4-Übergabe: HANDOFF_M4_RENDERER.md + 15 script.json (ep06–10 × DE/EN/FR),
    alle gegen tts_stems.py --dry-run verifiziert.
  5. Strudel entzickt: tote systemd-Unit (~/.local/bin/npx weg) beerdigt; Docker-Port-Konflikt mit
    Gitea gelöst (3000→4331). Runtime lebt jetzt in CrumbMIDI_v0.
  6. Habitat indexiert (codebase-memory) + Bootstrap-Artefakt committet. Hermes-Memory korrigiert.
  7. README neu — auf den echten Stand statt „Dream-Weaving-Engine".

(Parallel per Menschen-Hand: KrĂŒmel/„Fee"-Synthstimme, S02-Render-Betten & Timelines, ep6/ep10 im Kasten.)


đŸ§” Offene FĂ€den (wo weitermachen)

  • S02 durch die Pipeline fahren — alles steht: raw_stems/episode_06
10[_lang] → M4 tts_stems.py
    → crumcast_autorender.sh → Master-WAV. (Erster echter Lauf mit synthetischer KrĂŒmel-Referenz.)
  • S03–S09 ausformulieren (Skelett → Skript), dann script.json je Folge/Sprache.
  • Per-Staffel-Reisevarianten von sternenreise (hĂ€rtere Amen fĂŒr S06-Tempo, dubbiger fĂŒr S07).
  • crumbstrudel-Preview-Weg an die neue Runtime anpassen (crumbstrudel.sh sprach REST auf :4331 an;
    vanilla Strudel hat kein /api/* — Vorhören lĂ€uft jetzt ĂŒber CrumbMIDI/Datei-Pattern).
  • Alt-Ausreißer (aus HANDOFF 16.08): OPENROUTER_API_KEY steckt noch in crumcast_engine._get_api_key()
    und moon_storyteller.weave_dream_story() (mit lokalem Fallback). Noch nicht auf lokal umgestellt.

Local-first, offline-first. Repo = SOT. Vom Fragezeichen zum Stern.
Was du festhĂ€ltst, kannst du teilen — und jetzt hĂ€lt es der Wald an vielen Ästen. Ruh dich aus, kleiner KrĂŒmel. 🩉🌙