Frontmatter
| id | 8391 |
| title | Update generateSeoFiles.mjs to handle tree-structured release data |
| state | Closed |
| labels | bugdocumentationbuild |
| assignees | tobiu |
| createdAt | Jan 7, 2026, 7:32 PM |
| updatedAt | Jan 7, 2026, 7:50 PM |
| githubUrl | https://github.com/neomjs/neo/issues/8391 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | null |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Jan 7, 2026, 7:41 PM |
Update generateSeoFiles.mjs to handle tree-structured release data
tobiu assigned to @tobiu on Jan 7, 2026, 7:33 PM
tobiu closed this issue on Jan 7, 2026, 7:41 PM

tobiu
Jan 7, 2026, 7:50 PM
Input from Gemini 3 Pro:
✦ Task completed.
Updated
buildScripts/generateSeoFiles.mjsto filter out directory nodes (parent items without a version) from the release data. This ensures thellms.txtgeneration works correctly with the new tree-structuredreleases.json.
The
apps/portal/resources/data/releases.jsonstructure was recently refactored from a simple flat list to a flat-tree structure (including parent nodes for major versions) to support the Portal'sTreeListcomponent.The
buildScripts/generateSeoFiles.mjsscript, specifically thegetLlmsTxtfunction, consumes this JSON to generate the "Latest Updates" section. Currently, it iterates over the array without filtering, which causes it to process the new parent nodes (e.g., "v11") as if they were release notes. Since these parent nodes lack theversion,date, andtitleproperties of actual release objects, this results in malformed entries or errors.Task: Update
buildScripts/generateSeoFiles.mjsto filter thereleasesarray. It should exclude nodes whereisLeafis explicitlyfalse(or check for the existence of theversionproperty) before slicing the top 5 items for the SEO content.Affected File:
buildScripts/generateSeoFiles.mjs