diff --git a/README.md b/README.md index 8ecd869..2bb99e1 100644 --- a/README.md +++ b/README.md @@ -283,7 +283,7 @@ See [ADR 0004 (Fallback Engine)](./docs/adr/0004-fallback-engine.md), [ADR 0007 OLP v0.5.0+ surfaces live subscription quota for Anthropic Pro/Max subscribers on the owner-only `/dashboard`. Per-provider rows show 5-hour and 7-day utilization bars with reset countdowns, status badges, representative-claim hints, and a manual refresh button. The panel auto-refreshes every 60 seconds and pauses when the tab is hidden. -![OLP v0.5.0 dashboard — Plan Usage panel with live anthropic quota](./docs/img/dashboard-v0.5.0.png) +![OLP v0.5.1 dashboard — Plan Usage panel with live anthropic quota (utilization 5h: 6%, 7d: 38%, status: live)](./docs/img/dashboard-v0.5.1.png) ### How it works diff --git a/docs/exit-gates/phase-5-e2e.json b/docs/exit-gates/phase-5-e2e.json index f82f60b..e937141 100644 --- a/docs/exit-gates/phase-5-e2e.json +++ b/docs/exit-gates/phase-5-e2e.json @@ -1,72 +1,34 @@ { - "phase": "Phase 5", - "exit_gate_item": "9 \u2014 Live MacBook E2E verification (dashboard renders enriched panel with real quota data)", - "captured_at_utc": "2026-05-26T07:56:36.651Z", + "phase": "v0.5.1 post-release", + "purpose": "Refresh dashboard screenshot with live MacBook data after v0.5.1 hotfix (replacing D82's synthetic-data render)", + "captured_at_utc": "2026-05-27T01:26:17.304Z", "host": "maintainer's MacBook (Mac client test target per project test-envs; specific IP / Tailscale node redacted per public-repo hygiene)", - "server_version": "0.4.4 (pre-v0.5.0-close; main @ commit 2b07a3b \u2014 D83)", + "server_version": "0.5.1 (main @ commit fa2d1af \u2014 F4+#7 post-merge)", "olp_port": 14567, "endpoint_tested": "/v0/management/dashboard-data", "auth": "owner-tier OLP key (temp, revoked post-test)", - "config_opt_in": { - "providers.anthropic.quota_probe_enabled": true - }, - "quota_v2_shape_proof": [ - { - "provider": "anthropic", - "status": "live", - "schema_version": "2026-05-26", - "last_fresh_at": 1779782166101, - "utilization": { - "5h": 0.36, - "7d": 0.34 - }, - "reset": { - "5h": 1779794400, - "7d": 1780225200, - "overall": 1779794400, - "overage": null - }, - "representative_claim": "five_hour", - "fallback_percentage": 0.5, - "overage": { - "status": "rejected", - "disabled_reason": "org_level_disabled_until" - }, - "raw_available": true - }, - { - "provider": "openai", - "status": "unavailable", - "reason": "no public quota api or probe disabled", - "schema_version": null, - "last_fresh_at": null, - "utilization": null, - "reset": null, - "representative_claim": null, - "fallback_percentage": null, - "overage": null, - "raw_available": false - } - ], "result_summary": { "anthropic": { "status": "live", "schema_version": "2026-05-26", - "utilization_5h": 0.36, - "utilization_7d": 0.34, + "utilization_5h": 0.06, + "utilization_7d": 0.38, "representative_claim": "five_hour", - "overage_status": "rejected", - "fallback_percentage": 0.5 + "failure": null }, "openai": { "status": "unavailable", "reason": "no public quota api or probe disabled" } }, - "dashboard_screenshot": "docs/img/dashboard-v0.5.0.png", + "v0_5_1_contract_verified": [ + "quota_v2[i].status enum includes 'live' (anthropic) and 'unavailable' (openai) \u2014 both rendered correctly", + "quota_v2[i].failure is null for healthy live status (per ADR 0013 Rule 6 \u2014 failure info only on stale/unreachable)", + "quota_v2[i].schema_version pinned at 2026-05-26 \u2014 matches models-registry.json quota_probe.schema_version" + ], "post_test_cleanup": [ - "temp owner key (id=6yullsd-, name=e2e-d83-close-prep) revoked", + "temp owner key (id=0m6s2s97, name=v0.5.1-screenshot) revoked", "~/.olp/config.json providers.anthropic.quota_probe_enabled flag removed (config restored to baseline)", - "test server (pid=36163, port=14567) terminated" + "test server (pid varies, port=14567) terminated" ] } \ No newline at end of file diff --git a/docs/img/dashboard-v0.5.0.png b/docs/img/dashboard-v0.5.0.png deleted file mode 100644 index a54c2da..0000000 Binary files a/docs/img/dashboard-v0.5.0.png and /dev/null differ diff --git a/docs/img/dashboard-v0.5.1.png b/docs/img/dashboard-v0.5.1.png new file mode 100644 index 0000000..681103e Binary files /dev/null and b/docs/img/dashboard-v0.5.1.png differ