Skip to content

Emitter review fixes: audited syntheses, precise subButtonText, npm ci for demo#6

Merged
ryandmonk merged 1 commit into
mainfrom
fix/emitter-review-fixes
Jul 2, 2026
Merged

Emitter review fixes: audited syntheses, precise subButtonText, npm ci for demo#6
ryandmonk merged 1 commit into
mainfrom
fix/emitter-review-fixes

Conversation

@ryandmonk

Copy link
Copy Markdown
Contributor

Follow-up to #4 (merged while the review response was in flight) addressing all four Copilot comments — see the thread replies on #4 for the per-comment mapping. npm test (31, incl. new coverage for the corrected subButtonText semantics and the two new warning codes) + npm run test:pack green.

🤖 Generated with Claude Code

… reproducible CI

Review fixes (Copilot on #4, landing as a follow-up since #4 merged
mid-response):
- subButtonText now takes the text of the first LABEL-BEARING component
  under the tracked sub-component (one whose surface plan projects text via
  textChildProp, e.g. the trigger's button) — never incidental descendant
  text; docs updated to match, test covers explanatory-text-before-button.
- The two remaining silent syntheses now warn: surface-synthesized-text
  (node text -> synthesized Text child) and surface-synthesized-wrap
  (multi-child -> synthesized Column) — the "nothing silent" contract is
  test-enforced for all four synthesis paths.
- CI uses npm ci --prefix demo (lockfile-deterministic).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 2, 2026 21:13

Copilot AI 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.

Pull request overview

This PR is a follow-up refinement to the A2UI surface emitter, tightening the semantics around subButtonText, ensuring structural/content syntheses are always audited via warnings, and making the demo install step deterministic in CI.

Changes:

  • Clarifies and enforces subButtonText semantics to only capture text from “label-bearing” components (those projecting text via textChildProp).
  • Adds explicit warnings for synthesized text primitives and synthesized wrapper components (e.g., Column wrapping for multi-child single-slot).
  • Switches the CI demo install step from npm install to npm ci for reproducibility.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.

File Description
src/transform/profiles.ts Documentation update clarifying subButtonText meaning (label-bearing-only).
src/targets/a2ui/surface.ts Implements label-bearing-only subButtonText capture; adds audited warnings for synthesized text and wrap.
src/surface-emit.test.ts Adds coverage for corrected subButtonText behavior and verifies new synthesis warning codes.
.github/workflows/test.yml Uses npm ci --prefix demo to ensure deterministic demo dependency installation in CI.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@ryandmonk ryandmonk merged commit 4385f87 into main Jul 2, 2026
2 checks passed
@ryandmonk ryandmonk deleted the fix/emitter-review-fixes branch July 5, 2026 02:35
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.

2 participants