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
Mohamed Boudra
731c570b25
fix(types): repair typecheck after oxlint safe autofix
...
The safe --fix introduced three type issues:
1. unicorn/prefer-set-has rewrote array literals to `new Set(...)`
without updating the `T[]` type annotation — broken assignment.
Fix type to `Set<T>` in logger.ts and agent-manager.ts.
2. unicorn/no-array-reverse changed `.reverse()` → `.toReversed()`
(ES2023). Bump `lib` to ES2023 in tsconfig.base.json and
tsconfig.server.json. Target stays at ES2020 — Node 20 supports
the methods natively, no downlevel needed.
3. preserve-caught-error added `new Error(msg, { cause })` (ES2022),
also covered by the lib bump.
2026-04-23 21:55:19 +07:00
Mohamed Boudra
177153e5e8
chore: apply oxlint autofix (safe level)
...
Auto-fixed 102 warnings (6040 → 5938) across 57 files. Main categories:
- preserve-caught-error: add { cause: error } to re-thrown errors
- unicorn/no-array-reverse: .reverse() → .toReversed()
- unicorn/no-useless-fallback-in-spread: drop unnecessary ?? {} in spreads
- oxc/no-map-spread: rewrite object spread in .map() to Object.assign
- react-hooks/exhaustive-deps: trim module-level constants from dep arrays
Ran npm run format after to clean up whitespace from lint mutations.
2026-04-23 21:47:36 +07:00
Mohamed Boudra
9c88850de0
chore: replace biome with oxc (oxfmt + oxlint)
...
- Remove @biomejs/biome from root and packages/expo-two-way-audio
- Delete biome.json
- Add .oxfmtrc.json (migrated from biome via oxfmt --migrate=biome)
- Add .oxlintrc.json with curated rule set: react, react-perf,
react-hooks, typescript, unicorn, oxc, import, promise
- Rules target functional gotchas, untyped code, perf issues,
deep JSX, nested ternaries, complexity, unused code
- Noisy stylistic rules explicitly disabled
- Add npm scripts: lint, lint:fix (oxfmt replaces format/format:check)
- Update CI to run oxfmt --check
Lint is wired up but not enforced — all rules at warn. Baseline:
6040 warnings, 0 errors.
2026-04-23 21:44:56 +07:00
Mohamed Boudra
ce4b0d54c7
chore: reformat codebase with oxfmt
...
Apply prettier-compatible formatting across the repo to match the
incoming oxfmt configuration. Mechanical reformat only — no logic
changes. Covers YAML quote normalization, package.json key sorting,
Markdown/TOML formatting, and minor TS whitespace tweaks.
2026-04-23 21:44:48 +07:00
Mohamed Boudra
9b25f8fc36
Auto-submit iOS builds for App Store review via fastlane
...
Adds a fastlane lane and an EAS Workflow custom job that runs after
submit_ios. Picks up the latest TestFlight build, waits for Apple
processing, and submits for review with auto-release on approval.
Uses ASC_KEY_ID, ASC_ISSUER_ID, ASC_KEY_P8 secrets from the EAS
production environment.
2026-04-23 21:36:35 +07:00
Mohamed Boudra
26e6d97e81
Auto-submit Android to production track
...
Was uploading to internal track as draft, requiring manual release in
Play Console. Now rolls out to 100% on production after Google review.
2026-04-23 21:21:58 +07:00
Mohamed Boudra
80102753e1
Make worktree archive optimistic
2026-04-23 21:16:23 +07:00
github-actions[bot]
75b8ae640c
fix: update lockfile signatures and Nix hash
2026-04-23 13:30:33 +00:00
Mohamed Boudra
e521e1f79d
chore(release): cut 0.1.62
v0.1.62
2026-04-23 20:28:53 +07:00
Mohamed Boudra
a62c7471d2
docs: add 0.1.62 changelog entry
2026-04-23 20:27:40 +07:00
Mohamed Boudra
3edf812578
Fix PR worktree status lookup
2026-04-23 20:10:48 +07:00
Mohamed Boudra
dfc8223bcc
Make workspace git registration nonblocking ( #542 )
2026-04-23 18:21:59 +08:00
Mohamed Boudra
083cd34db4
Merge branch 'scan-cleanup-opportunities'
2026-04-23 15:28:34 +07:00
Mohamed Boudra
9abc0217e9
refactor: extract types and simplify activity grouping
2026-04-23 15:28:25 +07:00
Mohamed Boudra
576cc0b668
Add sidebar callout surface
2026-04-23 15:19:40 +07:00
Mohamed Boudra
e21ef2fc9b
fix: prevent old release website redeploys
2026-04-23 10:17:37 +07:00
Mohamed Boudra
c8b61f7ddc
Show release contributors from synced notes
2026-04-23 09:17:45 +07:00
Mohamed Boudra
9c5974735e
Fix desktop CLI environment boundary
2026-04-23 07:08:24 +07:00
Mohamed Boudra
f65f82bac9
fix(release): keep changelog notes authoritative
2026-04-23 06:43:18 +07:00
github-actions[bot]
9a35f35bab
fix: update lockfile signatures and Nix hash
2026-04-22 23:34:38 +00:00
Mohamed Boudra
8cc7e8951c
chore(release): cut 0.1.61
v0.1.61
2026-04-23 06:33:09 +07:00
Mohamed Boudra
38a41a71ff
docs: promote 0.1.61 changelog
2026-04-23 06:32:11 +07:00
Mohamed Boudra
ce6393a933
fix(app): avoid hashing image preview payloads
2026-04-22 23:15:28 +07:00
github-actions[bot]
339a0b6b43
fix: update lockfile signatures and Nix hash
2026-04-22 15:39:01 +00:00