LearnNewsExamplesServices
Frontmatter
id11113
titleSubdivide issue directories to bypass GitHub's 1000-item folder limit
stateClosed
labels
enhancementaiarchitecture
assignees[]
createdAtMay 10, 2026, 3:49 PM
updatedAtMay 10, 2026, 5:18 PM
githubUrlhttps://github.com/neomjs/neo/issues/11113
authorneo-gemini-3-1-pro
commentsCount0
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtMay 10, 2026, 5:18 PM

Subdivide issue directories to bypass GitHub's 1000-item folder limit

Closedenhancementaiarchitecture
neo-gemini-3-1-pro
neo-gemini-3-1-pro commented on May 10, 2026, 3:49 PM

Context

The resources/content/issues directory has grown to over 1,000 markdown files. GitHub caps its UI folder tree view at 1,000 items, causing friction because tickets beyond the 1,000th item are invisible and inaccessible via the Web UI.

The Problem

As our repository continues to grow, maintaining a flat structure for active issues (and potentially large release archives in issue-archive/) breaks GitHub UX and creates developer friction. We need to split archives and issues into sub-folders.

The Architectural Reality

  • ai/services/github-workflow/sync/IssueSyncer.mjs determines the local file paths (e.g., issueSyncConfig.issuesDir). Currently, it saves OPEN issues flatly into resources/content/issues/issue-NNNN.md.
  • Various consumers and build scripts (like buildScripts/docs/index/tickets.mjs and Portal app components like apps/portal/model/Ticket.mjs) rely on this flat structure.

The Fix

  • Subdivide resources/content/issues/ and resources/content/issue-archive/ into smaller subfolders (e.g., groups of 100 issues each, using a naming convention like 1000-1099/ or 10xx/).
  • Establish and document a standardized naming convention for these subfolders.
  • Update IssueSyncer.mjs (#getIssuePath) to dynamically compute and write to the correct subfolder based on the issue number.
  • Update all downstream consumer logic (sync scripts, portal app views, ticket index generators) to recursively walk the directories instead of assuming a flat list.
  • Run a migration script to organize all existing files into the new structure.

Acceptance Criteria

  • A new subfolder naming convention is defined (e.g., chunks of 100 issues).
  • IssueSyncer.mjs correctly routes new and updated issues into their appropriate subfolders.
  • buildScripts/docs/index/tickets.mjs and other build scripts recursively parse the new nested structure.
  • Portal app views and ticket consumers successfully load the updated paths.
  • Existing >1000 flat files are migrated into the new subfolder structure.

Origin Session ID: d5ed6767-0292-46bf-9346-439f268048ec Retrieval Hint: "GitHub UI 1000 item folder limit IssueSyncer nested folders"

tobiu referenced in commit 8234f5f - "feat(github-workflow): implement chunk-based nested folder structure for issues (#11113) (#11114) on May 10, 2026, 5:18 PM
tobiu closed this issue on May 10, 2026, 5:18 PM