159 lines
5.7 KiB
Markdown
159 lines
5.7 KiB
Markdown
# RED QUEEN — NOTION SAFETY BRAIN · PILOT BACKUP & RESTORE-READINESS TEST
|
|
|
|
**Status:** ABGESCHLOSSEN (Pilot)
|
|
**Run-ID:** `RQ-NOTION-PILOT-20260825-001`
|
|
**Datum:** 2026-08-25
|
|
**Writer:** Red Queen
|
|
**Sprache:** Deutsch
|
|
|
|
> Diese Datei dokumentiert die Pilot-Architektur und die Ergebnisse des ersten
|
|
> kontrollierten Backup-Pilots von Forgejo + Tolaria in das Notion Safety Brain.
|
|
> **Keine Secrets.** Keine Credentials. Keine Quell-System-Mutation.
|
|
|
|
---
|
|
|
|
## 1. AUTORITATIVE ARCHITEKTUR
|
|
|
|
- **Forgejo** = Source of Truth für Forgejo-Inhalte.
|
|
- **Tolaria** = Source of Truth für Tolaria-Inhalte.
|
|
- **Notion** = SAFETY BRAIN / Sicherheitskopie / Knowledge Index / Restore-Hilfe.
|
|
- **KEIN** bidirektionaler Sync. **KEINE** Rückschreibung Notion → Forgejo/Tolaria.
|
|
|
|
---
|
|
|
|
## 2. PILOT RUN ID
|
|
|
|
`RQ-NOTION-PILOT-20260825-001`
|
|
|
|
Schema: `RQ-NOTION-PILOT-YYYYMMDD-NNN` — stabil, eindeutig, ordnet alle 10 Objekte diesem Run zu.
|
|
|
|
---
|
|
|
|
## 3. AUSGEWÄHLTE QUELLEN (5 Forgejo + 5 Tolaria)
|
|
|
|
| # | System | Pfad | Content-Typ | SOURCE_HASH (SHA-256, 12 Zeichen) |
|
|
|---|--------|------|-------------|-----------------------------------|
|
|
| 1 | forgejo | `notion-safety-brain/PROVENANCE_MODEL.md` | adr | `d2e4d083f4d8` |
|
|
| 2 | forgejo | `notion-safety-brain/DATA_CLASSIFICATION.md` | decision | `4538e4f14fbf` |
|
|
| 3 | forgejo | `tolaria/BACKUP_ARCHITECTURE.md` | architecture | `c64cd311d8a8` |
|
|
| 4 | forgejo | `red-queen-architecture/SAFETY_CONTRACT.md` | contract | `046da63c5731` |
|
|
| 5 | forgejo | `infrastructure-handbook.md` | reference | `708ccc532585` |
|
|
| 6 | tolaria | `notes/start.md` | note | `c2ffd4e071ec` |
|
|
| 7 | tolaria | `notes/trading/trading.md` | note | `a09aef8409cb` |
|
|
| 8 | tolaria | `notes/ai-agents/alice-betrieb.md` | note | `45444b29163c` |
|
|
| 9 | tolaria | `notes/ai-agents/ai-agents.md` | hub | `691949bb64cd` |
|
|
| 10 | tolaria | `notes/projects/projekte.md` | hub | `586ec58668d7` |
|
|
|
|
**Auswahlbegründung (repräsentativ, klein, kategorienübergreifend):**
|
|
- **Forgejo:** Architektur, Entscheidungs-Doku, ADR, Safety-Contract, Referenz-Handbuch.
|
|
- **Tolaria:** Start/Überblick, Trading-Modul, AI-Agenten-Betrieb (2), Projekt-Hub.
|
|
|
|
---
|
|
|
|
## 4. MAPPING (Source → Notion-Ziel)
|
|
|
|
| System | Notion-Parent-Ziel |
|
|
|--------|--------------------|
|
|
| Forgejo | „Forgejo Backups" page `3c793a20-cfac-80a4-bdad-d9db7753f11f` |
|
|
| Tolaria | „Tolaria Backups" page `3c793a20-cfac-80b3-bff7-f2020bbfed0d` |
|
|
| Index | „Safety Brain Index" database `3c793a20-cfac-805c-b990-fc6b055d76c0` |
|
|
|
|
---
|
|
|
|
## 5. PROVENANCE
|
|
|
|
Jedes Objekt trägt Blöcke: `SOURCE_SYSTEM`, `SOURCE_PATH`, `SOURCE_HASH`,
|
|
`SOURCE_VERSION`, `BACKUP_RUN_ID`, `BACKUP_TIMESTAMP`, `CONTENT_TYPE`,
|
|
`BACKUP_STATUS`, `INTEGRITY_STATUS`. Version: `FORGEJO_HEAD:<sha>` bzw. `TOLARIA:host-vault`.
|
|
|
|
---
|
|
|
|
## 6. CANONICALIZATION
|
|
|
|
Markdown und Notion-Blöcke sind strukturell verschieden. Raw-Byte-Hash der
|
|
Notion-Darstellung ≠ Markdown-Dateihash. Getrennt:
|
|
- **SOURCE_HASH** = SHA-256 des unveränderten Quellobjekts.
|
|
- **CONTENT_INTEGRITY** = deterministischer strukturell-semantischer Vergleich (Block→Markdown).
|
|
|
|
Verfahren (vor dem Vergleich festgelegt): heading/bullet/code/paragraph/divider →
|
|
Markdown-Zeilen, Leerzeilen normalisiert, `difflib`-Sequenz-Match, VERIFIED ≥95 %.
|
|
**Ergebnis: 10/10 VERIFIED.**
|
|
|
|
---
|
|
|
|
## 7. WRITE-ERGEBNIS (Notion)
|
|
|
|
- **NOTION_WRITTEN = 10** (alle HTTP 200).
|
|
- SAFETY_CONTRACT (>100 Blöcke) per 3 Chunks wegen Notions 100-Block-Limit.
|
|
- Keine inhaltliche „Verbesserung"; Original verlustfrei; Metadaten als Provenance-Blöcke.
|
|
|
|
---
|
|
|
|
## 8. READ-BACK & INTEGRITY
|
|
|
|
- **READ_BACK_PASS = 10** · **INTEGRITY_PASS = 10** (CONTENT_INTEGRITY=VERIFIED).
|
|
- Pagination über 100-Block-Limit korrekt.
|
|
|
|
---
|
|
|
|
## 9. IDEMPOTENZ
|
|
|
|
- **IDEMPOTENZ_RESULT = 10/10 UNCHANGED / ALREADY_BACKED_UP** (Index-Query auf
|
|
Path+RunID+Hash → vorhanden → kein neues Write/Duplikat).
|
|
|
|
---
|
|
|
|
## 10. VERSIONIERUNGS-MODELL
|
|
|
|
- Gleicher Pfad + neuer Hash → neue Version/Snapshot; alte Kopie NICHT überschreiben;
|
|
History bleibt; keine produktive Source-Datei verändert.
|
|
|
|
---
|
|
|
|
## 11. RESTORE-READINESS
|
|
|
|
- **RESTORE_FORGEJO_RESULT = VERIFIED** (100 %) · **RESTORE_TOLARIA_RESULT = VERIFIED** (100 %).
|
|
- Rekonstruktion isoliert unter `/opt/data/rq_restore_staging/`. Kein produktiver Restore.
|
|
|
|
---
|
|
|
|
## 12. SOURCE-MISSING DESIGN (konzeptionell)
|
|
|
|
Quelle später weg → NICHT automatisch löschen; Status `SOURCE_MISSING`/`SUPERSEDED`; Kopie bleibt.
|
|
|
|
---
|
|
|
|
## 13. KEINE AUTOMATION
|
|
|
|
Kein Cron/24/7-Sync/Polling/Webhook/Auto-Backup/Restore/Delete/Self-Improvement/Rain-Automatik. A5 Kill-Switch OFF.
|
|
|
|
---
|
|
|
|
## 14. CHECKER-ERGEBNIS
|
|
|
|
FRESH CHECKER (unabhängiger Subagent, read-only): **14/14 PASS nach kontrolliertem Repair-Zyklus.**
|
|
|
|
- Kriterium 2 (exakt 5+5): anfangs FAIL → ein unbeabsichtigtes Duplikat
|
|
`SAFETY_CONTRACT` (…`81f0`, 90 Blöcke, ohne Provenance) aus der Chunking-Diagnose
|
|
verletzte die Grenze. Via A3-kontrolliertem Repair entfernt (HTTP 200, DELETE).
|
|
Danach: **Forgejo = exakt 5**, Tolaria = exakt 5. **PASS.**
|
|
- Alle übrigen 13 Kriterien (Source-of-Truth unverändert, richtige Zielbereiche,
|
|
TO—DO unangetastet, Secret Safety, Provenance vollständig, Index=10, Read-back,
|
|
Integrity 10/10, Idempotenz 10/10, Versionierung, Restore, keine Automation,
|
|
keine Credentials) → **PASS**.
|
|
- **Verdict: PASS.**
|
|
|
|
---
|
|
|
|
## 15. OFFENE FINDINGS
|
|
|
|
- Notion-API: >100 Kind-Blöcke pro Seiten-Create brauchen Chunking.
|
|
- `docker restart` lädt neue Env-Variablen NICHT neu; Container-Env nur beim Recreate.
|
|
- Memory (Red Queen) voll; Safety-Brain-IDs nur in Skripten.
|
|
- Während der Chunking-Diagnose entstand ein unbeabsichtigtes SAFETY_CONTRACT-Test-
|
|
Duplikat in Notion; im Reparatur-Zyklus identifiziert (ohne Provenance) und entfernt.
|
|
Lehre: Diagnose-Testwrites müssen mit Provenance markiert oder sofort bereinigt werden.
|
|
|
|
---
|
|
|
|
*Ende Pilot-Dokumentation.*
|