v0.20.2
Security fixes: the password-access Worker refuses `//` and double-encoded paths and no longer redirects off-site after login, `seite skill remove` deletes only files the pack installed, and skill installs never write through symlinks.
Password access: path tricks refused
The Cloudflare Pages Worker that [access] generates checked a decoded request path against the protected prefixes, then handed the original request to the static asset server. A path with an empty segment, such as //members/secret.md, did not match the /members prefix, so it was treated as public; if the asset server collapses the doubled slash, the protected file was served without a password. The Worker now answers 400 Bad Request for paths with empty segments (//, so a doubled slash anywhere on a password-protected site is refused) and for paths that still contain a percent-escape after one decode (double or deeper encoding, such as %252F or %2570), in addition to the backslashes, malformed escapes and ./.. segments it already refused. After a login, the Worker now only redirects to a path on the same site: a next value like /\evil.com or one containing a tab or newline, which browsers treat as another host, falls back to /. Rebuild and redeploy sites that use [access].
seite skill remove stays within the pack
seite skill remove <pack> deleted every file listed for the pack in .claude/.seite-skill-packs.json. That manifest is part of the project, so a cloned repository could list other files, including absolute paths, and have them deleted. Remove now deletes only regular files the pack itself installs (its agents, commands, skills and scripts), never through a symlink, and leaves anything else in place with a warning. Files in context/ are kept, as the message has always said. Removing a custom skill accepts only a plain skill name, never a path. seite skill install and seite skill update refuse to write when a target file or directory (the manifest, context/, .claude/agents/, scripts/seo/, …) is a symlink or sits behind one, so a cloned repository can't redirect those writes outside the project.
Dependency updates
rustls 0.23.46, rustls-webpki 0.103.16, webpki-roots 1.0.11 and pulldown-cmark 0.13.5 for RustSec advisories (seite does not enable the affected pulldown-cmark wikilinks option). Also serde_json 1.0.154, toml_edit 0.25.15 and sha2 0.11.1, and the OpenSSF Scorecard action 2.5.0.