Mohamed Boudra
6b97e49c19
chore(lint): memoize inline styles in dropdown-menu
2026-04-24 02:29:54 +07:00
Mohamed Boudra
ce51fa79ba
chore(lint): extract SplitGroupChild to memoize inline styles
2026-04-24 02:27:41 +07:00
Mohamed Boudra
b2286aa307
chore(lint): memoize inline styles in combobox
2026-04-24 02:25:52 +07:00
Mohamed Boudra
c793e5ae52
chore(lint): hoist constant style arrays in desktop-updates-section
2026-04-24 02:24:16 +07:00
Mohamed Boudra
727df24f59
chore(lint): memoize inline styles in workspace-desktop-tabs-row
2026-04-24 02:23:06 +07:00
Mohamed Boudra
1db1689532
chore(lint): memoize inline styles in workspace-screen
2026-04-24 02:21:02 +07:00
Mohamed Boudra
5b420dbfdb
chore(lint): fix typecheck errors from hoisting refactors
...
- pair-scan: type BARCODE_SCANNER_SETTINGS as BarcodeSettings
- explorer-sidebar: add missing desktopSidebarStyle useMemo
- sidebar-workspace-list: coerce null dotColor to transparent
- menu-header, e2e.test: formatting
2026-04-24 02:17:56 +07:00
Mohamed Boudra
edd92acb3d
chore(lint): memoize inline styles in agent-list
2026-04-24 02:13:09 +07:00
Mohamed Boudra
6f8f378732
chore(lint): memoize mobile sidebar styles in explorer-sidebar
2026-04-24 02:11:39 +07:00
Mohamed Boudra
18262a0899
chore(lint): memoize inline styles in explorer-sidebar
2026-04-24 02:10:50 +07:00
Mohamed Boudra
4dfcc426b6
chore(lint): memoize inline styles in context-menu
2026-04-24 02:08:15 +07:00
Mohamed Boudra
b0fdeea505
chore(lint): memoize inline styles in command-center
2026-04-24 02:06:30 +07:00
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
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
f9a6287423
chore(lint): flatten nested ternaries in host-runtime/host-page/providers
2026-04-24 01:52:34 +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
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
01338d2a55
chore(lint): hoist/memoize inline arrays and objects in app JSX
2026-04-24 01:41:00 +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
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
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
55baa53e0b
fix(types): add index signatures for Record assignability
2026-04-23 23:44:24 +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
e249649656
chore(lint): hoist inline arrays in app (jsx-no-new-array-as-prop)
2026-04-23 23:20:40 +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
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
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
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
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
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
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
Mohamed Boudra
e521e1f79d
chore(release): cut 0.1.62
2026-04-23 20:28:53 +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
8cc7e8951c
chore(release): cut 0.1.61
2026-04-23 06:33:09 +07:00
Mohamed Boudra
ce6393a933
fix(app): avoid hashing image preview payloads
2026-04-22 23:15:28 +07:00