Skip to content

Document single-port operation and the provider title knob - #2

Merged
kartikkabadi merged 4 commits into
mainfrom
pr/single-port-cleanup
Aug 10, 2026
Merged

Document single-port operation and the provider title knob#2
kartikkabadi merged 4 commits into
mainfrom
pr/single-port-cleanup

Conversation

@kartikkabadi

@kartikkabadi kartikkabadi commented Aug 10, 2026

Copy link
Copy Markdown
Owner

What

Documentation and title cleanup, no runtime change:

  • README: "one HTTP port only" section (the bridge already listens on exactly one ThreadingHTTPServer; --port / OPENCODE_GO_PROXY_PORT already wired and documented), an lsof troubleshooting entry, and how to shorten the provider label shown in the Codex model picker by editing [model_providers.opencode-go] name in ~/.codex/config.toml (that's the source of the long "opencode go/" display string; the catalog display names are already short).
  • CHANGELOG entries.

Verification

  • No code touched; existing tests unaffected (45 pass on the menu-bar branch this stacks on or alone on main).

Summary by cubic

Add a native macOS menu bar app to start/stop and monitor the opencode-go-proxy, and update docs for single-port operation (OPENCODE_GO_PROXY_PORT, default 8787) and how to shorten the Codex provider label. Fix SIGTERM shutdown by moving serve_forever to a background thread; CHANGELOG updated.

Written for commit fd2d696. Summary will update on new commits.

Review in cubic

Menu bar app (Swift/AppKit, SwiftPM): status icon with live health check,
start/stop the Python bridge as a child process (posix_spawn, own process
group), open logs, reveal log file, copy port. Builds with 'swift build'
in macos/MenuBarApp; macOS 13+.

Fix graceful shutdown: serve_forever now runs on a background thread so
the SIGTERM handler's server.shutdown() cannot deadlock on the main
thread. Regression test starts the real server and asserts SIGTERM stops
it within 8s.
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@kartikkabadi, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 51 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 33146385-cc16-4654-84fa-b3fa794f163e

📥 Commits

Reviewing files that changed from the base of the PR and between ce628b1 and fd2d696.

📒 Files selected for processing (14)
  • CHANGELOG.md
  • README.md
  • macos/MenuBarApp/.gitignore
  • macos/MenuBarApp/Package.swift
  • macos/MenuBarApp/README.md
  • macos/MenuBarApp/Sources/OpenCodeGoMenuBar/AppDelegate.swift
  • macos/MenuBarApp/Sources/OpenCodeGoMenuBar/ProxyController.swift
  • macos/MenuBarApp/Sources/OpenCodeGoMenuBar/main.swift
  • src/opencode_go_proxy/__main__.py
  • src/opencode_go_proxy/app.py
  • src/opencode_go_proxy/protocol.py
  • tests/test_app.py
  • tests/test_integration.py
  • tests/test_protocol.py

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.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

1 issue found across 2 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="README.md">

<violation number="1" location="README.md:237">
P3: The new "Short provider name" section claims the default Codex label is "opencode go/" and that setting name="Go" makes it show as "Go", but it contradicts the Quick Start config earlier in this same README, which sets `name = "OpenCode Go"`. A user who followed the Quick Start would see "OpenCode Go/..." in the picker, not "opencode go/", so the premise of this troubleshooting step is inconsistent with the rest of the doc. Consider reconciling the example name values (and noting the picker renders provider/model, not just the provider name).</violation>
</file>

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread README.md

```toml
[model_providers.opencode-go]
name = "Go" # shows as "Go" instead of "opencode go/"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P3: The new "Short provider name" section claims the default Codex label is "opencode go/" and that setting name="Go" makes it show as "Go", but it contradicts the Quick Start config earlier in this same README, which sets name = "OpenCode Go". A user who followed the Quick Start would see "OpenCode Go/..." in the picker, not "opencode go/", so the premise of this troubleshooting step is inconsistent with the rest of the doc. Consider reconciling the example name values (and noting the picker renders provider/model, not just the provider name).

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At README.md, line 237:

<comment>The new "Short provider name" section claims the default Codex label is "opencode go/" and that setting name="Go" makes it show as "Go", but it contradicts the Quick Start config earlier in this same README, which sets `name = "OpenCode Go"`. A user who followed the Quick Start would see "OpenCode Go/..." in the picker, not "opencode go/", so the premise of this troubleshooting step is inconsistent with the rest of the doc. Consider reconciling the example name values (and noting the picker renders provider/model, not just the provider name).</comment>

<file context>
@@ -222,6 +222,24 @@ All flags have environment variable defaults:
+
+```toml
+[model_providers.opencode-go]
+name = "Go"  # shows as "Go" instead of "opencode go/"
+```
+
</file context>

Mechanical cleanup only, no behavior change: collapse nested with
statements, sort imports, yield from, explicit subprocess check flag, and
noqa on the two intentional defensive crash catches. 45 tests still pass.
README: explicit 'one HTTP port only' statement (no admin port or control
channel), lsof troubleshooting entry for port conflicts, and how to shorten
the 'opencode go/' picker label by editing the provider name. Per-model
catalog display names were already short; no catalog changes needed.
@kartikkabadi
kartikkabadi force-pushed the pr/single-port-cleanup branch from 8bc1f78 to fd2d696 Compare August 10, 2026 01:15
@kartikkabadi
kartikkabadi merged commit 7896be9 into main Aug 10, 2026
6 checks passed
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