fix(console): mop up audit minors — timestamp, filter count, new-line count
- D2: rpcTraceTimestamp used std::localtime (process-wide static tm) guarded by a private mutex that can't stop another thread's localtime from clobbering the shared buffer. Use localtime_r / localtime_s into a local tm (the codebase pattern) and drop the now-useless mutex. Runs on RPC worker threads. - C1: the toolbar's "<N> matches" label read filter_match_count_ before renderOutput recomputed it, so it lagged one frame. Compute the visible/ filtered set once at the top of render() (before the toolbar) and reuse it in renderOutput, so the count and the output share one consistent computation. - C4: the "N new lines" indicator counted the raw drain count, inflating it with lines the active filter hides. Count only newly-added lines that pass the current filter, so the badge matches what the user sees on jumping to bottom. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -175,6 +175,8 @@ private:
|
||||
std::string context_token_; // hash/address under the cursor at right-click
|
||||
mutable std::vector<int> visible_indices_; // Cached for selection mapping
|
||||
bool folding_active_ = true; // fold UI shown only in the unfiltered (foldable) view
|
||||
bool has_text_filter_ = false; // computed once per frame (before the toolbar draws it)
|
||||
std::string filter_lower_; // lowercased filter needle for match highlighting
|
||||
|
||||
// Wrap layout for the visible lines (segments + per-line heights + cumulative Y),
|
||||
// recomputed each frame by the pure BuildConsoleLayout (console_text_layout.h) and
|
||||
|
||||
Reference in New Issue
Block a user