fix: keep native question cards out of the public API#110534
Conversation
… stream summaries
# Conflicts: # docs/.generated/plugin-sdk-api-baseline.sha256
# Conflicts: # ui/src/pages/chat/chat-view.ts # ui/src/pages/chat/components/chat-composer.ts # ui/src/pages/chat/components/chat-question-card.test.ts # ui/src/pages/chat/components/chat-question-card.ts
# Conflicts: # docs/.generated/plugin-sdk-api-baseline.sha256
…t delivery, non-blocking question refresh
…tions, reserve-before-request
…; reset terminal retention on replayed pending
…pe finalization labels
# Conflicts: # apps/shared/OpenClawKit/Sources/OpenClawChatUI/ChatTransport.swift # apps/shared/OpenClawKit/Sources/OpenClawChatUI/ChatView.swift # docs/.generated/plugin-sdk-api-baseline.sha256 # docs/platforms/mac/webchat.md # scripts/plugin-sdk-surface-report.mjs
# Conflicts: # ui/src/pages/chat/components/chat-composer.ts
# Conflicts: # apps/.i18n/native-source.json # apps/shared/OpenClawKit/Sources/OpenClawChatUI/ChatQuestionCard.swift
|
Codex review: needs real behavior proof before merge. Reviewed July 18, 2026, 4:39 AM ET / 08:39 UTC. Summary PR surface: Other -1. Total -1 across 3 files. Reproducibility: no. high-confidence end-to-end reproduction is attached. The source and prior linked failing intersection job identify the affected public-visibility/Periphery path, but the current PR body does not show the after-fix scan result. Review metrics: none identified. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Proof guidance:
Risk before merge
Maintainer options:
Next step before merge
Maintainer decision needed
Security Review detailsBest possible solution: Keep the card implementation internal if release history confirms it was never a supported public API, then attach a redacted successful shared-kit Periphery/intersection run showing the exact previous failure is gone. Do we have a high-confidence way to reproduce the issue? No high-confidence end-to-end reproduction is attached. The source and prior linked failing intersection job identify the affected public-visibility/Periphery path, but the current PR body does not show the after-fix scan result. Is this the best way to solve the issue? Unclear. Making an unreleased implementation internal is the narrowest solution, but it is only the best fix after confirming the public API was not shipped and demonstrating the exact scan passes. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against bc77ef339883. Label changesLabel justifications:
Evidence reviewedPR surface: Other -1. Total -1 across 3 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
Review history (1 earlier review cycle)
|
|
Merged via squash.
|
* feat(ask-user): follow-up harness slice * feat(ask-user): follow-up channels slice * feat(ask-user): follow-up native slice * feat(ui): dock question panel above composer with stepper and compact stream summaries * docs: refresh follow-up integration maps * test(ui): align terminal summary proof * fix(infra): echo declared option answers in terminal status when free-text is allowed * fix(infra): keep reaction answering when display labels are formatter-adjusted * fix(agents): settle plain-text claims only after question registration commits * fix(agents,apps): commit-ordered claim persistence, claim-aware prompt delivery, non-blocking question refresh * fix(harness,infra): reaction-appropriate question copy, caller presentations honored * fix(native,infra,agents): local-expiry eviction, value-addressed reactions, reserve-before-request * fix(infra,android): dual-mode question resolver for compact callbacks; reset terminal retention on replayed pending * fix(harness,discord): claim-aware prompt delivery in run helper; escape finalization labels * fix(macos): merge transient-content visibility with question cards after main sync * fix: repair ask user follow-up CI * test: update limited bootstrap scope expectation * fix: retain shared question card API * chore: refresh native i18n inventory * fix: narrow shared question card visibility * test: update macOS question scope expectations
Related: #110372
What Problem This Solves
Resolves a problem where the merged native question-card slice leaves the shared OpenClawKit Periphery intersection red because an internal SwiftUI implementation was exported and its ignore annotations were themselves reported as findings.
Why This Change Was Made
Keep the unreleased question-card view, initializer, and SwiftUI body internal while preserving the public model and transport-event surfaces. Refresh the generated native localization source-line metadata after removing the annotations.
User Impact
No UI behavior changes. The shared package keeps a smaller public API and its dead-code scan can pass again.
Evidence
swift test --package-path apps/shared/OpenClawKit --filter 'question card|question transport': 8 tests passedpnpm native:i18n:sync: inventory regenerated from currentmainAI-assisted: yes. I understand and reviewed the two-file change.