* test(e2e): strengthen reviewed assertions
* test(e2e): tighten types and scope pageerror capture
- markdown-link-persistence: merge compact/full op type into a single
optional-field shape so `in`-based narrowing isn't needed, and add
non-null assertions after `expect(...).not.toBeNull()` so the spec
satisfies e2e tsconfig `strict: true`.
- issue-provider-panel: attach the `pageerror` listener after the panel
is open and detach before the final assertion to avoid attributing
unrelated startup noise to the dialog loop.
- recurring-task: document the prefix contract on
`addTaskWithoutWaitingForTodayList` and why `BasePage.addTask` cannot
be reused for future-dated tasks.
Replace 7 explicit `any` types with proper TypeScript types:
- Error handling: Use type guard pattern for error messages
- Page parameters: Use Playwright's Page type
- Result objects: Use Record<string, unknown> for dynamic objects
This improves IDE autocomplete, type checking, and may surface hidden bugs.
Refactored plugin-iframe tests to be more reliable in CI environment:
- Replaced arbitrary waitForTimeout calls with proper waitFor conditions
- Used Playwright locators instead of page.evaluate() for DOM manipulation
- Added proper state verification using waitForFunction
- Increased timeouts appropriately for CI environment
- Improved error handling for iframe content access
- Made test more resilient to timing variations
These changes make the tests deterministic and reliable across different
environments without relying on fixed wait times.
- Remove all console.log statements from E2E test files
- Replace console.error with throw new Error for proper error handling
- Remove console.warn statements
- Fix unused variable linting errors in plugin tests