Skip to content

[Chore] Show the Zoo Code panel in the Solheim smoke video and bound the apt step - #2195

Draft
zoomote2[bot] wants to merge 1 commit into
mainfrom
feature/solheim-smoke-sidebar-video-1nik3xur3t4nr
Draft

zoomote2[bot] wants to merge 1 commit into
mainfrom
feature/solheim-smoke-sidebar-video-1nik3xur3t4nr

Conversation

@zoomote2

@zoomote2 zoomote2 Bot commented Oct 25, 2026

Copy link
Copy Markdown
Contributor

​Created by Roomote. Follow up by mentioning @roomote, in the web UI, or in Discord.

Related GitHub Issue

Closes: #2158

Description

The smoke video showed an empty VS Code window. It never showed the Zoo Code panel or the model answer. The IPC start path skips SidebarProvider.focus on purpose, so the webview never opened. The same run also showed that the apt install step had no time limit. A slow mirror consumed the whole 25-minute job.

This change is test and workflow code only. No production extension code changed. The focusSidebar: false guard stays.

  • Add scripts/solheim-smoke/sidebar-runner.cjs. It runs inside the extension host through --extensionTestsPath. It focuses zoo-code.SidebarProvider.focus, waits for isReady(), and keeps run() pending. VS Code exits when run() settles, so run() must never settle.
  • Add an optional testsPath to buildLaunchArgs and createHostRuntime. It appends --extensionTestsPath. It is off by default. Only the smoke driver sets it.
  • Hold teardown for three seconds after the completion message. The recording now ends on the finished chat. The hold is an opt-in controller option (holdBeforeTeardownMs). Only the smoke sets it.
  • Add timeout-minutes: 5 to the "Install display dependencies" step. A slow apt mirror now fails the job in five minutes.

The verdict gates and the trace shape stay the same. The smoke duration grows by the three-second hold on the success path. The record.sh stop budget stays at 30 seconds, which still covers the worst case.

Test Procedure

All commands ran from the repository root on this branch:

  • pnpm agent-evals:check-types — pass.
  • pnpm solheim-smoke:check-types — pass.
  • pnpm test:agent-evals:unit — 47 tests pass. Two new tests cover the teardown hold: one proves the hold runs after the completion message and before CloseTask, one proves no hold runs without a completion message.
  • pnpm test:solheim-smoke:unit — 40 tests pass. New coverage proves buildLaunchArgs adds --extensionTestsPath only when a tests path is supplied, and the smoke duration includes the hold.
  • pnpm test:solheim-smoke-ci — 25 tests pass. A new policy test asserts the display dependency step has timeout-minutes: 5.
  • node --check scripts/solheim-smoke/sidebar-runner.cjs — pass.

The workflow job runs only from main, so it cannot run before merge. Issue #2158 records a local run with the real provider: verdict OK, all six gates true, and a 9.2-second video that shows the Zoo Code panel, the prompt, and "Task Completed: Provider smoke completed."

Pre-Submission Checklist

  • Issue Linked: This PR is linked to an approved GitHub Issue (see "Related GitHub Issue" above).
  • Scope: My changes are focused on the linked issue (one major feature/fix per PR).
  • Self-Review: I reviewed my own code with care.
  • Writing Style: The PR title and description use Simplified Technical English (ASD-STE100): short sentences, plain words, active voice, one idea per sentence, no contractions. Keep the title short and specific.
  • Testing: New and/or updated tests have been added to cover my changes (if applicable).
  • Visual Snapshot (UI changes only): Not applicable. This change touches no webview or extension UI.
  • Documentation Impact: I checked if my changes need documentation updates (see "Documentation Updates" section below).
  • Contribution Guidelines: I read and agree to the Contributor Guidelines.

Visual Snapshots

Not applicable. This change is CI and test tooling. No webview or extension UI changed. The first post-merge workflow run will publish smoke.mp4, which will show the Zoo Code chat panel and the model answer.

Videos

Not applicable. The relevant recording is the smoke video itself. The workflow produces it only on main, so it will appear as a workflow artifact after merge.

Documentation Updates

  • No documentation updates are required.

The documentation repository does not cover internal smoke tooling. The in-repo READMEs scripts/solheim-smoke/README.md and scripts/agent-evals/README.md describe the new behavior.

Additional Notes

Reviewers must check two points with care. First, sidebar-runner.cjs must keep run() pending forever. A settled run() exits VS Code and cuts the smoke short. Second, the teardown hold must stay opt-in in the shared controller. The smoke is the only caller that sets it today.

Get in Touch

Discord: 0x7777777_

Add the sidebar-runner.cjs extension-tests module so the smoke recording
shows the Zoo Code chat panel, hold teardown three seconds after the
completion message, and bound the display dependency install at five
minutes. No production extension changes.
@coderabbitai

coderabbitai Bot commented Oct 25, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are limited based on label configuration.

🏷️ Required labels (at least one): 1
  • coderabbit-review-active

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

Run configuration

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@zoomote2

zoomote2 Bot commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor Author

1 issue outstanding. See session

  • scripts/solheim-smoke/sidebar-runner.cjs:36 — the focus-failure console.warn is never visible: the launcher spawns the host with stdio: "ignore" and the isolated child env cannot reach the artifacts dir, so a focus failure leaves no diagnostic in any uploaded evidence.

Reviewed 760b849

@github-actions

github-actions Bot commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

Review status

This PR was opened by an automated account. A human maintainer must verify the change intent, provenance, and validation before merging.

Current step: Mark the PR ready. Required CI must pass before CodeRabbit starts.

Review-state labels are managed by this workflow; do not edit them manually. community-approved is managed the same way — do not add or remove it manually. It signals a fresh community code approval for the current head as an advisory priority only; maintainer review is still required.

} catch (error) {
// Focus is best effort for the recording. A rejected run() would end
// the test host and cut the smoke short, so log and stay pending.
console.warn("[solheim-smoke] sidebar focus failed:", error && error.message ? error.message : error)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This console.warn is never visible anywhere the driver runs: createHostRuntime spawns the host with stdio: "ignore" (scripts/agent-evals/launcher.ts:98), and the isolated child environment strips everything except the display/PATH allowlist, so the module cannot reach SOLHEIM_SMOKE_OUT_DIR either. A focus failure therefore leaves no diagnostic anywhere — the verdict, trace, and uploaded artifacts never record it, and the only symptom would be an empty panel in the video again, which is exactly the failure mode this PR exists to fix. Consider writing a small failure marker the driver can check into the artifacts (for example a file under the inherited TMPDIR that runSmoke copies into verdict.json/the trace), or capturing child stderr into the artifacts dir, so a future focus regression is diagnosable from the uploaded evidence.

@codecov

codecov Bot commented Oct 25, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[ENHANCEMENT] Show the Zoo Code panel in the Solheim smoke video and bound the apt step

1 participant