* 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.
* fix(docs): restore migrated share skill links
Republish the example skill bundles on share.openworklabs.com so the docs point at live imports again, and align share bundle examples with the current publisher host.
* fix(server): use canonical shared bundle data urls
Rebuild trusted share fetch URLs to the share service's canonical /b/:id/data endpoint and cover the path with the live provider-config-helper bundle URL.
Keep server-side share publish and fetch traffic on the configured OpenWork publisher so bundle links cannot steer host requests to arbitrary targets. Add a warning-backed client-side fallback for manual imports from untrusted bundle URLs.
Co-authored-by: src-opn <src-opn@users.noreply.github.com>
Remove client-provided router host and port overrides so OpenWork resolves OpenCodeRouter health and apply requests from trusted server-side config only.
Co-authored-by: src-opn <src-opn@users.noreply.github.com>
Unify bundle naming across share and team-template paths so the shell only wires the flow and workspace bundles describe their portable files consistently.
* Isolate OpenCode dev state and clarify destructive reset
Route dev-mode OpenCode state into a dedicated openwork-dev-data home so local development never touches the default user path. Move the destructive reset to Debug and make it wipe only the current mode's OpenWork and OpenCode state with an explicit irreversible warning.
* Unify managed OpenCode state paths
Keep the supported desktop/orchestrator flow on a single OpenCode state root per mode instead of creating per-workspace directories. This makes dev and production resets target the right shared paths without changing the standard non-dev OpenCode data locations.
---------
Co-authored-by: src-opn <src-opn@users.noreply.github.com>
Materialize first-load template sessions from portable blueprint config and render their seeded messages without copying runtime history. Replace the deeplink template import handoff with a dedicated start-with-template modal that creates a workspace from a chosen folder.
Route template publish/fetch through the OpenWork server so shared setup links carry template files and keep local or remote imports on the same contract.
Keep worker-scoped router health checks and startup wiring aligned so remote workers stop reporting the router as unconfigured. Normalize orchestrator temp-path assertions so router tests stay stable on macOS.
Co-authored-by: Omar McAdam <omar@OpenWork-Studio.localdomain>
* refactor(repo): move OpenWork apps into apps and ee layout
Rebase the monorepo layout migration onto the latest dev changes so the moved app, desktop, share, and cloud surfaces keep working from their new paths. Carry the latest deeplink, token persistence, build, Vercel, and docs updates forward to avoid stale references and broken deploy tooling.
* chore(repo): drop generated desktop artifacts
Ignore the moved Tauri target and sidecar paths so local cargo checks do not pollute the branch. Remove the accidentally committed outputs from the repo while keeping the layout migration intact.
* fix(release): drop built server cli artifact
Stop tracking the locally built apps/server/cli binary so generated server outputs do not leak into commits. Also update the release workflow to check the published scoped package name for @openwork/server before deciding whether npm publish is needed.
* fix(workspace): add stable CLI bin wrappers
Point the server and router package bins at committed wrapper scripts so workspace installs can create shims before dist outputs exist. Keep the wrappers compatible with built binaries and source checkouts to avoid Vercel install warnings without changing runtime behavior.