Skip to content

v0.15.2 release prep: cut the security hotfix - #360

Merged
samrusani merged 1 commit into
mainfrom
release/v0.15.2
Aug 14, 2026
Merged

v0.15.2 release prep: cut the security hotfix#360
samrusani merged 1 commit into
mainfrom
release/v0.15.2

Conversation

@samrusani

Copy link
Copy Markdown
Owner

Cuts v0.15.2. Version bump in both manifests, release notes, changelog entry, candidate markers across the control docs.

What is in the release

/v1 requires an agent key once one exists, and keyless requests are refused off loopback unconditionally rather than depending on the bind address. Importers stay inside the selected root and read each source once. OpenClaw selection runs on the listing. The two web advisories published after v0.15.1 are fixed by pinning each patched major line, and the standing exception is deleted rather than left to expire.

What it deliberately does not do

/v1 authenticates and does not authorize. Any valid key can do what any other valid key can, and /v1 writes record no agent, so a quarantine sweep by key cannot reach them. The instruction to keep /v1 loopback-only is unchanged and still correct. This is stated at the top of the release notes rather than buried, because an operator who opens a firewall on the strength of the word "authentication" would be worse off than before.

Verification

  • release_check PASS for alice-memory 0.15.2
  • control-doc truth PASS
  • release-static clean, including the step that made v0.15.0 untaggable
  • 4541 unit passed, 2 skipped; 408 integration passed
  • ruff and mypy clean across 233 files

Ordering

No tag exists yet. The release gate gets dispatched from this branch and seen green before anything is tagged, which is the rule that came out of burning v0.15.0.

Version moves to 0.15.2 in both manifests, with release notes, changelog entry
and candidate markers across the control docs.

This is a security release and every deployment should take it. Before it,
`/v1` had no agent-key authentication of any kind: the identity middleware
returned early for any path outside `/v0/`, so a caller who could route to the
port could bootstrap a workspace, register providers pointing anywhere, and
supersede memory objects with no credential. The keyless allowance also
depended on the bind address, which let a deployment reason itself into leaving
it open. Both are closed.

Importers no longer follow links out of the selected root, read each source
once so the parsed text is the archived text, and refuse a source that is not a
regular file. OpenClaw selection runs on the listing, so an unrelated neighbour
is never opened and the archived set is the set handed to the parse. The two
web advisories published after v0.15.1 are fixed by pinning each patched major
line rather than excepted.

The notes are deliberate about what this release does NOT do. `/v1`
authenticates and does not authorize: any valid key can do what any other valid
key can, `/v1` writes record no agent so a quarantine sweep by key cannot reach
them, and the instruction to keep `/v1` loopback-only is unchanged and still
correct. An operator who reads these notes and opens a firewall on the strength
of the word "authentication" would be worse off, so the limitation leads rather
than sits at the bottom.

Release-note state is pending/pending until the artifacts exist.

Verified: release_check PASS for 0.15.2, control-doc truth PASS, release-static
clean including the step that made v0.15.0 untaggable, 4541 unit passed 2
skipped, ruff and mypy clean across 233 files.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your trial has ended. Reactivate Greptile to resume code reviews.

@samrusani
samrusani deployed to semantic-release August 14, 2026 16:19 — with GitHub Actions Active
@samrusani
samrusani merged commit 4b259c2 into main Aug 14, 2026
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant