Type synthetic lint E2E bridge globals in workspace #165

Closed
opened 2026-05-31 11:48:05 +00:00 by steve · 0 comments
Owner

pnpm check:all currently fails in @lapis-notes/workspace#check:svelte due to
implicit any access in packages/workspace/src/lib/e2e/synthetic-lint-bridge.ts.
The bridge writes to custom global keys and accepts an untyped payload callback,
which violates strict type-checking used by Svelte checks.

Problem

Workspace type-checking fails with:

  • Element implicitly has an 'any' type because type 'typeof globalThis' has no index signature
  • Parameter 'payload' implicitly has an 'any' type

in synthetic-lint-bridge.ts.

Goal

Make the synthetic lint bridge fully typed under strict TypeScript and unblock
pnpm check:all.

Scope

  • Update packages/workspace/src/lib/e2e/synthetic-lint-bridge.ts to use an
    explicit typed global host shape.
  • Keep runtime behavior identical; this is a type-safety fix only.

Non-goals

  • No behavior changes to lint diagnostics, editor logic, or e2e flow semantics.
  • No changes to markdown lint tooltip rendering.

Acceptance Criteria

  • pnpm --filter @lapis-notes/workspace check:svelte passes.
  • Repo root pnpm check:all passes for the current working tree.

Implementation Notes

  • Prefer a minimal local cast/helper rather than broad global loosening.
  • Preserve existing DEV gating behavior.

Suggested Files or Specs To Inspect

  • packages/workspace/src/lib/e2e/synthetic-lint-bridge.ts
  • spec/src/30-cross-package-contracts/editor-and-views.md

Validation Commands

  • pnpm --filter @lapis-notes/workspace check:svelte
  • pnpm check:all

Follow-up Tasks

Implementation Summary

Typed workspace synthetic lint E2E bridge global host access with an explicit host shape to remove implicit-any globalThis indexing errors in workspace check:svelte.

`pnpm check:all` currently fails in `@lapis-notes/workspace#check:svelte` due to implicit `any` access in `packages/workspace/src/lib/e2e/synthetic-lint-bridge.ts`. The bridge writes to custom global keys and accepts an untyped payload callback, which violates strict type-checking used by Svelte checks. ## Problem Workspace type-checking fails with: - `Element implicitly has an 'any' type because type 'typeof globalThis' has no index signature` - `Parameter 'payload' implicitly has an 'any' type` in `synthetic-lint-bridge.ts`. ## Goal Make the synthetic lint bridge fully typed under strict TypeScript and unblock `pnpm check:all`. ## Scope - Update `packages/workspace/src/lib/e2e/synthetic-lint-bridge.ts` to use an explicit typed global host shape. - Keep runtime behavior identical; this is a type-safety fix only. ## Non-goals - No behavior changes to lint diagnostics, editor logic, or e2e flow semantics. - No changes to markdown lint tooltip rendering. ## Acceptance Criteria - `pnpm --filter @lapis-notes/workspace check:svelte` passes. - Repo root `pnpm check:all` passes for the current working tree. ## Implementation Notes - Prefer a minimal local cast/helper rather than broad global loosening. - Preserve existing `DEV` gating behavior. ## Suggested Files or Specs To Inspect - `packages/workspace/src/lib/e2e/synthetic-lint-bridge.ts` - `spec/src/30-cross-package-contracts/editor-and-views.md` ## Validation Commands - `pnpm --filter @lapis-notes/workspace check:svelte` - `pnpm check:all` ## Related Issues - Follow-up to #158 — [Hashtag pill synthetic lint screenshot matrix](../closed/158-hashtag-pill-synthetic-lint-screenshot-matrix.md) ## Follow-up Tasks ## Implementation Summary Typed workspace synthetic lint E2E bridge global host access with an explicit host shape to remove implicit-any globalThis indexing errors in workspace check:svelte. <!-- backlog:task_id=TASK-WORKSPACE-SYNTHETIC-LINT-BRIDGE source_spec=spec/src/30-cross-package-contracts/editor-and-views.md related_issue=158 -->
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lapis-notes/lapis#165
No description provided.