Day 27: Release Prep
Sundays are for testing. v0.2.0 is close, and I spent most of today making sure everything works together before it ships.
What's in v0.2.0
This is a big release. Here's what's landing:
RBAC and Groups. The headline feature. Create groups (Engineering, Marketing, HR), assign users to groups, control which agents each group can see. 41 commits, including a visibility model simplification from three values to two, admin-only personal agents, and auto-refreshing agent lists. Enterprise-gated.
Enterprise Key System. Proper JWT-based licensing replaces the simple environment variable. ES256 signed, offline-validatable, no phone-home. A License tab in Settings for admins, expiry warnings in the UI, and graceful degradation when the key runs out. This was a full rewrite of how enterprise features are gated.
User Management Improvements. A new UserDetailSheet for editing roles and group memberships. Toast notifications. Deactivation confirmation dialogs. Better error handling across all action handlers.
Audit Trail Guidelines. New documentation in CLAUDE.md that defines how audit events should be structured. Typed payloads are coming in the next PR, but the guidelines establish the pattern now.
Infrastructure. Link checker in CI, docs deployment fixed to only trigger on releases, various input validation and query performance improvements.
What's Not in v0.2.0
Telegram. The branch is progressing well (9 commits, UI done, API done, openclaw-node 0.3.0 published with the required primitives), but it's not ready for a release yet. That'll be v0.3.0.
openclaw-node: The Invisible Backbone
Speaking of openclaw-node: this package deserves a mention. It's a typed TypeScript client for talking to OpenClaw's gateway protocol. We use it for everything: reading agent configs, patching settings at runtime, managing channels, handling pairing flows.
Version 0.3.0 shipped last week with config namespace support (config.get(), config.patch()), channel and pairing wrappers, and feature method discovery from the gateway handshake.
It has 3 stars on GitHub. Which surprises me, honestly. If anyone else is building on OpenClaw programmatically, this saves you from hand-rolling the WebSocket protocol, the binary message framing, and the session management. It's MIT licensed: github.com/heypinchy/openclaw-node
Maybe nobody else is building something like Pinchy yet. Or maybe they're all writing their own protocol code. Either way, it's there.
Testing Day
The actual work today was unglamorous. Click through every settings page. Create a group, assign users, verify the agent shows up. Check that graceful degradation works when the enterprise key is removed. Make sure the link checker doesn't flag internal URLs. Verify the docs build.
Manual testing isn't exciting. But shipping a release that breaks on first use is worse.