Skip to content

feat: replace Tauri with Electron and unify updates - #424

Merged
pedronauck merged 31 commits into
mainfrom
electron
Aug 17, 2026
Merged

pedronauck merged 31 commits into
mainfrom
electron

Conversation

@pedronauck

Copy link
Copy Markdown
Member

Summary

This PR replaces the Tauri desktop host with an Electron shell, makes update work a daemon-owned durable operation, and ships the same update truth through CLI, HTTP, UDS, the web Settings surface, and the desktop menubar.

It is a greenfield hard cut: obsolete Tauri code, configuration, dependencies, permissions, build paths, tests, and documentation are removed rather than carried behind compatibility aliases. The new Electron app provisions or attaches to the Compozy daemon, preserves native desktop behavior, packages the matching runtime, and participates in one release authority with the CLI and SDK artifacts.

The branch contains 27 commits across 517 files. The large deletion count is intentional: the former Rust/Tauri shell is removed while the Electron implementation, generated contracts, release tooling, documentation, and QA contracts take its place.

What changed

Electron desktop shell

  • Replaces the Tauri host with an Electron main process, preload boundary, boot window, product window, and typed renderer control bridge.
  • Provisions the bundled daemon from an empty home, or attaches to a compatible daemon that is already running without taking ownership of it.
  • Preserves single-instance focus, deep links, safe navigation boundaries, page zoom, window geometry recovery, diagnostics, logs, and the owned-versus-attached quit contract.
  • Packages Linux AppImage/DEB and signed macOS x64/arm64 DMG and updater archives with explicit release identity and bundled-runtime provenance.
  • Adds a real Electron E2E lane and packaged-desktop smoke coverage.

Durable update authority

  • Introduces one daemon-owned update operation for app and runtime tracks instead of UI-owned async work.
  • Exposes status, check, apply, progress, blocked, staged, recovery, and cancellation behavior through structured CLI, HTTP, and UDS contracts.
  • Persists operation identity and state so polling survives the initiating client and all surfaces report the same truth.
  • Keeps package-manager-managed runtime installations recommendation-only and omits actions when the daemon cannot truthfully apply an update.
  • Preserves deterministic error contracts for dormant cancellation, conflicting holders, unsupported app installs, and interrupted work.

Web and desktop UI

  • Reworks Settings → General → Updates into separate Runtime and App tracks driven only by daemon state.
  • Adds operation progress, holder-aware blocked state, staged-next-launch state, apply/cancel actions, and truthful absence for unsupported tracks.
  • Adds a keyboard-accessible menubar update indicator that appears only when an actionable update is available and navigates to Settings.
  • Keeps the same SPA behavior in a browser and in Electron; no desktop-only update authority exists in the renderer.
  • Completes 15 visual contracts with zero blocking structural divergences.

Release authority and artifacts

  • Adds the desktop release planner, artifact inventory, compatibility metadata, channel validation, notarization/signing input checks, and packaged smoke jobs.
  • Synchronizes the exact daemon-served web-assets version before resolving an explicit release.
  • Validates updater archives separately from manual installers: ZIP on macOS and AppImage on Linux are channel-applicable; DMG and DEB remain recommendation/install artifacts.
  • Refreshes integrity from finalized notarized artifacts and normalizes the digest of the signed macOS x64 bundled runtime.
  • Isolates local packaged smokes from operator runtime paths, ports, sockets, and homes.

Documentation and agent operation

  • Updates installation, migration, operations, configuration, CLI, desktop, release, and troubleshooting guidance for Electron.
  • Updates the official Compozy skill so agents can operate the app and update lifecycle through supported public surfaces.
  • Adds QA journeys, charters, scenarios, seven bug records, and the dated closeout report.

Screenshots

Both update tracks available

Settings showing Runtime and App updates

Runtime update in progress

Settings showing durable runtime update progress

Holder-aware blocked state

Settings showing a blocked runtime update and holder

Menubar update indicator

Compozy menubar showing the update indicator

The images are QA artifacts stored in the existing compozy-pr-evidence R2 bucket. Uploading them did not deploy the product or website.

User-visible behavior

Surface Before After
Desktop host Tauri/Rust shell Electron/TypeScript shell with a narrow preload contract
Update ownership Split or client-lived work One durable daemon operation
CLI Separate app/runtime flows One structured update command plus preserved app verbs
HTTP and UDS Incomplete update mutation parity Read, apply, cancel, and deterministic error parity
Settings Runtime-oriented update row Separate Runtime and App tracks with progress and recovery truth
Menubar No update signal Actionable, keyboard-accessible indicator
Release Desktop artifacts outside one fully checked authority Planned artifact inventory, compatibility/channel checks, signing, and packaged smokes

Breaking change and delete targets

This is an intentional hard cut with no compatibility bridge.

  • Deletes the Tauri Rust runtime, commands, permissions, capabilities, fixtures, generated bindings, Cargo dependencies, and Tauri build configuration.
  • Removes Tauri-specific scripts, docs, CI assumptions, config keys, and tests.
  • Replaces host-owned update paths with the daemon operation and generated public contracts.
  • Updates downstream web, CLI, release, docs, official skill, and QA surfaces in the same change.

QA evidence

The dated report is in docs/qa/reports/2026-08-17-electron-shell.md.

  • Runtime E2E: passed in the isolated QA cycle.
  • Web E2E: 160 passed, 3 documented platform skips.
  • Desktop E2E: passed for the Electron shell contract.
  • Visual contracts: VC-01 through VC-15, zero blocking structural divergences.
  • Hosted release planning: passed and pinned compozy-web-assets v0.0.139.
  • Hosted signed builds: Linux x86_64, macOS x64, and macOS arm64 passed.
  • Hosted packaged smokes: Linux AppImage and both macOS DMGs provisioned from empty isolated homes.
  • Retained workflow receipt: https://github.com/compozy/compozy/actions/runs/32017263255
  • Scenario ledger: 27 pass, 8 blocked-decision, 0 untested, 0 fail, 0 blocked-verify.
  • QA teardown: all three active envelopes record clean: true with no surviving daemon, web server, browser, watcher, or tmux process.

The local make gate-full was interrupted at the operator's direction and is not claimed as passing evidence. The complete monorepo gate is intentionally deferred to this PR's CI checks.

Explicit release-state limitation

During release-grade QA, beta.17 through beta.20 were used to expose and fix release-channel defects. At the operator's direction, all GitHub releases and all corresponding root and Go SDK tags created by this QA work were deleted, and the active workflow was cancelled. They were not recreated.

As a result, these eight scenarios are correctly recorded as blocked-decision:

  • app auto-update;
  • app-owned runtime update handoff;
  • single-command app + runtime update completion;
  • beta channel publication contract;
  • public beta install paths;
  • durable public installer provenance;
  • real beta N→N+1 self-update;
  • public channel repair from a known-good predecessor.

This PR is ready for code review, but it must not be treated as release-ready until a release owner explicitly authorizes a fresh beta N and N+1 pair and the installed-app update walk passes.

Defects closed during QA

  • Verified packaged release identity and bundled-runtime provenance.
  • Verified isolation of local packaged-desktop smoke environments.
  • Verified exact web-assets synchronization for explicit releases.
  • Verified the signed macOS x64 bundled-runtime digest.
  • Fixed finalized DMG integrity refresh; public channel rewalk remains blocked by the release deletion.
  • Fixed macOS channel manifests so DMGs are not updater entries; public rewalk remains blocked.
  • Fixed Linux channel manifests so DEBs are not updater entries; public rewalk remains blocked.

Review guide

  1. Start with internal/update/ and the generated API contracts to review the daemon-owned state machine and cross-transport behavior.
  2. Review desktop/src/ for process ownership, preload boundaries, navigation, boot, update handoff, and window lifecycle.
  3. Review the Settings and menubar changes under web/src/systems/settings/ and web/src/systems/os/ against daemon truth.
  4. Review internal/desktoprelease/, cmd/compozy-desktop-release/, release scripts, and .github/workflows/release.yml as one authority.
  5. Use the QA report and the seven linked bug records to follow the release fix loops and the remaining decision block.

Compozy Impact Audit

  • Native tools: No new compozy__* ID or toolset was added. Update and app behavior remains agent-manageable through structured CLI plus HTTP/UDS fallback surfaces. Tool descriptors, schemas, digests, risk flags, capability gates, availability diagnostics, and fallbacks were checked.
  • Extensibility and hooks: Electron replaces Tauri at the host boundary. Extensions, hooks, skills/capabilities, tools/resources, registries, bridge SDKs, MCP sidecars, release resources, and update-related config lifecycle were audited; obsolete Tauri wiring is deleted instead of aliased.
  • Workspace data isolation: App installation/update metadata and update operations are global to the resolved Compozy home. Session and agent data remains workspace-scoped. CLI, HTTP, UDS, store, web cache, SSE, and event paths preserve existing workspace_id boundaries.
  • Official Compozy skill: Updated for Electron desktop behavior, app verbs, update operations, install/release paths, and public agent-manageable surfaces.

Release notes

Added

  • Electron desktop application for macOS and Linux.
  • Daemon-owned app and runtime update operation across CLI, HTTP, UDS, Settings, and menubar.
  • Signed desktop artifact planning, channel validation, and packaged first-run smoke coverage.

Changed

  • Settings now shows separate app and runtime update tracks with durable progress and recovery state.
  • Desktop release identity, web asset pinning, updater compatibility metadata, and bundled-runtime provenance are validated as one release contract.
  • Installation, migration, operations, configuration, CLI, and official skill documentation now describe Electron.

Removed

  • Tauri desktop runtime, build configuration, dependencies, permissions, generated bindings, tests, and documentation.

Checklist

  • Electron hard cut implemented with obsolete Tauri targets removed.
  • CLI, HTTP, UDS, web, desktop, release, docs, and official skill surfaces updated together.
  • Runtime, web, and desktop E2E lanes passed during the task cycle.
  • Signed cross-platform builds and packaged first-run smokes passed.
  • QA verdicts, bug registry, report, visual contracts, and teardown evidence recorded.
  • Representative screenshots uploaded and embedded.
  • QA-created tags and releases removed as requested.
  • Full monorepo gate — deferred to PR CI by operator direction.
  • Fresh public beta N→N+1 update proof — blocked until explicitly authorized.

@greptile-apps

greptile-apps Bot commented Aug 17, 2026 •

Copy link
Copy Markdown

Too many files changed for review (516 files, 100 file limit).

@coderabbitai

coderabbitai Bot commented Aug 17, 2026 •

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 356 files, which is 56 over the limit of 300.

To get a review, reduce the PR to 300 files or fewer by splitting it into smaller PRs or changing its base branch.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 13005172-bc2a-4815-be32-7217d1694643

📥 Commits

Reviewing files that changed from the base of the PR and between e596826 and 4dede3b.

⛔ Files ignored due to path filters (160)
  • .github/workflows/ci.yml is excluded by !**/*.yml
  • .github/workflows/desktop-feed-repair.yml is excluded by !**/*.yml
  • .github/workflows/release.yml is excluded by !**/*.yml
  • .goreleaser.yml is excluded by !**/*.yml
  • CHANGELOG.md is excluded by !**/*.md
  • RELEASE_BODY.md is excluded by !**/*.md
  • RELEASE_NOTES.md is excluded by !**/*.md
  • bun.lock is excluded by !**/*.lock, !**/*.lock
  • desktop/build/icon.png is excluded by !**/*.png
  • desktop/e2e/fixtures/appstage/main.go is excluded by !**/fixtures/**
  • desktop/e2e/fixtures/runtimeupdate/main.go is excluded by !**/fixtures/**
  • desktop/electron-builder.yml is excluded by !**/*.yml
  • desktop/package.json is excluded by !**/*.json
  • desktop/schema/app-state.schema.json is excluded by !**/*.json
  • desktop/schema/fixtures/error.json is excluded by !**/*.json, !**/fixtures/**
  • desktop/schema/fixtures/product.json is excluded by !**/*.json, !**/fixtures/**
  • desktop/src-tauri/Cargo.lock is excluded by !**/*.lock, !**/*.lock
  • desktop/src-tauri/Cargo.toml is excluded by !**/*.toml
  • desktop/src-tauri/capabilities/boot.json is excluded by !**/*.json
  • desktop/src-tauri/capabilities/main-zoom.json is excluded by !**/*.json
  • desktop/src-tauri/icons/128x128.png is excluded by !**/*.png
  • desktop/src-tauri/icons/[email protected] is excluded by !**/*.png
  • desktop/src-tauri/icons/32x32.png is excluded by !**/*.png
  • desktop/src-tauri/icons/64x64.png is excluded by !**/*.png
  • desktop/src-tauri/icons/Square107x107Logo.png is excluded by !**/*.png
  • desktop/src-tauri/icons/Square142x142Logo.png is excluded by !**/*.png
  • desktop/src-tauri/icons/Square150x150Logo.png is excluded by !**/*.png
  • desktop/src-tauri/icons/Square284x284Logo.png is excluded by !**/*.png
  • desktop/src-tauri/icons/Square30x30Logo.png is excluded by !**/*.png
  • desktop/src-tauri/icons/Square310x310Logo.png is excluded by !**/*.png
  • desktop/src-tauri/icons/Square44x44Logo.png is excluded by !**/*.png
  • desktop/src-tauri/icons/Square71x71Logo.png is excluded by !**/*.png
  • desktop/src-tauri/icons/Square89x89Logo.png is excluded by !**/*.png
  • desktop/src-tauri/icons/StoreLogo.png is excluded by !**/*.png
  • desktop/src-tauri/icons/icon.ico is excluded by !**/*.ico
  • desktop/src-tauri/permissions/autogenerated/shell_control.toml is excluded by !**/*.toml
  • desktop/src-tauri/tauri.conf.json is excluded by !**/*.json
  • desktop/src-tauri/tests/fixtures/fake_daemon.rs is excluded by !**/fixtures/**
  • desktop/src/generated/build-config.ts is excluded by !**/generated/**, !**/generated/**
  • desktop/tsconfig.json is excluded by !**/*.json
  • docs/design/opendesign/README.md is excluded by !docs/design/**/*, !**/*.md
  • docs/design/opendesign/electron-shell/electron-shell-menubar-update.html is excluded by !docs/design/**/*
  • docs/design/opendesign/electron-shell/electron-shell-settings-updates.html is excluded by !docs/design/**/*
  • docs/design/opendesign/electron-shell/electron-shell.css is excluded by !docs/design/**/*
  • docs/design/opendesign/electron-shell/index.html is excluded by !docs/design/**/*
  • docs/qa/bugs/BUG-20260729-agent-knowledge-refresh-missed.md is excluded by !**/*.md
  • docs/qa/bugs/BUG-20260817-desktop-release-channel-provenance.md is excluded by !**/*.md
  • docs/qa/bugs/BUG-20260817-desktop-smoke-local-isolation.md is excluded by !**/*.md
  • docs/qa/bugs/BUG-20260817-explicit-release-web-assets-sync.md is excluded by !**/*.md
  • docs/qa/bugs/BUG-20260817-linux-channel-manifest-includes-deb.md is excluded by !**/*.md
  • docs/qa/bugs/BUG-20260817-macos-channel-manifest-includes-dmg.md is excluded by !**/*.md
  • docs/qa/bugs/BUG-20260817-macos-finalized-dmg-integrity-stale.md is excluded by !**/*.md
  • docs/qa/bugs/BUG-20260817-signed-macos-x64-digest-drift.md is excluded by !**/*.md
  • docs/qa/charters/CH-desktop-agent-headless-cli.md is excluded by !**/*.md
  • docs/qa/charters/CH-desktop-attach-quit-linux.md is excluded by !**/*.md
  • docs/qa/charters/CH-desktop-attach-quit-windows.md is excluded by !**/*.md
  • docs/qa/charters/CH-desktop-first-run-linux.md is excluded by !**/*.md
  • docs/qa/charters/CH-desktop-first-run-windows.md is excluded by !**/*.md
  • docs/qa/charters/CH-desktop-links-instance-linux.md is excluded by !**/*.md
  • docs/qa/charters/CH-desktop-links-instance-windows.md is excluded by !**/*.md
  • docs/qa/charters/CH-desktop-release-rehearsal.md is excluded by !**/*.md
  • docs/qa/charters/CH-desktop-sse-gate-linux.md is excluded by !**/*.md
  • docs/qa/charters/CH-desktop-sse-gate-windows.md is excluded by !**/*.md
  • docs/qa/charters/CH-desktop-update-rehearsal-linux.md is excluded by !**/*.md
  • docs/qa/charters/CH-desktop-update-rehearsal-macos.md is excluded by !**/*.md
  • docs/qa/charters/CH-desktop-update-rehearsal-windows.md is excluded by !**/*.md
  • docs/qa/charters/CH-electron-beta-update-linux.md is excluded by !**/*.md
  • docs/qa/charters/CH-electron-beta-update-macos.md is excluded by !**/*.md
  • docs/qa/charters/CH-electron-browser-update-parity.md is excluded by !**/*.md
  • docs/qa/charters/CH-electron-channel-publish-repair.md is excluded by !**/*.md
  • docs/qa/charters/CH-electron-install-docs-canary.md is excluded by !**/*.md
  • docs/qa/charters/CH-electron-offline-first-run-linux.md is excluded by !**/*.md
  • docs/qa/charters/CH-electron-offline-first-run-macos.md is excluded by !**/*.md
  • docs/qa/charters/CH-electron-shell-safety-linux.md is excluded by !**/*.md
  • docs/qa/charters/CH-electron-shell-safety-macos.md is excluded by !**/*.md
  • docs/qa/charters/CH-electron-update-headless-authority.md is excluded by !**/*.md
  • docs/qa/charters/CH-native-window-chrome-linux.md is excluded by !**/*.md
  • docs/qa/charters/CH-native-window-chrome-macos.md is excluded by !**/*.md
  • docs/qa/journeys/J-desktop-agent-headless.md is excluded by !**/*.md
  • docs/qa/journeys/J-desktop-attach-daily.md is excluded by !**/*.md
  • docs/qa/journeys/J-desktop-first-run.md is excluded by !**/*.md
  • docs/qa/journeys/J-desktop-update-moment.md is excluded by !**/*.md
  • docs/qa/journeys/J-publish-compozy-beta.md is excluded by !**/*.md
  • docs/qa/reports/2026-08-17-bounded-runtime-identity-electron.md is excluded by !**/*.md
  • docs/qa/reports/2026-08-17-electron-shell.md is excluded by !**/*.md
  • docs/qa/reports/2026-08-17-native-window-chrome.md is excluded by !**/*.md
  • docs/qa/scenarios/APP-abandoned-install-update-polling.md is excluded by !**/*.md
  • docs/qa/scenarios/APP-agent-cli-app-verbs.md is excluded by !**/*.md
  • docs/qa/scenarios/APP-app-auto-update.md is excluded by !**/*.md
  • docs/qa/scenarios/APP-attach-running-daemon.md is excluded by !**/*.md
  • docs/qa/scenarios/APP-brand-channel-visibility.md is excluded by !**/*.md
  • docs/qa/scenarios/APP-cancel-dormant-update.md is excluded by !**/*.md
  • docs/qa/scenarios/APP-deep-link-cold-start.md is excluded by !**/*.md
  • docs/qa/scenarios/APP-deep-link-running.md is excluded by !**/*.md
  • docs/qa/scenarios/APP-desktop-page-zoom.md is excluded by !**/*.md
  • docs/qa/scenarios/APP-install-first-run-provision.md is excluded by !**/*.md
  • docs/qa/scenarios/APP-native-window-controls.md is excluded by !**/*.md
  • docs/qa/scenarios/APP-quit-contract.md is excluded by !**/*.md
  • docs/qa/scenarios/APP-runtime-update-app-owned.md is excluded by !**/*.md
  • docs/qa/scenarios/APP-runtime-update-managed.md is excluded by !**/*.md
  • docs/qa/scenarios/APP-single-command-multi-target-update.md is excluded by !**/*.md
  • docs/qa/scenarios/APP-single-instance-focus.md is excluded by !**/*.md
  • docs/qa/scenarios/APP-start-installed-daemon.md is excluded by !**/*.md
  • docs/qa/scenarios/APP-update-config-cadence.md is excluded by !**/*.md
  • docs/qa/scenarios/APP-update-recovery-state.md is excluded by !**/*.md
  • docs/qa/scenarios/APP-web-update-indicator.md is excluded by !**/*.md
  • docs/qa/scenarios/APP-web-update-two-track.md is excluded by !**/*.md
  • docs/qa/scenarios/APP-window-geometry-recovery.md is excluded by !**/*.md
  • docs/qa/scenarios/MS-settings-update-mutations.md is excluded by !**/*.md
  • docs/qa/scenarios/REL-beta-channel-contract.md is excluded by !**/*.md
  • docs/qa/scenarios/REL-beta-install-paths.md is excluded by !**/*.md
  • docs/qa/scenarios/REL-beta-installer-provenance.md is excluded by !**/*.md
  • docs/qa/scenarios/REL-beta-self-update.md is excluded by !**/*.md
  • docs/qa/scenarios/REL-channel-repair-known-good.md is excluded by !**/*.md
  • docs/qa/scenarios/REL-electron-cutover-announcement.md is excluded by !**/*.md
  • docs/qa/scenarios/REL-migration-guide-parity.md is excluded by !**/*.md
  • docs/qa/scenarios/REL-os-landing-proof.md is excluded by !**/*.md
  • docs/qa/scenarios/REL-published-npm-channel-readiness.md is excluded by !**/*.md
  • docs/qa/scenarios/REL-release-archive-update-contract.md is excluded by !**/*.md
  • docs/qa/scenarios/REL-release-candidate-plan.md is excluded by !**/*.md
  • docs/qa/scenarios/REL-release-note-signal.md is excluded by !**/*.md
  • docs/qa/scenarios/REL-stable-changelog-hard-cut.md is excluded by !**/*.md
  • docs/qa/scenarios/RT-001.md is excluded by !**/*.md
  • docs/qa/scenarios/RT-bounded-runtime-identity.md is excluded by !**/*.md
  • docs/runbooks/desktop-release-credentials.md is excluded by !**/*.md
  • docs/runbooks/update-signing-key.md is excluded by !**/*.md
  • go.sum is excluded by !**/*.sum, !**/*.sum
  • openapi/compozy.json is excluded by !**/*.json
  • package.json is excluded by !**/*.json
  • packages/site/content/docs/cli/app/index.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/cli/app/meta.json is excluded by !**/*.json
  • packages/site/content/docs/cli/compozy.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/cli/daemon/bootstrap.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/cli/daemon/index.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/cli/daemon/meta.json is excluded by !**/*.json
  • packages/site/content/docs/cli/update.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/configuration/config-toml.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/getting-started/desktop-app.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/getting-started/index.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/getting-started/installation.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/getting-started/web-ui.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/operations/desktop-app.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/operations/desktop-release.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/operations/index.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/operations/meta.json is excluded by !**/*.json
  • packages/site/content/docs/operations/support-bundles.mdx is excluded by !**/*.mdx
  • skills/compozy/SKILL.md is excluded by !**/*.md
  • skills/compozy/references/configuration.md is excluded by !**/*.md
  • skills/compozy/references/desktop.md is excluded by !**/*.md
  • skills/compozy/references/runtime-operations.md is excluded by !**/*.md
  • web/e2e/__tests__/loops.spec.ts is excluded by !web/e2e/**
  • web/e2e/__tests__/os-shell.spec.ts is excluded by !web/e2e/**
  • web/e2e/__tests__/settings.spec.ts is excluded by !web/e2e/**
  • web/e2e/__tests__/tasks.spec.ts is excluded by !web/e2e/**
  • web/e2e/fixtures/selectors.ts is excluded by !**/fixtures/**, !web/e2e/**
  • web/e2e/fixtures/worktree-repo.ts is excluded by !**/fixtures/**, !web/e2e/**
  • web/src/generated/compozy-openapi.d.ts is excluded by !**/generated/**, !**/generated/**, !**/*.d.ts
  • web/src/systems/os/components/stories/attention-surfaces.stories.tsx is excluded by !**/*.stories.tsx
  • web/src/systems/os/components/stories/os-menubar.stories.tsx is excluded by !**/*.stories.tsx
  • web/src/systems/settings/routes/settings-general.stories.tsx is excluded by !**/*.stories.tsx
📒 Files selected for processing (356)
  • .gitignore
  • Makefile
  • cmd/compozy-desktop-release/main.go
  • desktop/build/icon.icns
  • desktop/e2e/_electron/__tests__/shell.spec.ts
  • desktop/e2e/_electron/__tests__/updates.spec.ts
  • desktop/e2e/_electron/fixtures.ts
  • desktop/e2e/_electron/helpers.ts
  • desktop/e2e/_electron/process.ts
  • desktop/pages/boot.css
  • desktop/pages/boot.html
  • desktop/pages/boot.js
  • desktop/playwright.config.ts
  • desktop/scripts/build-e2e-update.ts
  • desktop/scripts/build-main.ts
  • desktop/scripts/build-runtime.ts
  • desktop/scripts/collect-release-artifacts.ts
  • desktop/scripts/e2e-after-sign.cjs
  • desktop/scripts/finalize-macos-release.ts
  • desktop/scripts/generate-release-config.ts
  • desktop/scripts/package-local.ts
  • desktop/scripts/prepare-channel-manifests.ts
  • desktop/scripts/verify-mac-update-zip.ts
  • desktop/src-tauri/build.rs
  • desktop/src-tauri/pages/boot.css
  • desktop/src-tauri/pages/boot.js
  • desktop/src-tauri/release_build_contract.rs
  • desktop/src-tauri/src/app_state.rs
  • desktop/src-tauri/src/bin/runtime_manifest_check.rs
  • desktop/src-tauri/src/boot_window.rs
  • desktop/src-tauri/src/config.rs
  • desktop/src-tauri/src/control.rs
  • desktop/src-tauri/src/control_events.rs
  • desktop/src-tauri/src/controller.rs
  • desktop/src-tauri/src/diagnostics/actions.rs
  • desktop/src-tauri/src/diagnostics/export.rs
  • desktop/src-tauri/src/diagnostics/export_archive.rs
  • desktop/src-tauri/src/diagnostics/export_tests.rs
  • desktop/src-tauri/src/diagnostics/mod.rs
  • desktop/src-tauri/src/diagnostics/report.rs
  • desktop/src-tauri/src/diagnostics/startup_marker.rs
  • desktop/src-tauri/src/diagnostics/startup_marker_tests.rs
  • desktop/src-tauri/src/durability.rs
  • desktop/src-tauri/src/errors.rs
  • desktop/src-tauri/src/health_monitor.rs
  • desktop/src-tauri/src/home.rs
  • desktop/src-tauri/src/lib.rs
  • desktop/src-tauri/src/links.rs
  • desktop/src-tauri/src/logging.rs
  • desktop/src-tauri/src/main.rs
  • desktop/src-tauri/src/nav.rs
  • desktop/src-tauri/src/record.rs
  • desktop/src-tauri/src/release.rs
  • desktop/src-tauri/src/runtime/artifacts.rs
  • desktop/src-tauri/src/runtime/boot_timestamp_drift.rs
  • desktop/src-tauri/src/runtime/boot_timestamp_drift_tests.rs
  • desktop/src-tauri/src/runtime/control_server_startup.rs
  • desktop/src-tauri/src/runtime/discovery.rs
  • desktop/src-tauri/src/runtime/health.rs
  • desktop/src-tauri/src/runtime/mod.rs
  • desktop/src-tauri/src/runtime/mutation.rs
  • desktop/src-tauri/src/runtime/probe.rs
  • desktop/src-tauri/src/runtime/provenance.rs
  • desktop/src-tauri/src/runtime/provision.rs
  • desktop/src-tauri/src/runtime/quiesce.rs
  • desktop/src-tauri/src/runtime/readiness.rs
  • desktop/src-tauri/src/runtime/recorded_start.rs
  • desktop/src-tauri/src/runtime/resolver.rs
  • desktop/src-tauri/src/runtime/resolver_tests.rs
  • desktop/src-tauri/src/runtime/startup_failure.rs
  • desktop/src-tauri/src/runtime/supervisor.rs
  • desktop/src-tauri/src/runtime/supervisor_tests.rs
  • desktop/src-tauri/src/runtime/update_cadence.rs
  • desktop/src-tauri/src/runtime/update_lifecycle.rs
  • desktop/src-tauri/src/runtime/update_lifecycle_tests.rs
  • desktop/src-tauri/src/runtime/update_recovery.rs
  • desktop/src-tauri/src/shell.rs
  • desktop/src-tauri/src/state.rs
  • desktop/src-tauri/src/update/app_update.rs
  • desktop/src-tauri/src/update/app_update_tauri.rs
  • desktop/src-tauri/src/update/manifest_runtime_stager.rs
  • desktop/src-tauri/src/update/mod.rs
  • desktop/src-tauri/src/update/runtime_update.rs
  • desktop/src-tauri/src/windowing.rs
  • desktop/src-tauri/tests/contracts.rs
  • desktop/src-tauri/tests/fake_daemon.rs
  • desktop/src-tauri/tests/runtime_resolution.rs
  • desktop/src-tauri/tests/update_system.rs
  • desktop/src/boot/__tests__/boot-preload.test.ts
  • desktop/src/boot/__tests__/bootstrap-state.test.ts
  • desktop/src/boot/boot-contract.ts
  • desktop/src/boot/boot-preload.ts
  • desktop/src/boot/bootstrap-state.ts
  • desktop/src/bootstrap/__tests__/bootstrap-event.test.ts
  • desktop/src/bootstrap/__tests__/bundle-integrity.test.ts
  • desktop/src/bootstrap/__tests__/runtime-health-monitor.test.ts
  • desktop/src/bootstrap/bootstrap-event.ts
  • desktop/src/bootstrap/bootstrap-runner.ts
  • desktop/src/bootstrap/bundle-integrity.ts
  • desktop/src/bootstrap/executable-digest.ts
  • desktop/src/bootstrap/runtime-health-monitor.ts
  • desktop/src/control/__tests__/control-server.test.ts
  • desktop/src/control/control-contract.ts
  • desktop/src/control/control-handler.ts
  • desktop/src/control/control-server.ts
  • desktop/src/control/control-token.ts
  • desktop/src/deep-links/__tests__/deep-link.test.ts
  • desktop/src/deep-links/deep-link.ts
  • desktop/src/diagnostics/__tests__/export-diagnostics.test.ts
  • desktop/src/diagnostics/export-diagnostics.ts
  • desktop/src/files/atomic-write.ts
  • desktop/src/files/private-directory.ts
  • desktop/src/home.ts
  • desktop/src/logging/desktop-logger.ts
  • desktop/src/main.ts
  • desktop/src/release/__tests__/release.test.ts
  • desktop/src/release/build-channel.ts
  • desktop/src/release/cross-arch.ts
  • desktop/src/release/mac-manifest.ts
  • desktop/src/release/mac-zip.ts
  • desktop/src/release/notary-auth.ts
  • desktop/src/release/release-config.ts
  • desktop/src/release/release-script-flags.ts
  • desktop/src/state/__tests__/app-state.test.ts
  • desktop/src/state/app-state.ts
  • desktop/src/state/public-safe-text.ts
  • desktop/src/state/startup-marker.ts
  • desktop/src/update/__tests__/app-update-consumer.test.ts
  • desktop/src/update/__tests__/consumer-policy.test.ts
  • desktop/src/update/__tests__/electron-installer-policy.test.ts
  • desktop/src/update/app-update-consumer.ts
  • desktop/src/update/consumer-policy.ts
  • desktop/src/update/electron-installer-policy.ts
  • desktop/src/update/electron-installer.ts
  • desktop/src/update/operation-contract.ts
  • desktop/src/update/operation-watcher.ts
  • desktop/src/update/transition-client.ts
  • desktop/src/window/__tests__/crash-recovery-policy.test.ts
  • desktop/src/window/__tests__/navigation-policy.test.ts
  • desktop/src/window/__tests__/product-window-chrome.test.ts
  • desktop/src/window/__tests__/window-state-policy.test.ts
  • desktop/src/window/__tests__/zoom-policy.test.ts
  • desktop/src/window/application-menu.ts
  • desktop/src/window/boot-window.ts
  • desktop/src/window/crash-recovery-policy.ts
  • desktop/src/window/navigation-policy.ts
  • desktop/src/window/product-window-chrome.ts
  • desktop/src/window/product-window.ts
  • desktop/src/window/security.ts
  • desktop/src/window/window-presentation.ts
  • desktop/src/window/window-state-policy.ts
  • desktop/src/window/window-state-store.ts
  • desktop/src/window/zoom-policy.ts
  • desktop/vitest.config.ts
  • go.mod
  • internal/api/contract/settings.go
  • internal/api/contract/settings_mutations.go
  • internal/api/contract/status.go
  • internal/api/core/conversions_settings_sections.go
  • internal/api/core/handler_edge_cases_test.go
  • internal/api/core/interfaces.go
  • internal/api/core/schema_stream_status.go
  • internal/api/core/settings.go
  • internal/api/core/settings_test.go
  • internal/api/core/settings_update.go
  • internal/api/httpapi/handlers_test.go
  • internal/api/httpapi/routes.go
  • internal/api/httpapi/static.go
  • internal/api/httpapi/static_test.go
  • internal/api/spec/registry_settings.go
  • internal/api/spec/schema_enum_registry.go
  • internal/api/spec/settings_test.go
  • internal/api/spec/settings_values.go
  • internal/api/udsapi/handlers_test.go
  • internal/api/udsapi/routes.go
  • internal/appstatecontract/schema.go
  • internal/cli/app.go
  • internal/cli/app_control.go
  • internal/cli/app_diagnose.go
  • internal/cli/app_test.go
  • internal/cli/app_types.go
  • internal/cli/cli_integration_test.go
  • internal/cli/connect_ssh.go
  • internal/cli/daemon.go
  • internal/cli/daemon_app_diagnostics.go
  • internal/cli/daemon_app_diagnostics_test.go
  • internal/cli/daemon_app_transition.go
  • internal/cli/daemon_app_transition_test.go
  • internal/cli/daemon_authored_context_test.go
  • internal/cli/daemon_bootstrap.go
  • internal/cli/daemon_bootstrap_output.go
  • internal/cli/daemon_bootstrap_policy.go
  • internal/cli/daemon_bootstrap_provenance.go
  • internal/cli/daemon_bootstrap_provision.go
  • internal/cli/daemon_bootstrap_test.go
  • internal/cli/daemon_wait_readiness_test.go
  • internal/cli/daemon_wait_test.go
  • internal/cli/extension_publish.go
  • internal/cli/lifecycle_test.go
  • internal/cli/network_coordination_output.go
  • internal/cli/output_labels.go
  • internal/cli/roles.go
  • internal/cli/root_defaults.go
  • internal/cli/task_output_inspect.go
  • internal/cli/update.go
  • internal/cli/update_command_test.go
  • internal/cli/update_projection.go
  • internal/cli/update_runtime.go
  • internal/cli/update_test_helpers_test.go
  • internal/config/home.go
  • internal/config/home_permissions_test.go
  • internal/config/home_test.go
  • internal/config/release_config_test.go
  • internal/daemon/boot.go
  • internal/daemon/boot_extensions.go
  • internal/daemon/boot_publish.go
  • internal/daemon/boot_settings.go
  • internal/daemon/daemon_extension_agent_native_e2e_integration_test.go
  • internal/daemon/daemon_runtime_state.go
  • internal/daemon/daemon_shutdown_runtime.go
  • internal/daemon/daemon_test.go
  • internal/daemon/extension_network_lifecycle_integration_test.go
  • internal/daemon/extension_network_lifecycle_test.go
  • internal/daemon/extension_secret_hygiene_integration_test.go
  • internal/daemon/extension_secrets_integration_test.go
  • internal/daemon/extension_secrets_test.go
  • internal/daemon/extensions_inventory_test.go
  • internal/daemon/extensions_service.go
  • internal/daemon/extensions_test.go
  • internal/daemon/info.go
  • internal/daemon/model_catalog.go
  • internal/daemon/model_catalog_test.go
  • internal/daemon/native_extension_tools.go
  • internal/daemon/native_extension_tools_integration_test.go
  • internal/daemon/native_extension_tools_test.go
  • internal/daemon/settings.go
  • internal/daemon/settings_runtime_applier_test.go
  • internal/daemon/settings_test.go
  • internal/daemon/settings_update.go
  • internal/daemon/update_background.go
  • internal/desktoprelease/authority.go
  • internal/desktoprelease/authority_channel.go
  • internal/desktoprelease/authority_contract.go
  • internal/desktoprelease/authority_inventory.go
  • internal/desktoprelease/authority_request.go
  • internal/desktoprelease/authority_result.go
  • internal/desktoprelease/canonical_json.go
  • internal/desktoprelease/channel_config.go
  • internal/desktoprelease/compatibility.go
  • internal/desktoprelease/errors.go
  • internal/desktoprelease/generation.go
  • internal/desktoprelease/github_audit.go
  • internal/desktoprelease/github_backend.go
  • internal/desktoprelease/inventory.go
  • internal/desktoprelease/manifest.go
  • internal/desktoprelease/manifests.go
  • internal/desktoprelease/model.go
  • internal/desktoprelease/policy.go
  • internal/desktoprelease/release_test.go
  • internal/desktoprelease/schema_heads.go
  • internal/desktoprelease/strict_json.go
  • internal/desktoprelease/url.go
  • internal/modelcatalog/live_sources.go
  • internal/modelcatalog/live_sources_test.go
  • internal/procutil/detached.go
  • internal/store/globaldb/global_db_loop_test.go
  • internal/store/globaldb/global_db_test.go
  • internal/update/app_apply.go
  • internal/update/app_digest.go
  • internal/update/app_failure.go
  • internal/update/compatibility.go
  • internal/update/compatibility_test.go
  • internal/update/coordinator.go
  • internal/update/coordinator_runtime.go
  • internal/update/coordinator_state.go
  • internal/update/coordinator_test.go
  • internal/update/coordinator_types.go
  • internal/update/detect.go
  • internal/update/detect_matrix_test.go
  • internal/update/detect_test.go
  • internal/update/github.go
  • internal/update/manager.go
  • internal/update/manager_apply.go
  • internal/update/manager_apply_test.go
  • internal/update/manager_check_test.go
  • internal/update/manager_state.go
  • internal/update/multi_check.go
  • internal/update/operation_archive.go
  • internal/update/operation_event_mapping.go
  • internal/update/operation_events.go
  • internal/update/operation_files.go
  • internal/update/operation_store.go
  • internal/update/operation_test.go
  • internal/update/operation_transition.go
  • internal/update/operation_types.go
  • internal/update/path_helpers.go
  • internal/update/plan.go
  • internal/update/projection.go
  • internal/update/projection_test.go
  • internal/update/provenance.go
  • internal/update/target_error.go
  • internal/update/test_helpers_test.go
  • internal/update/types.go
  • internal/version/version.go
  • internal/version/version_test.go
  • internal/worktree/discovery_test.go
  • internal/worktree/git_runner.go
  • internal/worktree/git_runner_test.go
  • scripts/assert-desktop-artifacts.sh
  • scripts/assert-desktop-signing-material.sh
  • scripts/assert-desktop-version-strictly-greater.sh
  • scripts/assert-runtime-manifest-payloads.sh
  • scripts/build-desktop-feed.sh
  • scripts/check-product-language.sh
  • scripts/desktop-dev.sh
  • scripts/generate-desktop-update-key.sh
  • scripts/normalize-desktop-artifacts.sh
  • scripts/publish-desktop-release.sh
  • scripts/read-canonical-runtime-version.sh
  • scripts/repair-desktop-feed.sh
  • scripts/sign-runtime-manifest.sh
  • scripts/smoke-desktop-release-artifact.sh
  • scripts/verify-desktop-release-build-contract.sh
  • scripts/verify-desktop-signature.sh
  • web/src/routes/_app/settings/-general-settings-page.tsx
  • web/src/routes/_app/settings/-general-update-section.tsx
  • web/src/routes/_app/settings/__tests__/-general.test.tsx
  • web/src/storybook/settings-state-helpers.tsx
  • web/src/systems/os/components/desktop-menubar.tsx
  • web/src/systems/os/components/desktop-shell.tsx
  • web/src/systems/os/components/index.ts
  • web/src/systems/os/components/menubar/__tests__/menubar-update-indicator.test.tsx
  • web/src/systems/os/components/menubar/menubar-update-indicator.tsx
  • web/src/systems/os/components/os-menubar.tsx
  • web/src/systems/os/hooks/use-menubar-actions.ts
  • web/src/systems/os/lib/__tests__/routing-coordinator.test.ts
  • web/src/systems/os/lib/routing-coordinator.ts
  • web/src/systems/settings/adapters/settings-api.ts
  • web/src/systems/settings/adapters/settings-sections-api.ts
  • web/src/systems/settings/components/index.ts
  • web/src/systems/settings/components/settings-update-track-row.tsx
  • web/src/systems/settings/hooks/__tests__/use-settings-general-page.test.tsx
  • web/src/systems/settings/hooks/use-settings-general-page.ts
  • web/src/systems/settings/hooks/use-settings-update-mutations.ts
  • web/src/systems/settings/index.ts
  • web/src/systems/settings/lib/__tests__/query-options.test.ts
  • web/src/systems/settings/lib/__tests__/update-presentation.test.ts
  • web/src/systems/settings/lib/query-options.ts
  • web/src/systems/settings/lib/update-phase-map.ts
  • web/src/systems/settings/lib/update-presentation.ts
  • web/src/systems/settings/mocks/handlers.ts
  • web/src/systems/settings/mocks/index.ts
  • web/src/systems/settings/mocks/settings-update-fixture.ts
  • web/src/systems/settings/types.ts
  • web/src/systems/status/mocks/fixtures.ts
  • web/src/systems/tasks/components/task-fan-out-dialog.tsx

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@vercel

vercel Bot commented Aug 17, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
compozy-site Ready Ready Preview Aug 17, 2026 8:38pm

Request Review

@pedronauck

Copy link
Copy Markdown
Member Author

@CodeRabbit full review

@coderabbitai

coderabbitai Bot commented Aug 17, 2026 •

Copy link
Copy Markdown
Contributor
⚠️ Action not completed

Review skipped: 358 files exceed the limit of 300.

pedronauck and others added 24 commits August 17, 2026 14:15
Checkpoint via cy-loop-tasks (iteration 2, phase B mode=tasks).

Co-Authored-By: Codex <[email protected]>
Checkpoint via cy-loop-tasks (iteration 3, phase B mode=tasks).

Claude Opus implementation reviewed and accepted by the controller; visual and browser QA evidence remains owned by the tail tasks.

Co-Authored-By: Codex <[email protected]>
Checkpoint via cy-loop-tasks (iteration 4, task mode).

Co-Authored-By: Codex <[email protected]>
Checkpoint via cy-loop-tasks (iteration 6, phase B mode=tasks).

Hard cut the legacy desktop shell and feed, retire the external bucket and alias, and align docs, skill, QA tracking, and release guidance with Electron.

Co-Authored-By: Codex <[email protected]>
Checkpoint via cy-loop-tasks (iteration 7, phase B mode=tasks).

Co-Authored-By: Codex <[email protected]>
@github-actions

github-actions Bot commented Aug 17, 2026 •

Copy link
Copy Markdown
Contributor

React Doctor found no new issues. 🎉

Reviewed by React Doctor for commit 4dede3b.

@pedronauck
pedronauck merged commit ecdca84 into main Aug 17, 2026
23 of 25 checks passed
@pedronauck
pedronauck deleted the electron branch August 17, 2026 20:36
This was referenced Aug 27, 2026
This was referenced Sep 15, 2026
This was referenced Sep 27, 2026

This branch was successfully deployed

1 active deployment
Preview — 4dede3b2 Deployed Aug 17, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant