Mohamed Boudra
1f4f0c020c
chore(lint): hoist top-level inline arrays in diff-viewer
2026-04-24 02:04:01 +07:00
Mohamed Boudra
243c859709
chore(lint): hoist inline styles/objects in menu-header
2026-04-24 02:03:16 +07:00
Mohamed Boudra
1945c39a3b
chore(lint): hoist inline styles in screen-header
2026-04-24 02:02:16 +07:00
Mohamed Boudra
6c13bd9ab3
chore(lint): hoist SheetBackground combined style
2026-04-24 02:01:18 +07:00
Mohamed Boudra
34258780ec
chore(lint): narrow explicit any in server relay/loader/logger-likes
2026-04-24 01:59:24 +07:00
Mohamed Boudra
c8474385ff
chore(lint): hoist/memoize inline styles in plan-card
...
Extracts markdown rule style arrays into dedicated MarkdownInlineText,
MarkdownListItemContent, and MarkdownParagraph subcomponents that
memoize their own style arrays. Memoizes PlanCard container/title/
description styles.
2026-04-24 01:57:23 +07:00
Mohamed Boudra
0e837fe4f3
chore(lint): hoist inline style arrays in question-form-card
2026-04-24 01:56:23 +07:00
Mohamed Boudra
eb444a2ade
chore(lint): hoist pair-scan inline arrays and objects
...
Extracts corner style arrays and barcode scanner settings to module
scope, memoizes insets-dependent body/helper text styles.
2026-04-24 01:56:01 +07:00
Mohamed Boudra
afa8fc2709
chore(lint): remove useless constructors in server tests
2026-04-24 01:55:12 +07:00
Mohamed Boudra
935f286377
chore(lint): clear desktop warnings to zero
...
Convert polling loops to recursive helpers to avoid no-await-in-loop,
and switch the ws import to the named export so the WebSocket type is
referenced directly.
2026-04-24 01:53:32 +07:00
Mohamed Boudra
f9a6287423
chore(lint): flatten nested ternaries in host-runtime/host-page/providers
2026-04-24 01:52:34 +07:00
Mohamed Boudra
89eac88888
chore(lint): narrow explicit any in misc server files
2026-04-24 01:51:26 +07:00
Mohamed Boudra
6f6e1469c1
chore(lint): flatten nested ternaries in button/volume-meter/autocomplete
2026-04-24 01:50:04 +07:00
Mohamed Boudra
50faf34b9a
fix(server): restore microtask ordering in session message dispatch
...
Converts per-group dispatchers to Promise<void> | undefined. The complexity
refactor broke two tests by inserting extra microtasks between each
dispatcher's await. The new pattern routes synchronously via a nullish-
coalescing chain and awaits only the matching dispatcher's promise.
2026-04-24 01:49:21 +07:00
Mohamed Boudra
405b964d41
chore(lint): hoist dictation-controls inline arrays
2026-04-24 01:47:15 +07:00
Mohamed Boudra
892b9d1ae9
chore(lint): allow css imports in import/no-unassigned-import, hoist host page styles
2026-04-24 01:45:20 +07:00
Mohamed Boudra
0302b5b32e
chore(lint): parallelize more safe awaits in server (no-await-in-loop)
...
- Workspace reconciliation: archive missing workspaces and orphaned
projects concurrently instead of sequentially.
- Directory suggestions: resolve child directory candidates in parallel
before filtering.
2026-04-24 01:44:29 +07:00
Mohamed Boudra
1ffec56bbe
chore(lint): clear website warnings to zero
...
Resolves all 61 oxlint warnings in packages/website/ by hoisting inline
callbacks/JSX, extracting sub-components to satisfy jsx-max-depth, using
stable data-derived keys, adding explicit button types, flattening nested
ternaries, and removing unused code.
2026-04-24 01:42:30 +07:00
Mohamed Boudra
7bef37f458
chore(lint): parallelize safe awaits in server (no-await-in-loop)
...
Converts three sequential `for ... await` loops to `Promise.all`:
- OpenCode: configure MCP servers in parallel
- Sherpa: download model files and ensure multiple models concurrently
- Speech runtime: check required model files across models in parallel
2026-04-24 01:41:59 +07:00
Mohamed Boudra
01338d2a55
chore(lint): hoist/memoize inline arrays and objects in app JSX
2026-04-24 01:41:00 +07:00
Mohamed Boudra
6465edc01f
fix(server): restore microtask ordering in message dispatch and stream event handler
...
The complexity refactor added async dispatcher chains that inserted extra
microtasks before message handlers ran, and wrapped the stream event switch
in an await that fired between emitState and dispatchStream. Two tests
regressed on both counts. Route to the matching dispatcher synchronously
and skip the await when the stream handler has no async work.
2026-04-24 01:39:20 +07:00
Mohamed Boudra
94b6604d7a
chore(lint): parallelize more safe await-in-loop in server
2026-04-24 01:36:39 +07:00
Mohamed Boudra
fe3a9bd833
chore(lint): hoist inline callbacks in app (jsx-no-new-function-as-prop)
...
Finish eliminating jsx-no-new-function-as-prop warnings in
agent-status-bar.tsx and complete refactor of git-diff-pane.tsx
by extracting per-item components and using stable useCallback
handlers.
2026-04-24 01:34:48 +07:00
Mohamed Boudra
cb6987b0a2
chore(lint): parallelize safe await-in-loop in server
2026-04-24 01:33:07 +07:00
Mohamed Boudra
16a48db75b
chore(lint): hoist inline callbacks in app components (jsx-no-new-function-as-prop)
2026-04-24 01:28:12 +07:00
Mohamed Boudra
339fc6b316
chore(lint): reduce cyclomatic complexity in server
2026-04-24 01:24:58 +07:00
Mohamed Boudra
5f620a36d6
chore(lint): hoist inline callbacks in app (jsx-no-new-function-as-prop)
2026-04-24 00:25:02 +07:00
Mohamed Boudra
84571e5309
chore(lint): hoist inline callbacks in app (jsx-no-new-function-as-prop)
...
Work in progress: 30 of 369 warnings fixed across 23 files.
2026-04-24 00:10:24 +07:00
Mohamed Boudra
6f131ad551
chore(lint): extract nested callbacks in server (max-nested-callbacks)
2026-04-23 23:58:58 +07:00
Mohamed Boudra
55baa53e0b
fix(types): add index signatures for Record assignability
2026-04-23 23:44:24 +07:00
Mohamed Boudra
154dcaa479
chore(lint): rename shadowed bindings in server (no-shadow)
...
Rename inner bindings that shadow outer imports or function params:
- Promise executor `resolve` -> `resolvePromise` (shadowed path `resolve`)
- Method params `options` -> `input`/`target`/`update`/`runOptions`/`opts`/`killOptions`
- Misc loop/destructure renames for `workspaceId`, `scriptNames`, `path`, `query`, `taskNotificationItem`
Mechanical change only; no behavior change.
2026-04-23 23:37:47 +07:00
Mohamed Boudra
2230a2a48e
chore(lint): format keyboard-shortcuts-section
2026-04-23 23:36:34 +07:00
Mohamed Boudra
78f82b1e82
chore(lint): hoist inline arrays in app (jsx-no-new-array-as-prop)
2026-04-23 23:36:04 +07:00
Mohamed Boudra
d1932c9060
chore(lint): hoist inline arrays in app (jsx-no-new-array-as-prop)
2026-04-23 23:31:39 +07:00
Mohamed Boudra
de1a7ef74b
chore(lint): clean up desktop and highlight packages
2026-04-23 23:27:15 +07:00
Mohamed Boudra
e249649656
chore(lint): hoist inline arrays in app (jsx-no-new-array-as-prop)
2026-04-23 23:20:40 +07:00
Mohamed Boudra
6f6c8a607c
fix(types): restore Record assignability after type->interface autofix
2026-04-23 23:15:47 +07:00
Mohamed Boudra
5a78561dc8
chore(lint): hoist inline arrays in app (jsx-no-new-array-as-prop)
2026-04-23 23:15:11 +07:00
Mohamed Boudra
8852d62cef
chore(lint): escape entities and hoist inline objects in website
2026-04-23 23:15:01 +07:00
Mohamed Boudra
9715df9385
chore(lint): flatten nested ternaries in server (no-nested-ternary)
2026-04-23 23:12:35 +07:00
Mohamed Boudra
dffd8c4343
chore(lint): clean up cli package warnings
2026-04-23 23:12:13 +07:00
Mohamed Boudra
31f1484150
chore(lint): clean up relay package warnings
2026-04-23 23:07:32 +07:00
Mohamed Boudra
106249c632
chore(lint): convert type aliases to interfaces (autofix)
...
- Remove no-use-before-define rule (conflicts with unistyles ordering)
- Add typescript/consistent-type-definitions: interface
- Run oxlint --fix: 606 type->interface conversions across 268 files
Typecheck green. Warnings: 5432 -> 3787 (-1645).
2026-04-23 22:59:49 +07:00
Mohamed Boudra
7aaca4ec8d
chore(lint): use Set for LOG_FORMATS membership check
2026-04-23 22:46:32 +07:00
Mohamed Boudra
5b2f3fd830
chore: fix unresolved imports and tighten knip cross-workspace entries
...
Delete orphaned voice-mcp-agent-smoke.ts (voice-mcp-bridge was removed
in cff41d78 ). Fix model-catalog.e2e.test.ts import path. Extend knip
server entries to cover shared/client cross-workspace imports.
2026-04-23 22:41:27 +07:00
Mohamed Boudra
2dd8c27573
chore: delete unused files flagged by knip
...
38 files removed across app and server (verified unreferenced via
grep + typecheck). Includes dead components, hooks, stores, utils,
POC scripts, an empty orchestrator stub, stale playwright configs,
and a duplicate workspace-registry test-helpers module.
knip config tightened: added babel.config.js, native platform
extensions, and test-stubs/ to app entry patterns.
2026-04-23 22:29:49 +07:00
github-actions[bot]
dc92863c35
fix: update lockfile signatures and Nix hash
2026-04-23 15:26:07 +00:00
Mohamed Boudra
ba9ed8b995
chore: remove unused deps and declare missing ones
...
Knip-driven cleanup across all workspaces:
Removed (verified zero imports):
- root: @anthropic-ai/claude-agent-sdk, @modelcontextprotocol/sdk,
expo, react, react-native, react-dom (duplicates of workspace deps)
- server: @ai-sdk/openai, @deepgram/sdk, express-basic-auth,
fast-uri, mnemonic-id, tiny-invariant, playwright
- app: @expo/vector-icons, @getpaseo/server,
@react-navigation/bottom-tabs, @react-navigation/elements,
base64-js, react-native-css, expo-av, expo-font, expo-symbols,
expo-web-browser, react-native-permissions,
react-native-popover-view, react-native-securerandom
- cli: @getpaseo/relay
- desktop: @getpaseo/cli
- relay: @cloudflare/workers-types
- website: tailwindcss (provided by @tailwindcss/vite)
Declared (previously hoisted, now explicit):
- root: @types/ws, playwright, ws (used by scripts/)
- server: @mariozechner/pi-ai, @mariozechner/pi-agent-core
- app: expo-asset, qrcode, @types/qrcode, tiny-invariant,
@xterm/headless, dotenv, jsdom
- cli: vitest
- desktop: vitest
Also removes the stray `/app.json` (obsolete, overridden by
packages/app/app.config.js).
2026-04-23 22:20:33 +07:00
Mohamed Boudra
2f381a76ed
chore: add knip config for unused-code detection
...
Workspace-aware entry points plus ignore lists for script-only tools
and tools knip's binary resolution misses. Adds `npm run knip`.
2026-04-23 22:13:12 +07:00
Mohamed Boudra
cda3d1d46c
chore: apply oxlint fix-suggestions (unused imports + useless fragments)
...
Scoped to only `no-unused-vars` and `react/jsx-no-useless-fragment` —
the safe subset of --fix-suggestions. Primary changes:
- Remove unused named imports from statements
- Remove unused default/type imports entirely
- Collapse `<><Single/></>` fragments to `<Single/>`
Verified clean: typecheck + format + lint all green.
2026-04-23 21:55:25 +07:00