The control plane sends a run's triggerDetail as an object ({requestedBy}, {event, target}, {scheduledFor}); the desktop schema wanted a string, so POST /run and run history failed to parse although the run had started, inviting a duplicate run. Accept the object and show one short label.
- cloud-transfer-steps runs git through gitExecFileAsync (no direct child_process); VM replies parsed with zod.
- Casts replaced by types, guards and zod across hosted-sandbox, cloud-api, cloud-api settings and tests.
- Offline cache and message-queue store use node:fs/promises (main-sync-fs ratchet); the offline service's
30 s setInterval becomes a backing-off beat that runs only while prompts are queued; renderer intervals use
installWindowVisibilityInterval.
- Flaky-test gates: fixed timestamps, vi.waitFor, no sleeps in cloud-message-queue/cloud-transfer tests.
- shadcn restyles become primitive variants (Skeleton shape/motion, Button default-held, Textarea compact/bare,
InlineError toast layout, Popover focusRing); exhaustive switch; derived pending state in the run-target hook.
- Localization: routine labels/placeholders and 'Orca Cloud is unavailable.' through t(); cloudSecrets plurals
pass the singular as defaultValue_one.
- config/scripts/cloud-integration/premerge-check.sh: merge-into-integration gate (typecheck + full lint + tests).