anomalyco / anomalyco/opencode
Permission sub-screen persists across queued requests
@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
- Queue two commands that each need permission (e.g. two
bashcalls) sopermissions().length > 1. - For the first, open it and choose Allow always → confirms and removes request #1.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.