You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Managed by the E2E Robustness Driver cron (fires every 2h). Each fire picks the single highest-leverage gap and ships one PR. This issue tracks criterion status and per-fire log entries. Do not close manually -- the cron closes it only when all 7 criteria are green for 7 consecutive days.
e2e.yml + test_cloud_golden_path.py covers /cloud, sibling routes, /cloud/node/, daemon connect+sync, API nodes check. Latest run #3620 (2026-09-12T19:24Z) SUCCESS. Cloud PRs #2423 (node removal billing fix), #2421 (Resend UA guard now CI gate), #2422 (traction board to /admin/traction) merged.
C3
Landing golden path (hero + signup + OTP, <3 min)
GREEN
landing-golden-path.yml runs test_landing_golden_path.py + test_public_claims_truth.py on every landing PR. Latest main run #983 (2026-09-12T18:42Z) SUCCESS. PRs #806/#807/#808 (traction gated/retired, Why+Book Demo in nav) merged.
cross-repo-handoff.yml + test_e2e_cross_repo_handoff.py. PR #5269 merged: T4 uses real AES-256-GCM; T5 verifies roundtrip and wrong-key rejection.
C5
Visual-diff covers ALL tabs post-auth
GREEN
OSS: pr-screenshots.yml with 33 tabs. Cloud: PR #2143 merged 2026-08-28 -- test_cloud_node_all_tab_screenshots (11 tabs in /cloud/node/) + artifact upload live on every e2e.yml run. Gateway-token injection bug (2026-05-17 user report) confirmed fixed and covered.
C6
Required-status-checks on all 3 repos
AMBER
apply-required-checks.yml exists in all 3 repos. Sole remaining blocker. Human action required: add required checks via GitHub Settings UI (no PAT, no code, ~2 min per repo). Check names below.
C7
Failure quarantine within 24h
GREEN
auto-quarantine.yml + quarantine-sweep.yml exist. Flaky tests marked in tests/quarantine.txt.
C6 action -- the ONLY remaining gap
No code work left. C6 is purely a GitHub admin settings action. Two paths:
Path A: GitHub Settings UI (no PAT, no code, ~2 min per repo)
For each repo, go to: Settings > Branches > Edit "main" > "Require status checks to pass before merging" > search and add:
pr-screenshots.yml: Visual diff on every PR touching dashboard.py/routes//static/. Proper gateway token propagation with localStorage injection + overlay wait. All 33 canonical tabs.
.github/scripts/visual-diff.mjs: Token injection, 5s overlay wait, auth-gap detection (exit 3), continues to screenshot after auth failures for diagnostics.
tests/test_e2e_oss_all_tabs.py: 33-tab C5 post-auth sweep with class-scoped fixture (1 page load for all tabs). Drift tests verify CANONICAL_TABS stays in sync with template files, PR_SCREENSHOT_TABS, and DEFAULT_TABS.
tests/test_e2e_oss_golden_path.py: Full C1 golden path (auth, data, tab overlay, render, attention API).
C4: AMBER. Runs with stubs when CLOUD_REPO_PAT missing. Functional but not full-fidelity on fork PRs.
C7: GREEN. Quarantine infrastructure in place.
Next fire: target C2 -- build cloud-golden-path.yml in vivekchand/clawmetry-cloud.
2026-08-27T00:00Z -- Fire 2
Full re-audit. Findings:
C2: Tracking issue had STALE RED status. e2e.yml + test_cloud_golden_path.py exist in clawmetry-cloud and cover all C2 sub-criteria (10 tests including daemon connect+sync and /cloud/node/ deep-link). /fleet/ 302-to-/cloud is intentional UX consolidation (chore: bump to v0.12.157 [skip ci] #840), not a regression. C2 updated to GREEN.
C5 (cloud): Only remaining RED half. OSS has 33-tab visual-diff per PR. Cloud /cloud/node/ had zero screenshot coverage.
C6: Still AMBER. Both cloud and landing apply-required-checks.yml exist but need admin PAT to execute.
Gap targeted: C5 cloud -- opened PR vivekchand/clawmetry-cloud#2143.
Root cause: clawmetry==0.12.779 added /api/usage/outcomes to the OSS blueprint; cloud_route_policy/policy.py was never updated. In strict mode the enforcer exits 1, crashing Flask on startup.
Gap targeted: C6 visibility on clawmetry-landing -- landing had no c6-pr-gate.yml.
Fix shipped: opened PR vivekchand/clawmetry-landing#678 (c6-pr-gate.yml). Fires on every landing PR, audits required checks, posts @vivekchand comment with remediation steps when missing.
2026-08-27T05:40Z -- Fire 5
Gap targeted: C4 stub fidelity -- _InlineDaemonSim was sending base64(b"stub-encrypted-payload"), a non-AES-GCM blob. T4 passed in stub mode even when the wire format was completely wrong.
Status audit: all code done. Three PRs CI-green awaiting human merge only.
No new code gap found. Investigated administration:write for GITHUB_TOKEN -- confirmed NOT a valid permission (causes workflow rejection). PAT approach already optimal.
Notified user with full action plan (merge 3 PRs, add required checks via Settings UI or apply-required-checks.yml).
Current status: 6/7 GREEN. Only C6 (required-status-checks) remains AMBER.
C6 has zero code work remaining. It is a pure admin action: add required checks in GitHub Settings UI (no code, no PAT) on all 3 repos. Check names: clawmetry=E2E Gate (required), clawmetry-cloud=Cloud golden-path browser E2E, clawmetry-landing=Landing golden path (C3). Alternatively, run apply-required-checks.yml with a fine-grained PAT (Administration read+write) pasted into the Actions UI.
No PR to open this fire. Next fires will audit C6 status and notify until the admin action is taken.
2026-08-28 through 2026-09-09 -- Fires 8-17
All fires: status audit confirms 6/7 GREEN. C6 AMBER unchanged.
No code work remains. C6 requires GitHub admin action only.
All three golden paths confirmed GREEN on every check.
2026-09-10T -- Fire 18
Status audit: 6/7 GREEN. No regressions since last fire.
Landing PR chore: bump to v0.12.129 [skip ci] #769 (security-page-copy): v12 compression guards fail. C3 golden path step itself passed. PR author action needed on the compression guard test.
C6: AMBER. 19th consecutive fire with no change. This is a pure human admin task (~6 min), no code deliverable.
No PR opened this fire.
This cron cannot make further progress on C6. Recommendation: complete the required-status-check enrollment (Path A above) or disable this cron until ready to act on C6.
2026-09-10T12:40Z -- Fire 20
Status audit: 6/7 GREEN. No regressions detected.
C1 OSS: main run #8389 (2026-09-10T10:19Z) SUCCESS (last confirmed)
C2 Cloud, C3 Landing, C4, C5, C7: GREEN, no new failures.
C6: AMBER. 20th consecutive fire with no change. All code infrastructure is complete and working. C6 is blocked solely on a ~6-minute GitHub Settings UI action (Path A above -- no code, no PAT, no terminal).
No PR opened. The cron has zero code-deliverable work remaining.
C2 Cloud, C3 Landing, C4, C5, C7: GREEN, no new failures since last fire.
C6: AMBER. 21st consecutive fire. No change. The sole blocker is the ~6-minute GitHub Settings UI admin action (Path A above). No code work is possible.
No PR opened. The cron has no code-deliverable work remaining.
Active development is healthy: 2 PRs merged to main since last fire, both passed golden-path gates correctly.
2026-09-11T00:30Z -- Fire 22
Status audit: 6/7 GREEN on main. No regressions on main since last fire.
C1 OSS: run #8413 (2026-09-10T13:54Z) SUCCESS on main. Additional PR runs confirm C1 healthy: run #8451 (feat/build-your-own-ui, SUCCESS), run #8453 (i18n-docs, SUCCESS).
C6: AMBER. 25th consecutive fire. No change since fire 7 (2026-08-28). The sole blocker is a ~6-minute human admin task in GitHub Settings UI (Path A above). No code can close C6.
No PR opened. Zero code-deliverable gaps remain. The cron has been blocked on C6 for 15+ days.
Recommendation: The cron has exhausted all automated work it can deliver. Please either (a) take the C6 admin action (~6 min, Path A above) to reach 7/7 and the stop condition, or (b) disable this trigger via https://claude.ai/code/scheduled. The cron will keep firing and logging the same status every 2 hours until one of those two happens.
2026-09-12T14:00Z -- Fire 26
Status audit: 6/7 GREEN. No regressions. Active development continues.
C1 OSS: run #8855 (2026-09-12T12:49Z) SUCCESS on main. Two PRs merged to main since Fire 25:
C6: AMBER. 26th consecutive fire. No change since 2026-08-28. Sole blocker is the ~6-minute GitHub Settings UI action (Path A above). No code work is possible; this cron has exhausted all code-deliverable work.
No PR opened. The 7-day countdown to "fully right" status cannot start until C6 is closed.
2026-09-12T20:30Z -- Fire 27
Status audit: 6/7 GREEN. No regressions. Very active development day across all three repos.
C1 OSS: run #8908 (2026-09-12T20:23Z) SUCCESS on main. PRs merged since Fire 26:
C6: AMBER. 27th consecutive fire. No change since 2026-08-28. Sole blocker is the ~6-minute GitHub Settings UI action (Path A above). No code work is possible.
No PR opened. Zero code-deliverable gaps remain. The golden-path gates are catching real bugs daily (billing regression, email loop, Resend 403, CI dep conflicts).
2026-09-13T06:50Z -- Fire 28
Status audit: 6/7 GREEN on main. No regressions detected.
C1 OSS: run #8908 (2026-09-12T20:23Z) last confirmed SUCCESS. Main branch stable.
C2 Cloud, C3 Landing, C4, C5, C7: GREEN, no changes since Fire 27.
Code gap found and shipped: correctness bug in C6 apply script + stale tracking issue references.
scripts/apply_required_status_checks.pyremove_required_check only read from the contexts array. GitHub Settings UI writes required checks to the checks array instead, so any deprecated check configured via the UI was permanently invisible to removal -- silently "not present (clean)", never cleaned up. Fixed to read both arrays and PATCH both when removing. Also corrected two #4552 docstring/error-message references to #5266.
clawmetry-cloud/.github/workflows/c6-pr-gate.yml: tracking issue ref #3964 (stale) corrected to #5266. URL in PR comment body also fixed.
clawmetry-cloud/.github/workflows/apply-required-checks.yml: ref #3906 corrected to #5266.
clawmetry-landing/.github/workflows/apply-required-checks.yml: ref #2146 corrected to #5266.
C6: AMBER. 28th consecutive fire. The apply script correctness fix (PR fix(c6): remove_required_check handles checks array + fix tracking issue refs #5931) is important for when the PAT-based apply path runs -- it ensures deprecated checks in the checks array are properly removed. C6 itself still requires the human admin action (Path A/B above).
This issue is managed by the E2E Robustness Driver cron. Last updated: 2026-09-13T06:50Z.
E2E Robustness Tracking Issue
7 Criteria
oss-golden-path.yml+test_e2e_oss_golden_path.py-- required ine2e_gate.py. Latest main run #8908 (2026-09-12T20:23Z) SUCCESS. Active day: PRs #5918 (email sign-in token fix), #5919 (CI unbreak/revert dep bump) merged. Gate continues blocking PR #5684 auth regression.e2e.yml+test_cloud_golden_path.pycovers /cloud, sibling routes, /cloud/node/, daemon connect+sync, API nodes check. Latest run #3620 (2026-09-12T19:24Z) SUCCESS. Cloud PRs #2423 (node removal billing fix), #2421 (Resend UA guard now CI gate), #2422 (traction board to /admin/traction) merged.landing-golden-path.ymlrunstest_landing_golden_path.py+test_public_claims_truth.pyon every landing PR. Latest main run #983 (2026-09-12T18:42Z) SUCCESS. PRs #806/#807/#808 (traction gated/retired, Why+Book Demo in nav) merged.cross-repo-handoff.yml+test_e2e_cross_repo_handoff.py. PR #5269 merged: T4 uses real AES-256-GCM; T5 verifies roundtrip and wrong-key rejection.pr-screenshots.ymlwith 33 tabs. Cloud: PR #2143 merged 2026-08-28 --test_cloud_node_all_tab_screenshots(11 tabs in /cloud/node/) + artifact upload live on every e2e.yml run. Gateway-token injection bug (2026-05-17 user report) confirmed fixed and covered.apply-required-checks.ymlexists in all 3 repos. Sole remaining blocker. Human action required: add required checks via GitHub Settings UI (no PAT, no code, ~2 min per repo). Check names below.auto-quarantine.yml+quarantine-sweep.ymlexist. Flaky tests marked intests/quarantine.txt.C6 action -- the ONLY remaining gap
No code work left. C6 is purely a GitHub admin settings action. Two paths:
Path A: GitHub Settings UI (no PAT, no code, ~2 min per repo)
For each repo, go to: Settings > Branches > Edit "main" > "Require status checks to pass before merging" > search and add:
vivekchand/clawmetry-- add:E2E Gate (required)vivekchand/clawmetry-cloud-- add:Cloud golden-path browser E2Evivekchand/clawmetry-landing-- add:Landing golden path (C3)Path B: One-shot Actions workflow (fine-grained PAT)
For each repo, go to Actions >
apply-required-checks.yml> Run workflow:confirmfield:APPLYpat_tokenfield: paste a fine-grained PAT withAdministration: read+writescope for that repoRun once per repo. The workflow self-validates and reports what it added.
What is currently implemented (OSS)
oss-golden-path.yml: C1 (9 tabs) + C5 (33-tab sweep) + OTLP smoke. Required ine2e_gate.py.pr-screenshots.yml: Visual diff on every PR touchingdashboard.py/routes//static/. Proper gateway token propagation with localStorage injection + overlay wait. All 33 canonical tabs..github/scripts/visual-diff.mjs: Token injection, 5s overlay wait, auth-gap detection (exit 3), continues to screenshot after auth failures for diagnostics.tests/test_e2e_oss_all_tabs.py: 33-tab C5 post-auth sweep with class-scoped fixture (1 page load for all tabs). Drift tests verify CANONICAL_TABS stays in sync with template files,PR_SCREENSHOT_TABS, andDEFAULT_TABS.tests/test_e2e_oss_golden_path.py: Full C1 golden path (auth, data, tab overlay, render, attention API).tests/test_e2e_otlp_ingest.py: OTLP trace ingest smoke.cross-repo-handoff.yml: C4 gate, required ine2e_gate.py.tests/test_e2e_cross_repo_handoff.py: T1-T5 tiers. PR C4: real AES-256-GCM in stub-mode cross-repo handoff (T4 wire fidelity + T5 roundtrip) #5269 merged: T4 uses real AES-256-GCM; T5 verifies roundtrip and wrong-key rejection.scripts/e2e_gate.py: 11 required check specs including drift-bot.e2e-gate.yml: Single aggregated required check ("E2E Gate (required)").auto-quarantine.yml+quarantine-sweep.yml: C7 flakiness quarantine.What is currently implemented (cloud)
e2e.yml: Runstest_cloud_golden_path.py-- C2 full coverage (10 tests). Job name: "Cloud golden-path browser E2E".test_cloud_node_all_tab_screenshots: Screenshots 11 OSS tabs inside /cloud/node/ post-auth. Artifact uploaded on every run. Merged 2026-08-28 (PR fix(snapshot): derive spending from dailyUsage so hero card matches Cost tab (#2142) #2143).cloud_route_policy/policy.py: ClassifiesGET /api/usage/outcomesasoss-passthrough. Merged 2026-08-28.cloud-e2e-screenshots.yml: Post-deploy + PR screenshots via install.sh against prod. Non-blocking.c6-pr-gate.yml: Posts PR comment if "Cloud golden-path browser E2E" is not a required check on main. Fails each PR until C6 is closed.apply-required-checks.yml: One-shot workflow to add required checks -- paste PAT into Actions UI (no secret setup required).What is currently implemented (landing)
landing-golden-path.yml: C3 -- runstest_landing_golden_path.py+test_public_claims_truth.py. Job name: "Landing golden path (C3)".c6-pr-gate.yml: Merged in PR [RELEASE] fix: Cloud Pro price $5/node/month (was $19) #678 (2026-08-28). Posts @vivekchand comment on every landing PR when "Landing golden path (C3)" is not a required check on main.apply-required-checks.yml: One-shot workflow to add required checks -- paste PAT into Actions UI (no secret setup required).Per-fire log
2026-08-26T22:30Z -- Fire 1 (first run)
oss-golden-path.yml./fleet/returning 302.cloud-golden-path.ymlinvivekchand/clawmetry-cloud.2026-08-27T00:00Z -- Fire 2
e2e.yml+test_cloud_golden_path.pyexist in clawmetry-cloud and cover all C2 sub-criteria (10 tests including daemon connect+sync and /cloud/node/ deep-link)./fleet/302-to-/cloud is intentional UX consolidation (chore: bump to v0.12.157 [skip ci] #840), not a regression. C2 updated to GREEN.apply-required-checks.ymlexist but need admin PAT to execute.test_cloud_node_all_tab_screenshotstotest_cloud_golden_path.py: screenshots 11 OSS tabs inside /cloud/node/ post-auth.e2e.yml:cloud-node-tab-screenshots-on every run.2026-08-27T01:40Z -- Fire 3
clawmetry==0.12.779added/api/usage/outcomesto the OSS blueprint;cloud_route_policy/policy.pywas never updated. In strict mode the enforcer exits 1, crashing Flask on startup.2d05a1fclassifiesGET /api/usage/outcomesasoss-passthrough. All 27 CI checks went GREEN.2026-08-27T03:40Z -- Fire 4
c6-pr-gate.yml.c6-pr-gate.yml). Fires on every landing PR, audits required checks, posts @vivekchand comment with remediation steps when missing.2026-08-27T05:40Z -- Fire 5
_InlineDaemonSimwas sendingbase64(b"stub-encrypted-payload"), a non-AES-GCM blob. T4 passed in stub mode even when the wire format was completely wrong._InlineDaemonSimnow sends real AES-256-GCM blobs matchingsync.py:encrypt_payloadwire format.2026-08-27T07:40Z -- Fire 6
administration:writefor GITHUB_TOKEN -- confirmed NOT a valid permission (causes workflow rejection). PAT approach already optimal.2026-08-28T03:37Z -- Fire 6 (merge event)
deploy.yml.2026-08-28T09:30Z -- Fire 7
E2E Gate (required), clawmetry-cloud=Cloud golden-path browser E2E, clawmetry-landing=Landing golden path (C3). Alternatively, runapply-required-checks.ymlwith a fine-grained PAT (Administration read+write) pasted into the Actions UI.2026-08-28 through 2026-09-09 -- Fires 8-17
2026-09-10T -- Fire 18
2026-09-10T10:40Z -- Fire 19
feat/ingest-key, stacked onfeat/build-your-own-ui): C1 + C5 fail in ~3s. Root cause: new_check_authingest key code likely breaks gateway-token auth path in the merged state. Gate caught a real regression. PR author action needed.security-page-copy): v12 compression guards fail. C3 golden path step itself passed. PR author action needed on the compression guard test.2026-09-10T12:40Z -- Fire 20
2026-09-10T14:42Z -- Fire 21
2026-09-11T00:30Z -- Fire 22
feat/ingest-key): run #8454 FAILED (2026-09-11T00:25Z) -- ingest key auth regression persists. Gate blocking correctly; PR author action needed.refactor/split-entitlement): run #8455 QUEUED -- entitlement package split refactor. New run triggered on MODULE_MAP.md regeneration commit.2026-09-11T16:30Z -- Fire 23
2026-09-11T18:30Z -- Fire 24
2026-09-12T -- Fire 25
oss-golden-path.ymlandtest_e2e_oss_all_tabs.pyintact and correct. Last known main success: run #8636 (2026-09-11T17:50Z).e2e.yml+test_cloud_golden_path.pyintact. Last known main success: run feat(entitlement): channel_catalog_at + channel_catalog_at_batch + 2 endpoints #3549 (2026-09-11T18:09Z).landing-golden-path.ymlintact. Last known main success: run feat(local-store): SQLite event store on the node — Phase 1 of #964 #966 (2026-09-11T11:28Z).cross-repo-handoff.yml+test_e2e_cross_repo_handoff.pyintact.auto-quarantine.yml+quarantine-sweep.ymlintact.2026-09-12T14:00Z -- Fire 26
feat/ingest-key) remains open with auth regression; gate continues to block correctly.2026-09-12T20:30Z -- Fire 27
clawmetry entitlementsubcommand mirroring /api/entitlement #2421: Resend senders getting 403 from Cloudflare (UA fix +test_outbound_user_agent.pynow a CI gate)2026-09-13T06:50Z -- Fire 28
scripts/apply_required_status_checks.pyremove_required_checkonly read from thecontextsarray. GitHub Settings UI writes required checks to thechecksarray instead, so any deprecated check configured via the UI was permanently invisible to removal -- silently "not present (clean)", never cleaned up. Fixed to read both arrays and PATCH both when removing. Also corrected two#4552docstring/error-message references to#5266.clawmetry-cloud/.github/workflows/c6-pr-gate.yml: tracking issue ref#3964(stale) corrected to#5266. URL in PR comment body also fixed.clawmetry-cloud/.github/workflows/apply-required-checks.yml: ref#3906corrected to#5266.clawmetry-landing/.github/workflows/apply-required-checks.yml: ref#2146corrected to#5266.remove_required_checkfix + tracking ref cleanupchecksarray are properly removed. C6 itself still requires the human admin action (Path A/B above).This issue is managed by the E2E Robustness Driver cron. Last updated: 2026-09-13T06:50Z.