Repository navigation
improvement(desktop): ship the background executor without a flag, close its QA gaps - #8782
Conversation
…a run A background terminal run on a fresh shell waited a flat 8 s for the first prompt and then failed with NO_SHELL_INTEGRATION. A startup file that stops at a question (oh-my-zsh's update prompt) holds the prompt indefinitely, so the run failed with a message blaming the shell's integration. The generated startup files now send a SimStartup marker before any of the user's files run. A shell that never sends it within 8 s of spawning is not instrumented and is refused as before (an unsupported shell at once). One that did gets 30 s to reach its prompt, which tolerates slow startup files on a busy machine; past that the run is refused with the screen it is stuck on, so the agent can ask the user to answer it. Stop now ends the wait, and a shell that exits mid-wait reports SESSION_CLOSED.
…rk cut - background-executor and terminal-cancel record each check through one shared helper as it finishes. The background-executor report was written from module state in afterAll, so a worker restart after a failure wiped it and the report could read green. Reports from an earlier run are replaced, not appended to. check-report.spec.ts forces a worker restart in a nested Playwright run and asserts the failure stays. - The executor fixture launches the app with zsh and an empty ZDOTDIR, so a developer's .zshrc (an unanswered oh-my-zsh update prompt) cannot hold the first prompt and fail unrelated scenarios. - Scenario B now cuts the network at the socket level: every open connection, the doorbell stream included, drops and new ones are reset. It asserts the result lands exactly once, the doorbell reopens, and new work is picked up after reconnecting.
…or run The fixture Sim can now decline a held call the way Sim settles it, and the executor suite checks the device never claims it and its command never runs after the approval notification.
…r on The live suite's Sim has Redis, so with the executor shipped always-on every turn now binds to the app and runs in the background. The proxy answers the app's registration as an install without Redis would, so the chat-view tests keep covering that path, and the round trip asserts the app stays dormant. Two tests let Sim's own answer through: a call issued after the user switched chats runs on the desktop, and a result reported across a network cut (every connection dropped, the first report landing late) reaches the agent exactly once.
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
|
@cubic-dev-ai review this PR |
@waleedlatif1 I have started the AI code review. It will take a few minutes to complete. |
There was a problem hiding this comment.
All reported issues were addressed across 38 files
Reply with feedback, questions, or to request a fix.
Turn on auto-fix | Re-trigger cubic
There was a problem hiding this comment.
All reported issues were addressed across 38 files
Reply with feedback, questions, or to request a fix.
Turn on auto-fix | Re-trigger cubic
…iles began The 30 s bound ran from spawn, so a shell whose startup marker arrived late on a busy machine got less than the promised time for its startup files. The deadline now starts at the marker.
|
|
@cubic-dev-ai review this PR |
@waleedlatif1 I have started the AI code review. It will take a few minutes to complete. |
Summary
mothership-desktop-background-executorflag. The executor now runs wherever Sim can track desktop presence, which means wherever Redis is configured. Installs without Redis keep running desktop tools in the chat window. Organization surfaces never show desktop activity, and runs that are already bound are unaffected.isDesktopBackgroundExecutorAvailable(). The client learns availability from a server-computeddesktopExecutorAvailableprop on the workspace sidebar instead of the feature-flag map. I removed the registry entry, theMSHIP_DESKTOP_BACKGROUND_EXECUTORfallback and the CI env export.After deploy: the
mothership-desktop-background-executorentry in the staging AppConfigfeature-flagsdocument is unused. An operator should remove it. The infra validator only checks the document's shape, so it needs no change.Type of Change
Testing
apps/simandapps/desktoppass, as do biome,check:comment-hygiene,check:api-validation,check:client-boundary,check:application-graphandcheck:unused-exports.lib/desktopand the feature-flag config. A new layout test checks that the sidebar receives presence availability.background-executor,terminal-cancelandcheck-report: 25 of 25 pass.desktop-tools-live-simagainst a local Sim with Redis: 12 of 12 pass. Before the suite update, it failed from the first test.Checklist