Commit Graph

2142 Commits

Author SHA1 Message Date
Johnny Shields
e4d6e5dc80 Cleanup padding/reduce scrolling on landing page (#1281) 2026-04-01 14:02:50 -07:00
Johnny Shields
fd2e287153 feat(i18n): extract en translations — dashboard area (#1248)
* feat(i18n): extract dashboard/workspace/share strings to en.ts (PR1)

- i18n/index.ts: add params interpolation support to t()
- en.ts: add 200+ translation keys for dashboard, workspace, share, den, session areas
- app.tsx: extract import bundle, skill, worker badge strings
- bundles/store.ts: extract shared_setup, skill_added, worker/badge labels
- bundles/skill-destination-modal.tsx: extract "Shared skill" badge
- components/den-settings-panel.tsx: extract all Cloud settings panel strings
- components/workspace-chip.tsx: extract sandbox/remote badge
- components/workspace-right-sidebar.tsx: extract sidebar labels
- workspace/create-workspace-modal.tsx: extract all create workspace modal strings
- workspace/share-workspace-modal.tsx: extract share modal strings
- session/share-workspace.ts: extract share fields/errors/labels
- shell/settings-shell.tsx: extract tab titles, update pill labels, nav labels

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(i18n): second pass — extract remaining hardcoded strings from app.tsx and create-workspace-modal.tsx

- app.tsx: extract ~35 hardcoded error/UI strings to app.* keys
  (auth failed, rate limit, compact errors, deep link messages,
   model behavior copy, skills/plugins access hints, reload labels, etc.)
- create-workspace-modal.tsx: extract 6 remaining strings
  (error_connect_worker, error_create_template, desktop_badge,
   import_config, importing); also support params in translate()
- en.ts: add all new keys under app.* and dashboard.*

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(i18n): apply t() calls to refactored store files

Replace 31 hardcoded English strings across 10 store/context files with
t() calls using the orphaned app.* i18n keys. Covers:
- actions-store.ts: auth, rate-limit, compact, session, command errors
- deep-links.ts: deep link messages and auth/signin errors
- openwork-server-store.ts: audit and remote access errors
- context/session.ts: connection lost, auth errors, session name
- context/providers/store.ts: not-connected, auth, rate-limit errors
- context/global-sync.tsx: unknown error fallback
- context/model-config.ts: model behavior title/desc, opencode.json,
  auto-compact scope errors
- context/workspace.ts: connection failed messages
- lib/model-behavior.ts: model behavior title
- pages/session.tsx: compact empty error

4 keys have no matching strings in the codebase after the rebase
(app.error.sidecar_unsupported_windows, app.error.command_name_template_required,
app.error.workspace_commands_desktop, app.error.command_scope_unknown)
and are left in en.ts per task instructions.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 14:00:59 -07:00
ben
bac168928b feat(debug): capture and export developer logs (#1280)
Developer mode already emitted useful workspace/session/perf logs, but they
mostly lived in the console and only a subset made it into exportable debug
artifacts. That made it hard to collect a clean report from users when chasing
racy workspace bugs.

Add a shared dev-log buffer, feed it from the existing app/workspace/session
and perf debug emitters, surface the log stream in Settings > Debug, and make
it copyable/exportable alongside the existing runtime debug report.
2026-04-01 13:44:36 -07:00
ben
c688fbefb5 fix(session): recover after immediate send failures (#1283) 2026-04-01 13:39:37 -07:00
Source Open
6820933a48 docs(den): deprecate den-controller (#1282)
* docs(den): deprecate den-controller

* docs(den): reference den-api as former controller

---------

Co-authored-by: src-opn <src-opn@users.noreply.github.com>
2026-04-01 11:36:40 -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
GitHub Action
af63132554 ignore: update download stats 2026-04-01 2026-04-01 12:30:24 +00:00
Benjamin Shafii
fc0262bc1f fix(session): stop staging transcript mounts 2026-03-31 19:53:06 -07:00
ben
26a9755334 fix(landing): send cloud nav directly to app (#1270) 2026-03-31 19:47:16 -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
73fabb1650 fix(workspace): reveal shared access tokens reliably 2026-03-31 18:14:32 -07:00
Benjamin Shafii
b292e0f942 chore(evidence): add session flow validation screenshot 2026-03-31 18:14:32 -07:00
Benjamin Shafii
5182106fb8 fix(session): stage transcript mounts around the latest view 2026-03-31 18:14:32 -07:00
Benjamin Shafii
423b05b873 fix(session): warm nearby transcripts before opening 2026-03-31 18:14:32 -07:00
Benjamin Shafii
419769b5bd fix(session): anchor follow scroll to real user gestures 2026-03-31 18:14:32 -07:00
Benjamin Shafii
52eaa3d92d fix(session): clear the previous transcript before switch mount 2026-03-31 18:14:31 -07:00
Benjamin Shafii
0e448856bd fix(session): preserve timeline position when loading history 2026-03-31 18:14:31 -07:00
Benjamin Shafii
eb02530c47 fix(session): stop smooth-animating timeline follow scrolls 2026-03-31 18:14:31 -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
ben
ca971b1dd3 chore: remove opkg CLI integration and dead code (#1268)
- Delete src/opkg.rs (opkg_install + fallback chain) and commands/opkg.rs
- Relocate import_skill from commands/opkg.rs to commands/skills.rs (actively used)
- Remove opkg_install from Tauri handler registration in lib.rs
- Delete dead opkgInstall() from tauri.ts (zero callers)
- Remove apply_augmented_path/augmented_path_env from paths.rs (only consumer was opkg)
- Strip opkg mentions from i18n locale strings (en, zh, ja, vi, pt-BR)
- Remove OpenPackage Notes sections from README.md, README_ZH.md, README_ZH_hk.md
- Update ARCHITECTURE.md: rename OpenPackage Registry to Skill Registry
- Clean up PRD references in openwork-server-ownership-minimal-tauri.md
2026-03-31 18:07:38 -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
ben
eb28ed49ca refactor(workspace): separate selection from activation (#1263)
* refactor(workspace): keep selection separate from activation

* refactor(session): create tasks in an explicit workspace

* refactor(session): address runtime actions by workspace
2026-03-31 16:02:23 -07:00
Benjamin Shafii
a295aca9e9 fix(session): persist drafts per conversation 2026-03-31 14:43:35 -07:00
mintlify[bot]
af7079ebd8 Add Cloud section with introduction and team provisioning docs
Mintlify-Source: dashboard-editor
2026-03-31 21:26:34 +00:00
ben
b9c9ffc218 fix(settings): rename workers scope to workspaces (#1260) 2026-03-31 11:30:33 -07:00
ben
75532f9f77 refactor(app): branded TransportDirectory type prevents Windows path mismatch (#1257)
The server compares session.directory with strict equality, but call sites
could silently pick the wrong path formatter (normalizeDirectoryQueryPath
vs toSessionTransportDirectory) — producing forward-slash paths on Windows
where the server stores native backslashes.

Changes:
- Add TransportDirectory branded type so the compiler rejects raw strings
  where a transport-formatted directory is expected.
- Fix connections/store.ts: switch path discovery from normalizeDirectoryQueryPath
  to toSessionTransportDirectory — this value feeds mcp.status/disconnect calls
  that use the same exact-match semantics (latent Windows bug).
- Fix workspace.ts: remote directory discovery now goes through
  toSessionTransportDirectory (caught by the branded type at compile time).
- Mark normalizeDirectoryQueryPath with JSDoc deprecation for server-query use.
- Add round-trip invariant and idempotency tests that assert create-path
  equals list-path for both Unix and Windows directory formats.
2026-03-31 11:14:00 -07:00
Benjamin Shafii
d6245974c6 fix stuff 2026-03-31 07:01:55 -07:00
Benjamin Shafii
af8c07b671 fix(connections): wait for host info before startup checks 2026-03-31 06:57:34 -07:00
GitHub Action
227272990f ignore: update download stats 2026-03-31 2026-03-31 12:29:59 +00:00
OpenWork Release Bot
c2b8d7c925 chore(aur): update PKGBUILD for 0.11.198 2026-03-31 06:01:22 +00:00
Benjamin Shafii
761796fd33 chore: bump version to 0.11.198 v0.11.198 openwork-orchestrator-v0.11.198 2026-03-30 22:30:04 -07:00
OpenWork Release Bot
58e1a47b36 chore(aur): update PKGBUILD for 0.11.197 2026-03-31 05:21:52 +00:00
ben
bf3d0cd762 fix(workspace): restart engine when switching between local workspaces (#1258)
switchWorkspace calls applyWorkspaceSelection before activateWorkspace,
which sets projectDir to the new path.  When activateWorkspace later
reads projectDir() to compute workspaceChanged, oldPath === newPath
and the engine-restart block is skipped.

Capture projectDir before any presentation update and thread it into
activateWorkspace via a prevProjectDir hint.  Also fix the same race
in forgetWorkspace where setProjectDir runs before activateWorkspace.

Closes #1252
2026-03-30 22:20:06 -07:00
Benjamin Shafii
020d763667 chore: bump version to 0.11.197 openwork-orchestrator-v0.11.197 v0.11.197 2026-03-30 21:50:48 -07:00
ben
13f909a147 fix(app): align sidebar session transport query (#1256) 2026-03-30 21:41:16 -07:00
Benjamin Shafii
9bc6d358d4 fix(session): render the real shell during first boot 2026-03-30 21:35:11 -07:00
Benjamin Shafii
b43b247e93 Revert "fix(app): include root sessions in sidebar (#1255)"
This reverts commit 5279d1823f.
2026-03-30 21:32:57 -07:00
ben
5279d1823f fix(app): include root sessions in sidebar (#1255) 2026-03-30 21:25:15 -07:00
Benjamin Shafii
a6c01ff3e5 Revert "fix(app): stop auto-creating the Welcome workspace (#1253)"
This reverts commit d9855e69e8.
2026-03-30 21:07:23 -07:00
ben
d9855e69e8 fix(app): stop auto-creating the Welcome workspace (#1253) 2026-03-30 21:00:07 -07:00
Benjamin Shafii
5a8d9672d7 fix(share): show real skill/command names and drop hard-border pills
Thread actual workspace skill names and config files into the template
panel instead of showing theoretical placeholders. Replace the
hard-bordered status pills and kicker pills with soft background tokens
using the den-web color language.
2026-03-30 20:40:32 -07:00
Benjamin Shafii
180819887c fix(share): show concrete template contents 2026-03-30 20:34:26 -07:00
Benjamin Shafii
53b8964dc3 Merge branch 'dev' of https://github.com/different-ai/openwork into dev 2026-03-30 19:52:21 -07:00
Benjamin Shafii
03097775ef more windows arm stuff 2026-03-30 19:51:50 -07:00
Source Open
a3d6b17a19 fix(share): lock bundle fetches to the configured publisher (#1241)
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>
2026-03-30 17:38:31 -07:00
Source Open
af4b9e829c fix(den): require explicit org invite confirmation (#1244)
* fix(den): require explicit org invite confirmation

* docs(pr): add invite confirmation screenshots

---------

Co-authored-by: src-opn <src-opn@users.noreply.github.com>
2026-03-30 17:36:01 -07:00
Source Open
300668be7f fix(server): keep router health target server-owned (#1240)
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>
2026-03-30 17:33:06 -07:00
Source Open
8eb4e34200 fix(share): gate sensitive workspace exports (#1239)
* fix(share): gate sensitive workspace exports

* fix(share): detect provider secrets before export

---------

Co-authored-by: src-opn <src-opn@users.noreply.github.com>
2026-03-30 17:28:39 -07:00
Source Open
ef5b59977e fix(share): harden legacy publish endpoints (#1243)
Align the legacy v1 bundle publish routes with the scoped Next API protections so older deployment paths stop accepting wildcard origins or host-derived share URLs.

Co-authored-by: src-opn <src-opn@users.noreply.github.com>
2026-03-30 17:24:39 -07:00
Source Open
41ff05cdb8 fix(security): keep orchestrator secrets off argv and logs (#1242)
Co-authored-by: src-opn <src-opn@users.noreply.github.com>
2026-03-30 17:23:14 -07:00