mirror of
https://github.com/getpaseo/paseo.git
synced 2026-10-27 11:42:52 +00:00
* fix(app): keep the sidebar alive when a workspace entry has not hydrated (#7896)
ProjectBlock asserted that every placement in a project has an entry in
workspaceEntriesByKey. A retained sidebar that is inactive (compact layout
with the sidebar closed) or still waiting for sessions keeps an empty map,
and Show background stops the project list from being pruned to hydrated
entries. From the eighth workspace on, selectSidebarGroupVisibility asked
for the status of a missing entry and the app crashed on start.
Count a missing entry as Done. It renders no row, so it should not claim a
slot past the limit.
Closes #7869
Co-authored-by: brucey0x <11062155+brucey0x@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit 6bc4b73c42)
* docs(release): add 0.13.1 hotfix notes
* chore(release): cut 0.13.1
---------
Co-authored-by: Budi <11062155+budivoogt@users.noreply.github.com>
Co-authored-by: brucey0x <11062155+brucey0x@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
207 lines
8.6 KiB
JSON
207 lines
8.6 KiB
JSON
{
|
|
"name": "@getpaseo/app",
|
|
"version": "0.13.1",
|
|
"private": true,
|
|
"main": "index.ts",
|
|
"scripts": {
|
|
"start": "npm run start:expo",
|
|
"start:expo": "cross-env APP_VARIANT=development expo start",
|
|
"reset-project": "node ./scripts/reset-project.js",
|
|
"eas-build-post-install": "npm --prefix ../.. run build:app-deps",
|
|
"android": "npm run dev:android",
|
|
"android:development": "npm run dev:android",
|
|
"android:production": "npm --prefix ../.. run build:client && cross-env APP_VARIANT=production expo prebuild --platform android --clean --non-interactive && cross-env APP_VARIANT=production expo run:android --variant=release",
|
|
"android:release": "npm run android:production",
|
|
"android:clear": "node -e \"require('node:fs').rmSync('android', { recursive: true, force: true })\"",
|
|
"ios": "npm run dev:ios",
|
|
"ios:release": "npm --prefix ../.. run build:client && expo run:ios --configuration Release",
|
|
"web": "npm --prefix ../.. run build:client && concurrently --kill-others --names protocol,client,expo --prefix-colors yellow,blue,magenta \"npm --prefix ../.. run watch:protocol\" \"npm --prefix ../.. run watch:client\" \"npm run web:expo\"",
|
|
"web:expo": "expo start --web",
|
|
"lint": "expo lint",
|
|
"typecheck": "tsgo --noEmit",
|
|
"test": "vitest run",
|
|
"test:browser": "vitest run --project browser",
|
|
"test:e2e": "playwright test --project=browser",
|
|
"test:e2e:diff-performance": "cross-env PASEO_DIFF_PERF_E2E=1 playwright test --project=browser e2e/browser/diff-performance.spec.ts",
|
|
"test:e2e:stream-smoothness": "cross-env PASEO_AGENT_STREAM_PERF_E2E=1 playwright test --project=browser e2e/browser/agent-stream-smoothness.spec.ts",
|
|
"test:e2e:real": "cross-env E2E_FORK_PASEO_HOME_FROM=../../.dev/paseo-home playwright test --project=real-provider",
|
|
"test:e2e:relay-deployment": "npm --prefix ../.. run build:server && npm --prefix ../.. run build:daemon-web-ui && cross-env E2E_FORK_PASEO_HOME_FROM=../../.dev/paseo-home playwright test --project=relay-deployment e2e/browser/relay-deployment-reconnect.real.spec.ts",
|
|
"test:e2e:ui": "playwright test --ui",
|
|
"build": "npm run build:web",
|
|
"build:web": "npm --prefix ../.. run build:app-deps && expo export --platform web",
|
|
"profile:composer-typing": "node ./scripts/profile-composer-typing.mjs",
|
|
"profile:explorer-toggle": "node ./scripts/profile-explorer-toggle.mjs",
|
|
"profile:side-pane": "playwright test --config playwright.profile.config.ts side-pane-performance.spec.ts",
|
|
"profile:workspace-switching": "node ./scripts/profile-workspace-switching.mjs",
|
|
"profile:workspace-tabs": "node ./scripts/profile-workspace-tabs.mjs",
|
|
"deploy:web": "npm run build:web && wrangler pages deploy dist --project-name paseo-app --branch main",
|
|
"build:mermaid-runtime": "node ./src/components/markdown/fence/mermaid/build-runtime.mjs",
|
|
"dev:android": "npm --prefix ../.. run build:client && cross-env APP_VARIANT=development expo prebuild --platform android --clean --non-interactive && cross-env APP_VARIANT=development expo run:android --variant=debug",
|
|
"dev:ios": "npm --prefix ../.. run build:client && cross-env APP_VARIANT=development expo run:ios",
|
|
"build:apk": "npm --prefix ../.. run build:apk",
|
|
"build:apk:arm64": "npm --prefix ../.. run build:apk:arm64",
|
|
"test:android": "expo prebuild --platform android --no-install && cd android && ./gradlew :paseo-native-trace:testReleaseUnitTest :react-native-enriched-markdown:testReleaseUnitTest --tests '*InlineCodeFormattingTest' --no-daemon --max-workers=2 -Dorg.gradle.parallel=false"
|
|
},
|
|
"dependencies": {
|
|
"@codemirror/commands": "6.10.4",
|
|
"@codemirror/language": "6.12.4",
|
|
"@codemirror/search": "6.7.1",
|
|
"@codemirror/state": "6.7.1",
|
|
"@codemirror/view": "6.43.6",
|
|
"@dnd-kit/core": "^6.3.1",
|
|
"@dnd-kit/sortable": "^10.0.0",
|
|
"@dnd-kit/utilities": "^3.2.2",
|
|
"@floating-ui/react-native": "^0.10.7",
|
|
"@getpaseo/client": "*",
|
|
"@getpaseo/expo-two-way-audio": "*",
|
|
"@getpaseo/highlight": "*",
|
|
"@getpaseo/plugin": "*",
|
|
"@getpaseo/protocol": "*",
|
|
"@gorhom/bottom-sheet": "^5.2.14",
|
|
"@gorhom/portal": "^1.0.14",
|
|
"@marijn/find-cluster-break": "^1.0.2",
|
|
"@mattermost/react-native-paste-input": "2.0.1",
|
|
"@react-native-async-storage/async-storage": "2.2.0",
|
|
"@react-native-masked-view/masked-view": "0.3.2",
|
|
"@react-native/normalize-colors": "0.86.3",
|
|
"@react-navigation/native": "^7.1.8",
|
|
"@replit/codemirror-vim": "6.3.0",
|
|
"@shopify/react-native-skia": "2.6.2",
|
|
"@tanstack/react-query": "^5.90.11",
|
|
"@tanstack/react-virtual": "^3.13.21",
|
|
"@xterm/addon-clipboard": "^0.3.0-beta.213",
|
|
"@xterm/addon-fit": "^0.12.0-beta.213",
|
|
"@xterm/addon-image": "^0.10.0-beta.213",
|
|
"@xterm/addon-ligatures": "^0.11.0-beta.213",
|
|
"@xterm/addon-search": "^0.17.0-beta.213",
|
|
"@xterm/addon-unicode11": "^0.10.0-beta.213",
|
|
"@xterm/addon-web-links": "^0.13.0-beta.213",
|
|
"@xterm/addon-webgl": "^0.20.0-beta.212",
|
|
"@xterm/xterm": "^6.1.0-beta.213",
|
|
"buffer": "^6.0.3",
|
|
"expo": "~57.0.30",
|
|
"expo-asset": "~57.0.20",
|
|
"expo-audio": "~57.0.5",
|
|
"expo-build-properties": "~57.0.22",
|
|
"expo-camera": "~57.0.6",
|
|
"expo-clipboard": "~57.0.2",
|
|
"expo-constants": "~57.0.22",
|
|
"expo-crypto": "~57.0.4",
|
|
"expo-dev-client": "~57.0.20",
|
|
"expo-document-picker": "~57.0.3",
|
|
"expo-file-system": "~57.0.7",
|
|
"expo-haptics": "~57.0.3",
|
|
"expo-image": "~57.0.5",
|
|
"expo-image-manipulator": "~57.0.21",
|
|
"expo-image-picker": "~57.0.20",
|
|
"expo-keep-awake": "~57.0.2",
|
|
"expo-linking": "~57.0.13",
|
|
"expo-localization": "~57.0.2",
|
|
"expo-notifications": "~57.0.23",
|
|
"expo-router": "~57.0.28",
|
|
"expo-sharing": "~57.0.23",
|
|
"expo-splash-screen": "~57.0.10",
|
|
"expo-sqlite": "~57.0.4",
|
|
"expo-system-ui": "~57.0.4",
|
|
"fast-deep-equal": "^3.1.3",
|
|
"htmlparser2": "^12.0.0",
|
|
"i18next": "^26.3.0",
|
|
"lucide-react-native": "^1.50.0",
|
|
"markdown-it": "^10.0.0",
|
|
"mdast-util-from-markdown": "2.0.3",
|
|
"mdast-util-gfm-table": "^2.0.0",
|
|
"mermaid": "^11.16.0",
|
|
"micromark-extension-gfm-table": "^2.1.2",
|
|
"micromark-util-decode-string": "2.0.1",
|
|
"mnemonic-id": "^3.2.7",
|
|
"qrcode": "^1.5.4",
|
|
"react": "19.2.3",
|
|
"react-dom": "19.2.3",
|
|
"react-freeze": "1.0.4",
|
|
"react-i18next": "^17.0.8",
|
|
"react-native": "0.86.3",
|
|
"react-native-draggable-flatlist": "^4.0.3",
|
|
"react-native-edge-to-edge": "^1.7.0",
|
|
"react-native-enriched-markdown": "1.2.0-nightly-20261014-766fc0e67",
|
|
"react-native-gesture-handler": "~2.32.0",
|
|
"react-native-keyboard-controller": "1.21.12",
|
|
"react-native-nitro-modules": "0.35.5",
|
|
"react-native-reanimated": "4.5.1",
|
|
"react-native-safe-area-context": "~5.7.0",
|
|
"react-native-screens": "~4.26.0",
|
|
"react-native-svg": "15.15.4",
|
|
"react-native-unistyles": "^3.2.4",
|
|
"react-native-web": "~0.21.0",
|
|
"react-native-webview": "13.16.1",
|
|
"react-native-worklets": "0.10.1",
|
|
"tiny-invariant": "^1.3.3",
|
|
"turndown": "^7.2.4",
|
|
"turndown-plugin-gfm": "^1.0.2",
|
|
"use-sync-external-store": "^1.6.0",
|
|
"yaml": "^2.8.4",
|
|
"zod": "^4.4.3",
|
|
"zustand": "^5.0.9"
|
|
},
|
|
"devDependencies": {
|
|
"@playwright/test": "^1.56.1",
|
|
"@testing-library/dom": "^10.4.1",
|
|
"@testing-library/react": "^16.3.2",
|
|
"@types/markdown-it": "^14.1.2",
|
|
"@types/node": "~22.19.0",
|
|
"@types/qrcode": "^1.5.6",
|
|
"@types/react": "~19.2.0",
|
|
"@types/turndown": "^5.0.6",
|
|
"@types/ws": "^8.18.1",
|
|
"@vitest/browser": "^4.1.7",
|
|
"@vitest/browser-playwright": "^4.1.7",
|
|
"@xterm/headless": "^6.1.0-beta.213",
|
|
"babel-preset-expo": "~57.0.16",
|
|
"dotenv": "^17.2.3",
|
|
"eas-cli": "^16.24.1",
|
|
"esbuild": "0.28.1",
|
|
"eslint": "^9.25.0",
|
|
"eslint-config-expo": "~57.0.2",
|
|
"expo-gradle-jvmargs": "^1.1.2",
|
|
"fake-indexeddb": "^6.2.5",
|
|
"jsdom": "^20.0.3",
|
|
"material-icon-theme": "^5.32.0",
|
|
"playwright": "^1.56.1",
|
|
"serve-sim": "^0.1.40",
|
|
"typescript": "~5.9.2",
|
|
"vitest": "^4.1.6",
|
|
"wrangler": "^4.105.0",
|
|
"ws": "^8.20.0"
|
|
},
|
|
"enriched-markdown": {
|
|
"enableMath": false,
|
|
"enableCodeHighlight": true,
|
|
"codeHighlightLanguages": [
|
|
"json",
|
|
"html",
|
|
"css",
|
|
"markdown",
|
|
"yaml",
|
|
"go",
|
|
"java",
|
|
"javascript",
|
|
"python",
|
|
"c",
|
|
"rust",
|
|
"bash",
|
|
"typescript",
|
|
"tsx",
|
|
"cpp",
|
|
"swift",
|
|
"php",
|
|
"ruby",
|
|
"c-sharp"
|
|
],
|
|
"enableVideo": false
|
|
},
|
|
"reanimated": {
|
|
"staticFeatureFlags": {
|
|
"FORCE_REACT_RENDER_FOR_SETTLED_ANIMATIONS": false
|
|
}
|
|
}
|
|
}
|