Nest Engineering Docs
Raven Desktop

Automated Checkbox Rollout

QA and backout checklist for Raven Automated Checkbox

Use this checklist before expanding Automated Checkbox beyond a canary cohort. It is release validation guidance only; it does not expand the implementation scope.

Runtime controls

ControlValueSource
Flutter Statsig gateraven_enable_automated_checkbox_routingapps/raven/lib/features/home/providers/automated_checkbox_gate.dart
Backend poll intervalAUTOMATED_CHECKBOX_POLL_INTERVAL_MS, default 2000 msservices/raven/config/settings.py
Stream behaviorFirst snapshot is immediate, then the backend sleeps for the configured interval and emits only changed snapshotsservices/raven/core/automated_checkbox.py

Scope boundaries

  • The Statsig gate is client-side routing only; the backend does not enforce a Statsig gate.
  • This rollout validates read-only invoice discovery, streaming snapshots, matching, totals, warnings, and telemetry.
  • Out of scope: invoice sync, charge writes, consumption writes, or any other Bubble/Vetspire mutation.
  • Automated Checkbox is for good-standing members in automated checkbox mode only. Non-good-standing members must stay on the existing fallback behavior.

Canary checklist

  1. Start with raven_enable_automated_checkbox_routing off for production.
  2. Deploy the Raven backend and desktop build that contain the latest Automated Checkbox changes. Confirm AUTOMATED_CHECKBOX_POLL_INTERVAL_MS is still 2000 ms unless the release explicitly changes it.
  3. Enable the Statsig gate for internal QA identities or one canary clinic with known good-standing automated-checkbox members and non-good-standing controls.
  4. Validate routing: gate off does not enter the automated panel; gate on plus automated mode plus good standing enters the automated panel; non-good-standing members do not enter the automated panel.
  5. Validate invoice behavior: recent invoices load, the default invoice is selected, the first snapshot arrives immediately, invoice-line edits appear near the configured poll interval, invoice switching cancels the prior stream, and unchanged polls do not duplicate UI updates.
  6. Validate output: covered, partially covered, unmatched, ignored/excluded lines, totals, overage, and warnings match the current invoice and benefits.
  7. Watch telemetry and logs: Statsig events under raven.automated_checkbox.*; backend StreamAutomatedCheckboxInvoice logs for stream_started, snapshot_poll, errors, cancellations, and poll_interval_ms.
  8. Ramp only after no repeated stream errors, user confusion, or load issues: internal QA, one clinic, small cohort, then broader cohort. Record evidence in the PR or Linear issue before each ramp.

Backout

  1. Turn off raven_enable_automated_checkbox_routing for the affected Statsig cohort, or for all production users.
  2. Ask canary users to restart Raven or switch accounts when immediate confirmation is needed because gate values are cached and refreshed in-app.
  3. Confirm Automated Checkbox branch telemetry reports gate_state=off and the automated panel is no longer selected.
  4. If backend stream load or errors continue after the gate is off, roll back the Raven service deployment or temporarily raise AUTOMATED_CHECKBOX_POLL_INTERVAL_MS. Do not lower the poll interval during incident response.
  5. Leave existing manual and read-only pet-benefits flows enabled.

Human review

Keep implementation issues in In Review until a human reviewer has checked the code review state, focused test results, canary evidence, scope boundaries, and backout owner. Implementers and agents can add evidence, but a human reviewer decides when each implementation issue moves out of In Review; do not move issues directly to Passed Review, Deployed to Main, or Verified.

Last updated on

On this page