Skip to content

Owner-review approval/question panel UX #21

Description

@StatPan

Goal

Ship the UI-visible approval queue and session panel behavior only after the owner confirms the interaction model.

Derived from #14 Phase 6 dirty branch handoff. This is intentionally not marked worker-ready because it needs owner review.

Scope

  • Review whether selected-session requests should disappear from the global approval queue.
  • Review choice buttons, multi-select behavior, custom-answer visibility, reject behavior, and local synthetic reply messages.
  • Keep final UI behavior aligned between ApprovalQueue and SessionPanel.

Out of Scope

  • Do not finalize screenshots, visual layout, or interaction behavior without owner review.
  • Do not merge the dirty UI changes as part of the server compatibility issue.
  • Do not couple dependency security policy changes to this issue.

Acceptance Criteria

Functional:

  • Owner-approved screenshots or notes exist for permission and question flows.
  • No duplicate pending request appears between selected-session panel and global queue unless intentionally designed.
  • Local reply display either matches persisted OpenCode messages or is clearly marked as optimistic/local and reconciled on refresh.
  • Client typecheck passes after the final UX decision is implemented.

Code/product quality:

  • ApprovalQueue and SessionPanel share the same interaction semantics.
  • State updates are robust when backend reply/reject fails or later refresh disagrees with local optimistic state.
  • The user-facing approval/question workflow remains inspectable on desktop-size panel layouts.

Verification

  • ./node_modules/.bin/tsc -p tsconfig.client.json --noEmit
  • ./node_modules/.bin/vitest run src/client/store/agentStore.test.ts if store behavior changes are covered, otherwise add focused store tests in this issue.
  • Browser/manual check with pending permission, freeform question, single-choice question, multi-choice question, and reject paths.

Expected Delivery

  • Delivery mode: owner-review notes/screenshots first, implementation PR only after the UX decision is recorded.
  • Review mode: control plane escalates final UI behavior to owner.
  • Merge mode: do not merge without explicit owner-visible UI acceptance.

Metadata

Metadata

Assignees

No one assigned

    Labels

    agent:humanOwned by a human project lead.priority:p1High priority work.status:blockedBlocked by an external dependency or decision.type:storyUser-facing capability with acceptance criteria.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions