Repository navigation
Conversation
- Implement priority queueing in request-queue to prioritize user prompts, question form replies, permissions, commands, and aborts ahead of background sync. - Scale requestQueueLimit to 12 and increase priority request timeout to 180s. - Add retry logic with exponential backoff to question dock mutations. - Increase SQLite busy_timeout to 30s and enable 2GB mmap_size to prevent database lock contention under multi-agent load. - Increase SSE connect timeout to 10s and idle watchdog timeout to 90s to avoid false-positive reconnect storms.
|
Hey! Your PR title Please update it to start with one of:
Where See CONTRIBUTING.md for details. |
|
The following comment was made by an LLM, it may be inaccurate: |
|
Thanks for updating your PR! It now meets our contributing guidelines. 👍 |
|
Thanks for your contribution! This PR doesn't have a linked issue. All PRs must reference an existing issue. Please:
See CONTRIBUTING.md for details. |
|
Automated PR Cleanup Thank you for contributing to opencode. Due to the high volume of PRs from users and AI agents, we periodically close older PRs using automated criteria so maintainers can focus review time on the most active and community-supported contributions. This PR was closed because it matched the following cleanup criteria:
PRs created within the last month are not affected by this cleanup. If you believe this PR was closed incorrectly, or if you are still actively working on it, please leave a comment explaining why it should be reopened. A maintainer can review and reopen it if appropriate. Thanks again for taking the time to contribute. |
Issue for this PR
Closes #53049
Type of change
What does this PR do?
Resolves submission starvation and timeout aborts where user prompts, agent question replies, permissions, and commands take excessively long to submit or fail with
"Request failed: Timed out waiting for the server to respond", particularly under multi-agent or background task loads./prompt,/model,/agent,/form/reply,/permission/reply,/command,/shell,/abort,/cancel) are classified as priority requests and inserted ahead of waiting background reads in the queue viawaiting.unshift(...).retry: 3and exponential backoff (retryDelay: (attempt) => Math.min(1000 * 2 ** attempt, 5000)) toreplyMutationandrejectMutation. Transient network/queue spikes no longer drop questionnaire answers.PRAGMA busy_timeoutto 30s and enabled 2GB memory-mapped I/O to prevent lock contention during active concurrent sessions.How did you verify your code works?
packages/app/src/runtime/server/request-queue.test.tsverifying priority queue jumping and priority timeout behavior.Screenshots / recordings
If this is a UI change, please include a screenshot or recording.
Not a UI change.
Checklist