Skip to content

feat: add opt-in OpenCode V2 TUI - #90

Draft
Maximooch wants to merge 2 commits into
mainfrom
codex/opencode-v2-sync
Draft

Maximooch wants to merge 2 commits into
mainfrom
codex/opencode-v2-sync

Conversation

@Maximooch

Copy link
Copy Markdown
Owner

Summary

  • Pin the tested OpenCode 2 beta artifact to b35c5fc98577b77d8d67d298c6254e0cd138c9d5 / @opencode-ai/cli@0.0.0-next-17220, document the upstream ownership boundary, and record the moving-head refresh procedure.
  • Add a Penguin-owned /api/* compatibility seam backed by Penguin sessions, execution, approvals, questions, and runtime events. It covers Home boot, session CRUD, single-flight text prompts, interruption, native text/tool lifecycle projection, reconnect hydration, and strict failure/concurrency handling without adding a second runtime or event ledger.
  • Add the reversible PENGUIN_TUI_V2=1 launcher path, strict OpenCode Basic-auth bridge, isolated V2 cache/provenance, pinned plugin ABI, and an independent 11-platform sidecar workflow. V1 remains the default and its launcher, cache, and release workflow stay intact.

The full phase 1–7 ledger, supported surface, explicit deferrals, and refresh procedure live in context/tasks/penguin-tui-opencode-v2.md.

Supported beta slice

  • Home/project/session catalogs and persisted session reopen
  • Agent/model/variant selection backed by Penguin session metadata
  • Single-flight text prompt admission and transcript streaming
  • Native admitted/promoted, execution, step, text, and tool events
  • Active/idle interruption and children-first recursive deletion
  • Manager-backed permissions, questions/forms, replies, cancellation, and REST rehydration
  • Generation-aware readiness probing, API-key/startup-token auth, and immediate V1 rollback

Unsupported behavior is rejected or truthfully empty. Queue delivery, busy steer, attachments, durable replay, background/multi-tab session UX, PTY, diffs, snapshots, and undo/redo remain deferred. This PR does not switch the default client.

Verification

  • Python 3.12 / Pydantic 2: 124 passed plus 9 passed auth-hardening slice
  • Python 3.9 / Pydantic 1: 124 passed plus 9 passed auth-hardening slice
  • Focused launcher + dispatcher: 73 passed on each runtime
  • Ruff check/format: passed for the full V2 CI file set
  • actionlint 1.7.12: passed for CI and V2 publish workflows
  • Python 3.9 wheel build: verified all four V2 server modules are packaged
  • Pinned plugin ABI: strict TypeScript check, Bun build, and dynamic import passed
  • Native pinned Darwin artifact smoke: Home loaded and /penguin appeared and ran
  • Independent blocker audit: no remaining P1/P2 correctness, security, protocol, launcher, or release blockers

Why draft

The implementation and deterministic gates are complete, but release-time gates still require the GitHub-hosted 11-platform packaging matrix, checksum verification, clean-wheel extracted-artifact prompt/interrupt/restart smoke, and an actual tag attachment. Those gates are documented in the release runbook; no release is published by this PR.

@vercel

vercel Bot commented Aug 12, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
penguin Ready Ready Preview Aug 12, 2026 1:49am

@coderabbitai

coderabbitai Bot commented Aug 12, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

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

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 3c4eeee4-8b08-4502-9bc4-133f0cc55040

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

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.

This branch was successfully deployed

1 active deployment
Preview — 240d9fd7 Deployed Aug 12, 2026 by vercel[bot]
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