Commit Graph

252 Commits

Author SHA1 Message Date
src-opn
d5459798b2 chore: bump version to 0.11.203 2026-04-07 10:49:19 -07:00
Source Open
87a543df69 fix(den): validate TypeIDs and refine OpenAPI docs (#1376)
* fix(den): validate TypeIDs in API schemas

Use the shared TypeID utility in den-api request and response schemas so invalid IDs are rejected consistently and Swagger documents the expected prefixes. Keep the API docs aligned with the live validation rules used by the app.

* docs(den): refine OpenAPI route visibility

Hide internal and sensitive Den routes from Swagger so the published docs stay focused on public workflows. Clarify route tags and permission descriptions so ownership and workspace-admin requirements are easier to understand.

---------

Co-authored-by: src-opn <src-opn@users.noreply.github.com>
2026-04-06 17:38:20 -07:00
Source Open
d9e5a33e62 feat(den): document den-api with OpenAPI (#1371)
Generate an OpenAPI spec and Swagger UI from den-api's existing Hono and zod validators so the API stays self-describing. Add route metadata, typed responses, and hide API key creation endpoints from production docs.

Co-authored-by: src-opn <src-opn@users.noreply.github.com>
2026-04-06 13:48:10 -07:00
Source Open
4f1905882b feat(den): add org API key auth and management (#1368)
* feat(den): add org API key auth and management

Let org owners and admins manage named API keys while keeping keys scoped to the issuing member and org. Reuse existing org middleware so API-key-backed requests behave like normal user actions across Den routes.

* fix(den): polish API key creation flow

Avoid duplicating the visible key prefix in the table preview and make key creation an explicit one-time reveal flow. Show the create form only after the user asks for a new key, then replace it with the copyable secret after issuance.

* fix(den): simplify API key table UI

Remove rate-limit details from the Den web API keys screen and keep the page focused on naming, reveal, and deletion. Leave the generated next-env types file out of the commit.

---------

Co-authored-by: src-opn <src-opn@users.noreply.github.com>
2026-04-06 11:35:33 -07:00
ben
b3afb8a176 fix(app): keep React session transcript stable across switches (#1365)
* feat(app): add React markdown and transcript parity

Render React session messages with a proper markdown stack, Solid-style user and assistant layouts, and structured tool-call cards so the React path matches the existing transcript experience more closely.

* feat(app): drive React sessions through useChat streaming

Move the React session path to a custom useChat transport backed by the existing OpenCode event stream so transcript state, sending, and streaming are owned by React instead of snapshot polling.

* fix(app): remount React session island per chat

Reset the React session surface when the workspace or session changes so an in-flight useChat stream from one chat cannot continue writing into another chat after a switch.

* fix(app): scope React stream deltas to one session

Reject message.part.delta updates that do not belong to the active session so concurrent OpenCode event streams cannot interleave transcript text across chats in the React session surface.

* fix(app): cache React transcript state per session

Persist streamed UI messages in TanStack query cache per workspace/session so revisiting a running chat shows the last known partial transcript instead of starting empty on remount.

* feat(app): keep React session state in shared sync cache

Move React session transcript ownership out of the mounted chat view by sharing one query client across islands and applying workspace event updates into per-session query cache, mirroring the global sync pattern used by OpenCode.

* fix(app): keep React session sync alive across chat switches

Mount the workspace-scoped React session sync above the per-chat session island so switching chats no longer tears down the event subscription that keeps transcript state updating in the background.

* Revert "fix(app): keep React session sync alive across chat switches"

This reverts commit 15f37a09c1.

* Revert "feat(app): keep React session state in shared sync cache"

This reverts commit 49df59d6ef.

* fix(app): keep React session streams alive across switches

Move React session streaming state into a shared app-level runtime backed by one query client and a workspace-scoped event sync reducer so leaving and returning to a running session restores the current transcript instead of showing an empty pane or leaking between chats.

* fix(app): preserve beginning of streamed text across session switches

Create text parts on first delta arrival instead of silently dropping deltas that arrive before the part shell exists, and ensure the message shell is present before appending any delta. This fixes the bug where switching away from a streaming session and coming back would show only later lines, missing the beginning of the response.

* fix(app): preserve streamed text when re-selecting a busy session

When switching back to a session that is still streaming, the server snapshot returns empty text for in-progress parts. The reconcile call in selectSession was overwriting the locally accumulated text with that empty snapshot. Now both the Solid and React paths preserve the longer local text when the session status is busy.
2026-04-06 08:13:05 -07:00
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
src-opn
ff981742bb chore: bump version to 0.11.202 2026-04-04 13:13:29 -07:00
vercel[bot]
0864d81544 Fix React Server Components CVE vulnerabilities (#1314)
Updated dependencies to fix Next.js and React CVE vulnerabilities.

The fix-react2shell-next tool automatically updated the following packages to their secure versions:
- next
- react-server-dom-webpack
- react-server-dom-parcel  
- react-server-dom-turbopack

All package.json files have been scanned and vulnerable versions have been patched to the correct fixed versions based on the official React advisory.

Co-authored-by: Vercel <vercel[bot]@users.noreply.github.com>
2026-04-04 00:07:34 -06:00
Benjamin Shafii
15725dfb31 chore: bump version to 0.11.201 2026-04-03 18:28:44 -07:00
Benjamin Shafii
548a03b616 fix(app): devtools, session load churn, and stream batch flicker
- Add solid-devtools Vite plugin with locator (jsx/component locations) and
  @solid-devtools/overlay, loaded before render in dev only.
- Treat baseline message fetch as complete for empty transcripts so
  ensureSessionLoaded does not refetch on every prefetch/subagent ensure.
- When streaming delivers the first rows while non-idle, sync the batched
  message list immediately so the blueprint empty state does not flash.

Made-with: Cursor
2026-04-03 18:13:49 -07:00
Source Open
780bbaa9f9 fix(den): parse skill frontmatter when saving skills (#1308)
* fix(den): parse skill frontmatter when saving skills

Keep the full SKILL.md payload in the database, derive title and description from frontmatter, and require a frontmatter name in the API. Also include shared packages in the Den web Docker image so the upload flow can be verified end to end.

* fix(den-web): transpile shared utils package

Include @openwork-ee/utils in Next's transpilePackages list so the client skill editor resolves the shared frontmatter helpers during production builds.

* fix(den-web): keep skill parsing local to the app

Move the client-side skill markdown parser into the Den web app so production builds do not depend on resolving a workspace package boundary from a client component.

* refactor(den): share skill frontmatter parsing via utils

Make Den web and Den API both depend on @openwork-ee/utils for skill frontmatter parsing, refresh the workspace lockfile, and keep the Den web build wiring explicit for CI and Docker.

* fix(den-web): build Den from the monorepo root on Vercel

Keep the shared utils package setup, but make Vercel install and build from the repo root so workspace dependencies like @openwork-ee/utils are always available when Den web deploys from its app subdirectory.

* docs(den-web): keep Vercel workspace settings in the dashboard

Remove the app-level Vercel command override from the repo and document the monorepo install/build settings for the dashboard instead.

---------

Co-authored-by: src-opn <src-opn@users.noreply.github.com>
2026-04-03 11:44:02 -07:00
Benjamin Shafii
5cc7bbdd87 chore: bump version to 0.11.200 2026-04-03 07:51:45 -07:00
Benjamin Shafii
4a3e43e597 chore: bump version to 0.11.199 2026-04-01 18:48:35 -07:00
Source Open
c1e12a41fb feat(ui): add shared seeded paper gradients (#1288)
* feat(ui): add shared seeded paper gradients

Centralize the Paper mesh and grain wrappers so React and Solid apps can reuse the same deterministic seed-based visuals without repeating shader config. Add a standalone demo surface and update existing consumers so the shared package is easier to validate and evolve.

* fix(ui): resolve shared package from source

Point the shared UI package exports at source files so Next builds do not depend on a prebuilt dist directory. Add Next transpilation for @openwork/ui in Landing and Den Web so monorepo and Vercel builds resolve the package consistently.

---------

Co-authored-by: src-opn <src-opn@users.noreply.github.com>
2026-04-01 18:14:14 -07:00
Source Open
4caf178048 feat(den): add skill hubs and restore den-db migrations (#1285)
* feat(den-db): add skill hub schema and own migrations

* feat(den-api): add skill hub org routes

* fix(den-db): restore drizzle migration workflow

Move the Docker Den service onto den-api and repair den-db's Drizzle metadata so skill hub migrations generate incrementally from the package.

* refactor(den-db): drop legacy org table aliases

---------

Co-authored-by: src-opn <src-opn@users.noreply.github.com>
2026-04-01 15:23:39 -07:00
Source Open
0bc2f91e86 feat(den-api): migrate den controller to hono (#1269)
* feat(den-api): migrate den controller to hono

* fix(den-api): align worker listing with current build setup

* fix(den-api): avoid duplicate org role seeding

---------

Co-authored-by: src-opn <src-opn@users.noreply.github.com>
2026-04-01 11:20:02 -07:00
Benjamin Shafii
0d93d5d7a7 Revert "feat(session): render streamed file mentions as cards"
This reverts commit ed20f1c4b3.
2026-03-31 18:14:32 -07:00
Benjamin Shafii
25a508d7bd feat(session): render streamed file mentions as cards
Break assistant text into stable blocks so streaming stays responsive and tool-created files surface as openable transcript cards instead of getting buried in prose.
2026-03-31 18:14:31 -07:00
Source Open
0916648130 refactor(den-db): split schema modules and use tsup (#1264)
Break the Den DB schema into domain entrypoints and switch EE package builds to tsup so workspace development can resolve TypeScript sources directly without typeid proxy shims.

Co-authored-by: src-opn <src-opn@users.noreply.github.com>
2026-03-31 16:41:23 -07:00
Benjamin Shafii
761796fd33 chore: bump version to 0.11.198 2026-03-30 22:30:04 -07:00
Benjamin Shafii
020d763667 chore: bump version to 0.11.197 2026-03-30 21:50:48 -07:00
Benjamin Shafii
663e357b00 chore: bump version to 0.11.196 2026-03-30 13:56:06 -07:00
src-opn
9d5b14b4f4 chore: bump version to 0.11.195 2026-03-27 14:29:11 -07:00
Benjamin Shafii
986309bb08 push 2026-03-26 23:31:58 -07:00
ben
f3edfd7b38 fix(den): refresh onboarding flow on next 15 (#1191)
* fix(den): refresh onboarding flow on next 15

* fix(den): revert the checkout visual refresh
2026-03-26 23:23:06 -07:00
Benjamin Shafii
851424b70b fix(den): tighten workspace pages to match the new mock 2026-03-26 22:49:37 -07:00
Benjamin Shafii
0f056df8f0 fix(den): align dashboard UI with revised design language 2026-03-26 22:23:53 -07:00
src-opn
41d93e2ece chore: bump version to 0.11.194 2026-03-26 13:15:32 -07:00
Source Open
4e63d6898e feat(den): simplify local dev and sandbox dashboard (#1181)
Run Den controller, web, and worker proxy through a root dev:den-local workflow backed by Turbo and auto-managed local MySQL. Restore the background agents tab to show real sandboxes, add manual sandbox creation, stop auto-launching sandboxes on signup, and move Billing lower in the sidebar.

Co-authored-by: src-opn <src-opn@users.noreply.github.com>
2026-03-26 13:02:56 -07:00
Benjamin Shafii
da74ba9a75 chore: bump version to 0.11.193 2026-03-25 21:53:12 -07:00
Source Open
21d3b443a7 Add Den organizations, org permissions, and template sharing surfaces (#1172)
* Add Den org auth model and template APIs

Wire Better Auth organizations with TypeId-backed schema and migrations, enforce owner/admin org permissions, and add org-scoped template create/list/delete endpoints. Simplify the Den org dashboard UX and update Docker dev packaging paths for the ee apps/packages layout.

* Add manual-safe org migration SQL

Provide a Vitess-compatible version of the organization migration without statement-breakpoint markers or unsupported IF NOT EXISTS column syntax so operators can run it directly in SQL consoles.

---------

Co-authored-by: src-opn <src-opn@users.noreply.github.com>
2026-03-25 18:30:50 -07:00
Benjamin Shafii
5f30ad2a87 chore: bump version to 0.11.192 2026-03-25 14:56:33 -07:00
Omar McAdam
6c9700ce85 chore: bump version to 0.11.191 2026-03-24 17:34:29 -07:00
Benjamin Shafii
6c22f80018 chore: bump version to 0.11.190 2026-03-24 16:01:42 -07:00
Benjamin Shafii
a7fa0312cf chore: bump version to 0.11.189 2026-03-24 09:39:37 -07:00
Benjamin Shafii
e6141950d7 chore: update pnpm lockfile 2026-03-24 09:35:29 -07:00
Benjamin Shafii
5d1c6a28a2 chore: bump version to 0.11.187 2026-03-24 07:37:58 -07:00
Benjamin Shafii
30737e99a2 chore: bump version to 0.11.186 2026-03-23 22:45:54 -07:00
Omar McAdam
5584dfd652 chore: bump version to 0.11.185 2026-03-23 22:03:43 -07:00
Source Open
24c47f190b fix(den): harden public auth and publishing surfaces (#1128)
* fix(den): harden public auth and publishing surfaces

* fix(den-db): write migrations to den-controller drizzle dir

\
2026-03-23 17:58:15 -07:00
Benjamin Shafii
09204a02ff chore: bump version to 0.11.184 2026-03-23 07:33:50 -07:00
Benjamin Shafii
160198ab94 chore: bump version to 0.11.183 2026-03-22 21:59:34 -07:00
Benjamin Shafii
7a0e31d004 chore: bump version to 0.11.182 2026-03-22 18:18:18 -07:00
Benjamin Shafii
abcfdfc745 chore: bump version to 0.11.181 2026-03-22 09:31:39 -07:00
Jan Carbonell
5f0434568f chore: bump version to 0.11.179 2026-03-21 22:33:09 -07:00
Benjamin Shafii
1cc5360f62 chore: bump version to 0.11.178 2026-03-21 19:37:02 -07:00
ben
ddd2e2bb34 feat: add mocked story-book design gallery (#1069)
* feat(ui): add story-book playground app for mocked UI development

* refactor(ui): slim story-book down to a thin wrapper

* feat(ui): add mocked story-book design gallery

* refactor(story-book): use real session shell panels
2026-03-20 13:33:28 -07:00
Omar McAdam
9603be37d2 chore: bump version to 0.11.177 2026-03-20 13:24:23 -07:00
Omar McAdam
47b6f7e37a chore: bump version to 0.11.176 2026-03-20 12:51:31 -07:00
Benjamin Shafii
da0cd71c7e chore: bump version to 0.11.175 2026-03-19 22:21:17 -07:00