You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Review finding: the PR adds CommandField.wireEcho and wraps the interaction fields with wireEchoField, but the production projector never reads that command metadata. projectInteractionWireData still uses the separate hand-authored INTERACTION_WIRE_ECHO_FIELDS map, and the new tests call that map-backed projector directly. That leaves the command surface and wire projection able to drift silently: changing a field's wireEcho options would not affect the response shape or fail a drift test. Please either derive the projection specs from the command field metadata, or remove the unused wireEcho metadata and make the duplicated projection map the explicit source of truth with coverage that guards future drift.
Removed the unused CommandField.wireEcho / wireEchoField path, so command field metadata can no longer drift from production behavior.
Moved wire echo defaults into a small core interaction-wire-echo module and attached the response projection trait to the command descriptor entries for click, press, and fill.
Updated projectInteractionWireData to resolve projection specs through resolveCommandWireProjection instead of reading a local command-name map.
Added a focused test asserting the descriptor-owned projection for press/fill and no projection for longpress.
Validated locally:
pnpm --pm-on-fail=ignore exec vitest run src/core/tests/interaction-wire-projection.test.ts src/platforms/apple/core/tests/runner-result-projection.test.ts src/daemon/handlers/tests/interaction.test.ts --project unit-core
pnpm --pm-on-fail=ignore typecheck
pnpm --pm-on-fail=ignore lint
pnpm --pm-on-fail=ignore format
pnpm --pm-on-fail=ignore build
pnpm --pm-on-fail=ignore check:layering
pnpm --pm-on-fail=ignore check:fallow --base origin/main (rerun with escalation because the sandbox could not create fallow's temporary base worktree)
Remaining blocker: none locally. GitHub CI has restarted for the pushed commit and is still running.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Derive interaction wire echo fields from command metadata instead of filtering backend fields in the response builder.
Move Apple runner diagnostic stripping to a runner-owned projection so touch response construction only composes already-projected wire data.
Validation
pnpm --pm-on-fail=ignore format
pnpm --pm-on-fail=ignore typecheck
pnpm --pm-on-fail=ignore lint
pnpm --pm-on-fail=ignore exec vitest run src/commands/interaction/metadata.test.ts src/platforms/apple/core/tests/runner-result-projection.test.ts src/daemon/handlers/tests/interaction.test.ts src/mcp/tests/command-tools.test.ts src/commands/interaction/runtime/interactions.test.ts --project unit-core
pnpm --pm-on-fail=ignore exec vitest run --project interaction-contract test/integration/interaction-contract/interaction-response-shape.contract.test.ts test/integration/interaction-contract/direct-ios-selector.contract.test.ts
pnpm --pm-on-fail=ignore test:integration:provider
pnpm --pm-on-fail=ignore test:coverage
pnpm --pm-on-fail=ignore build
pnpm --pm-on-fail=ignore check:fallow --base origin/main