mirror of
https://github.com/stablyai/orca.git
synced 2026-10-31 00:57:45 +00:00
* fix(mobile): break the transport and terminal-document import cycles and gate them after mobile's install client-context re-exported the host-client hooks, which import client-context back: the re-export barrel is gone and importers (and their test mocks) name host-client-hooks directly. In the terminal document, the cell-metric getters move to a leaf cell-metrics module and select-mode entry/exit to selection-mode, so fit, transform, overlay and range no longer import each other. pr.yml lints imports before mobile's install, when mobile's tsconfig can't load, so Mobile verify now runs the same import rules over mobile after its install with zero warnings allowed. * fix(mobile): the browser-pane render harness imports useHostClient from host-client-hooks Its route source is a template string, so no typecheck saw the removed client-context re-export; the mobile web bundle check did. * fix(ci): the e2e typecheck ratchet counts the same with or without mobile's install Specs reach mobile/src/transport, whose expo-crypto and async-storage imports resolve only after mobile's install and then load React Native's globals (numeric timers, a required NODE_ENV), adding errors in unrelated specs. An empty stub pins both, so the static job reads 232 either way.
32 lines
1.5 KiB
JSON
32 lines
1.5 KiB
JSON
{
|
|
// Ratcheted, not yet clean: tests/ was never typechecked, so the per-file error counts in
|
|
// config/e2e-typecheck-baseline.txt may only go down (check-e2e-typecheck-ratchet.mjs). Run
|
|
// `pnpm typecheck:e2e`, fix a file, prune; when the count reaches zero, add it to `typecheck`.
|
|
"extends": "@electron-toolkit/tsconfig/tsconfig.node.json",
|
|
// Why: specs import renderer and main modules directly, so the ambient declarations those
|
|
// modules rely on (vite client types, build-time defines) have to be in the program too.
|
|
"include": [
|
|
"../tests/**/*.ts",
|
|
"../tests/**/*.tsx",
|
|
"../src/renderer/src/env.d.ts",
|
|
"../src/types/**/*"
|
|
],
|
|
"exclude": ["../tests/e2e/.cross-version-checkouts/**"],
|
|
"compilerOptions": {
|
|
"allowImportingTsExtensions": true,
|
|
// Why: specs run browser code inside page.evaluate, so the DOM lib has to be visible here
|
|
// even though the harness itself is Node.
|
|
"lib": ["ESNext", "DOM", "DOM.Iterable"],
|
|
"types": ["node"],
|
|
"paths": {
|
|
"@renderer/*": ["../src/renderer/src/*"],
|
|
"@/*": ["../src/renderer/src/*"],
|
|
// Why: specs reach mobile/src/transport, whose native imports resolve only once mobile is
|
|
// installed and then load React Native's globals (numeric timers, a required NODE_ENV).
|
|
// An empty stub keeps the error count the same with or without mobile's install.
|
|
"expo-crypto": ["./e2e-typecheck-mobile-native-stub.ts"],
|
|
"@react-native-async-storage/async-storage": ["./e2e-typecheck-mobile-native-stub.ts"]
|
|
}
|
|
}
|
|
}
|