Skip to content

perf: Optimize stack view rendering and add LRU cache with data-driven config#12

Merged
mhiro2 merged 6 commits intomainfrom
feat/perf-refactor-batch
Feb 18, 2026
Merged

perf: Optimize stack view rendering and add LRU cache with data-driven config#12
mhiro2 merged 6 commits intomainfrom
feat/perf-refactor-batch

Conversation

@mhiro2
Copy link
Copy Markdown
Owner

@mhiro2 mhiro2 commented Feb 18, 2026

Summary

  • Improve performance with LRU cache for realpath and O(1) popup lookups
  • Optimize stack view to render only changed lines
  • Refactor config validation to be data-driven

Changes

  • 9525fc9 : perf(location): bound realpath cache with LRU and reset
    • Implement LRU cache with configurable max size for realpath resolution
    • Add realpath_cache_max_size config option and cache reset functionality
  • 6ba5179 : refactor(config): make validation data-driven
    • Convert validation logic to table-driven approach for better maintainability
    • Add emmylua annotations for validation rules
  • ffd1e88 : perf(stack): add O(1) popup lookup indexes
    • Add popup_id_to_item and location_to_popup indexes for constant-time lookups
    • Expose get_popup_by_location() API for direct popup access
  • 29aa6f5 : chore(lint): fix shadowed local and apply formatting
  • bbcba06 : perf(stack-view): render only changed lines
    • Implement diff-based rendering to update only modified lines
    • Add render state tracking to minimize buffer updates
  • 1df2325 : fix(config): fallback invalid ui.path.max_width type
    • Gracefully handle invalid max_width values by falling back to default

@mhiro2 mhiro2 self-assigned this Feb 18, 2026
@mhiro2 mhiro2 added the enhancement New feature or request label Feb 18, 2026
@mhiro2 mhiro2 merged commit 28ef3e9 into main Feb 18, 2026
3 checks passed
@mhiro2 mhiro2 deleted the feat/perf-refactor-batch branch February 18, 2026 13:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant