anomalyco / anomalyco/opencode

Permission sub-screen persists across queued requests

Open
#45,297 1 comment 0 reactions 1 assignee View on GitHub

@kommander is already working on this.

Since Aug 26, 2026.

Dominant language
TypeScript
Stars
209k
Forks
27.5k
PR merge metrics
PR metrics pending

Description

Summary

When more than one permission request is queued, the session view renders a single <PermissionPrompt request={permissions()[0]}>. Resolving a request through the "always" or "reject" sub-screen leaves the component's local store.stage on that sub-screen. The next queued request becomes permissions()[0], but Solid reuses the same component instance (the Show condition stays truthy) and only updates the request prop — so store.stage carries over and the new request is shown on the "Always allow" / reject screen instead of the permission prompt.

Reproduction

  1. Queue two commands that each need permission (e.g. two bash calls) so permissions().length > 1.
  2. For the first, open it and choose Allow always → confirms and removes request #1.
  3. Request #2 is now permissions()[0], but the prompt still shows the "Always allow" confirmation screen for it.

Expected

Each queued request starts on the permission prompt screen, regardless of how the previous request was answered.

Actual

The previously selected sub-screen (always / reject) is presented for the next request.

Environment

  • opencode version: dev
  • TUI session with multiple simultaneous permission requests

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.