Commit Graph
53 Commits
Author SHA1 Message Date
Neil 6f904ba5c3 copy(cloud): Run on's Orca Cloud subtitle reads "Sandbox · 8 vCPU · 16 GB", not "Hosted sandbox" (JA-25, glossary) 2026-11-11 11:41:22 -08:00
Neil d13f06108e test(cloud): live proof of per-turn checkpoints on a real dev VM (G11)
cloud/apps/acceptance/live/checkpoints-vm.ts runs a real Claude Code chat in orcad on a dev VM,
model pointed at a no-cost stand-in on the VM, over the desktop's own E2EE request connection.
Checks one checkpoint ref per turn, refs and files unchanged across sleep/wake and rollover,
Rewind + restore files + Undo from a fresh connection, the agent's context rewound too, and a
restore after an orcad restart. Always deletes the VM. Adds catalog row cloud.checkpoints.
2026-11-10 19:33:49 -08:00
Neil ab106b93cc feat(cloud): cloud run.ports passes on the #233 golden (3000 + second worktree block, stable across sleep) 2026-11-10 04:29:04 -08:00
Neil 8b2701636c feat(cloud): acceptance headless cloud run.ports (first workspace 3000, second worktree block, sleep/wake) 2026-11-10 04:29:04 -08:00
Neil 2a0790deef docs(cloud): run.ports cloud fail is desktop/golden skew pending #233 golden 2026-11-10 04:29:04 -08:00
Neil c6484c005b feat(cloud): desktop check for #233 run-action semantics and cloud port block (W9D_ONLY=run-ports2)
- run.nonconcurrent: echo-loop started in B stops only A's echo-loop; web keeps serving in A and B
- run.ports (cloud): ORCA_PORT in the first workspace's terminal and run action, before and after
  Sleep -> wake, with the VM's port registry; whether a second worktree on the same VM is offered
2026-11-10 04:29:04 -08:00
Neil d009ec750c chore(acceptance): W9 headless iOS sim run for life.read-asleep-phone (pass), lift audit cap 2026-11-10 04:29:04 -08:00
Neil adc417cae5 feat(cloud): acceptance read-asleep access (operator member removal, private prune) and phone protocol path, by W9 2026-11-10 03:54:00 -08:00
Neil b199587d7e feat(cloud): desktop run actions + ports checks (W9D_ONLY=run-actions)
- local.run-actions: autoRunAfterSetup after a good setup and not after a failed one, Run button,
  one trust prompt, Stop -> Stopped, menu Restart replaces the tab, Cmd+Opt+Enter start/restart
- run.nonconcurrent: echo-loop started in B stops A's
- run.ports: ORCA_PORT/ORCA_PORT_COUNT/CONDUCTOR_PORT per terminal, distinct blocks, stable across
  an app restart, served locally; cloud half: the action in the VM reachable here via auto-forward
- run.cloud-resume: action back after Sleep/wake and after Restart sandbox
2026-11-10 03:42:31 -08:00
Neil 29cdd2cb99 feat(cloud): acceptance read-while-asleep (live, E2EE, no wake) plus access/phone rows (owner-reported) 2026-11-10 03:42:31 -08:00
Neil 322ba5eabb feat(cloud): acceptance catalog rows for run actions and per-workspace ports (gap 4) 2026-11-10 03:42:31 -08:00
Neil 8550787232 docs(cloud): region/size AFTER benchmarks — wake p95 5.85 s in pdx1 2026-11-10 01:45:21 -08:00
Neil 2920f1c173 feat(cloud): acceptance image.agents, agent.keys-swap (no model), sub.size at 8/16 (U18); more-agents owner-reported 2026-11-10 01:45:21 -08:00
Neil f1aa875edc docs(cloud): checkpoints verified independently by W9 (host path + real git tests) 2026-11-10 01:21:08 -08:00
Neil c9c0a0c65e feat(cloud): acceptance records owner-reported results (import-external); checkpoints capped until independent run 2026-11-10 01:20:19 -08:00
Neil f6b6c5141c feat(cloud): acceptance create-bench (host CPU/size/region), wake-split region + CPU per wake, bench-summary 2026-11-10 01:20:19 -08:00
Neil f9cc0f0c89 docs(cloud): agent caps lifted only by the user's own e2e session (no gateway runs) 2026-11-10 01:20:19 -08:00
Neil 4b3e0b62d3 docs(cloud): lift download/remote-desktop audit caps after real-UI run on m4air 2026-11-09 23:50:14 -08:00
Neil f8058b55a5 feat(cloud): desktop UI checks for acc.download, acc.remote-desktop and local.core-workflow (W9D_ONLY=ui-audit)
- local.core-workflow: composer local worktree (Blank Terminal), edit in its terminal, diff in
  Source Control and the diff tab, Stage All, commit
- acc.download: Explorer Download… (20 MiB file) and Download as ZIP… (folder) with progress and
  success toasts and sha256 checks; only the native Save panel's answer is stubbed in main via the
  inspector (W9D_MAIN_INSPECT)
- acc.remote-desktop: workspace menu Open remote desktop -> orcaDesktop connected, noVNC canvas
  sampled, a red xterm launched on DISPLAY=:1 shows up; guest screenshots over CDP
- local rows without a host badge count as local
2026-11-09 23:50:14 -08:00
Neil 1e2dc4f00f fix(cloud): acceptance report applies independent-audit caps (partial) and adds local core workflow, run actions, read-while-asleep and checkpoints rows 2026-11-09 23:31:50 -08:00
Neil d9b9e23ca3 docs(cloud): acceptance wake delivery on snap_6kSW (#173/#175) 2026-11-09 23:31:50 -08:00
Neil 4ec131ade1 docs(cloud): acceptance findings — asleep delete 1.5 s after #171 2026-11-09 21:40:54 -08:00
Neil 515bc10542 feat(cloud): desktop acceptance stamps app log lines with wall-clock time and records Delete click/done times 2026-11-09 21:40:54 -08:00
Neil dd0cd5b001 feat(cloud): acceptance report p99 column; wake delivery on the #151/#162 golden (n=22) 2026-11-09 21:27:41 -08:00
Neil 6732b345b2 feat(cloud): acceptance env.setup-script verifies orca.yaml setup in the VM exactly once (core #168) 2026-11-09 21:20:26 -08:00
Neil 5a7484cf20 Merge pull request #169 from nwparker/cloud/w9-eval
feat(cloud): acceptance — billing gate via billing-test accounts, CLI --on cloud, asleep move-delete, staging teams
2026-11-09 21:17:28 -08:00
Neil 78c874ee1f feat(cloud): run orca.yaml setup once for API/CLI/phone/routine workspaces (#168)
Desktop-created cloud workspaces already run setup through orcad's worktree
create after the setup prompt. Workspaces made through createWorkspace use the
VM's primary checkout, which no worktree create touches, so their setup never
ran. Start it detached on create (once per workspace, orcad's env, skipped on
environment builds) and have routine runners wait for it.
2026-11-09 21:16:28 -08:00
Neil 22f8d5abb4 docs(cloud): acceptance findings — CLI create and asleep move-delete closed 2026-11-09 21:15:16 -08:00
Neil d9cd1bac93 feat(cloud): acceptance api.cli runs orca worktree create --on cloud headlessly (W5 #167) 2026-11-09 21:14:53 -08:00
Neil 3b8867d3de feat(cloud): acceptance control-plane billing gate end to end via dev:billing-test-* (#166) 2026-11-09 21:14:53 -08:00
Neil f04525d7db feat(cloud): acceptance closes idle sleep, agent sign-in persistence, wake-on-message, scheduled routines, file search, usage metering, overage cap and full dunning; web client post-MVP 2026-11-09 21:03:10 -08:00
Neil c77ab2b16c feat(cloud): desktop keystroke n=W9D_KEY_SAMPLES with p99/outlier timeline; life.auto-resume desktop check
- W9D_KEY_SAMPLES (default 10): stats gain p99; each sample records time since the workspace's
  first terminal output and wall clock, plus a histogram and the outliers
- life.auto-resume (W9D_AUTO_RESUME=1, W9D_ONLY=auto-resume): personal AI Gateway secrets for the
  dev user (kimi-k2, never logged, deleted after), Claude runs a 40 s loop, status panel Restart,
  Orca must send continue once and the turn must finish; mapped to catalog life.auto-resume
2026-11-09 21:03:10 -08:00
Neil b98feda7f8 feat(cloud): targeted desktop acceptance for #157 (picker sign-in twice, Move then Delete)
- W9D_MODE=targeted: picker sign-in on a fresh profile and again after a sign-out, create +
  keystroke, Move to this computer with Archive afterwards then Delete within seconds (destroyed,
  no suspend/archive error toasts), normal delete
- asleep Delete through the dialog without a Force delete offer is intended: graded pass
- cleanup removes local copies a run made; catalog row + import mapping for move-then-delete
2026-11-09 20:34:07 -08:00
Neil aedfb7f7de feat(cloud): desktop acceptance covers #149 (picker sign-in, asleep Force delete, cross-team delete, sign-in card)
- auth.picker-sign-in: picking the signed-out Orca Cloud row must leave Orca Cloud selected
- life.delete-asleep(-after-move): no wake, Force delete offer, destroyed; life.destroy now a
  normal delete of an awake workspace; D-2 passes on a cross-team destroy or a kept
  "couldn't confirm" row
- vercel-check.ts: confirms each run sandbox is 404 on Vercel and records it in results.json
- catalog rows and import mapping for the new steps
2026-11-09 19:59:49 -08:00
Neil 893be16f77 perf(terminal): prove an idle Linux daemon shell from /proc so Enter skips the paste settle (#151)
terminal.send text+Enter to a daemon-backed shell always waited the 500 ms agent paste
settle: the daemon's shell-foreground answer is lifecycle ownership, which is only proven
after a recovery or full-screen exit, never for a fresh or plain-command shell. On Linux
the idle-prompt claim now also accepts the shell's own /proc stat (process group is the
terminal foreground group, i.e. ps '+'), scoped to the target PTY; other hosts unchanged.

The acceptance wake split uses one persistent paired connection per wake (the desktop's
transport) by default; transport=cli keeps the per-call socket the CLI dials.
2026-11-09 19:38:55 -08:00
Neil 1417e042fc feat(cloud): desktop acceptance covers the #127 fixes and runs on a remote Mac
- auth.signed-out-create (D-1/D-4), proj.cloud-name (D-3), life.delete-unconfirmed (D-2,
  team switch -> not_found), life.delete-after-oob-destroy; life.destroy now requires destroyed
  and records the asleep-delete refusal
- starts signed out (dev auth) with no sign-in-then-relaunch workaround; mock keychain so a
  fresh dev app identity does not block on a macOS Keychain prompt
- cloud vs local rows disambiguated by badge (Move to this computer reuses the name)
- upload/download helpers for staging and collecting a run on a paired Orca environment
2026-11-09 19:08:55 -08:00
Neil f2df1de717 feat(cloud): acceptance wake-delivery split benchmark, persistent-connection downloads, golden status helper 2026-11-09 19:08:55 -08:00
Neil d7552c51a0 feat(cloud): acceptance remote-desktop check (ticketed websockify upgrade on the VM loopback) 2026-11-09 19:08:55 -08:00
Neil 75f7919107 docs(cloud): acceptance findings — desktop fixes #127 awaiting UI re-run 2026-11-09 19:08:55 -08:00
Neil fe4ae20d78 fix(cloud): acceptance deletes staging teams via cleanup-teams.mjs (#130), skips team checks when cleanup is unavailable 2026-11-09 17:50:02 -08:00
Neil 8b05b95c98 docs(cloud): acceptance findings — downloads pass on the #115 image 2026-11-09 17:46:24 -08:00
Neil eedb151a46 feat(cloud): acceptance headless download check, staging team create/invite, findings 2026-11-09 17:41:37 -08:00
Neil a2a92474c0 fix(cloud): acceptance polls env builds by default (verifies server-side progression); findings update 2026-11-09 17:36:05 -08:00
Neil d84196a177 docs(cloud): acceptance findings — W6 precedence confirmed 2026-11-09 17:28:51 -08:00
Neil 721d726c4a chore(cloud): register the acceptance harness test runner 2026-11-09 16:26:37 -08:00
Neil 36ef6c1f65 test(cloud): acceptance harness unit tests 2026-11-09 16:17:06 -08:00
Neil be86278bb5 feat(cloud): acceptance desktop import, build event-stream wait, routine creds, key revocation, summary 2026-11-09 16:16:40 -08:00
Neil 86390320c8 feat(cloud): desktop Electron acceptance run (create, keystroke, ports, ssh, sleep/wake, transfer, destroy) 2026-11-09 16:16:39 -08:00
Neil 947813d4fc fix(cloud): acceptance check fixes (seat true-down, repo object, ssh probe, ports bound, kid from key file, load notes) 2026-11-09 16:16:39 -08:00
Neil f0192658c8 feat(cloud): acceptance checks for W1 builds, W2 lifecycle, W3 shares/ssh/ports, W4 team, W5 API/MCP/routines, W8 devices 2026-11-09 16:16:39 -08:00