Expose soul status/heartbeat endpoints and wire a dedicated Soul tab so operators can enable soul mode, review heartbeat follow-ups, and steer next prompts directly from OpenWork.
Convert unsupported pasted files into links instead of dropping them, and auto-upload them to inbox for sandbox workspaces so links resolve predictably.
Move connection and developer controls under Advanced, show connected provider names, remove /models copy, and hide workspace Advanced navigation unless developer mode is enabled.
Apply the same token-based link parsing to markdown text nodes so plain filenames and relative paths render as clickable links in agent responses, not only in plain-text fallback mode.
Treat plain filenames like citizenship_status.txt as workspace-relative file links while filtering likely domain-like tokens to reduce false positives.
Session text and markdown file links now resolve dot-relative paths against the active workspace while tightening path detection to avoid false positives like bare slash-only tokens.
* fix(desktop): suppress unused variable warnings in manager modules
Prefix unused `child` bindings with underscore in engine and openwork_server
managers to silence Rust compiler warnings.
* refactor(app): remove `as any` casts with typed SDK helpers
Create lib/opencode-session.ts that wraps OpenCode SDK session operations
(abort, revert, unrevert, shell, command listing) with proper types.
Replace all `(c.session as any).abort/revert/unrevert` and
`(c.command as any).list` calls in app.tsx with the typed helpers.
The SDK v2 already exposes these methods with full type definitions —
the casts were unnecessary and bypassed type safety on critical API paths.
* refactor(app): extract OpenWork server connection store
Create context/openwork-server.ts that encapsulates all OpenWork server
connection state: 15 signals, 6 polling effects, derived memos for
baseUrl/auth/client, and the health check helper.
This is a standalone module ready to replace the corresponding state in
app.tsx. It follows the same factory pattern as createSessionStore and
createExtensionsStore.
* feat(app): add safe execution utilities for error handling
Create lib/safe-run.ts with safeAsync, safeSync, and fireAndForget
helpers that replace bare `catch {}` blocks. Errors are logged in
development mode and silently swallowed in production.
This provides a migration path for the ~50 silent catch blocks.
* test(server): add unit tests for validators, utils, and token service
Add 41 new tests across 3 test files:
- validators.test.ts: sanitizeCommandName, validateCommandName,
validateMcpName, validateSkillName, validateMcpConfig (22 tests)
- utils.test.ts: hashToken, shortId, parseList, ensureDir/exists (10 tests)
- tokens.test.ts: TokenService CRUD, scope resolution, revocation (9 tests)
Total server test count: 48 (from 7 previously).
---------
Co-authored-by: Benjamin Shafii <benjamin.shafii@gmail.com>
Remove automatic redirect and make the founder call the primary explicit action. Update thank-you copy to clear 7-day hosted access ETA and preserve paid-customer Cal context.
Update /starter-success to send users directly to Cal and include paid-customer context in booking query params. Keep a visible fallback CTA and thank-you/ETA copy on page load.
Add /starter-success with a polished thank-you experience, one-week hosted launch ETA, and onboarding CTA while keeping existing OpenWork landing visual style.