Add frontend lint to CI; indexer-first Anvil E2E; workflow defaults (#322) #483
No reviewers
Labels
No labels
agent:fix_bugfix
agent:fix_conflicts
agent:fix_security
agent:gap_analysis
agent:implement
agent:open_issues
agents
agent:security_audit
agent:verify
area
timecurve
arena
arena-v2
audit
block:feature_review
block:security
bug
contracts
design
devops
docs
documentation
enhancement
epic
feature
frontend
indexer
low priority
megaeth
operations
ops
performance
QA
qa checklist
referrals
removal
security
smart-contracts
tech-debt
testing
time-arena
timecurve
visual-qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
code/yieldomega!483
Loading…
Reference in a new issue
No description provided.
Delete branch "verify/issue-322-ci-lint-indexer-e2e"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
npm run lintto the GitHub Actionsfrontend-testjob (0 errors; 21 existing warnings allowed).scripts/e2e-anvil.shwith optional indexer-first mode (YIELDOMEGA_E2E_WITH_INDEXER=1), default referrals spec inclusion, andanvil-indexer-first.spec.tssmoke.anvil-referrals.spec.tsselectors for current Referrals UI copy.docs/testing/ci.mdand indexer E2E modes indocs/testing/e2e-anvil.md.Verification checklist (issue #322)
frontend-testruns lint.github/workflows/unit-tests.ymlincludesnpm run lintaftertypecheckcd frontend && npm run lint→ exit 0 (21 warnings, 0 errors)ci.mdexplains GitLab/GitHub splitdocs/testing/ci.md§ GitLab vs GitHub CI (#322)anvil-referrals.spec.tsin default E2EPLAYWRIGHT_SPECSdefault includese2e/anvil-referrals.spec.tse2e-anvil.shreferrals greenPLAYWRIGHT_SPECS=e2e/anvil-referrals.spec.ts bash scripts/e2e-anvil.sh→ 1 passeddocs/testing/e2e-anvil.md§ indexer-first E2E +YIELDOMEGA_E2E_WITH_INDEXER=1YIELDOMEGA_E2E_WITH_INDEXER=1 PLAYWRIGHT_SPECS=e2e/anvil-indexer-first.spec.ts bash scripts/e2e-anvil.sh→ 1 passedcd frontend && npm run typecheck && npm run lint && npm test→ 632 tests passedbash scripts/verify-cloud-postgres.shfrontend-testjob logFollow-ups
react-refresh/only-export-componentswarnings and gate with--max-warnings 0when clean.YIELDOMEGA_E2E_WITH_INDEXER=1matrix row toe2e-anvil.ymlworkflow_dispatch inputs.changed the description
changed the description
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit
ce43305a60. Configure here.E2E dist cache mode mismatch
Medium Severity
After an indexer-first run, a later default
e2e-anvil.shrun can reusedist/from the indexer build because only the stamp filename differs while reuse checks ignore whetherVITE_INDEXER_URLwas inlined. The minimal E2E bundle may still call a stale indexer URL.Reviewed by Cursor Bugbot for commit
ce43305a60. Configure here.Security review — MR !483
Commit reviewed:
ce43305a60144768b7bd4fc3342acd114a61e373Scope:
.github/workflows/unit-tests.yml(addnpm run lint),docs/testing/ci.md,docs/testing/e2e-anvil.md,scripts/e2e-anvil.sh(optional indexer-first E2E),frontend/e2e/anvil-indexer-first.spec.ts,frontend/e2e/anvil-referrals.spec.ts(selector updates).Method: Diff review with attacker-controlled-input tracing into sinks (shell, SSRF, auth, secrets, XSS, EVM). Prior MR threads (Bugbot dist-cache note) re-checked — functional E2E cache mismatch only; no plausible production attack path.
Outcome: FINDINGS: 0 medium+
e2e-anvil.shindexer mode: Indexer bindsLISTEN_ADDR=127.0.0.1:${INDEXER_PORT}; health checks target localhost; registry JSON built viajqfrom local DeployDev addresses; Postgres reset uses existingyieldomega_pg_reset_indexer_db(local dev DB, same pattern as other verify scripts).pkill -f 'yieldomega-indexer'matches established stack/verify scripts.Inline threads: None (no medium+ findings).
Label:
block:securitynot applied.changed this line in version 2 of the diff
added 87 commits
main8f3646b0- Merge main into verify/issue-322-ci-lint-indexer-e2eCompare with previous version
mentioned in commit
8f3646b0d6Resolved merge conflicts with
main(merge commit8f3646b0).Conflicts resolved
docs/testing/ci.md— kept main’s GitLab vs GitHub CI section and lint in Stage 1docs/testing/e2e-anvil.md— unified onYIELDOMEGA_E2E_INDEXER=1(main’s env name)scripts/e2e-anvil.sh— main’s_e2e_start_indexer_if_requestedpath; restored MR’sunsetfor Vite deploy envfrontend/e2e/anvil-indexer-first.spec.ts— main’s expanded smoke (podiums + timer epoch)frontend/e2e/anvil-referrals.spec.ts— main’sClaim costselector (matches current UI)Sanity:
npm run typecheck+npm run lintpass on the merged branch.resolved all threads
changed the description
Security review — MR !483
Commit reviewed:
8f3646b0d68563eec4f4c95b805923877339c7eeScope: Post-merge diff vs
main—docs/testing/e2e-anvil.md(default specs + indexer-first docs),scripts/e2e-anvil.sh(unsetforVITE_PODIUM_VAULTS_ADDRESS/VITE_ADMIN_SELL_VAULT_ADDRESS), removal of a local E2E build stamp underfrontend/.cache/. Broader MR features (CI lint, indexer-first E2E harness, Playwright specs) were re-checked on the merged tree; most landed viamainduring conflict resolution.Method: Diff review with attacker-controlled-input tracing into sinks (shell injection, SSRF, authz, secret leakage, XSS, EVM). Prior threads re-checked: Bugbot dist-cache mismatch is addressed by separate build stamps (
-idx0/-idx1atBUILD_STAMP) — functional E2E hygiene only, not a production attack path.Outcome: FINDINGS: 0 medium+
e2e-anvil.shunset addition: Clears stale parent-shellVITE_*exports so DeployDev addresses inline correctly — reduces misconfiguration risk in local E2E; no new attacker-controlled sink.LISTEN_ADDR=127.0.0.1:${INDEXER_PORT}; health checks andVITE_INDEXER_URLtarget localhost; registry JSON built viajqfrom local DeployDev output; Postgres reset uses existingyieldomega_pg_reset_indexer_db(local dev DB, same pattern as other verify scripts).Inline threads: None (no medium+ findings).
Label:
block:securitynot applied.mentioned in commit
6b857630a5