mirror of
https://github.com/nexu-io/open-design.git
synced 2026-10-27 09:51:12 +01:00
The workspace-context pass-through type carried `[key: string]: unknown` on both levels so callers could hand over their richer context object. That is wrong for this case: a TypeScript interface never satisfies an index signature, and `WorkspaceCollabContext` / `WorkspacePermissions` are interfaces, so the very callers it was meant to admit were rejected. `next build` caught it in the Docker image job: Type 'WorkspaceCollabContext' is not assignable to type 'OpenDesignHostWorkspaceContext' … Index signature for type 'string' is missing in type 'WorkspacePermissions'. `pnpm --filter @open-design/web typecheck` had missed it because `tsc -b` is incremental and considered the project up to date; `tsc -b --force` reproduces. A plain structural subset is what this needs — real call sites pass a variable, so excess-property checking never applies. The one place it did apply was the desktop test's inline fixture; hoisting that to a variable keeps the fixture faithfully wide while letting the narrow bridge type stay strict.