1.30.0 (2026-02-16)
Bug Fixes
- falin: resolve npm ci dependency conflict (#835) (683bff8)
- mi: use blog post summary in Bluesky embed description (#848) (7491810)
- nguh: return error for unsupported tokens (d1a50e7)
- skills/xe-writing-style: update details about successive paragraph starting letter rule (5808b2b)
- skills/xe-writing-style: wumbofy this with Opus (cea6609)
- useragent: use filepath.Base for os.Args[0] in GenUserAgent (#830) (3ef21d9)
- web: replace deprecated io/ioutil with io (#829) (fee5e4f)
Features
- cmd/x: add ai-add-provider and ai-list-models subcommands (#850) (bba7f41)
- python: accept io/fs.FS as root filesystem parameter (#813) (87b97e8)
- reviewbot: add Python interpreter with repo filesystem (#814) (b40ff1c)
- sakurajima: add HTTP request timeouts to prevent hanging connections (#837) (d50a792)
- sakurajima: add request size limits to prevent DoS attacks (#838) (f207855)
- sakurajima: add request size limits to prevent DoS attacks (#839) (80dd84a)
- sakurajima: production readiness fixes and enhancements (#834) (4368e6f)
- sapientwindex: add state to prevent double-posts (#825) (6ba9223)
- skills: add experimental Xe writing style skill (baed3bd)
- skills: add Go table-driven tests skill (#817) (a2e35ea)
- store: add filesystem backends (DirectFile, JSONMutexDB, CAS) (#824) (4f694cf)
- totpgen: add TOTP code generator command (#833) (d0a556d)
BREAKING CHANGES
- python: llm/codeinterpreter/python.Run() now takes fs.FS as first parameter
Assisted-by: GLM 4.6 via Claude Code
Reviewbot-request: yes
Signed-off-by: Xe Iaso me@xeiaso.net