Files
openwork/apps/app/package.json
ben 9365e7d397 feat(app): add incremental React session path (#1362)
* feat(server): add workspace session read APIs

Expose workspace-scoped session list, detail, message, and snapshot reads so the client can fetch session data without depending on activation choreography.

* feat(app): route mounted session reads through OpenWork APIs

Use the new workspace-scoped session read endpoints for mounted OpenWork clients so the current frontend stops depending on direct session proxy reads for list, detail, message, and todo loading.

* feat(app): add React read-only session transcript

Introduce a feature-gated React island for the session transcript so we can replace the session surface incrementally while keeping the Solid shell intact.

* feat(app): add React session composer surface

Extend the feature-gated React session island to own its draft, prompt send, stop flow, and snapshot polling so the session body can evolve independently from the Solid composer.

* feat(app): add React session transition model

Keep the React session surface stable during session switches by tracking rendered vs intended session state and exposing a developer debug panel for render-source and transition inspection.

* docs(prd): add React migration plan to repo

Copy the incremental React adoption PRD into the OpenWork repo so the migration plan lives next to the implementation and PR branch.

* docs(prd): sync full React migration plan

Replace the shortened repo copy with the full incremental React adoption PRD so the implementation branch and product plan stay in sync.

* feat(desktop): add React session launch modes

Add dedicated Tauri dev and debug-build entrypoints for the React session path and honor a build-time React session flag before local storage so the alternate shell is easy to launch and reproduce.

* fix(app): fall back to legacy mounted session reads

Keep the new app working against older OpenWork servers by falling back to the original mounted OpenCode session reads when the workspace-scoped session read APIs are unavailable.
2026-04-05 16:46:06 -07:00

80 lines
3.1 KiB
JSON

{
"name": "@openwork/app",
"private": true,
"version": "0.11.202",
"type": "module",
"scripts": {
"dev": "OPENWORK_DEV_MODE=1 vite",
"dev:windows": "vite",
"prebuild": "pnpm --dir ../../packages/ui build",
"build": "vite build",
"dev:web": "OPENWORK_DEV_MODE=1 vite",
"prebuild:web": "pnpm --dir ../../packages/ui build",
"build:web": "vite build",
"preview": "vite preview",
"pretypecheck": "pnpm --dir ../../packages/ui build",
"typecheck": "tsc -p tsconfig.json --noEmit",
"test:health": "node scripts/health.mjs",
"test:mention-send": "node scripts/mention-send.mjs",
"test:sessions": "node scripts/sessions.mjs",
"test:refactor": "pnpm typecheck && pnpm test:health && pnpm test:sessions",
"test:events": "node scripts/events.mjs",
"test:todos": "node scripts/todos.mjs",
"test:permissions": "node scripts/permissions.mjs",
"test:dev-log": "bun scripts/dev-log.ts",
"test:session-error-recovery": "bun scripts/session-error-recovery.ts",
"test:session-scope": "bun scripts/session-scope.ts",
"test:session-switch": "node scripts/session-switch.mjs",
"test:fs-engine": "node scripts/fs-engine.mjs",
"test:local-file-path": "node scripts/local-file-path.mjs",
"test:browser-entry": "node scripts/browser-entry.mjs",
"test:e2e": "pnpm test:local-file-path && node scripts/e2e.mjs && node scripts/session-switch.mjs && node scripts/fs-engine.mjs && node scripts/browser-entry.mjs",
"bump:patch": "node scripts/bump-version.mjs patch",
"bump:minor": "node scripts/bump-version.mjs minor",
"bump:major": "node scripts/bump-version.mjs major",
"bump:set": "node scripts/bump-version.mjs --set"
},
"dependencies": {
"@codemirror/commands": "^6.8.0",
"@codemirror/lang-markdown": "^6.3.3",
"@codemirror/language": "^6.11.0",
"@codemirror/state": "^6.5.2",
"@codemirror/view": "^6.38.0",
"@opencode-ai/sdk": "^1.1.31",
"@openwork/ui": "workspace:*",
"@radix-ui/colors": "^3.0.0",
"@solid-primitives/event-bus": "^1.1.2",
"@solid-primitives/storage": "^4.3.3",
"@solidjs/router": "^0.15.4",
"@tanstack/react-query": "^5.90.3",
"@tanstack/solid-virtual": "^3.13.19",
"@tauri-apps/api": "^2.0.0",
"@tauri-apps/plugin-deep-link": "^2.4.7",
"@tauri-apps/plugin-dialog": "~2.6.0",
"@tauri-apps/plugin-http": "~2.5.6",
"@tauri-apps/plugin-opener": "^2.5.3",
"@tauri-apps/plugin-process": "~2.3.1",
"@tauri-apps/plugin-updater": "~2.9.0",
"fuzzysort": "^3.1.0",
"jsonc-parser": "^3.2.1",
"lucide-solid": "^0.562.0",
"marked": "^17.0.1",
"react": "^19.1.1",
"react-dom": "^19.1.1",
"solid-js": "^1.9.0"
},
"devDependencies": {
"@types/react": "^19.2.2",
"@types/react-dom": "^19.2.2",
"@vitejs/plugin-react": "^5.0.4",
"@solid-devtools/overlay": "^0.33.5",
"@tailwindcss/vite": "^4.1.18",
"solid-devtools": "^0.34.5",
"tailwindcss": "^4.1.18",
"typescript": "^5.6.3",
"vite": "^6.0.1",
"vite-plugin-solid": "^2.11.0"
},
"packageManager": "pnpm@10.27.0"
}