Skip to content

feat(app): demo voice message architecture (upstream #54426) - #3

Open
ivanmilevtues wants to merge 1 commit into
devfrom
demo-voice-messages
Open

ivanmilevtues wants to merge 1 commit into
devfrom
demo-voice-messages

Conversation

@ivanmilevtues

Copy link
Copy Markdown
Member

CodeBoarding demo — leave open

Faithful port of merged upstream anomalyco#54426 by opencode-agent[bot] (@app/opencode-agent), requested upstream by Brendan (@Brendonovich). This is demo material, not new original work or a request to merge.

Why this demo

Voice-delegation parsing feeds session timeline/message presentation and shared menus, icons, and localization across app → session-ui → ui. A compact connected architecture change: 11 files, +263/−20, including parser tests and a Storybook fixture, without dependency or lockfile churn.

Provenance and baseline

Original author and upstream commit reference preserved using git cherry-pick -x from anomalyco@bdf4793. Rebased onto synced dev at 74afdf9 without source modifications. Upstream/replayed patch IDs match.

Before opening this PR, verified successful licensed baseline sync: https://github.com/CodeBoarding/opencode2/actions/runs/38772657614. It committed codeboarding/baseline and published the matching base artifact.

Checks and limitations

  • bun run check passes: lint has warnings but no errors; 36/36 typecheck tasks pass.
  • Voice parser tests: 10 passed, 0 failed. git diff --check passes; rebase leaves source tree unchanged.
  • Inspected rendered upstream Storybook fixture: framed voice message, instruction fallback, ordinary typed message, and context menu. Recorded menu opening/closing; clipboard read permission prevented verifying copied contents.
  • Production session-entry benchmarks have the same two failures before and after this port (unexpected POST where no writes are expected); cold-session entry passes. No performance conclusion is drawn from one run.

@github-actions

Copy link
Copy Markdown

This PR doesn't fully meet our contributing guidelines and PR template.

What needs to be fixed:

  • PR description is missing required template sections. Please use the PR template.

Please edit this PR description to address the above within 72 hours, or it will be automatically closed.

If you believe this was flagged incorrectly, please let a maintainer know.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-15T18:01:15.642542Z 041a9c4 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@github-actions

github-actions Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

CodeBoarding review

Status: 3 changed components

See the full change in CodeBoarding.

graph LR
    n_Client_Applications_and_Frontend_UI["Client Applications and Frontend UI"]
    n_Core_Engine_and_Runtime["Core Engine and Runtime"]
    n_Terminal_User_Interface_TUI_["Terminal User Interface #40;TUI#41;"]
    n_AI_Provider_Integration["AI Provider Integration"]
    n_CLI_and_Development_Commands["CLI and Development Commands"]
    n_Server_and_Plugin_SDK["Server and Plugin SDK"]
    n_Shared_Schemas_and_Types["Shared Schemas and Types"]
    n_API_Protocol_and_Client_Contracts["API Protocol and Client Contracts"]
    n_Infrastructure_and_Documentation_Services["Infrastructure and Documentation Services"]
    n_Web_Sharing_Service["Web Sharing Service"]
    n_Simulation_and_Mock_Services["Simulation and Mock Services"]
    n_LaTeX_Engine["LaTeX Engine"]
    n_Theme_and_Color_Specifications["Theme and Color Specifications"]
    n_Functions_and_Testing_Utilities["Functions and Testing Utilities"]
    n_Client_Applications_and_Frontend_UI -- "invokes utilities from" --> n_Core_Engine_and_Runtime
    n_Client_Applications_and_Frontend_UI -- "uses types from" --> n_Shared_Schemas_and_Types
    n_Client_Applications_and_Frontend_UI -- "configures proxy via" --> n_Server_and_Plugin_SDK
    n_CLI_and_Development_Commands -- "renders via TUI components from" --> n_Terminal_User_Interface_TUI_
    n_API_Protocol_and_Client_Contracts -- "binds schemas from" --> n_Shared_Schemas_and_Types
    classDef added fill:#1f883d,stroke:#0b5d23,color:#ffffff;
    classDef modified fill:#bf8700,stroke:#7d4e00,color:#ffffff;
    classDef deleted fill:#cf222e,stroke:#82071e,color:#ffffff,stroke-dasharray:5 3;
    class n_Client_Applications_and_Frontend_UI modified;
Loading

download artifacts · run 38781566560

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 041a9c42af

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

presentation: (message) => {
const value = readPromptPresentation(message.metadata)
const parsed = value ? undefined : parseCommentNote(message.text)
const voice = parseVoiceDelegation(value?.displayText ?? message.text)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Parse voice delegations in queued prompt rows

When an iOS voice follow-up arrives while the Session is busy, it can remain in SessionQueuePanel; that panel obtains its label through queuedPromptText (queue.ts:389-393), which returns the raw payload.text when the iOS message has no displayText metadata. Because voice parsing is applied only to delivered timeline rows here, the queued row exposes the full delegation header, JSON, and transcript instead of the framing or instruction until delivery. Apply the same presentation parsing to queued prompts.

AGENTS.md reference: AGENTS.md:L184-L184

Useful? React with 👍 / 👎.

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