Highlights
User-visible
- File browser timeout UX (#392) — distinguishes "device transiently unreachable" from "device offline" so users get accurate, actionable errors instead of a misleading 30s silent timeout. Bulk-op timeouts on destructive ops (delete/move/purge) now flag results as
unverifiedso the UI can warn users to refresh-and-verify rather than safely retry. - macOS Screen Sharing self-enable tracking (#398) — fixes a regression where the agent was disabling Screen Sharing on tunnel close even when the user (or MDM) had enabled it themselves. The agent now only disables Screen Sharing it turned on itself.
Bug fixes
- Audit log RLS escape (#396) —
createAuditLogno longer runs inside the caller's request transaction. Fixes two latent issues: RLS denials for partner-scope callers writing NULL-org audit rows, and silent rollback of the caller's real work when an audit insert failed inside the request tx. - Agent build on all platforms (#393) — fixes Build Agent failures on linux, darwin/amd64, darwin/arm64, and windows/amd64. Adds a non-Windows stub for
switchThreadToInputDesktopand the missinglastDesktopSkipLogfield ondxgiCapturer. - Agent slog error serialization (#397) —
slog.Warn("error", err)was serializing as{}in 4 sites in the websocket client. Now useserr.Error()so log entries actually contain the error message.
Features
- macOS CGEvent session-tap input fallback (#399) — adds a CGEvent fallback path used when IOHIDSystem is unavailable (held exclusively by WindowServer in some TCC states). Login window now reports
unsupported_osso the UI falls back to VNC Relay. - Dev-push for
breeze-desktop-helper(#400) —POST /dev/pushnow accepts acomponentfield. Settingcomponent=desktop_helperdownloads, verifies, installs, and kickstarts the helper LaunchAgents without bouncing the main agent.
Infrastructure
- Test mock debt (#394) — fixes 163 test files that were missing
withSystemDbAccessContext/withDbAccessContext/.orderBy()/.returning()/redis.get()in their mock factories. Drops Test API failure count from 19 to 11 (the remaining 11 are pre-existing unrelated failures). - CLAUDE.md RLS reference (#395) — comprehensive "Tenant Isolation / RLS" section documenting the five tenancy shapes, the DB context helpers, the workflow for adding new tables, and production rollout guidance.
- RLS app role bootstrap (in #392) —
autoMigrateself-derivesDATABASE_URL_APPand hard-fails onBYPASSRLS/SUPERUSERto prevent silent loss of tenant isolation on self-hosted upgrades. New2026-04-11-a-rls-function-bootstrap.sqlmigration unblocks fresh-install ordering for the RLS bucket-C migrations.
Full Changelog: v0.62.11...v0.62.12