feat(kpi): expand KPI runtime monitoring, prompt advisory envelopes, and missing field resiliency
This commit is contained in:
+19
-4
@@ -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`)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user