Skip to content

synching with davi0015 branch#2

Merged
MXZZ merged 3 commits into
MXZZ:mainfrom
davi0015:main
Jul 11, 2026
Merged

synching with davi0015 branch#2
MXZZ merged 3 commits into
MXZZ:mainfrom
davi0015:main

Conversation

@MXZZ

@MXZZ MXZZ commented Jul 11, 2026

Copy link
Copy Markdown
Owner

No description provided.

davi0015 added 3 commits July 10, 2026 14:42
…84)

trimFromTop used a per-message average height to decide how many
messages to drop from the top of the virtualized viewport. With a
tall code block in the mounted slice, the average was dragged down
by surrounding short messages, so currScrollTop/avgH overcounted the
messages above the viewport and removed the tall block even though its
real bottom edge was still well within the keep zone.

Removing the block made scrollTop += delta clamp to 0 (yanking the
viewport to the top), which fired a scroll event -> expandUp re-mounted
it -> scrollTop jumped back -> scroll event -> trim removed it again.
With 2+ long code blocks this became an infinite scroll loop.

Rewrote trimFromTop to walk real getBoundingClientRect heights with
two guards: (1) only drop a child whose bottom is >5 viewports above
the viewport (so removedHeight < scrollTop, nevechild if it would bring content below the 3-viewport fill
target (so the fill loop can't re-mount it and oscillate).
parseTokenizedHtml extracted span text from VS Code's tokenizeToString
output without decoding HTML entities. The tokenizer escapes <, >, & to
&lt;, &gt;, &amp; via strings.escape(), so code blocks showed literal
'&lt;' instead of '<' after tokenization completed.

Added unescapeHtml() — the exact inverse of strings.escape() (3
entities, &amp; decoded last to handle literal '&amp;' in source code
correctly). Applied at span text extraction time.
…t] title (#86)

When a terminal tool was approved via approveToolRequest (concurrent
path), non-terminal siblings like read_file stayed stuck as
tool_request forever — _checkAndContinueAfterConcurrentResolution
blindly set 'awaiting_user' instead of draining the remaining batch.
Now calls _tryDrainPendingBatch so non-approval tools run automatically
and only genuinely approval-required tools pause.

Also fixes [object Object] in tool titles during running_now state
when the tool was part of a batch. loadingTitleWrapper returns a React
element, but the batch prefix path used template literal concatenation
which stringified it. Now wraps in a fragment.
@MXZZ
MXZZ merged commit a04a7b2 into MXZZ:main Jul 11, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants