Repository navigation
Conversation
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — Blank extension dialog titles now use “Question” instead of propagating empty text. The change is limited to question presentation and leaves options, responses, and approval handling unchanged. You can add or adjust custom eligibility rules. Learn more. |
|
No actionable comments were generated in the recent review. Walkthrough
Merge Risk:
|
|
Tested this diff on top of main at
|
AI-assisted; verified with the tests and tools listed above. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Problem
Pi extensions can send an empty or whitespace-only title for input, select, or editor dialogs. T3 copies it into the question text, which fails the nonblank question contract and can fail the running turn. A blank title with a valid input placeholder also produces an invalid header.
Fixes #35237.
Change
Use the existing
Questionlabel when the dialog title is blank. Preserve nonblank titles, placeholder text, options, editor prefill, and the original answer response.Scope
A small adapter normalization fix for a valid Pi RPC string that violates T3's stricter contract. No public API, permissions, model instructions, or rendering code changes. #23650 addresses the shared invalid-event error boundary separately.
Verification
Darwin arm64, pinned Node 26.12.1, base
591188471a6d. Production Pi adapter with the repository's existing fake Pi RPC process and production question schema, using isolated development state. No model calls.Before the fix, six cases fail with
SchemaError: Expected a non-blank string at [0]["question"]: input, select, and editor with empty or whitespace-only titles. The three normal-title controls pass. After the fix, all 133 adapter tests pass. The extended cases also cover a blank title with a valid placeholder and verify answer round trips during an active turn.Observed fixture round trip for each blank-title method:
With a valid placeholder, the question remains
Your name; nonblank multiline titles remain intact. Existing empty-answer, select-option, editor-prefill, confirmation, cancellation, and timeout tests pass.vp run check:changed --concurrency 2passes formatting, lint, both dependency checks, typechecks for nine affected packages, and 135 tests across two files. Commit hooks pass (format, lint, and dependency checks). Latest upstreame9e934bb3dhas no intervening changes to either Pi file.Not exercised: a real Pi extension process or packaged clients. This verifies protocol normalization and response handling through the existing adapter fixture.
GPT-6 in Codex.