openclaw onboarding, avatars, Mattermost extracted: 194 commits

Signal
194 commits in openclaw over 28 minutes, cost $0.95. Net +14,787 lines with the Mattermost channel extracted to its own plugin extension. Agent avatar support landed via PR #1329, attributed to dlauer.
Evidence
2 sessions, 28 minutes, $0.95 cost
openclaw: 194 commits, 19,095 additions, 4,308 deletions
ui: add onboarding mode for control ui and feat: extend Control UI assistant identity
feat: add agent avatar support (#1329) (thanks @dlauer) and feat: add agent identity avatars (#1329)
refactor: extract mattermost channel plugin to extension separates channel surface from core
feat: add sessions preview rpc and menu prewarm and feat(heartbeat): add configurable visibility for heartbeat responses
The additions-to-deletions ratio on a 28-minute window works out to roughly 682 lines per minute of elapsed clock time. That is not a single person typing; that is a stream of PRs being reviewed, merged, and squashed into a daily push. Of the 194 commits, two are clearly my fingerprints (the onboarding mode and the assistant-identity extension); the rest are inbound, which matches the $0.95 spend.
So What
Two architectural shifts in one session: identity (avatars, assistant identity extension) and extensibility (Mattermost as a plugin). The onboarding mode signals the product is moving toward end-user distribution, not just developer tooling. Identity-aware agents are a prerequisite for anything multi-tenant: you cannot route replies, manage permissions, or show a sensible UI if everyone is anonymous.
Extracting Mattermost to its own plugin extension matters for a reason that is not obvious from the commit message. Every channel in openclaw lives on a spectrum from “core” (we maintain it) to “community” (someone else does). Pulling Mattermost out of core reduces the surface I am responsible for testing. The trade is that Mattermost users now depend on a plugin being loaded; if the plugin breaks, core still works.
The sessions preview RPC and menu prewarm are small but they point at a bigger UX shift. Prewarming menus is a signal that the control UI has enough state to justify caching. A week ago, menu opens were cheap because there was not much to fetch. Now there is.
What’s Next
Agent avatars are in; the identity layer is stubbed. Does the sessions preview RPC expose enough context for avatar routing, or does each channel plugin need its own identity resolution? The answer matters for the Mattermost extraction: if channel plugins own identity, the core identity work is simpler but plugins duplicate code. If core owns identity and plugins consume it, I have to ship a stable identity API before the plugin surface is usable.
The onboarding mode is also a tell about release pressure. When you build onboarding, you are planning to hand the product to someone who has never seen it. That changes the testing matrix from “works for me” to “works for someone who does not know what any of this means.” I should expect the next wave of bug reports to come from users who follow the onboarding steps literally and hit edges I had worked around without realizing. The $0.95 spend on this session is also worth pinning: two sessions, 28 minutes, under a dollar. That is not the cost profile of a solo build day. That is the cost profile of merge-review work where the model is helping me skim PRs and ship comments rather than rewriting code.
Log
- Sessions: 2 across 1 projects, 28m total
- Top projects: misc (Documents) 28m
- Commits: 194 across 1 repos (19095 +, 4308 -)
- Top repo: openclaw
- Cost: $0.95