[ { "ref": "e10", "id": 180, "epic": "DEC", "rank": 5, "status": "open", "title": "E10 entscheiden: Womit wird der Hauptschluessel unter Linux gebunden?", "neu": true }, { "ref": "e1", "id": 181, "epic": "DEC", "rank": 50, "status": "open", "title": "E1 entscheiden: Matrix oder Rocket.Chat?", "neu": true }, { "ref": "e4", "id": 182, "epic": "DEC", "rank": 210, "status": "open", "title": "E4 entscheiden: ask_agent behalten oder ersatzlos streichen?", "neu": true }, { "ref": "e2", "id": 183, "epic": "DEC", "rank": 220, "status": "open", "title": "E2 entscheiden: Nextcloud-Identitaet - Dienstkonto oder Benutzer je Agent?", "neu": true }, { "ref": "e3", "id": 184, "epic": "DEC", "rank": 230, "status": "open", "title": "E3 entscheiden: Oeffentliche Freigabe-Links erlauben oder hart sperren?", "neu": true }, { "ref": "e5", "id": 185, "epic": "DEC", "rank": 240, "status": "open", "title": "E5 entscheiden: Notfallkanal-Reihenfolge instanzweit oder je Agent?", "neu": true }, { "ref": "e6", "id": 186, "epic": "DEC", "rank": 250, "status": "open", "title": "E6 entscheiden: catchUp je Task abschaltbar machen?", "neu": true }, { "ref": "e7", "id": 187, "epic": "DEC", "rank": 260, "status": "open", "title": "E7 entscheiden: Prioritaet bei mehreren faelligen Tasks - strikt oder gewichtet?", "neu": true }, { "ref": "e8", "id": 188, "epic": "DEC", "rank": 270, "status": "open", "title": "E8 entscheiden: Aufbewahrungsdauer der Agentenkommunikation", "neu": true }, { "ref": "e9", "id": 189, "epic": "DEC", "rank": 280, "status": "open", "title": "E9 entscheiden: Automatische Orderausfuehrung - ueberhaupt?", "neu": true }, { "ref": "l1", "id": 190, "epic": "SEC", "rank": 10, "status": "open", "title": "L1: Der Hauptschluessel liegt unter Linux im Klartext", "neu": true }, { "ref": "freigabe-ansicht", "id": 191, "epic": "SEC", "rank": 20, "status": "open", "title": "Freigabe-Ansicht: gestagte Aufrufe sichtbar machen und freigeben", "neu": true }, { "ref": "output-scrubbing", "id": 192, "epic": "SEC", "rank": 80, "status": "open", "title": "Output-Scrubbing: Secret-Werte zentral aus allen Tool-Ergebnissen maskieren", "neu": true }, { "ref": "untrusted-content", "id": 193, "epic": "SEC", "rank": 300, "status": "open", "title": "Tool-Ergebnisse als untrusted content rahmen", "neu": true }, { "ref": "secret-ui", "id": 194, "epic": "SEC", "rank": 310, "status": "open", "title": "Secret-UI: Zugangsdaten setzen und rotieren", "neu": true }, { "ref": "filerw-papierkorb", "id": 195, "epic": "CAP", "rank": 60, "status": "open", "title": "FileRW-Papierkorb statt endgueltigem Loeschen", "neu": true }, { "ref": "l4-shell", "id": 196, "epic": "CAP", "rank": 90, "status": "open", "title": "L4: Shell-Tool mit echter Sandbox", "neu": true }, { "ref": "l5-mcp", "id": 197, "epic": "CAP", "rank": 100, "status": "open", "title": "L5: MCP-Client fuer stdio- und HTTP-Server", "neu": true }, { "ref": "a4-skills", "id": 198, "epic": "CAP", "rank": 110, "status": "open", "title": "A4: Skills und Toolsets - dreischichtiger Prompt statt \"alles immer\"", "neu": true }, { "ref": "l6-vision", "id": 199, "epic": "CAP", "rank": 120, "status": "open", "title": "L6: Vision - Bild-Content-Blocks im OpenRouterClient", "neu": true }, { "ref": "l7-browser", "id": 200, "epic": "CAP", "rank": 130, "status": "open", "title": "L7: Browser-Tool mit Live-Ansicht", "neu": true }, { "ref": "memory-flush", "id": 201, "epic": "CAP", "rank": 320, "status": "open", "title": "Memory-Flush vor der Compaction", "neu": true }, { "ref": "memory-injection", "id": 202, "epic": "CAP", "rank": 330, "status": "open", "title": "Memory-Auto-Injection relevanter Abstracts", "neu": true }, { "ref": "proaktive-compaction", "id": 203, "epic": "CAP", "rank": 340, "status": "open", "title": "Die Compaction laeuft nach dem API-Aufruf - der ueberfuellte Prompt ist da schon bezahlt", "neu": true }, { "ref": "agent-inspector", "id": 204, "epic": "CAP", "rank": 350, "status": "open", "title": "AgentInspector: ein Supervisor-Agent, der die anderen beurteilen kann", "neu": true }, { "ref": "agent-editor", "id": 205, "epic": "CAP", "rank": 360, "status": "open", "title": "AgentEditor haerten: Aenderungen an Identity.md und Soul.md freigabepflichtig", "neu": true }, { "ref": "b8-delegationstiefe", "id": 206, "epic": "COMM", "rank": 70, "status": "open", "title": "B8: AgentComm.send_message hat keine Tiefenbegrenzung - A nach B nach A verklemmt", "neu": true }, { "ref": "comm-phase1", "id": 207, "epic": "COMM", "rank": 400, "status": "open", "title": "Agentenkommunikation Phase 1: ParentRunId und RootRunId", "neu": true }, { "ref": "comm-phase2", "id": 208, "epic": "COMM", "rank": 410, "status": "open", "title": "Agentenkommunikation Phase 2: Nachrichtenspeicher AgentMessages mit FTS5", "neu": true }, { "ref": "comm-phase3", "id": 209, "epic": "COMM", "rank": 420, "status": "deferred", "title": "Agentenkommunikation Phase 3: ask_agent mit Tiefe 1 und Zykluspruefung", "neu": true }, { "ref": "comm-phase4", "id": 210, "epic": "COMM", "rank": 430, "status": "deferred", "title": "Agentenkommunikation Phase 4: Paar-Ansicht an den Datenbestand anschliessen", "neu": true }, { "ref": "comm-phase5", "id": 211, "epic": "COMM", "rank": 440, "status": "open", "title": "Agentenkommunikation Phase 5: AgentCommAnalysis", "neu": true }, { "ref": "historie-umzug", "id": 212, "epic": "DATA", "rank": 150, "status": "open", "title": "Historie-Umzug in die Instanz-DB (loest B10 und K6)", "neu": true }, { "ref": "a6-mysql-spiegel", "id": 213, "epic": "DATA", "rank": 450, "status": "deferred", "title": "A6: MySQL-Spiegel als nachgelagerte Kopie", "neu": true }, { "ref": "l2-betriebsform", "id": 214, "epic": "OPS", "rank": 30, "status": "open", "title": "L2: 24/7-Betriebsform unter Linux", "neu": true }, { "ref": "l3-release-linux", "id": 215, "epic": "OPS", "rank": 40, "status": "open", "title": "L3: Release-Strecke linux-x64 (DC3)", "neu": true }, { "ref": "dc1-fehler-melden", "id": 216, "epic": "OPS", "rank": 160, "status": "open", "title": "DC1: Schaltflaeche \"Fehler melden\" in der Oberflaeche", "neu": true }, { "ref": "dc2-bugtracker-tool", "id": 217, "epic": "OPS", "rank": 500, "status": "open", "title": "DC2: Bugtracker-Tool fuer Agenten", "neu": true }, { "ref": "sdk-270", "id": 218, "epic": "OPS", "rank": 505, "status": "open", "title": "Deploymentcenter-SDK von 2.6.0 auf 2.7.0 nachziehen", "neu": true }, { "ref": "dc4-sdk-submodul", "id": 219, "epic": "OPS", "rank": 510, "status": "open", "title": "DC4: SDK als Git-Submodul statt Cross-Repo-Pfad", "neu": true }, { "ref": "dc5-evaluator-cron", "id": 220, "epic": "OPS", "rank": 520, "status": "open", "title": "DC5: Evaluator-Cron einrichten (Betreiberaufgabe)", "neu": true }, { "ref": "release-guard", "id": 221, "epic": "OPS", "rank": 530, "status": "open", "title": "Release-Guard beim Upload: ein frisches Produktverzeichnis steht ohne .htaccess da", "neu": true }, { "ref": "dc8-signaturpflicht", "id": 222, "epic": "OPS", "rank": 540, "status": "deferred", "title": "DC8: Die Signaturpflicht laesst sich ueber den empfohlenen Weg nicht einschalten", "neu": true }, { "ref": "c1-marktkalender", "id": 223, "epic": "FIN", "rank": 140, "status": "open", "title": "C1: Marktkalender - Laeufe ausserhalb der Handelszeiten ueberspringen", "neu": true }, { "ref": "c2-indicators", "id": 224, "epic": "FIN", "rank": 600, "status": "open", "title": "C2: Indikatoren im Code rechnen statt im Modell", "neu": true }, { "ref": "c3-datenaktualitaet", "id": 225, "epic": "FIN", "rank": 610, "status": "open", "title": "C3: dataAsOf wird geliefert, aber von nichts ausgewertet", "neu": true }, { "ref": "c4-termine", "id": 226, "epic": "FIN", "rank": 620, "status": "open", "title": "C4: Termine und Fundamentaldaten", "neu": true }, { "ref": "c5-bestandsregister", "id": 227, "epic": "FIN", "rank": 630, "status": "open", "title": "C5: Bestandsregister - stock_add ist eine Wissenssammlung, kein Bestand", "neu": true }, { "ref": "c6-entdopplung", "id": 228, "epic": "FIN", "rank": 640, "status": "open", "title": "C6: Nachrichten-Entdopplung", "neu": true }, { "ref": "c7-ergebnisregister", "id": 229, "epic": "FIN", "rank": 650, "status": "open", "title": "C7: Ergebnisregister AgentOutput am Lauf", "neu": true }, { "ref": "c8-falsifizierbar", "id": 230, "epic": "FIN", "rank": 660, "status": "open", "title": "C8: Falsifizierbare Aussagen als Leistungsmass", "neu": true }, { "ref": "leerlaufquote", "id": 231, "epic": "FIN", "rank": 670, "status": "open", "title": "Leerlaufquote: Laeufe ohne greifbares Ergebnis zaehlen", "neu": true }, { "ref": "stock-add-herausloesen", "id": 232, "epic": "FIN", "rank": 680, "status": "open", "title": "stock_add aus FileRW herausloesen", "neu": true }, { "ref": "b9-index-count", "id": 233, "epic": "HYG", "rank": 170, "status": "open", "title": "B9: index_Count-Race in FileRWTool", "neu": true }, { "ref": "b13-instanceid", "id": 234, "epic": "HYG", "rank": 180, "status": "open", "title": "B13: instanceId-Inkonsistenz zwischen RunAsync und SendMessageAsync", "neu": true }, { "ref": "dst-randfall", "id": 235, "epic": "HYG", "rank": 190, "status": "open", "title": "DST-Randfall: eine nicht existierende Ortszeit wird uebersprungen statt verschoben", "neu": true }, { "ref": "nullable-warnungen", "id": 236, "epic": "HYG", "rank": 200, "status": "open", "title": "45 Nullable-Build-Warnungen", "neu": true }, { "ref": "done-audit", "id": 237, "epic": "SEC", "rank": null, "status": "resolved", "title": "Audit-Log und Receipts (A3, F-A2)", "neu": true }, { "ref": "done-staging", "id": 238, "epic": "SEC", "rank": null, "status": "resolved", "title": "Staging-Kern (A2, F-A1, S4)", "neu": true }, { "ref": "done-taskboard", "id": 239, "epic": "CAP", "rank": null, "status": "resolved", "title": "Taskboard (A1, F-A4, F-A5)", "neu": true }, { "ref": "done-memory", "id": 240, "epic": "CAP", "rank": null, "status": "resolved", "title": "Langzeitgedaechtnis (K1)", "neu": true }, { "ref": "done-atomar", "id": 241, "epic": "DATA", "rank": null, "status": "resolved", "title": "Atomares Schreiben nach dem File.Replace-Muster", "neu": true }, { "ref": "done-speicherfundament", "id": 242, "epic": "DATA", "rank": null, "status": "resolved", "title": "Speicher-Fundament: WAL, busy_timeout, Pooling, Schreib-Warteschlange", "neu": true }, { "ref": "done-backup", "id": 243, "epic": "DATA", "rank": null, "status": "resolved", "title": "Sicherung und Wiederherstellung", "neu": true }, { "ref": "done-zugangsschutz", "id": 244, "epic": "OPS", "rank": null, "status": "resolved", "title": "Zugangsschutz: Lizenzschluessel als Basic-Auth zur Release-Ablage (DC 2.4)", "neu": true }, { "ref": "done-update", "id": 245, "epic": "OPS", "rank": null, "status": "resolved", "title": "Update anwenden (DC6)", "neu": true }, { "ref": "done-erstinstallation", "id": 246, "epic": "OPS", "rank": null, "status": "resolved", "title": "Erstinstallation (DC7)", "neu": true }, { "ref": "done-linux-portierung", "id": 247, "epic": "OPS", "rank": null, "status": "resolved", "title": "Linux-Portierung der Bibliotheken", "neu": true }, { "ref": "done-paketanhebungen", "id": 248, "epic": "HYG", "rank": null, "status": "resolved", "title": "Paket-Anhebungen gegen verwundbare transitive Fassungen", "neu": true }, { "ref": "done-s1", "id": 249, "epic": "SEC", "rank": null, "status": "resolved", "title": "S1: SqlGuard statt Teilzeichenketten-Pruefung", "neu": true }, { "ref": "done-s2", "id": 250, "epic": "SEC", "rank": null, "status": "resolved", "title": "S2: YouTubeUrl und ArgumentList gegen Options-Injection", "neu": true }, { "ref": "done-s3", "id": 251, "epic": "SEC", "rank": null, "status": "resolved", "title": "S3: UrlSanitizer gegen API-Key-Leak ins Modell", "neu": true }, { "ref": "done-s5", "id": 252, "epic": "SEC", "rank": null, "status": "resolved", "title": "S5: UrlGuard, Redirects einzeln geprueft", "neu": true }, { "ref": "done-s6", "id": 253, "epic": "SEC", "rank": null, "status": "resolved", "title": "S6: WorkspacePath auf Verzeichnisgrenzen", "neu": true }, { "ref": "done-s7", "id": 254, "epic": "SEC", "rank": null, "status": "resolved", "title": "S7: SecretProtector mit DPAPI", "neu": true }, { "ref": "done-k5", "id": 255, "epic": "SEC", "rank": null, "status": "resolved", "title": "K5: Budget-Guard (F-A3)", "neu": true }, { "ref": "done-b1", "id": 256, "epic": "CAP", "rank": null, "status": "resolved", "title": "B1 und B14: Compaction mit sicherem Schnittpunkt, kein doppelter System-Prompt", "neu": true }, { "ref": "done-b2", "id": 257, "epic": "CAP", "rank": null, "status": "resolved", "title": "B2: Chat-Laeufe je Agent serialisiert", "neu": true }, { "ref": "done-b3", "id": 258, "epic": "CAP", "rank": null, "status": "resolved", "title": "B3 und T5: maxCumulativeTokens von maxContextTokens getrennt", "neu": true }, { "ref": "done-b4", "id": 259, "epic": "CAP", "rank": null, "status": "resolved", "title": "B4: Prompt und Completion getrennt erfasst, Preise live vom /models-Endpunkt", "neu": true }, { "ref": "done-b5", "id": 260, "epic": "CAP", "rank": null, "status": "resolved", "title": "B5 und T2: Tool-Ergebnisse zentral gekappt", "neu": true }, { "ref": "done-b6", "id": 261, "epic": "CAP", "rank": null, "status": "resolved", "title": "B6 und B7: gegenstandslos, seit der Scanner die Delay-Schleifen ersetzt", "neu": true }, { "ref": "done-b11", "id": 262, "epic": "CAP", "rank": null, "status": "resolved", "title": "B11 und T8: max_tokens aus LoopGuard.MaxResponseTokens", "neu": true }, { "ref": "done-b12", "id": 263, "epic": "CAP", "rank": null, "status": "resolved", "title": "B12: Retry mit Backoff fuer 429 und 5xx", "neu": true }, { "ref": "done-t1", "id": 264, "epic": "CAP", "rank": null, "status": "resolved", "title": "T1 und T9: Prompt-Caching mit Breakpoints, cached_tokens gemessen", "neu": true }, { "ref": "done-t3", "id": 265, "epic": "CAP", "rank": null, "status": "resolved", "title": "T3: guenstiges Modell fuer die Zusammenfassung", "neu": true }, { "ref": "done-t7", "id": 266, "epic": "CAP", "rank": null, "status": "resolved", "title": "T7: durch die Assignee-Semantik des Taskboards beantwortet", "neu": true }, { "ref": "done-k3", "id": 267, "epic": "HYG", "rank": null, "status": "resolved", "title": "K3: Testfundament", "neu": true }, { "ref": "done-nu1903", "id": 268, "epic": "HYG", "rank": null, "status": "resolved", "title": "Fruehjahrsputz: NU1903 und NU1902 geschlossen", "neu": true }, { "ref": "done-altscheduler", "id": 269, "epic": "OPS", "rank": null, "status": "resolved", "title": "Alt-Scheduler abgeloest - alles ist ein Task", "neu": true }, { "ref": "done-dc-ersetzt", "id": 270, "epic": "OPS", "rank": null, "status": "resolved", "title": "Deploymentcenter ersetzt WatchDog und LicenseLabrador", "neu": true }, { "ref": "done-dc3-win", "id": 271, "epic": "OPS", "rank": null, "status": "resolved", "title": "DC3: Release-Strecke win-x64", "neu": true }, { "ref": "done-avalonia", "id": 272, "epic": "OPS", "rank": null, "status": "resolved", "title": "Avalonia-Portierung, WinForms entfernt", "neu": true }, { "ref": "done-backup-nie-gestartet", "id": 273, "epic": "DATA", "rank": null, "status": "resolved", "title": "Fruehjahrsputz: die automatische Sicherung war nie gestartet", "neu": true }, { "ref": "done-backup-settings", "id": 274, "epic": "DATA", "rank": null, "status": "resolved", "title": "Fruehjahrsputz: doppelte Sicherungs-Einstellungen ueberschrieben einander", "neu": true } ]