Repository navigation
feat: agent-agnostic copy and first-run onboarding - #86
Conversation
Walking the signup flow as a new user surfaced several things that made a working product look broken. Onboarding: - Sign-up now signs the account in and lands on the dashboard. It used to bounce to the sign-in form with the success message disappearing on redirect, which read as failure. If auto sign-in fails, the sign-in page says the account was created. - A brand-new account gets "Set up your first node" and a CTA instead of "Welcome back" above eight zeroed metric tiles. - The nodes page offers "Create your first node" instead of a bare "No nodes have been registered yet". - The delivery base URL no longer claims "Saved: http://127.0.0.1:18789" when the user never saved anything. - Auth pages no longer mention Neon Auth or a "configuration flow"; the sign-in page links to sign-up. - The sidebar no longer labels every user "Admin" (there are no roles). Agent-agnostic: - The product is for private agent nodes, with Hermes Agent and OpenClaw as examples, rather than being described as OpenClaw-only. - The connect modal leads with the Hermes Agent plugin (install command, both env vars, the route-name rule) and keeps the protocol block for any other agent. - The protocol block documents that the pull endpoint is a POST. The route only accepts POST, and that mismatch is why the relay's HTTP fallback never worked. Landing page: - "No vendor lock-in / no third-party relay in the webhook path" was untrue of hosted clawproxy, which is exactly a third-party relay. It now says the service is free while in beta and can be self-hosted.
Strix Security ReviewNo security issues found. Review summaryReviewed all 22 changed files in PR #86, a copy/onboarding and agent-agnostic messaging change set. The only behavioral change of security note is the sign-up flow, which now auto-authenticates the new account via the Neon Auth SDK and navigates to the dashboard, falling back to the sign-in page with a static confirmation banner driven by a Updated for Reviewed by Strix |
Why
I walked the signup path as a new user. The product works, but several things made it look broken, and the copy assumed OpenClaw even though the first real client is a Hermes Agent plugin.
Onboarding
Agent-agnostic
hermes plugins install ericdahl-dev/clawproxy-hermes, the two env vars, and the rule that the clawproxy route name must match the Hermes route name. The protocol block stays for any other agent.pull_method: "POST". The route only accepts POST, which is why the relay's HTTP fallback never delivered anything (fixed separately in fix(relay): make the HTTP fallback work and handle SIGTERM #82).Landing page
"No vendor lock-in — no third-party relay in the webhook path" was false: hosted clawproxy is a third-party relay in the webhook path. It now says clawproxy is free while in beta and can be self-hosted.
Tests
Written first:
overviewIntro(first-run vs returning), landing copy,buildHermesSetupand the POST documentation, the sign-up auto sign-in and its fallback, sign-in copy and the confirmation banner, and the nodes page's saved-URL and empty-state behavior. Existing tests that encoded the old copy were updated with a note on why.yarn vitest run: 265/265. Lint clean, no type errors outside tests.