Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
17 changes: 14 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,24 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
The 0.20.0 beta line follows the frozen operator contract; earlier alpha releases
remain historical snapshots. Beta does not mean error-free operation.

## [Unreleased]
## [0.20.0-beta.6] — 2026-10-24

### Security

- Raise the transitive `filelock` floor to 4.2.1 and pin 4.2.4 with hashes, replacing
vulnerable 3.32.5. No unrelated dependency upgrades. This source change does not
replace the existing signed Beta.5 archive or its package-manager installations.
vulnerable 3.32.5 in the signed release and package-manager installations.
No unrelated dependency upgrades.

### Added

- Managed skill creation, editing, patching, support files, deactivation and
content-addressed restoration through `skill_view` and `skill_manage`.
- Each skill mutation requires fresh human approval; standing and task-wide grants
cannot authorize it. Expected hashes reject stale edits, and bound targets prevent
model-supplied paths from bypassing the kernel.
- Action-specific approval previews show the actual change, redact secrets and bind
truncated values to their complete hash. Unattended skill writes remain denied.
- Explicit Claude Opus 5.5 CLI model selection.

### Documentation

Expand Down
3 changes: 1 addition & 2 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,7 @@ skills. All mutations remain irreversible WRITE tools requiring human approval;
runs deny them. Expected hashes reject stale changes, and content-addressed history supports
restoration. Delete deactivates `SKILL.md`, retaining support files and history. Skills are
untrusted guidance loaded on demand, never permission. See `talos/skillmanage.py` and the
README for bounds and the external-editor race limitation. These source additions do not
change the contents of the already signed Beta.5 release.
README for bounds and the external-editor race limitation. These capabilities ship in the signed Beta.6 release.

Beta.5 introduced [missions and projects](docs/missions.md), `/continue`, outcome
receipts and a loopback local-model check. Mission templates and saved project context
Expand Down
11 changes: 7 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,12 @@ checks. Resume saved project context with `/continue` and inspect recorded outco
with `talos proof`. Templates grant no extra permissions; external sends and protected
actions retain their existing gates.

**Source versus release:** `main` can contain fixes newer than the signed installer.
The [unreleased changelog](CHANGELOG.md#unreleased) records the `filelock` security
update; the existing Beta.5 archive and Homebrew package retain their published pins.
**New in beta.6:** Talos can create, edit and restore managed skills, including support
files, with a fresh approval for every change. This release also ships the `filelock`
security update. See the [changelog](CHANGELOG.md#0200-beta6--2026-10-24).

**Source versus release:** `main` can contain newer changes. Signed installers and
package managers follow their pinned release; older archives remain immutable.

## Is Talos right for you?

Expand Down Expand Up @@ -376,7 +379,7 @@ come from `stdin` instead of `getUpdates`.
```
$ talos chat

◉ Talos / 0.20.0-beta.5
◉ Talos / 0.20.0-beta.6
Your terminal. Your rules.
──────────────────────────────────────────────────────────────────────────
model claude-cli/claude-opus-4-1
Expand Down
6 changes: 3 additions & 3 deletions site/console.html
Original file line number Diff line number Diff line change
Expand Up @@ -365,7 +365,7 @@

<header class="hero" id="top">
<div class="wrap">
<p class="sys">talos 0.20.0-beta.5 · operator console · MIT</p>
<p class="sys">talos 0.20.0-beta.6 · operator console · MIT</p>
<span class="rec-chip">recorded · unfurled · no live wire</span>
<h1 id="main-content" tabindex="-1">Witness one deed from door to ledger.</h1>
<p class="lede">This hall unfurls one true session, recorded on the working machine
Expand Down Expand Up @@ -553,12 +553,12 @@ <h2 class="rv">Numbers this candidate must ship.</h2>
embedded below. Either way the digits come from a count, not from memory.</p>

<div class="stats" id="releaseStats">
<div class="stat rv"><div class="n" data-f="version">0.20.0-beta.5</div><div class="l">beta release</div><div class="sub-l" data-f="installer_version">public installer v0.20.0-beta.5</div></div>
<div class="stat rv"><div class="n" data-f="version">0.20.0-beta.6</div><div class="l">beta release</div><div class="sub-l" data-f="installer_version">public installer v0.20.0-beta.6</div></div>
<div class="stat rv"><div class="n" data-f="tests">3428</div><div class="l">automated tests, collected by pytest</div></div>
<div class="stat rv"><div class="n" data-f="redteam_faelle">277</div><div class="l">adversarial cases, all behaving</div></div>
<div class="stat rv"><div class="n" data-f="kernel_zeilen">996</div><div class="l">lines in policy.py, readable in one sitting</div></div>
<div class="stat rv"><div class="n" data-f="werkzeuge">37</div><div class="l">tools, every one through the gate</div></div>
<div class="stat rv"><div class="n" data-f="release_ref">v0.20.0-beta.5</div><div class="l">release tag</div></div>
<div class="stat rv"><div class="n" data-f="release_ref">v0.20.0-beta.6</div><div class="l">release tag</div></div>
</div>

<div class="measure-note rv">
Expand Down
2 changes: 1 addition & 1 deletion site/docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -407,7 +407,7 @@ <h2><span class="n">Section 04</span>Run it</h2>
<section id="session" class="rv">
<h2><span class="n">Section 05</span>The terminal session</h2>
<pre>$ talos chat
Talos 0.20.0-beta.5 · anthropic-api/claude-opus-4-8 · autonomy 3
Talos 0.20.0-beta.6 · anthropic-api/claude-opus-4-8 · autonomy 3
speaking as cli:1000 · approvals possible · you are at a terminal
/help for commands, `exit` to leave

Expand Down
4 changes: 2 additions & 2 deletions site/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -638,7 +638,7 @@ <h2 class="rv">The bounds are named.</h2>
<h2 class="rv">Measured, with the path stated</h2>
<p class="sub rv">None of this asks for belief. The installer runs the unit and
adversarial suites in front of you; the real-model cases are a separate opt-in E2E run.</p>
<p class="source-caption">Source tree based on 0.20.0-beta.5, including unreleased fixes. Counts describe the source test suite, not speed or real-world success rates; signed release contents follow their tag.</p><div class="stats">
<p class="source-caption">Beta.6 source and signed release. Counts describe the source test suite, not speed or real-world success rates; signed release contents follow their tag.</p><div class="stats">
<div class="stat rv"><div class="n cnt" data-n="3428">0</div><div class="l">automated tests collected from the source tree</div></div>
<div class="stat rv"><div class="n cnt" data-n="277">0</div><div class="l">adversarial cases trying to pass the kernel</div></div>
<div class="stat rv"><div class="n cnt" data-n="44">0</div><div class="l">opt-in end-to-end cases against a real model</div></div>
Expand Down Expand Up @@ -764,7 +764,7 @@ <h2 class="rv">Talos AI agent: your questions</h2>
<div class="wrap">
<p class="sec-tag rv">raise the keep</p>
<h2 class="rv">The command remains yours</h2>
<p class="sub rv">Beta release 0.20.0-beta.5. Tested on Python 3.11 · 3.13, Linux and macOS, including Raspberry Pi.
<p class="sub rv">Beta release 0.20.0-beta.6. Tested on Python 3.11 · 3.13, Linux and macOS, including Raspberry Pi.
Bring your own model: a supported CLI, configured API provider or local Ollama.
The installer runs the unit and adversarial suites in front of you, then <strong>starts nothing.</strong></p>
<div class="term rv">
Expand Down
2 changes: 1 addition & 1 deletion site/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

set -euo pipefail

VERSION="0.20.0-beta.5"
VERSION="0.20.0-beta.6"
BASE="${TALOS_BASE:-https://talos-agent.ch}"
TARBALL="${BASE}/dist/talos-${VERSION}.tar.gz"
PREFIX="${TALOS_PREFIX:-$HOME/talos}"
Expand Down
8 changes: 4 additions & 4 deletions site/status.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"version": "0.20.0-beta.5",
"version": "0.20.0-beta.6",
"release_state": "released",
"source_state": "unreleased_changes",
"installer_version": "0.20.0-beta.5",
"source_state": "release",
"installer_version": "0.20.0-beta.6",
"tests": 3428,
"redteam_faelle": 277,
"kernel_zeilen": 996,
"werkzeuge": 37,
"release_ref": "v0.20.0-beta.5"
"release_ref": "v0.20.0-beta.6"
}
2 changes: 1 addition & 1 deletion talos/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@
advertised and a released package is never left behind.
"""

__version__ = "0.20.0-beta.5"
__version__ = "0.20.0-beta.6"
Loading