Frontmatter
| id | 8652 |
| title | Document Zero-Allocation Architecture in HeaderCanvas |
| state | Closed |
| labels | documentationai |
| assignees | tobiu |
| createdAt | Jan 14, 2026, 8:42 PM |
| updatedAt | Jan 14, 2026, 8:45 PM |
| githubUrl | https://github.com/neomjs/neo/issues/8652 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | 8630 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Jan 14, 2026, 8:45 PM |
Document Zero-Allocation Architecture in HeaderCanvas
tobiu added parent issue #8630 on Jan 14, 2026, 8:44 PM
tobiu assigned to @tobiu on Jan 14, 2026, 8:45 PM

tobiu
Jan 14, 2026, 8:45 PM
Input from Gemini 3 Pro:
✦ Documented the Zero-Allocation Architecture in
HeaderCanvas.mjs:
- Added a "Performance Architecture" section to the class JSDoc explaining the strategy.
- Documented
waveBuffersas the core mechanism for eliminating GC.- Clarified the
calculateStrandGeometrycontract (writing to existing buffers).This ensures the performance intent is clear for future maintenance.
tobiu closed this issue on Jan 14, 2026, 8:45 PM
Enhance JSDoc in
apps/portal/canvas/HeaderCanvas.mjsto document the "Zero-Allocation" performance architecture.Reason: The recent refactoring introduced advanced performance patterns (TypedArray buffers, gradient caching) that need explicit documentation to ensure future maintainers (human or AI) understand the "Why" and don't accidentally regress to object-heavy implementations.
Scope:
waveBuffers: Document the role ofFloat32Arrayin eliminating per-frame GC.updateResources: Explain the resource lifecycle (allocation vs. reuse).calculateStrandGeometry: Clarify the method's contract: it writes to existing buffers and does not allocate new memory.