Frontmatter
| id | 9167 |
| title | [Grid] Fix Runtime Buffer Updates (Phase 1: Functional) |
| state | Closed |
| labels | bugairegression |
| assignees | tobiu |
| createdAt | Feb 15, 2026, 1:00 PM |
| updatedAt | Feb 15, 2026, 1:47 PM |
| githubUrl | https://github.com/neomjs/neo/issues/9167 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | 9165 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Feb 15, 2026, 1:47 PM |
[Grid] Fix Runtime Buffer Updates (Phase 1: Functional)
tobiu assigned to @tobiu on Feb 15, 2026, 1:01 PM
tobiu added parent issue #9165 on Feb 15, 2026, 1:01 PM

tobiu
Feb 15, 2026, 1:46 PM
Input from Gemini 3 Pro:
✦ Fixed the regression where runtime buffer updates caused the grid to render blank.
Resolution:
Core Framework (
src/grid/Body.mjs):
- Updated
updateMountedAndVisibleColumnsto accept aforceparameter, bypassing optimization checks when the buffer changes but the scroll position hasn't.- Ensured
startIndexinitializes to0to preventNaNpropagation.- Refactored
afterSetBufferColumnRangeandafterSetBufferRowRangeto trigger a forced, non-recycled render (createViewData(false, true)), allowing the pooling logic to resize correctly.Application Logic (
apps/devindex):
- Controller: Fixed
NaNbug inMainContainerControllerwhereonBuffer*Changehandlers receivedRecordobjects instead of primitive values (due toforceSelection: true).- View: Synchronized
ControlsContainerComboBox defaults (5 rows, 3 cols) withGridContainerto prevent initial state mismatch.Verification:
- Added regression test:
test/playwright/unit/grid/PoolingRuntimeUpdates.spec.mjs.- Verified both Row and Column buffer expansion at runtime.
tobiu closed this issue on Feb 15, 2026, 1:47 PM
Runtime changes to
bufferRowRangeandbufferColumnRangecurrently break the grid rendering (blank grid or missing cells).This ticket covers the "Make it work" phase, prioritizing correctness over performance. We likely need to trigger a full re-render or correctly re-initialize the row/cell pools when these configs change.
Parent Issue: #9165