mgmt: operator observability + messaging + instance notice (status/stats/msg/announce/instance_notice) #94
Labels
No labels
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
dark/nether-voicebridge#94
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Operator tooling for the open beta (planned with the operator 2026-07-12):
status(operator-only) — puppet-pool guild footprint: per-bot connected state + guild count (from the pools per-slotguildssets), distinct-guild union, and per-guild tenant counts (nvb_config::tenant_guilds). Renders a ⚠ marker as any app approaches the Discord 100-server verification gate (tripwire ~75, warn from 60). NewControlMsg::PoolFootprint→ supervisor → newPuppetPool::guild_footprint()`.stats(operator-only, minimal tier) — per-bridge label/owner/created/uptime (RunningBridgegainsspawned_at;BridgeStatusgainsuptime_secs+created) + whole-process VmRSS. Honest note: per-tenant CPU attribution needs process isolation (see Future directions).msg <mxid> <text>(operator-only) — DM a specific user as the bot (Client::create_dm, reuses an existing DM). Audit eventoperator_msg.announce <text>(operator-only) — two-step mass DM to all distinct tenant owners (skip operators): preview + recipient count, thenannounce confirmwithin 2 min. Audit eventannounce. For rare service notices only.[management] instance_notice— optional string appended to the DM greeting + help (docs_line pattern), for the open-beta disclaimer + help-room pointer.Operator-side docs: docs/operations-runbook.md (shipped
6d4a6be) already describes the intended commands.Shipped in v0.3.0-alpha.23, deployed to prod 2026-07-12.
status(pool guild footprint vs the 100-server gate, ⚠ from 60),stats(per-bridge uptime/owner/link-age + process RSS),msg(operator DM-as-bot via create_dm),announce+announce confirm(two-step mass DM, 2-min window, audited),[management] instance_notice(open-beta disclaimer on greeting/help).mgmt_self_serve_linkPASS 64.2s incl. the new operator step (status/stats asserted, self-serve refusal asserted). Rebased over the #24 merge and re-verified before ff.instance_notice(backup taken), clean restart,management bot ready, 0 ERROR, device ids reused.msg @dark:nether.im test+ anannouncedry-run from the operator DM — the slash-of-this-feature that automation can’t click.test: failure— that run was CANCELLED (superseded by a docs push minutes later, Forgejo auto-cancel); the branch CI run passed andcargo test --workspace --lockedwas reproduced green on the tag.