fix(core): don't warn when tree-sitter highlight fails during client destroy - #1318
Open
HARIOM-JHA01 wants to merge 1 commit into
Open
fix(core): don't warn when tree-sitter highlight fails during client destroy#1318HARIOM-JHA01 wants to merge 1 commit into
HARIOM-JHA01 wants to merge 1 commit into
Conversation
…destroy The TreeSitterClient used a generic Error for teardown rejections, so CodeRenderable treated an expected destroy() during shutdown as a real failure and logged 'Code highlighting failed, falling back to plain text'. Introduce TreeSitterClientDestroyedError and skip the warning (and pointless fallback render) when highlighting fails because the client was destroyed, while preserving warnings for genuine worker failures.
HARIOM-JHA01
requested review from
Hona,
kommander,
msmps and
simonklee
as code owners
August 2, 2026 08:36
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #1319
Problem
When @opentui/core is torn down, TreeSitterClient.destroy() rejects any in-flight highlightOnce() promises with a generic
Error("TreeSitter client destroyed"). CodeRenderable.startHighlight() treats every rejection as a real failure and logs a misleading warning:This races with client teardown on exit, so opencode users see the warning unexpectedly on shutdown even though nothing is actually broken.
Reported in anomalyco/opencode#36454.
Fix
TreeSitterClientDestroyedErrorand reject pending requests (and pending initialization) with it indestroy().rejectHighlightOnce; client destroy tests now assertTreeSitterClientDestroyedError;console.warnon destroy-triggered failures while a real Error still warns.Tests