mirror of
https://github.com/stablyai/orca.git
synced 2026-10-18 16:03:17 +00:00
* fix(mobile): avoid SF Mono fallback on iOS terminal * test(mobile): cover touch iPadOS terminal font fallback * refactor(mobile): share terminal font fallback tail across platforms Dedup the identical fallback chain that the iOS/non-iOS branches each repeated so the two platforms can only differ in the lead family and cannot silently drift. Make the regression tests behavioral: assert the resolved chain always terminates in the generic monospace (the real iOS bug) and that both platforms share an identical tail. Co-authored-by: Orca <help@stably.ai> * test(mobile): anchor font-block extraction on font markers only The VM-slice end boundary was an unrelated text-scale comment; re-anchor it on the terminalFontFamily declaration so edits below the font block cannot break the extraction. Co-authored-by: Orca <help@stably.ai> * chore(mobile): bump terminal-webview-html max-lines ratchet to match file size The iOS-safe font selection block adds a few code lines to terminal-webview-html.ts, pushing it to 1784. Bump the grandfathered per-file ratchet to match, consistent with prior ratchet bumps. Co-authored-by: Orca <help@stably.ai> --------- Co-authored-by: Neil <4138956+nwparker@users.noreply.github.com> Co-authored-by: Orca <help@stably.ai>
140 lines
4.1 KiB
JSON
140 lines
4.1 KiB
JSON
{
|
|
"$schema": "./node_modules/oxlint/configuration_schema.json",
|
|
"extends": ["../.oxlintrc.json"],
|
|
"ignorePatterns": ["src/terminal/terminal-webview-engine.generated.ts"],
|
|
"rules": {
|
|
"react-hooks/exhaustive-deps": "off",
|
|
"react/no-unescaped-entities": "off",
|
|
"typescript/array-type": "off",
|
|
"typescript/consistent-type-definitions": "off",
|
|
"typescript/consistent-type-imports": "off",
|
|
"prefer-template": "off",
|
|
"no-useless-return": "off",
|
|
"unicorn/prefer-at": "off",
|
|
"unicorn/prefer-ternary": "off",
|
|
"unicorn/prefer-node-protocol": "off"
|
|
},
|
|
"overrides": [
|
|
{
|
|
"files": ["app/h/*/tasks.tsx"],
|
|
"rules": {
|
|
"max-lines": ["error", { "max": 14682, "skipBlankLines": true, "skipComments": true }]
|
|
}
|
|
},
|
|
{
|
|
"files": ["app/h/*/session/*.tsx"],
|
|
"rules": {
|
|
"max-lines": ["error", { "max": 5015, "skipBlankLines": true, "skipComments": true }]
|
|
}
|
|
},
|
|
{
|
|
"files": ["src/terminal/TerminalWebView.tsx"],
|
|
"rules": {
|
|
"max-lines": ["error", { "max": 379, "skipBlankLines": true, "skipComments": true }]
|
|
}
|
|
},
|
|
{
|
|
"files": ["src/terminal/terminal-webview-html.ts"],
|
|
"rules": {
|
|
"max-lines": ["error", { "max": 1784, "skipBlankLines": true, "skipComments": true }]
|
|
}
|
|
},
|
|
{
|
|
"files": ["app/h/*/source-control/*.tsx"],
|
|
"rules": {
|
|
"max-lines": ["error", { "max": 2152, "skipBlankLines": true, "skipComments": true }]
|
|
}
|
|
},
|
|
{
|
|
"files": ["app/h/*/index.tsx"],
|
|
"rules": {
|
|
"max-lines": ["error", { "max": 1603, "skipBlankLines": true, "skipComments": true }]
|
|
}
|
|
},
|
|
{
|
|
"files": ["src/browser/MobileBrowserPane.tsx"],
|
|
"rules": {
|
|
"max-lines": ["error", { "max": 1594, "skipBlankLines": true, "skipComments": true }]
|
|
}
|
|
},
|
|
{
|
|
"files": ["app/index.tsx"],
|
|
"rules": {
|
|
"max-lines": ["error", { "max": 1422, "skipBlankLines": true, "skipComments": true }]
|
|
}
|
|
},
|
|
{
|
|
"files": ["src/components/NewWorktreeModal.tsx"],
|
|
"rules": {
|
|
"max-lines": ["error", { "max": 1263, "skipBlankLines": true, "skipComments": true }]
|
|
}
|
|
},
|
|
{
|
|
"files": ["src/transport/rpc-client.ts"],
|
|
"rules": {
|
|
"max-lines": ["error", { "max": 1074, "skipBlankLines": true, "skipComments": true }]
|
|
}
|
|
},
|
|
{
|
|
"files": ["src/components/mobile-rich-markdown-editor-html.ts"],
|
|
"rules": {
|
|
"max-lines": ["error", { "max": 648, "skipBlankLines": true, "skipComments": true }]
|
|
}
|
|
},
|
|
{
|
|
"files": ["src/components/CustomKeyModal.tsx"],
|
|
"rules": {
|
|
"max-lines": ["error", { "max": 645, "skipBlankLines": true, "skipComments": true }]
|
|
}
|
|
},
|
|
{
|
|
"files": ["app/pair-scan.tsx"],
|
|
"rules": {
|
|
"max-lines": ["error", { "max": 531, "skipBlankLines": true, "skipComments": true }]
|
|
}
|
|
},
|
|
{
|
|
"files": ["app/terminal-settings.tsx"],
|
|
"rules": {
|
|
"max-lines": ["error", { "max": 514, "skipBlankLines": true, "skipComments": true }]
|
|
}
|
|
},
|
|
{
|
|
"files": ["scripts/mock-server.ts"],
|
|
"rules": {
|
|
"max-lines": ["error", { "max": 407, "skipBlankLines": true, "skipComments": true }]
|
|
}
|
|
},
|
|
{
|
|
"files": ["src/terminal/terminal-accessory-keys.ts"],
|
|
"rules": {
|
|
"max-lines": ["error", { "max": 388, "skipBlankLines": true, "skipComments": true }]
|
|
}
|
|
},
|
|
{
|
|
"files": ["app/troubleshoot.tsx"],
|
|
"rules": {
|
|
"max-lines": ["error", { "max": 436, "skipBlankLines": true, "skipComments": true }]
|
|
}
|
|
},
|
|
{
|
|
"files": ["scripts/repro-worktree-startup-stream.ts"],
|
|
"rules": {
|
|
"max-lines": ["error", { "max": 326, "skipBlankLines": true, "skipComments": true }]
|
|
}
|
|
},
|
|
{
|
|
"files": ["scripts/repro-terminal-colors.ts"],
|
|
"rules": {
|
|
"max-lines": ["error", { "max": 319, "skipBlankLines": true, "skipComments": true }]
|
|
}
|
|
},
|
|
{
|
|
"files": ["app/h/*/files/*.tsx"],
|
|
"rules": {
|
|
"max-lines": ["error", { "max": 402, "skipBlankLines": true, "skipComments": true }]
|
|
}
|
|
}
|
|
]
|
|
}
|