16 Commits

Author SHA1 Message Date
ben
7a53c2964c feat(desktop): Tauri → Electron migration release kit (#1526)
Ships the last-missing piece of the Electron migration. After this PR
merges there are three one-shot scripts under scripts/migration/ that
carry the whole lifecycle from "cut v0.12.0" through "delete src-tauri":

  01-cut-migration-release.mjs   # bumps versions, writes the release env
                                 # fragment, tags, pushes.
  02-validate-migration.mjs      # guided smoke test against a cut release.
  03-post-migration-cleanup.mjs  # deletes src-tauri, flips defaults,
                                 # scrubs Tauri docs (dry-run by default).

Code landing in the same PR (dormant until a release sets
VITE_OPENWORK_MIGRATION_RELEASE=1):

- apps/desktop/src-tauri/src/commands/migration.rs gains
  migrate_to_electron() — downloads the matching Electron .zip, verifies
  the Apple signature, swaps the .app bundle in place via a detached
  shell script, relaunches, and exits. Windows + Linux branches are
  stubbed with clear TODOs for the follow-up.
- apps/app/src/app/lib/migration.ts grows migrateToElectron() + a
  "later" defer helper.
- apps/app/src/react-app/shell/migration-prompt.tsx adds the one-time
  "OpenWork is moving to a new engine" modal. Mounted from
  providers.tsx. Gated on isTauriRuntime() AND the build-time flag, so
  Electron users and all non-migration-release builds never render it.
- apps/app/vite.config.ts loads apps/app/.env.migration-release when
  present so the prompt gets the release-specific download URLs.
- .gitignore allows the migration-release fragment to be committed only
  on the tagged migration-release commit (removed in cleanup step).

Release workflow:
- .github/workflows/release-macos-aarch64.yml gains a publish-electron
  job alongside the Tauri jobs. Gated on RELEASE_PUBLISH_ELECTRON repo
  var OR the new publish_electron workflow_dispatch input (default
  false). Uses the existing Apple Dev ID secrets — no new credential
  story. Produces latest-mac.yml alongside Tauri's latest.json so a
  v0.12.0 release serves both updaters.

Verified:
  pnpm --filter @openwork/app typecheck   ✓
  cargo check --manifest-path apps/desktop/src-tauri/Cargo.toml   ✓
  node --check on all mjs scripts   ✓
  python yaml parse of release-macos-aarch64.yml   ✓

Not verified (needs a real release cycle):
  end-to-end migration from a signed Tauri .app to a signed Electron
  .app through the detached-script install swap.

Co-authored-by: Benjamin Shafii <benjamin@openworklabs.com>
2026-04-22 18:52:30 -07:00
Source Open
12900a0b9e feat(server-v2): add standalone runtime and SDK foundation (#1468)
* feat(server-v2): add standalone runtime and SDK foundation

* docs(server-v2): drop planning task checklists

* build(server-v2): generate OpenAPI and SDK during dev

* build(server-v2): generate API artifacts before builds

* build(server-v2): drop duplicate root SDK generation

* build(app): remove SDK generation hooks

---------

Co-authored-by: src-opn <src-opn@users.noreply.github.com>
2026-04-17 09:54:26 -07:00
Jan Carbonell
6cfe7fd2b9 docs(landing): add privacy policy and terms of use pages (#1359)
* docs(landing): add privacy policy and terms of use pages

- Add comprehensive privacy policy covering Desktop App (no tracking),
  Cloud Service (operational telemetry only), and Website (PostHog analytics)
- Add terms of use with AI output disclaimer, export controls, beta features,
  feedback, publicity rights, and JAMS arbitration
- Create reusable LegalPage component and shared parser for .txt legal docs
- Add Privacy and Terms links to site footer
- Both pages render with consistent styling, bold definition terms,
  subheadings for tracking technology categories, and clickable email links

* chore: add .turbo to .gitignore

* fix(landing): improve legal page parser for terms readability

- Detect definition blocks ("Term" means ...) and render as bulleted
  list with bold terms
- Bold ALL CAPS text (warranty disclaimers, arbitration notices, etc.)
- Make URLs clickable links alongside emails
- Distinguish h2 headings (questions, longer titles) from h3 subheadings
  (short section names like "Our IP", "Billing", "Usage Data")

* fix(landing): improve subscription termination wording and URL parsing

- Clarify recurring billing cancellation: users can cancel via account
  settings first, contact email as fallback at our discretion
- Fix URL regex to avoid capturing trailing periods/punctuation

* fix(landing): clarify subscription cancellation — email always accepted, late refunds at our discretion

* docs(landing): convert privacy policy and terms of use to markdown

- Add proper heading hierarchy (# h1, ## h2, ### h3)
- Bold definition terms, ALL CAPS legal clauses, and sub-processor names
- Convert restriction items into bullet points
- Make all URLs and emails clickable markdown links
- Use blockquote for the API key disclaimer note
- Structure tracking technologies as proper subheadings

* refactor(landing): use markdown for legal pages, no new dependencies

- Rename .txt to .md with proper markdown formatting
- Replace txt parser with lean render-markdown.tsx (zero deps, ~120 lines)
- LegalPage handles full page shell — page.tsx files are now 8 lines each
- Add legal-prose CSS for consistent typography
- Delete parse-legal-doc.tsx
2026-04-05 01:15:17 -06:00
Omar McAdam
2b91b4d777 refactor: repo folder structure (#1038)
* 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.
2026-03-19 11:41:38 -07:00
Jan
c8c0ec9de0 fix/share inline success rail (#837)
* feat: enhance share functionality with new config support and improved UI elements

- Updated test command in package.json to include new test file.
- Added support for 'config' tone in share-bundle-page.js.
- Refactored share-home-client.js to improve handling of pasted content and state management.
- Introduced share-home-state.js for managing preview items and summary cards.
- Added tests for new share-home-state functions.
- Enhanced package-openwork-files.js to recognize and process config files.
- Updated UI styles for share components, including new configurations and improved layout.
- Added new CSS classes for config items and share actions.

* remove drop files

* skills area

* refactor: update ShareHomeClient component and styles for improved layout and item display

- Enhanced the rendering of included items in ShareHomeClient with a new layout.
- Removed redundant code for included items display.
- Updated CSS styles for .included-section, .included-list, and .included-item to improve alignment and spacing.
- Adjusted grid layout for input methods and share cards for better responsiveness.

* feat: implement syntax highlighting and enhance item examples in ShareHomeClient

- Added syntax highlighting functionality for JSON and Markdown content in ShareHomeClient.
- Introduced example fields for preview items in share-home-state.js to provide better context.
- Updated the layout and styles for the carbon preview component to improve user experience.
- Refactored the included items display to use buttons for better interaction and accessibility.

* feat: add syntax highlighting and improve layout for ShareHomeClient

- Implemented syntax highlighting for JSON and Markdown content in ShareHomeClient.
- Updated example names in share-home-state.js for clarity.
- Enhanced the layout and styles of the carbon preview component for better user experience.
- Adjusted CSS for improved responsiveness and visual appeal of share components.

* feat: enhance ShareHomeClient with example selection and improved item display

- Added state management for active examples in ShareHomeClient to allow users to select and preview example contents.
- Updated the rendering of included items to visually indicate active and dimmed states for better user interaction.
- Enhanced CSS styles for included items to reflect active and dimmed states, improving overall user experience.

* refactor: remove deprecated ShareHomeClient and share-home-state components

- Deleted the ShareHomeClient and share-home-state files as part of a cleanup process.
- Removed associated tests and unused functions to streamline the codebase.
- Updated styles in globals.css to reflect the removal of these components.

* feat: implement ShareHomeClient with TypeScript support and enhanced functionality

- Introduced ShareHomeClient component with TypeScript for improved type safety and maintainability.
- Added state management for file uploads and previews, enhancing user interaction.
- Created share-home-state for managing preview items and feedback.
- Updated package.json to include new TypeScript dependencies and adjusted test commands.
- Added tsconfig.json for TypeScript configuration and improved project structure.
- Enhanced styles in globals.css for better UI presentation and responsiveness.
- Removed outdated test files to streamline the codebase.

* refactor: update ShareHomeClient layout and enhance carbon preview component

- Reorganized the layout of the ShareHomeClient component to improve user experience.
- Updated the carbon preview component with a new footer for better content display.
- Adjusted CSS styles for grid layout and carbon window to enhance responsiveness and visual appeal.
- Removed outdated paste metadata display for a cleaner interface.

* refactor: update ShareHomeClient paste state management and improve styles

- Introduced a constant for default paste state to streamline state management in ShareHomeClient.
- Updated paste state messages for clarity and consistency across different scenarios.
- Enhanced CSS styles in globals.css for better visual presentation, including adjustments to background colors and element padding.

* feat: add baseline example and improve paste handling in ShareHomeClient

- Introduced a baseline example for skill input to guide users in the ShareHomeClient component.
- Enhanced paste handling to display the baseline example when no input is provided.
- Updated CSS styles for the status bar and highlighted paste area to reflect the new baseline state and improve visual clarity.

* feat: enhance ShareHomeClient with updated file sharing prompts and improved styles

- Updated selection label to provide clearer feedback on file readiness for sharing.
- Improved drop zone instructions for better user guidance on file uploads.
- Adjusted CSS styles for drop zones and icons to enhance visual appeal and user interaction.
- Refined layout and spacing for a more polished user experience.

* feat: enhance ShareHomeClient with improved copy functionality and updated styles

- Introduced a timer for copy state management to provide user feedback on link copying.
- Updated the layout of the share link section for better visual clarity and interaction.
- Enhanced CSS styles for share link actions and buttons to improve user experience and responsiveness.

* refactor: reorganize ShareHomeClient layout and enhance CSS styles

- Updated the layout of the ShareHomeClient component for improved visual clarity and user interaction.
- Enhanced CSS styles in globals.css for better alignment and responsiveness of share actions and status indicators.
- Removed unnecessary grid row definitions to streamline the layout structure.

* feat: add settings configuration and update CSS styles for improved layout

- Introduced a new settings.local.json file to manage permissions for web fetching.
- Updated CSS styles in globals.css to enhance layout responsiveness and visual consistency, including adjustments to alignment and background colors for severity indicators.

* feat: implement OpenWork Share service with API endpoints and UI components

- Added new service for OpenWork Share, including API routes for health checks, bundle management, and package handling.
- Introduced UI components for displaying shareable bundles and navigation.
- Implemented responsive design elements and improved user interaction through enhanced layouts and styles.
- Updated TypeScript configuration and package dependencies to support new features.
- Enhanced error handling and response management for API interactions.

* clean

* feat: enhance OpenWork Share service with Playwright integration and updated styles

- Added Playwright configuration for end-to-end testing of the OpenWork Share service.
- Updated package.json to include new test scripts for Playwright.
- Enhanced layout component with new font imports for improved typography.
- Refined global CSS styles for better font handling and visual consistency across components.
- Introduced new utility classes for improved styling and responsiveness.

* feat: enhance ShareHomeClient with placeholder item handling and updated styles

- Introduced a new function to build placeholder items based on pasted content and selected entries.
- Updated the component's state management to improve handling of examples and file previews.
- Refined CSS styles for better alignment and visual consistency, including adjustments to the preview filename display and layout responsiveness.
- Added a new JSON file to track test results for improved testing feedback.

* refactor: simplify package status handling and update button state logic in ShareHomeClient

- Removed unnecessary parameters from getPackageStatus function to streamline its usage.
- Updated button disabled state logic to improve clarity and functionality during publishing.
- Enhanced overall code readability by reducing complexity in state management.

* feat: enhance ShareHomeClient with improved selection and preview handling

- Introduced new utility functions for generating selection labels and preview filenames to streamline display logic.
- Updated selection label logic for clearer user feedback on file readiness for sharing.
- Enhanced preview filename display to reflect selected entries and pasted content more accurately.
- Refined CSS styles for better layout and visual consistency in publish actions and results.

* playwright not needed

* fix: update routing types and remove package-lock.json

- Changed the import path for routing types in next-env.d.ts to align with the latest Next.js structure.
- Removed package-lock.json as it is no longer needed for dependency management.

* added ts tests

* removed claude and added it to gitignore

* docs: add openwork-share PR screenshots

---------

Co-authored-by: jcllobet <jcllobet@users.noreply.github.com>
2026-03-11 13:40:32 -07:00
Benjamin Shafii
4e14d73647 feat(share): add invite-link onboarding and docs playbooks 2026-02-23 16:48:29 -08:00
Benjamin Shafii
c3494135ff feat(den-web): rename den service and ship new 3-step cloud setup UX 2026-02-21 16:47:59 -08:00
Benjamin Shafii
2beedab75d chore: gitignore .pnpm-store and docker dev workspace 2026-02-09 15:55:42 -08:00
Benjamin Shafii
678d635d15 chore: gitignore bun build artifacts (*.bun-build) 2026-02-09 15:55:42 -08:00
Benjamin Shafii
1660c0782d chore(server): move audit log to host data dir 2026-02-08 20:44:09 -08:00
ben
068c937a36 chore(aur): auto-publish on release (#469)
* chore(aur): publish to AUR on release

* chore(aur): make publish script executable
2026-02-05 14:14:35 -08:00
ben
1b272355de feat: auto-connect web sessions and sidebar workspace hub (#438) 2026-02-04 09:10:21 -08:00
ben
680c1a764b feat: improve owpenbot WhatsApp onboarding (#231) 2026-01-23 23:23:36 -08:00
Benjamin Shafii
32e1f84b0f chore: move OpenWork into pnpm workspace 2026-01-20 21:12:18 -08:00
Benjamin Shafii
0d2428b153 chore: ignore Tauri sidecars 2026-01-15 14:46:32 -08:00
Benjamin Shafii
d035b85905 Initial OpenWork app 2026-01-13 17:39:22 -08:00