Evidence - Self-heal post-deploy proof failure: [ERP bug-fix] Bug from /invoicing

Central proof packs from orchestrator verification runs

← Evidence Library

FAIL

Self-heal post-deploy proof failure: [ERP bug-fix] Bug from /invoicing

FAIL — 1 browser check(s) failed
Projectops-ar-erp
Task106d077a-b714-45aa-b898-902cce5d2748
Updated2026-06-15T00:34:02.946718+00:00

Screenshots

01-landing.png
01-landing.png
02-post-login.png
02-post-login.png
03-pn-no-nan-totals-00-journey-start.png
03-pn-no-nan-totals-00-journey-start.png
03-pn-no-nan-totals-01-navigate.png
03-pn-no-nan-totals-01-navigate.png
03-pn-no-nan-totals-failed.png
03-pn-no-nan-totals-failed.png

Verification Notes

# Verification — Self-heal post-deploy proof failure: [ERP bug-fix] Bug from /invoicing

**Result:** ❌ FAIL  `FAIL — 1 browser check(s) failed`  
**When:** 20260615T003317Z  
**URL:** http://100.68.36.49:3080/  

## Screenshots
![01-landing.png](01-landing.png)
![02-post-login.png](02-post-login.png)
![03-pn-no-nan-totals-00-journey-start.png](03-pn-no-nan-totals-00-journey-start.png)
![03-pn-no-nan-totals-01-navigate.png](03-pn-no-nan-totals-01-navigate.png)
![03-pn-no-nan-totals-failed.png](03-pn-no-nan-totals-failed.png)

## Proof plan
- **Level:** 2
- **Task browser checks:** 1
- **API checks:** 0
- **task_browser_checks_present:** PASS — Worker must declare task-specific browser_checks in .orch-done.json.
- **task_browser_checks_substantive:** PASS — Browser checks must target changed feature routes and specific selectors/text/actions.
- **browser_checks_grounded:** PASS — Browser checks must use concrete routes and stable user-facing selectors.
- **level2_scope_bounded:** PASS — Level 2 browser checks must stay focused (40 actions max per check). Split broad regression journeys into separate focused checks or Level 3 recipes.
- **level2_entry_to_target_flow:** PASS — Level 2 requires an entry-to-target browser-flow check that starts at entry/login and navigates by visible controls. (For pure render assertions, set kind: static_render on each check.)
- **level2_user_actions:** PASS — Level 2 requires safe user actions such as click, fill, upload, select, or press. (For pure render assertions, set kind: static_render on each check.)
- **level2_assertions:** PASS — Level 2 requires selector/text assertions proving the changed UI state.
- **level2_expected_result:** PASS — Level 2 requires expected_result/success_criteria explaining what success looks like.
- **level2_positive_assertion:** PASS — Level 2 requires at least one POSITIVE assertion — a concrete assert_text value (e.g. the corrected £ total) or that a specific element is present. Absence-only checks (assert_no_text) do not prove the fix; they pass on an empty or wrong page.

## Task-specific browser checks
- **pn-no-nan-totals:** `/pn` — selectors: (none); text: Project Navigator; actions: 5

## Notes
- Verification level 2
- ✓ task proof plan L2: 1 task browser check(s), 0 API check(s)
- Task-proof-only mode: Level 1 launch smoke already passed; skipping baseline browser checks.
- Playwright MCP required for level 2+ UI proof; validating worker-declared MCP-backed checks.
- ✓ readiness gate: app ready after 1 probe(s) (status 200)
- networkidle not reached after login (app polls continuously) — non-fatal; confirming login via login-form disappearance instead.
- Logged in as claude-dev@arcontrols.internal
- Browser flow 'pn-no-nan-totals' started at /; target is /pn. Navigation must use visible UI actions from here.
- ✓ pn-no-nan-totals: step 1 navigate
- ✗ browser check 'pn-no-nan-totals' failed: Page.wait_for_selector: Timeout 30000ms exceeded.
Call log:
  - waiting for locator("[aria-label=\"Project Navigator\"]") to be visible
    63 × locator resolved to 2 elements. Proceeding with the first one: <button title="Project Navigator" aria-label="Project Navigator" data-testid="app-switcher-binary-expression-button" class="flex shrink-0 items-center whitespace-nowrap px-3 py-1.5 rounded-lg transition-colors text-sm text-gray-600 hover:text-gray-900 hover:bg-gray-100 relative">…</button>


## Network issues
- `GET http://100.68.36.49:3080/api/notifications/stream?access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJjbGF1ZGUtZGV2QGFyY29udHJvbHMuaW50ZXJuYWwiLCJ1c2VyX2lkIjoiN2NlNDFmZjAtZDBmNy00NzMxLTkzNGIt — net::ERR_ABORTED`
- `GET http://100.68.36.49:3080/api/notifications/stream?access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJjbGF1ZGUtZGV2QGFyY29udHJvbHMuaW50ZXJuYWwiLCJ1c2VyX2lkIjoiN2NlNDFmZjAtZDBmNy00NzMxLTkzNGIt — net::ERR_ABORTED`

Run Metadata

{
  "created_at": "2026-06-15T00:34:02.952545+00:00",
  "github_storage": false,
  "passed": false,
  "pr_url": "",
  "project": "ops-ar-erp",
  "run_id": "ops-ar-erp-106d077a-20260615-003402-self-heal-post-deploy-proof-failure-erp-",
  "source_path": "/root/orchestrator/workspace/ops-ar-erp-orch-106d077ab714/evidence/20260615T003317Z-106d077a",
  "storage": "orchestrator-vps",
  "summary": "FAIL \u2014 1 browser check(s) failed",
  "task_id": "106d077a-b714-45aa-b898-902cce5d2748",
  "task_short": "106d077a",
  "title": "Self-heal post-deploy proof failure: [ERP bug-fix] Bug from /invoicing"
}

Artifacts