Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
7bbbb5d
refactor(platform): drop dead governance, chat-error and thread exports
larryro Sep 5, 2026
6d48f32
refactor(platform): remove the chat host's dead store and sandbox arms
larryro Sep 5, 2026
78e6e6b
fix(platform): enforce the guardrail and system-prompt policies on ch…
larryro Sep 5, 2026
3dc5dbd
fix(platform): refuse a chat send on a credential fault before any ro…
larryro Sep 5, 2026
6de9e4e
fix(platform): run the corpus leg for a rag_search mail-attachment na…
larryro Sep 5, 2026
24c31bd
fix(platform): answer every tool call a stopped or failed reply left …
larryro Sep 5, 2026
3e6a496
fix(platform): scope MCP get_knowledge to the key holder's visibility
larryro Sep 5, 2026
14b1b4f
fix(platform): walk the usage ledger newest-first under the scan cap
larryro Sep 5, 2026
1b38e37
docs(platform): document TALE_EXTERNAL_TURN_DEADLINE_MS
larryro Sep 5, 2026
86faac8
fix(platform): abort the thread-title model call when its race is lost
larryro Sep 5, 2026
78f19b8
fix(platform): write a policy file inside its audit transaction
larryro Sep 5, 2026
ecdb816
fix(platform): retire the run_code, agent_jobs and model_sync policies
larryro Sep 5, 2026
81b13d6
refactor(platform): narrow the capability surface to deployed automat…
larryro Sep 5, 2026
0bc47bc
chore(platform): drop the chat lib's exports nobody imports
larryro Sep 5, 2026
5b2d4c1
test(platform): judge the guardrail proof lanes on what they seed
larryro Sep 5, 2026
ce827fe
fix(platform): tell the composer when a refusal is on the record
larryro Sep 5, 2026
217f4f9
fix(platform): derive every policy-type reader from POLICY_TYPES
larryro Sep 5, 2026
1c8bc5a
chore(platform): drop the docs-demo run-code policy fixture
larryro Sep 5, 2026
c31af98
fix(platform): hold back the output guardrail's tail across segments
larryro Sep 5, 2026
6d0e015
fix(platform): stamp output guardrail events as the assistant's
larryro Sep 5, 2026
b2bb997
fix(platform): keep a moderation misconfiguration off the breaker
larryro Sep 5, 2026
4866791
Merge origin/main into fix/chat-guardrails-policy-wiring
larryro Sep 5, 2026
2b78287
fix(platform): run the host policy over the moderation endpoint
larryro Sep 5, 2026
17b4397
test(platform): read the title write off the typed mutation mock
larryro Sep 5, 2026
58aeab4
refactor(platform): read the vision-model pin via the governance shim
larryro Sep 5, 2026
29cee2d
refactor(platform): read the task-agent policy pin via the governance…
larryro Sep 5, 2026
860d2ca
test(platform): name the sync error the automation-run tool lane hides
larryro Sep 5, 2026
68f74bb
Merge origin/main into fix/chat-guardrails-policy-wiring
larryro Sep 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,16 @@ TALE_AUDIT_SIGNING_KEY=4f8c2a9e7b1d6035e4a8c2f9d7b3061a5e8c4f2a9d7b30615e4c8a2f9
# Generate manually with: openssl rand -hex 32
# SANDBOX_TOKEN=

# ============================================================================
# OPTIONAL: Sandbox agent turn orphan window
# ============================================================================
# How long (ms) an in-sandbox coding-agent turn (Claude Code / OpenCode /
# Codex) may sit with nobody draining its output before the sandbox daemon
# reaps it. A SLIDING window, re-armed on every drain attach — not an absolute
# cap on the turn. Raise it when long agent turns on a slow host are reaped as
# orphans; defaults to 30 minutes.
# TALE_EXTERNAL_TURN_DEADLINE_MS=1800000

# ============================================================================
# REQUIRED: Sandbox LLM Gateway management auth
# ============================================================================
Expand Down
9 changes: 3 additions & 6 deletions SCREENSHOTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -125,20 +125,17 @@ Approvals before actions ship — and the controls around them.
<a href="services/docs/public/images/platform/governance-guardrails.webp"><img src="services/docs/public/images/platform/governance-guardrails.webp" alt="The Guardrails governance page showing three status cards — content safety off, PII detection off, the moderation provider not configured — above the recent-events feed and the organization's custom instructions" width="100%"></a>
<br/><sub><b>Guardrails</b> — content safety, PII detection, and a moderation provider, layered per message</sub>
</td>
<td width="50%">
<a href="services/docs/public/images/platform/governance-run-code-policy.webp"><img src="services/docs/public/images/platform/governance-run-code-policy.webp" alt="The Run-code policy governance page showing the Denylist and Allowlist mode radiogroup above the Python allow and deny list text areas" width="100%"></a>
<br/><sub><b>Run-code policy</b> — allowlist or denylist what sandboxed code may use</sub>
</td>
</tr>
<tr>
<td width="50%">
<a href="services/docs/public/images/platform/governance-security-monitoring.webp"><img src="services/docs/public/images/platform/governance-security-monitoring.webp" alt="The Security and Monitoring governance page showing login-attempt limit fields and the password-policy character-class requirements" width="100%"></a>
<br/><sub><b>Security & monitoring</b> — login-attempt limits and password policy</sub>
</td>
</tr>
<tr>
<td width="50%">
<a href="services/docs/public/images/platform/governance-data-subject-requests.webp"><img src="services/docs/public/images/platform/governance-data-subject-requests.webp" alt="The Data subject requests governance page showing the cooling-off window, dual-approval toggle, and daily-limit fields above the erasure-requests table, which holds one pending request with 24 hours left before execution" width="100%"></a>
<br/><sub><b>Data subject requests</b> — GDPR Art. 17 erasure with cooling-off and dual approval</sub>
</td>
<td width="50%"></td>
</tr>
</table>

Expand Down
4 changes: 2 additions & 2 deletions docs/de/develop/mcp-endpoint.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,11 +75,11 @@ Nimm `run_deployed`, wenn die Automatisierung schnell ist und du einen Aufruf mi

| Tool | Was es tut |
| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| `search_capabilities` | Alles durchsuchen, was diese Organisation kann — ihre Automatisierungen, Connectorsaktionen, Skills und Tools. |
| `search_capabilities` | Alles durchsuchen, was diese Organisation kann — ihre deployten Automatisierungen, nach Name und Beschreibung. |
| `invoke_capability` | Eine Capability per id aufrufen. Eine Aktion, die die Organisation gated, antwortet mit einem Pending-Approval-Ergebnis, statt zu laufen. |
| `get_knowledge` | Passagen aus dem Wissen der Organisation abrufen — ihren Dokumenten und ihren gecrawlten Webseiten. |

In dieser Version hält die Registry die deployten Automatisierungen der Organisation — `invoke_capability` auf einer davon ist derselbe Akt wie `run_deployed`. Builtin-Tools, Skills und externe MCP-Server sind hier nicht registriert; ein Aufruf, der zu einem davon führt, antwortet mit einer lesbaren Ablehnung, nicht mit einem Fehler. Eine Capability, die die Organisation hinter eine Freigabe stellt, läuft nicht lautlos — `invoke_capability` antwortet mit einem Pending-Approval-Ergebnis, das das Modell weitergeben kann.
In dieser Version hält die Registry die deployten Automatisierungen der Organisation — `invoke_capability` auf einer davon ist derselbe Akt wie `run_deployed`. Builtin-Tools, Connector-Aktionen, Skills und externe MCP-Server gehören nicht zu dieser Registry; eine id, die keine deployte Automatisierung ist, bekommt eine lesbare Ablehnung, keinen Fehler. Eine Capability, die die Organisation hinter eine Freigabe stellt, läuft nicht lautlos — `invoke_capability` antwortet mit einem Pending-Approval-Ergebnis, das das Modell weitergeben kann.

## Was der Schlüssel darf

Expand Down
4 changes: 2 additions & 2 deletions docs/de/platform/admin/governance/audit-logs.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Audit-Logs
description: Das chronologische Protokoll von wer-was-getan-hat in deiner Organisation — Anmeldungen, Rollenänderungen, Anbieter-Bearbeitungen, Agent-Bearbeitungen, Run-code-Aufrufe. Admins und Inhaber lesen das, wenn ein Audit fragt, wer eine Ressource wann angefasst hat.
description: Das chronologische Protokoll von wer-was-getan-hat in deiner Organisation — Anmeldungen, Rollenänderungen, Anbieter-Bearbeitungen, Agent-Bearbeitungen. Admins und Inhaber lesen das, wenn ein Audit fragt, wer eine Ressource wann angefasst hat.
---

Das Audit-Log ist die unveränderliche Aufzeichnung jeder folgenreichen Aktion in deiner Organisation. Jede Anmeldung, Rollenänderung, Anbieter-Bearbeitung, Agent-Speicherung, Workflow-Ausführung und jeder Sandbox-Aufruf landet hier mit Akteur, Ressource, Vorher-/Nachher-Status und Zeitstempel. Admins und Inhaber lesen das, wenn ein Audit fragt, wer eine Ressource wann angefasst hat, wenn ein Compliance-Officer einen Export braucht, oder wenn etwas schiefläuft und die Frage ist _wer hat um 03:14 was geändert_.
Expand Down Expand Up @@ -50,4 +50,4 @@ Audit-Zeilen sind unveränderlich: Bearbeitungen und Löschungen werden selbst a

## Wo das hingehört

Das Audit-Log ist die Leseseite jedes anderen Governance-Features: Legal Hold benennt die platzierten Holds, Anfragen betroffener Personen protokollieren jeden Cascade-Schritt, die Run-code-Richtlinie protokolliert die URLs, die jede Sandbox zu erreichen versuchte. Wenn eine Frage mit _wer, wann, was_ beginnt, ist das Audit-Log die Antwort. Die Begleitseite ist die [Aufbewahrungsrichtlinie](/de/platform/admin/governance/policies-and-limits) — sie steuert, wie lange diese Zeilen bleiben, bevor Cleanup sie entfernt.
Das Audit-Log ist die Leseseite jedes anderen Governance-Features: Legal Hold benennt die platzierten Holds, Anfragen betroffener Personen protokollieren jeden Cascade-Schritt. Wenn eine Frage mit _wer, wann, was_ beginnt, ist das Audit-Log die Antwort. Die Begleitseite ist die [Aufbewahrungsrichtlinie](/de/platform/admin/governance/policies-and-limits) — sie steuert, wie lange diese Zeilen bleiben, bevor Cleanup sie entfernt.
41 changes: 0 additions & 41 deletions docs/de/platform/admin/governance/run-code-policy.md

This file was deleted.

8 changes: 8 additions & 0 deletions docs/de/self-hosted/configuration/environment-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,14 @@ Re-Ranking ist standardmässig deaktiviert, weil es Latenz pro Query addiert und

Lass es unset, um die Standard-Sitzungsdauer zu behalten. Wenn gesetzt, läuft eine inaktive Sitzung serverseitig ab, sobald das Fenster verstrichen ist, während eine aktive sich bei jeder Anfrage weiter verschiebt. Org-Admins können das wirksame Fenster pro Organisation verkürzen — niemals über diese Obergrenze hinaus verlängern — über die [Governance-Richtlinie zur Sitzungs-Leerlaufzeit](/de/platform/admin/governance/policies-and-limits); inaktive Sitzungen unter dieser Richtlinie widerruft ein Lauf, der etwa alle fünf Minuten läuft.

## Sandbox-Agent-Turns

| Name | Default | Beschreibung |
| -------------------------------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `TALE_EXTERNAL_TURN_DEADLINE_MS` | `1800000` (30 Min.) | **Optional.** Wie lange ein Coding-Agent-Turn in der Sandbox (Claude Code, OpenCode, Codex) ohne Abnehmer seiner Ausgabe liegen darf, bevor der Sandbox-Daemon ihn abräumt. Ein gleitendes Fenster, das bei jedem Wiederanbinden der Plattform neu startet — keine absolute Obergrenze für den Turn. Millisekunden. |

Erhöhe den Wert, wenn lange Agent-Turns auf einem langsamen Host als abgeräumte Waisen zurückkommen; die Plattform bindet sich selbst wieder an, das Fenster beendet also nur einen Turn, dessen Abnehmerkette gestorben ist. Das Backend liest ihn beim Start — starte `backend-api backend-worker` nach einer Änderung neu.

## Video-Link-Ingestion (yt-dlp)

Liest Tale einen Video-Link ein, holt es dessen Transkript für den Agenten. YouTube blockiert automatisierten Zugriff von Rechenzentrums-/Server-IPs, sodass dies bei einer Cloud-Bereitstellung fehlschlagen kann. Die Bereitstellung bringt standardmäßig einen PO-Token-Provider verdrahtet mit (das vollständige Bild liefert [Video-Ingestion](/de/self-hosted/configuration/video-ingestion)); die Optionen unten sind optionale Überschreibungen und Eskalationen. Keine garantiert eine Umgehung — eine saubere Ausgangs-IP ist der wirksamste Hebel. Vom Backend-Worker gelesen und bei jeder Ingestion neu ausgewertet, sodass eine Änderung ohne Neustart greift.
Expand Down
2 changes: 1 addition & 1 deletion docs/de/self-hosted/operate/security/hardening.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ Der Hardening-Hebel ist `SANDBOX_EGRESS_ALLOWLIST`. Setz die Variable in `.env`
SANDBOX_EGRESS_ALLOWLIST=^pypi\.org$|^files\.pythonhosted\.org$|^registry\.npmjs\.org$|^objects\.githubusercontent\.com$|^codeload\.github\.com$|^github\.com$|^api\.github\.com$
```

Halt die Liste kurz und bevorzuge spezifische Hosts gegenüber Wildcards. Paket-Installationen regelt separat die [Run-Code-Richtlinie](/de/platform/admin/governance/run-code-policy).
Halt die Liste kurz und bevorzuge spezifische Hosts gegenüber Wildcards.

## Monitoring

Expand Down
3 changes: 1 addition & 2 deletions docs/de/tutorials/videos/connectors.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,8 @@ Der MCP-Abschnitt (1:09–1:45) wurde im Panel **MCP-Server** der früheren Vers
| 0:52 | Der Gewinn: Tiefenrecherche gibt es, weil Tavily angebunden ist |
| 1:09 | MCP: eure eigenen Werkzeuge, den Agenten wie eingebaute serviert |
| 1:27 | Freigabe-Flags pro Werkzeug — eingebaut aussehen heißt nicht vertrauen |
| 1:45 | Die letzte Tür: Sandbox-Code, Egress standardmäßig zu, schließt im Zweifel |
| 2:07 | Das Muster an jeder Tür |

## Wie es weitergeht

Der [Connectors-Überblick](/de/platform/connectors/overview) behandelt Verbinden und Teilen; [MCP-Server](/de/platform/connectors/mcp-servers), was in dieser Version an der MCP-Tür steht. Zur Netzgrenze lies die [Run-Code-Richtlinie](/de/platform/admin/governance/run-code-policy) — und was ein angebundener Connector freischaltet, zeigen die [Automatisierungs-Konzepte](/de/platform/automations/concepts).
Der [Connectors-Überblick](/de/platform/connectors/overview) behandelt Verbinden und Teilen; [MCP-Server](/de/platform/connectors/mcp-servers), was in dieser Version an der MCP-Tür steht. Zur Netzgrenze lies [Hardening](/de/self-hosted/operate/security/hardening) — und was ein angebundener Connector freischaltet, zeigen die [Automatisierungs-Konzepte](/de/platform/automations/concepts).
7 changes: 3 additions & 4 deletions docs/de/tutorials/videos/tale-for-developers.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
---
title: Bonus — Tale für Entwickler
description: Die Runde für die Bauenden - begrenzte API-Schlüssel, die vier API-Türen, Webhook-Auslöser, Harnesses und die Run-Code-Richtlinie, die alles einhegt.
description: Die Runde für die Bauenden - begrenzte API-Schlüssel, die vier API-Türen, Webhook-Auslöser und Harnesses, die in eingehegten Sandboxes arbeiten.
---

Alles, was die Serie gezeigt hat, trägt eine API darunter. Die Bonus-Episode geht die Entwickler-Oberfläche ab: benannte, widerrufbare API-Schlüssel; REST, MCP, WebDAV und Sandbox-Runtimes; Webhooks, die Agenten aus jedem System auslösen; die Harnesses — Claude Code, Cursor — in isolierten Containern; und die Run-Code-Richtlinie, die benennt, was installiert werden darf und wohin Code sich verbinden darf. Starke Werkzeuge, eingehegter Wirkungsradius.
Alles, was die Serie gezeigt hat, trägt eine API darunter. Die Bonus-Episode geht die Entwickler-Oberfläche ab: benannte, widerrufbare API-Schlüssel; REST, MCP, WebDAV und Sandbox-Runtimes; Webhooks, die Agenten aus jedem System auslösen; die Harnesses — Claude Code, Cursor — in isolierten Containern. Starke Werkzeuge, eingehegter Wirkungsradius.

<Video src="/videos/de/tutorials/ep10-developers/ep10-developers.de.mp4" poster="/videos/de/tutorials/ep10-developers/ep10-developers.de.webp" captions="/videos/de/tutorials/ep10-developers/ep10-developers.de.vtt" lang="de" title="Bonus — Tale für Entwickler" caption="Bonus — Tale für Entwickler (2:38, mit Untertiteln)">

Expand All @@ -17,9 +17,8 @@ Alles, was die Serie gezeigt hat, trägt eine API darunter. Die Bonus-Episode ge
| 0:36 | Vier Türen: REST, MCP, WebDAV, Sandbox-Runtimes |
| 0:56 | Webhooks: jedes System kann einen Agenten auslösen |
| 1:16 | Harnesses: Claude Code, Cursor und Kollegen |
| 1:37 | Die Run-Code-Richtlinie: Pakete, Hosts, schließt im Zweifel |
| 1:59 | Starke Werkzeuge, eingehegter Wirkungsradius |

## Wie es weitergeht

Der [Develop-Überblick](/de/develop/overview) kartiert die ganze Oberfläche; die [API-Referenz](/de/develop/api-reference) und [Webhooks](/de/develop/webhooks) tragen die Verträge. Zu Harness-Zügen: [Harnesses](/de/platform/agents/harnesses) und die [Run-Code-Richtlinie](/de/platform/admin/governance/run-code-policy).
Der [Develop-Überblick](/de/develop/overview) kartiert die ganze Oberfläche; die [API-Referenz](/de/develop/api-reference) und [Webhooks](/de/develop/webhooks) tragen die Verträge. Zu Harness-Zügen: [Harnesses](/de/platform/agents/harnesses); zur Netzgrenze der Sandbox: [Hardening](/de/self-hosted/operate/security/hardening).
Loading
Loading