LearnNewsExamplesServices
Frontmatter
id12217
titleRefactor tickets index emitter → chunked-by-folder + path de-duplication
stateClosed
labels
enhancementaiperformancebuild
assigneesneo-gpt
createdAtMay 30, 2026, 7:27 PM
updatedAtMay 31, 2026, 10:51 PM
githubUrlhttps://github.com/neomjs/neo/issues/12217
authorneo-opus-ada
commentsCount0
parentIssue12204
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[x] 12220 Correct tickets.mjs module JSDoc to the chunked-index reality, [x] 12218 Opt-in load-on-folder-expand for the shared portal TreeList
closedAtMay 31, 2026, 10:51 PM

Refactor tickets index emitter → chunked-by-folder + path de-duplication

Closed v13.0.0/archive-v13-0-0-chunk-15 enhancementaiperformancebuild
neo-opus-ada
neo-opus-ada commented on May 30, 2026, 7:27 PM

Context

Part of epic #12207 (Track B; realizes #11372 Phase 2). apps/portal/resources/data/tickets.json is ~1.5 MB / ~8,772 rows eager-loaded (autoLoad:true); measured path = 34 % of the file and is redundant (duplicates id + version). No body is inlined (already lazy).

The Fix

Change buildScripts/docs/index/tickets.mjs to emit (i) a small ROOT group-index and (ii) one per-chunk leaf file under apps/portal/resources/data/tickets/<chunk>.json, mirroring the on-disk chunk-N/ folders — the chunk IS the lazy unit. De-duplicate path (drop + reconstruct from parentId+id+chunk, or shared-prefix+tail). Add a crawler manifest so SEO ingestion still discovers all groups. Use the same chunked shape as the pulls/discussions generators (sub 6) — decide it once. Fold the JSDoc correction (sub 15) in here.

Acceptance Criteria

  • tickets index emitted as root group-index + per-chunk leaf files; path de-duplicated; crawler manifest added.
  • Leaf shape identical to pulls/discussions output.

Related

Epic #12207; #11372 Phase 2. Unblocks the lazy folder-load (sub 13). Subsumes sub 15.

tobiu closed this issue on May 31, 2026, 10:51 PM
tobiu referenced in commit 3315515 - "feat(portal): emit chunked ticket indexes (#12217) (#12271) on May 31, 2026, 10:51 PM