Skip to content

t1165: Verify — containerized Claude Code CLI instances for multi-subscription scaling#2180

Merged
marcusquinn merged 1 commit intomainfrom
feature/t1165
Feb 23, 2026
Merged

t1165: Verify — containerized Claude Code CLI instances for multi-subscription scaling#2180
marcusquinn merged 1 commit intomainfrom
feature/t1165

Conversation

@marcusquinn
Copy link
Owner

@marcusquinn marcusquinn commented Feb 22, 2026

Summary

Verification Results

Subtask status:

Subtask Status PR
t1165.3 Remote container support Merged #2109
t1165.4 Integration test Merged #2111
t1165.1 Container image design Open (TODO) -
t1165.2 Container pool manager Open (TODO) -

Delivered artifacts (on main):

  • remote-dispatch-helper.sh — 1057-line SSH/Tailscale dispatch helper (host config, dispatch, logs, status, cleanup)
  • remote-dispatch.md — comprehensive subagent documentation
  • test-multi-container-batch-dispatch.sh — 1161-line integration test (70 tests)
  • Supervisor integration in dispatch.sh and pulse.sh (dispatch_target routing)
  • orbstack.md — OrbStack container runtime documentation

Test results: 70/70 pass (ShellCheck clean, bash -n clean)

What was fixed: 3 OAuth routing tests expected claude CLI for Anthropic models, but PR #2173 (merged 2026-02-22) removed OAuth routing — opencode is now the sole worker CLI. Updated test expectations to match.

Remaining work (t1165.1, t1165.2): Container image Dockerfile and container pool manager are not yet implemented. These are marked as open in TODO.md. The remote dispatch infrastructure (t1165.3) and integration tests (t1165.4) are complete and functional.

VERIFY_INCOMPLETE

t1165.3 and t1165.4 are complete and verified. t1165.1 (container image) and t1165.2 (pool manager) remain open. This PR fixes the stale test expectations.

Summary by CodeRabbit

  • Tests
    • Updated OAuth routing tests for Anthropic models to align with current routing behavior and ensure test expectations match implementation changes.

… CLI)

3 tests expected claude CLI for Anthropic models, but PR #2173 removed
OAuth routing — opencode is now the sole worker CLI for all models.
Updated test expectations to match current behavior. 70/70 tests pass.
@gemini-code-assist
Copy link

Summary of Changes

Hello @marcusquinn, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request focuses on verifying the progress of the t1165 initiative, which aims to implement containerized Claude Code CLI instances for multi-subscription scaling. It specifically confirms the completion and functionality of the remote dispatch infrastructure and its integration tests. Additionally, it addresses and corrects outdated test expectations in the integration suite that no longer reflected the current routing logic after a previous refactoring.

Highlights

  • Test Fixes: Updated 3 stale OAuth routing tests in test-multi-container-batch-dispatch.sh to correctly expect opencode CLI instead of claude CLI for Anthropic models, aligning with changes introduced in PR fix: force opencode as sole worker CLI, remove OAuth routing to claude CLI #2173 which removed OAuth routing.
  • Verification Status: Verified the completion of subtasks t1165.3 (remote container support) and t1165.4 (integration test) for the containerized Claude Code CLI instances project.
Changelog
Activity
  • Verified the completion of subtasks t1165.3 (Remote container support) and t1165.4 (Integration test).
  • Confirmed the delivery of several artifacts on main, including remote-dispatch-helper.sh, remote-dispatch.md, test-multi-container-batch-dispatch.sh, supervisor integration in dispatch.sh and pulse.sh, and orbstack.md.
  • Reported 70/70 passing integration tests, with ShellCheck clean and bash -n clean.
  • Fixed three stale OAuth routing tests that incorrectly expected claude CLI, updating them to expect opencode CLI as per PR fix: force opencode as sole worker CLI, remove OAuth routing to claude CLI #2173.
  • Noted that subtasks t1165.1 (Container image design) and t1165.2 (Container pool manager) remain open for future implementation.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 22, 2026

Walkthrough

Test expectations in a batch dispatch shell script were updated to reflect OAuth routing changes from PR #2173. Anthropic model tests (opus, sonnet, haiku) now expect opencode as the CLI outcome instead of claude, with corresponding message adjustments. Core test logic remains unchanged.

Changes

Cohort / File(s) Summary
OAuth Routing Test Updates
tests/test-multi-container-batch-dispatch.sh
Updated test assertions to expect opencode routing for Anthropic models instead of claude; refreshed pass/fail messages and test descriptions to align with new OAuth behavior; 12 lines added, 12 lines removed.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

Poem

🔀 From claude's path to opencode's way,
The routing tests align with yesterday's PR sway,
OAuth whispers now echo true,
With haiku, sonnet, opus too! 🎭✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Title check ⚠️ Warning The title references t1165 and containerized Claude Code CLI instances, but the actual changeset only updates OAuth routing tests for multi-container batch dispatch, not the feature verification itself. Revise title to accurately reflect the change: e.g., 'Fix OAuth routing expectations in multi-container batch dispatch tests' to match the actual test updates in the changeset.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feature/t1165

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 and usage tips.

@github-actions
Copy link

🔍 Code Quality Report

�[0;35m[MONITOR]�[0m Code Review Monitoring Report

�[0;34m[INFO]�[0m Latest Quality Status:
SonarCloud: 0 bugs, 0 vulnerabilities, 40 code smells

�[0;34m[INFO]�[0m Recent monitoring activity:
Sun Feb 22 23:15:28 UTC 2026: Code review monitoring started
Sun Feb 22 23:15:28 UTC 2026: SonarCloud - Bugs: 0, Vulnerabilities: 0, Code Smells: 40

📈 Current Quality Metrics

  • BUGS: 0
  • CODE SMELLS: 40
  • VULNERABILITIES: 0

Generated on: Sun Feb 22 23:15:31 UTC 2026


Generated by AI DevOps Framework Code Review Monitoring

@sonarqubecloud
Copy link

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

The pull request successfully updates the tests/test-multi-container-batch-dispatch.sh integration test to align with the changes introduced in PR #2173, where OAuth routing was removed and opencode became the primary worker CLI. The updates to the test expectations for Anthropic models (opus, sonnet, and haiku) are correct and consistent. The code adheres to the project's shell scripting standards, including proper use of Bash idioms and clear test reporting. No issues of medium or higher severity were identified in the provided changes.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
tests/test-multi-container-batch-dispatch.sh (2)

431-434: ⚠️ Potential issue | 🟡 Minor

Stale comment directly contradicts the now-updated haiku test.

Line 434 says "anthropic/claude-haiku-3" would route to claude, but the very next test block (lines 490–491) now asserts the opposite — anthropic/claude-haiku-3opencode. This comment was not updated alongside the assertion change and will mislead future readers.

📝 Proposed fix
-# Only fully-qualified "anthropic/claude-haiku-3" would route to claude.
+# Since PR `#2173`, even fully-qualified "anthropic/claude-haiku-3" routes to opencode.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@tests/test-multi-container-batch-dispatch.sh` around lines 431 - 434, Update
the stale comment in the "Mixed batch — bare tier names" test so it matches the
new assertion behavior: change the sentence that currently says
'"anthropic/claude-haiku-3" would route to claude' to reflect that the test now
expects 'anthropic/claude-haiku-3' to route to opencode; ensure the comment
accurately describes how resolve_ai_cli treats bare tier names versus
fully-qualified names and matches the assertion in the subsequent test block
(the mixed batch test).

9-10: ⚠️ Potential issue | 🟡 Minor

Stale file-header comment missed in this PR.

Line 10 still describes the old pre-PR-#2173 routing policy:

#   2. Correct OAuth routing (claude for Anthropic, opencode for non-Anthropic)

After PR #2173, opencode is the sole worker CLI for all models, including Anthropic. The description should be updated so the file-level contract stays in sync with the tests below.

📝 Proposed fix
-#   2. Correct OAuth routing (claude for Anthropic, opencode for non-Anthropic)
+#   2. CLI routing verification (opencode is sole worker CLI post-PR `#2173`)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@tests/test-multi-container-batch-dispatch.sh` around lines 9 - 10, Update the
stale header comment line that still says "Correct OAuth routing (claude for
Anthropic, opencode for non-Anthropic)" to reflect the post-PR `#2173` policy that
opencode is the sole worker CLI for all models (including Anthropic); locate the
header comment in tests/test-multi-container-batch-dispatch.sh (the second
bullet line in the file header) and replace the old routing description with a
short, accurate statement such as "Correct OAuth routing (opencode is the sole
worker CLI for all models)" so the file-level contract matches the tests.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@tests/test-multi-container-batch-dispatch.sh`:
- Around line 431-434: Update the stale comment in the "Mixed batch — bare tier
names" test so it matches the new assertion behavior: change the sentence that
currently says '"anthropic/claude-haiku-3" would route to claude' to reflect
that the test now expects 'anthropic/claude-haiku-3' to route to opencode;
ensure the comment accurately describes how resolve_ai_cli treats bare tier
names versus fully-qualified names and matches the assertion in the subsequent
test block (the mixed batch test).
- Around line 9-10: Update the stale header comment line that still says
"Correct OAuth routing (claude for Anthropic, opencode for non-Anthropic)" to
reflect the post-PR `#2173` policy that opencode is the sole worker CLI for all
models (including Anthropic); locate the header comment in
tests/test-multi-container-batch-dispatch.sh (the second bullet line in the file
header) and replace the old routing description with a short, accurate statement
such as "Correct OAuth routing (opencode is the sole worker CLI for all models)"
so the file-level contract matches the tests.

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.

1 participant