feat(kpi): expand KPI runtime monitoring, prompt advisory envelopes, and missing field resiliency

This commit is contained in:
operator
2026-10-06 20:02:48 +00:00
parent b824f6d405
commit ae4df2f29c
13 changed files with 1702 additions and 85 deletions
+19 -4
View File
@@ -33,15 +33,30 @@ the agent browsers, exposed as `box invite` / `box usage`.
- When account B redeems account A's code: BOTH accounts immediately
receive 1 billion Muse tokens.
## UI Quirks & Binary Attribution
## UI Quirks & Missing Field Resiliency
- **Redeem field disappearance**: In Settings > General, the `Redeem invite code`
item is only present for fresh accounts (< 48 hours, has not redeemed). Once
redeemed, the field disappears completely and is replaced by the `Additional tokens`
ticker bar (`Never expires / X% used`).
- **Asynchronous DOM Loading**: In the React/Radix UI tree, usage statistics and the
redeem button render asynchronously after the dialog opens. RPA drivers must poll
briefly for usage text and progress bars rather than evaluating on the first tick.
- **Missing Entrypoint Recovery & API Fallback**:
If the `Redeem invite code` row is absent (or sub-dialog input box `NativeAuthCodeBoxes`
fails to mount):
1. Box polls up to 2.5s for React hydration.
2. If still unrendered, Box automatically falls back to in-page API redemption (`POST /api/hatch/invite-code/redeem`).
3. If API redemption succeeds, Box returns success transparently.
4. If API also fails, Box records the exact server reason (`already_redeemed`, `window_expired`, etc.).
5. Box cleanly dismisses all open modals via Escape to avoid orphaned UI state.
- **Asynchronous DOM Loading & Unloaded Stats**:
In the React/Radix UI tree, usage statistics render asynchronously after the dialog opens.
If network requests stall or quota bars fail to render, `read_usage()` and `box usage` gracefully
tag the result as `UNLOADED` (`stats_loaded: false`) rather than throwing uncaught `RuntimeError`s.
- **DM Loopback & Transparent Agent Feedback**:
To keep agents in the loop without causing confusion:
- Any missing expected field or failed redemption can trigger an automated loopback DM
via `box invite redeem <node> <code> --notify <sidechat> [--notify-agent <agent>]`.
- Onboard and salvage pipelines automatically post diagnostic notices (`[ONBOARD-SALVAGE-LOOPBACK]` /
`[BOX-INVITE-LOOPBACK]`) to the agent's task sidechat, providing clear, actionable root cause.
## Onboarding & Feeding Pipeline (`box onboard`)