LearnNewsExamplesServices
Frontmatter
id11363
titleRemove gh-workflow legacy archive config fallbacks
stateClosed
labels
enhancementairefactoringagent-task:pendingarchitecturebuild
assigneesneo-gpt
createdAtMay 14, 2026, 5:20 PM
updatedAtMay 15, 2026, 2:35 AM
githubUrlhttps://github.com/neomjs/neo/issues/11363
authorneo-gpt
commentsCount0
parentIssue11372
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtMay 15, 2026, 2:35 AM

Remove gh-workflow legacy archive config fallbacks

Closedenhancementairefactoringagent-task:pendingarchitecturebuild
neo-gpt
neo-gpt commented on May 14, 2026, 5:20 PM

Context

Epic #11187 Phase 6 is rescuing the resources/content archive substrate from stale issue-archive / pr-archive / unversioned assumptions. Discussion #11359 and PR #11362 narrow the immediate data cleanup, but live V-B-A on the gh-workflow config surface shows a separate contract pocket still outside #11360 / #11362 scope.

Current branch evidence:

  • ai/mcp/server/github-workflow/config.mjs still exposes issueSync.archiveDir pointing at resources/content/issue-archive.
  • ai/mcp/server/github-workflow/config.template.mjs exposes the same legacy archiveDir fallback.
  • Both config files still expose defaultArchiveVersion: 'unversioned'.
  • Consumer grep still finds issueSync.archiveDir references in IssueSyncer.mjs, LocalFileService.mjs, and related unit tests.

This is a config-contract cleanup ticket, not another data-migration ticket. The goal is to prevent the deleted legacy folders and the invalid unversioned bucket from remaining alive as official gh-workflow configuration.

Problem

archiveRoot is the intended versioned archive root. Keeping archiveDir and defaultArchiveVersion in the public config/template layer creates three risks:

  1. Fresh worktrees copy stale contract defaults from config.template.mjs.
  2. Consumers and tests keep treating resources/content/issue-archive as a supported path after Phase 6 removes the folder.
  3. unversioned remains a config-supported archive bucket even though the archive structure must use real release versions only.

Acceptance Criteria

  • ai/mcp/server/github-workflow/config.mjs no longer exposes issueSync.archiveDir or issueSync.defaultArchiveVersion as part of the public gh-workflow config contract.
  • ai/mcp/server/github-workflow/config.template.mjs is kept in sync with config.mjs and no longer seeds archiveDir or defaultArchiveVersion into fresh clones/worktrees.
  • Every live consumer of issueSync.archiveDir is audited. Consumers are either removed, rewritten to derive from archiveRoot, or given a narrowly documented transitional fallback that does not require resources/content/issue-archive to exist at boot.
  • Unit tests and config-completeness checks are updated so they no longer require archiveDir or defaultArchiveVersion as mandatory config keys.
  • rg "defaultArchiveVersion|issueSync\.archiveDir|resources/content/issue-archive|unversioned" ai/mcp/server/github-workflow ai/services/github-workflow test/playwright/unit/ai/services/github-workflow -g "*.mjs" shows no active config-contract fallback. Historical comments or tests may remain only when they describe the retired behavior and cannot steer runtime paths.
  • gh-workflow boot or the nearest available config/unit validation passes after PR #11362 lands, with no ENOENT path dependency on resources/content/issue-archive.

Out of Scope

  • PR #11362 data cleanup and manifest-generation fixes.
  • MetadataManager / PullRequestSyncer archiveVersion propagation cleanup; that is Pocket B and should be handled by a separate ticket.
  • Recursive archive ingestion for IssueIngestor / graph sources; that is already tracked by #11361.
  • Release publishing mechanics in buildScripts/release/publish.mjs unless a direct config consumer is discovered.

Avoided Traps

  • Do not bundle this into #11360 / #11362; those already have enough blast radius.
  • Do not keep archiveDir for backward compatibility without a measured sunset condition.
  • Do not treat unversioned as a release version.
  • Do not remove consumer code blindly; first prove whether it is runtime contract, historical fallback, or test-only scaffolding.

Related

  • Parent epic: #11187
  • Rescue strategy: Discussion #11359
  • Immediate cleanup ticket: #11360
  • Current cleanup PR: #11362
  • Existing archive-ingestion follow-up: #11361
  • Historical config completeness context: #10209

Origin Session

  • Origin Session ID: d6d89930-f408-42a0-b60e-ec4487a8cc46

Retrieval Hint

Search for archiveDir defaultArchiveVersion unversioned gh-workflow config Phase 6.

tobiu closed this issue on May 15, 2026, 2:35 AM
tobiu referenced in commit e684eb9 - "fix(github-workflow): remove legacy archive config fallbacks (#11363) (#11387) on May 15, 2026, 2:35 AM