Skip to content

docs: add voice, question, and subagent rows to the Harness matrix - #619

Closed
karlorz wants to merge 106 commits into
BytePioneer-AI:mainfrom
karlorz:docs/harness-support-matrix
Closed

karlorz wants to merge 106 commits into
BytePioneer-AI:mainfrom
karlorz:docs/harness-support-matrix

Conversation

@karlorz

@karlorz karlorz commented Oct 26, 2026

Copy link
Copy Markdown

Purpose

Extend the Harness feature matrix in all three READMEs with capabilities the fork's maintained build actually has, and record the two question gaps discovered by live test.

New rows: Live voice chat, Multi-select questions, Subagents, Computer Use / in-app browser, Generated images. New legend marks: ◐ partial/degraded/saved intent, ? unverified.

Findings recorded

  • Multi-select questions are broken upstream of this repo. Desktop's question card has no multi-select field. A delegated Claude Code test with AskUserQuestion({multiSelect: true}) and Alpha/Beta/Gamma rendered as single-choice and returned "Alpha" with no Host error. The Host contract keeps multiple; adapters that preserve it are marked ◐.
  • Grok questions do not surface. Grok's native ask_user_question fails over ACP with Method not found: _x.ai/ask_user_question because the plugin only implements _x.ai/mcp/elicit. Cancellation and MCP consent approvals still work, so the Questions row is ◐ for Grok.
  • grokgod attribution. This fork runs the patched grokgod Grok build. Patch 0011 (question timeout), 0025 (MCP persist / Always allow) and 0026 (Computer Use turn-end cleanup) are named explicitly so patch-dependent behavior is not presented as stock Grok.

Matrix consistency

Chinese was missing the Kimi Code column; Korean was missing Kimi Code and Copilot. All three matrices are now 18 capability rows × 14 Harness columns with identical cells.

Validation

  • npx prettier --check README.md docs/project/README.zh-CN.md docs/project/README.ko.md docs/harnesses/capability-boundaries.md
  • git diff --check

No source code changed. Live voice: Claude Code ✅ attended Desktop call, Grok ◐ (real gateway call plus isolated Host trial), other Harnesses unverified (?).

Ship the Desktop Statsig wrap and Settings switch on by default as v0.13.2-1,
warn when CODEXHOST_CPA_LIVE_VOICE=0 needs a relaunch, and retarget npm/GitHub
identity to @karlorz/codexhost-cli.
feat: add default-on live-voice override for the karlorz fork
Keep GitHub latest discovery, Settings commands, and console NOTICE on this fork so hyphen versions are not treated as an upgrade from BytePioneer.
Fork tags like 0.13.2-2 must publish as latest so in-app Updates can discover them. Named prereleases stay on next/test.
Hide the native out-of-usage card on every Composer from Settings →
Appearance (default on), including asides that omit status ARIA. Project
this Composer's account and reserve usage gates so Send is not blocked by
exhausted ChatGPT quota, including Codex threads and same-atom owner or
descendant subscriptions.
Keep karlorz live-voice, update lock, and numeric fork-counter identity.
Drop the overlapping fork usage-banner/send-gate rewrite in favor of
upstream Desktop 26.1002 gate projection and external-Harness banner hide.
Record shipped v0.13.2-3 and the next unused counter v0.13.3-0 after
syncing BytePioneer 0.13.3.
Keep 0.13.3-cpa.1 on the named-prerelease path. First fork of upstream
0.13.3 stays 0.13.3-0; later counters on that version are 0.13.3-0-1.
Route native Desktop realtime start/stop for external Threads through
Host, report externalSandbox, and acknowledge thread/settings/update
without applying Harness permissions. Carry the Composer Harness
selection into overlay voice launch, isolate leftover overlay
notifications, and install a Grok-only Desktop session rule.
Stop installing ~/.grok/rules/codexhost-desktop.md. Pass the rules on
Grok session/new and session/load, and retire leftover Host-owned copies.
When a previous npm start or crash leaves the Controller listening with no
Desktop, acquire launcher ownership and continue a clean launch instead of
blocking on the control endpoint.
The linux "not installed" case was matching /opt/homebrew/bin/claude on this
machine. Force isExecutable false so the test does not depend on the host PATH.
Keep a single numeric counter after the upstream version. The next fork
release after v0.13.3-0 is v0.13.3-1.
Emit Host generatedImage items from Grok ImageGen/ImageEdit ACP output and
project them to Desktop imageGeneration with savedPath so the official
gallery can render session files.
Keep exactOptionalPropertyTypes: do not write undefined onto the optional field.
Record Try again recovery and the Desktop 26.1007 image-completion notification contract.
Re-apply the karlorz Settings toggle dropped during the upstream
v0.13.3 usage-gate sync. Hide the out-of-usage card on every Composer
by default, and lift the Renderer usage gate so Send and Enter still
work on new drafts, existing Threads, and Codex Threads.
Park Host/Renderer queue leftover work off main so Desktop 26.1021
audit can continue on a clean tree.
Normalize queued type:text items and input_text to include text_elements so Desktop 26.1021 can refresh the server queue. Keep empty-queue turn/start as -32602 after interrupt.
Add the 26.1021.31345 native Chat Instant Connect profile with the relocated
composer START binding, Work capability snapshot recovery, provider-only Voice
Settings explanation, and document-language locale fallback for English Grok
permission menus. Detect the installed Desktop version for the live-voice hook,
pin compat-daily to the Chat assets module, and document the live voice-hook
debug path.

Preserve native eligibility, credentials, Statsig, drafts, and live Desktop
state. Microphone and audible conversation acceptance remain unverified.
…rofiles

MSIX Identity Version is a deployment number, not the About/product version used to select audited voice assets. Keep native eligibility checks while binding the Windows Chat and Work profiles after official login.
Closing the attachment socket is not proof the Controller process exited. Snapshot matching PIDs before STOP so Linux restart still escalates when cmdline rescans miss the fixture.
Add Live voice chat, Multi-select questions, Subagents, Computer Use,
and Generated images rows to all three README matrices, plus a legend
and per-row notes grounded in adapter code.

Record two live findings: Desktop has no multi-select question card, so
multi-select renders as single-choice, and Grok's ask_user_question
fails because the ACP client only implements _x.ai/mcp/elicit. Note
that Grok-specific behavior depends on the patched grokgod build
(0011, 0025, 0026).

Align the Chinese and Korean matrices with the English one, which also
restores the missing Kimi Code and Copilot columns.
@karlorz

karlorz commented Oct 26, 2026

Copy link
Copy Markdown
Author

Wrong target: this is fork-only documentation (live voice is not an upstream capability). Reopening against karlorz/codex-host.

@karlorz karlorz closed this Oct 26, 2026
@coderabbitai

coderabbitai Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Caution

Review failed

The pull request is closed.

Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR
  • 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.

@karlorz
karlorz deleted the docs/harness-support-matrix branch October 26, 2026 05:58
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