AGENTS.md@convex · git:20261003.066c7a0 · 2026-10-03 · sha256 2f75b37380b1aa6a
AGENTS.md@convex git:20261003.066c7a0A
Immutable. This exact content never changes and is served at /api/v1/blob/2f75b37380b1aa6a.
# Contents - `convex/` is the xcb relay deployment: a thin instantiation of `@hraness/relay` with namespace `xcb.relay.v1`, the xcb command union, `daemon`/`controller` device classes, closed sign-up with a one-shot bootstrap capability, and env-selected OTP email delivery. # Guidelines - The contract lives in `hraness/relay`; this directory only instantiates it. Backend behavior changes belong upstream. - Closed sign-up is deliberate: first admission goes through the `XCB_RELAY_BOOTSTRAP` capability, later owners join by issued invite. - Local development targets only the anonymous deployment selected by `scripts/convex-local.ts`. Never commit deploy credentials or point the directory at a production deployment from a dev shell. - The command union (`xcb.relay.v1` kinds) is frozen in `docs/plans/remote-access.md`; changing it is a contract change. ## Host availability - `hostStatus.ts` is separate, opt-in product telemetry. Its bounded configured fleet, HTTP routes and `xcbHostStatus` tables do not change relay authentication, commands, device presence or encrypted projections. - Store only each machine's latest accepted receipt. Keep reads and writes bounded to the configured ids (at most 100 slug ids), share one activity point budget across the fleet, enforce the one-minute minimum write interval, and never publish credentials, credential hashes, hostnames or task data. Machine ids and labels are operator-chosen public text. - Credential rotation changes an existing row's sequence generation. Public reads show `never` until the new credential supplies its first observation.