Files
orca/mobile/.oxlintrc.json
d9e0b9e759 fix(mobile): avoid SF Mono fallback on iOS terminal (#6761)
* 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>
2026-07-03 17:11:24 -07:00

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 }]
}
}
]
}