Skip to content

fix(ci): restore full-suite after verification request + lucide mock gaps#2332

Merged
gsxdsm merged 2 commits into
mainfrom
fix/main-full-suite-tests
Jul 19, 2026
Merged

fix(ci): restore full-suite after verification request + lucide mock gaps#2332
gsxdsm merged 2 commits into
mainfrom
fix/main-full-suite-tests

Conversation

@gsxdsm

@gsxdsm gsxdsm commented Jul 19, 2026

Copy link
Copy Markdown
Collaborator

Summary

Main Full Suite shards have been red after recent landings. Root causes:

  1. Executor testsexecute() now polls getTaskVerificationRequestAsync (chat-enqueued verification). Shared createMockStore() (and soft-delete inline store) lacked the method, so nearly every execute-path suite failed with is not a function.
  2. TaskDetailModal suitesNativeStructurePreview imports Map / Lightbulb / BarChart3 / Target / CircleAlert from lucide; the shared TaskDetail lucide mock omitted them, so suites failed at import.
  3. Grok process-lifecycle — 15s bound stress timed out under full-suite load without product-bug evidence → quarantined on sight per AGENTS.md.

Test plan

  • executor-task-done-blocked, executor-fast-mode-workflows, concurrent-execute race
  • executor-step-session, plan-only scope leak, review-step indexing
  • TaskDetailModal.create-pr + TaskDetail.mobile-transition
  • Full Suite CI on this PR

Summary by CodeRabbit

  • Improvements
    • Added html2canvas support in the dashboard to enable HTML-to-canvas rendering needed for visual structure previews.
  • Tests
    • Updated task execution test mocks to handle task verification-request flows reliably.
    • Improved task deletion safeguard coverage and related execution behavior checks.
    • Enhanced test stubs to support structure preview rendering elements during modal-related tests.
  • Chores
    • Quarantined a timing-sensitive process lifecycle test and refreshed quarantine tracking to improve full-suite stability.

…re landings

- Stub TaskStore verification request APIs on executor test mocks (default null)
- Add NativeStructurePreview lucide icons to TaskDetailModal shared mock
- Quarantine grok process-lifecycle stress flake (15s timeout under full-suite load)
@coderabbitai

coderabbitai Bot commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 42f4bd94-b64d-46fd-9d22-29023fdb19a4

📥 Commits

Reviewing files that changed from the base of the PR and between 3dc82e6 and 7d47fe1.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (3)
  • packages/dashboard/app/types/html2canvas.d.ts
  • packages/dashboard/package.json
  • packages/engine/src/__tests__/executor-soft-delete-guard.test.ts
🚧 Files skipped from review as they are similar to previous changes (1)
  • packages/engine/src/tests/executor-soft-delete-guard.test.ts

📝 Walkthrough

Walkthrough

Test mocks now cover verification-request APIs and additional dashboard icons. The Grok process-lifecycle test is excluded from Vitest and added to the quarantine ledger. The dashboard adds html2canvas and declares its supported TypeScript module interface.

Changes

Test Harness Compatibility

Layer / File(s) Summary
Test mock coverage
packages/dashboard/app/components/__tests__/TaskDetailModal.test-helpers.ts, packages/engine/src/__tests__/*executor*
Dashboard icon mocks include NativeStructurePreview dependencies, and executor store mocks provide verification-request lifecycle methods.

Test Quarantine

Layer / File(s) Summary
Process-lifecycle quarantine
plugins/fusion-plugin-grok-runtime/vitest.config.ts, scripts/lib/test-quarantine.json
The Grok process-lifecycle test is excluded from Vitest and recorded in the quarantine ledger; an existing quarantine reason is updated.

Dashboard html2canvas Support

Layer / File(s) Summary
html2canvas dependency and typings
packages/dashboard/package.json, packages/dashboard/app/types/html2canvas.d.ts
The dashboard adds html2canvas version 1.4.1 and declares its options and default function signature.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Possibly related PRs

Suggested reviewers: aronprins

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title is specific and matches the main theme of restoring full-suite test compatibility via verification-request and mock fixes.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/main-full-suite-tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@greptile-apps

greptile-apps Bot commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR restores green full-suite CI shards by addressing three independent root causes: missing getTaskVerificationRequest* stubs in both the shared createMockStore() and the soft-delete guard's local store, missing lucide icon mocks for NativeStructurePreview, and a 15s-bound stress test in the grok-runtime plugin quarantined per the AGENTS.md flaky-test ratchet.

  • Executor stubs: All four verification-request methods (getTaskVerificationRequestAsync, claimTaskVerificationRequest, finishTaskVerificationRequest, createTaskVerificationRequest) are now consistently added to both createMockStore() in executor-test-helpers.ts and the inline createStore() in executor-soft-delete-guard.test.ts.
  • Lucide mock gap: Five icons required by NativeStructurePreview (Map, Lightbulb, BarChart3, Target, CircleAlert) are added to the shared TaskDetailModal mock; the accompanying html2canvas ambient declaration and dependency add resolve a separate TS2307 on CI.
  • Quarantine: process-lifecycle.test.ts is excluded from the grok-runtime vitest config with a matching JSON ledger entry (run ID, reason, quarantinedAt), fully satisfying the AGENTS.md quarantine protocol.

Confidence Score: 5/5

Safe to merge — all changes are test infrastructure fixes with one incidental lock-file peer-resolution shift worth a quick confirmation.

The executor stub additions are consistent between the shared helper and the inline store, the lucide mock additions are correctly scoped to the shared helper file, and the grok-runtime quarantine satisfies the full AGENTS.md protocol. The only noteworthy item is the zod@3→4 peer-resolution shift in pnpm-lock.yaml that is unrelated to any of the described changes.

pnpm-lock.yaml — the zod peer-resolution shift for @earendil-works and @modelcontextprotocol/sdk packages should be confirmed as intentional.

Important Files Changed

Filename Overview
packages/engine/src/tests/executor-test-helpers.ts Adds four task-verification-request stubs to createMockStore() so execute() paths no longer throw "is not a function" under full-suite load
packages/engine/src/tests/executor-soft-delete-guard.test.ts Local createStore() now mirrors createMockStore() with all four verification-request stubs; previously missing createTaskVerificationRequest has been added
packages/dashboard/app/components/tests/TaskDetailModal.test-helpers.ts Adds five missing lucide icons (Map, Lightbulb, BarChart3, Target, CircleAlert) required by NativeStructurePreview to the shared mock, fixing import-time failures across all TaskDetailModal suites
plugins/fusion-plugin-grok-runtime/vitest.config.ts Quarantines process-lifecycle.test.ts via exclude per AGENTS.md; ledger entry in test-quarantine.json is present and mirrors this exclusion
scripts/lib/test-quarantine.json Adds process-lifecycle quarantine entry with run ID, reason, and quarantinedAt date; also corrects an em-dash encoding in an existing entry
packages/dashboard/app/types/html2canvas.d.ts New ambient module declaration for html2canvas resolving TS2307 on CI; intentionally omits the catch-all index signature to preserve typo detection
packages/dashboard/package.json Pins html2canvas at 1.4.1 as an explicit dependency for the ReportPipeline screenshot feature
pnpm-lock.yaml Adds html2canvas and its transitive dependencies; also shifts @earendil-works and @modelcontextprotocol/sdk peer-dependency resolution from zod@3.25.76 to zod@4.3.6, which is unrelated to the stated changes

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A["execute() called"] --> B["getAgentLogCount stub"]
    B --> C{"task.deletedAt?"}
    C -->|yes| D["warn + release lock — returns early"]
    C -->|no| E["getTaskVerificationRequestAsync stub"]
    E --> F{"pending request?"}
    F -->|"null (default)"| G["normal execution path"]
    F -->|"non-null"| H["claimTaskVerificationRequest stub"]
    H --> I["finishTaskVerificationRequest stub"]
    I --> G
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
    A["execute() called"] --> B["getAgentLogCount stub"]
    B --> C{"task.deletedAt?"}
    C -->|yes| D["warn + release lock — returns early"]
    C -->|no| E["getTaskVerificationRequestAsync stub"]
    E --> F{"pending request?"}
    F -->|"null (default)"| G["normal execution path"]
    F -->|"non-null"| H["claimTaskVerificationRequest stub"]
    H --> I["finishTaskVerificationRequest stub"]
    I --> G
Loading

Reviews (2): Last reviewed commit: "fix(FN-ci): html2canvas ambient types + ..." | Re-trigger Greptile

Comment thread packages/engine/src/__tests__/executor-soft-delete-guard.test.ts
@gsxdsm

gsxdsm commented Jul 19, 2026

Copy link
Copy Markdown
Collaborator Author

Automated fix: ambient html2canvas types for typecheck + createTaskVerificationRequest stub.

@gsxdsm
gsxdsm merged commit 845d82e into main Jul 19, 2026
7 checks passed
@gsxdsm
gsxdsm deleted the fix/main-full-suite-tests branch July 19, 2026 16:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant