Under a long TMPDIR (the omarchy premerge lane's) the run root falls back to /tmp, so
'leaves an unmarked one with the same name alone' tested /tmp instead of its own base
and failed for unrelated PRs (#667). Bases now live under /tmp on POSIX.
* wip(cloud): PARITY-FOLLOW design fixtures (top-bar followers, sidebar Team and Following)
* feat(cloud): PARITY-FOLLOW phase 1: sidebar Team list and the top bar's people (creator and who is here now)
* test(cloud): PARITY-FOLLOW fixtures name the workspace a teammate is in
* fix(cloud): PARITY-FOLLOW fixture typecheck
* feat(cloud): PARITY-FOLLOW follow endpoint: workspace_follows (0055), PUT/DELETE /v1/team/workspaces/:id/follow, followers in workspace views
* fix(cloud): PARITY-FOLLOW lint: the hover action's wrapper owns its visibility; no Button restyles; no side effect in a state updater
* feat(cloud): PARITY-FOLLOW phase 2: Follow in the top bar, followers in the stack, Following section in the sidebar
* test(cloud): PARITY-FOLLOW no real-time wait in the live-read test
true -> Install, false -> no Install (copy request for an owner); null (no connected GitHub, GitHub
refused) or absent (older Worker) -> the person's gh read as before (#644). Visible copy unchanged.
* wip(cloud): PARITY-FOLLOW design fixtures (top-bar followers, sidebar Team and Following)
* feat(cloud): PARITY-FOLLOW phase 1: sidebar Team list and the top bar's people (creator and who is here now)
* test(cloud): PARITY-FOLLOW fixtures name the workspace a teammate is in
* fix(cloud): PARITY-FOLLOW fixture typecheck
* fix(cloud): PARITY-FOLLOW lint: the hover action's wrapper owns its visibility; no Button restyles; no side effect in a state updater
* test(cloud): PARITY-FOLLOW no real-time wait in the live-read test
* feat(cloud): SSO-FOLLOWUPS members managed by the identity provider on the Team page; a clear message when single sign-on ends a sign-in
* fix(cloud): import the roster type where it is used
* feat(cloud): wording for single sign-on and directory sync events in the audit log
* fix(cloud): the missing-DNS-record audit line reads as an action (design-squad)
cloud/integration fails oxlint max-lines on use-secret-request-card.ts (303 counted
lines, limit 300) since #637, which fails every premerge that merges integration.
Moves canWriteRepo and its cache to secret-request-repo-write.ts; no behaviour change.
An automatic environment (no install script) now runs the first repo's JavaScript install from its
lockfile during its build, so creates start with node_modules: pnpm/yarn through corepack (frozen /
immutable), npm ci; package.json's packageManager wins. A failure, a lockfile out of date or the
15-minute cap never fails the build: the log says why, half-installed node_modules are removed, and
the warm clone is snapshotted as before. Lockfiles the image has no tool for (bun, uv, bundler, go,
cargo) are named in the log. Admin environments are unchanged. env/ scripts ship in the Worker:
VM_SCRIPTS_HASH is unchanged (no golden rotation).
- Open workspace opens even when a queued prompt can't start; the prompt is marked failed (Retry/Remove)
instead of staying 'Waiting to connect' and being re-sent on every Open (runCloudDelivery, tested).
- An enrolled phone with no paired desktop keeps Home's Cloud section (homeFeedLayout, tested).
- A W-number link opened before connecting shows the share-link 'Sign in to Orca Cloud on this phone'
state and returns to the link after connecting (cloudNumberLinkState, return-to allows /cloud/<org>/W-<n>).
- 409 github_not_connected names the repo and the fix; a clone failure names the repo.
- Archived detail: no prompt box; hours line says archived, not asleep.
A table of every team cloud workspace (name, W-number, repository, created by, state, last
active, shared/private) with By, In and search; per row only the actions the control plane
allows (open, sleep, archive) through the existing flows. No pins, sections or ordering.
Co-Authored-By: Claude <noreply@anthropic.com>
settleHeldPlaceholder (cloud-web-host-launch-hold.ts:104) calls create(args) on 'proceed'; for a
restored hold that create is createWebRuntimeSessionTerminalResult, which wraps createWithCloudAgentHold.
If the account still can't run the agent, that create holds AGAIN in a NEW placeholder: two shells.
#600's fresh-read Start closes the usual path, but any 'proceed' on an uncovered account still doubles.
Planned fix: after 'proceed', if cloudAgentLaunchDecision(agent) is 'hold', re-hold in the SAME
placeholder (loop) instead of create(); test: restored unread hold, notSetUp, proceed -> one placeholder,
no agent create, hold reason notSetUp on the same tab.
owner-request.ts: copyOwnerRequest(repoUrl, 'start' | 'push'), ownerRequestLabel and
useOwnerRequestCopy (Copied for 1.5 s), with one set of keys (orcaCloud.ownerRequest.*). The
CLONE-ACCESS-ERROR and ENV-NOTICE-ACTIONS copies and their private keys are gone. Same visible
words.
* feat(cloud): ENTERPRISE-SSO Settings › Enterprise single sign-on and directory sync, driven by server state
* feat(cloud): key icon on the single sign-on group title (TEAM-DIALOG-2)
* fix(cloud): Contact us in the SSO block is a plain button; Copy link is for sign-in surfaces
* test(cloud): the copied SSO setup link is minted like the opened one and never logged
* fix(cloud): design-squad review of the SSO blocks (sentence-case chips, directory sync icon, grace and last-change wording)
* fix(cloud): sentence-case success badge variant for the SSO chips; catalog matches the new copy
* fix(cloud): register the Enterprise IPC handlers with the team handlers (file line limit)
* feat(cloud): every setup notice line has plain words and a real action, or doesn't show (ENV-NOTICE-ACTIONS)
- Doctor checks that reached the bare 'check' line now classify: low disk ('disk')
and a missing repo tool ('tool') get their own plain words; disk.free without a
code and any check this desktop doesn't know are hidden, never a bare label.
- The push notice reads repo access plus the person's own gh rights on the repo
(new gitHubInstallRights IPC): Install on {owner} only where installing can
work, 'Copy request for an owner' once an owner was asked, Check again where
the App already reaches the repo, plain words for someone else's public repo
(octocat/Hello-World). Install no longer carries a Copy link.
* copy(cloud): a push nobody here can install offers Copy request for an owner (design-squad, ENV-NOTICE-ACTIONS)
* fix(cloud): ENV-NOTICE-ACTIONS rebase onto AUTH-ONLY-COPY-LINK: the owner request takes the install page from the repo-access answer