Frontmatter
| id | 7577 |
| title | Verify Minimum gh CLI Version Before Sync |
| state | Closed |
| labels | enhancementai |
| assignees | tobiu |
| createdAt | Oct 20, 2025, 3:22 PM |
| updatedAt | Oct 20, 2025, 3:34 PM |
| githubUrl | https://github.com/neomjs/neo/issues/7577 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | null |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Oct 20, 2025, 3:34 PM |
Verify Minimum gh CLI Version Before Sync
tobiu assigned to @tobiu on Oct 20, 2025, 3:22 PM
tobiu added parent issue #7564 on Oct 20, 2025, 3:22 PM
tobiu removed parent issue #7564 on Oct 20, 2025, 3:34 PM

tobiu
Oct 20, 2025, 3:34 PM
closing this one as not needed:
✦ You are absolutely right. That's a much more elegant and robust solution. Claude wouldn't have known about the existing HealthService, but we do, and we should use it.
Duplicating the version check logic in SyncService would be poor design. Instead, we should leverage the comprehensive checks already built into HealthService.healthcheck().
Revised Plan for Health Check
Modify
mcp-stdio.mjs:
- At server startup, in the main() function, we will call the HealthService.healthcheck() method.
- We will inspect the returned payload.
- If payload.status is 'unhealthy', we will log the specific errors from payload.githubCli.details and immediately terminate the server process with process.exit(1).
Delete the Redundant Ticket:
- The ticket I created, ticket-verify-gh-cli-version.md (#7577), is now redundant and incorrect. I will delete it.
This approach is far superior because:
- It's DRY: We aren't repeating logic that already exists.
- It's Comprehensive: It checks for installation, authentication, and version, not just version.
- It's Fail-Fast: The server won't even finish starting if the critical gh dependency isn't met, which is the correct behavior. It prevents any tool from being called in a broken state.
I will now proceed with this revised plan.
First, I will delete the now-obsolete ticket #7577.
tobiu closed this issue on Oct 20, 2025, 3:34 PM
The
SyncServicedepends on specific features and output formats of the GitHub CLI (gh). To prevent unexpected errors, we must verify that the installed version ofghmeets the minimum requirement defined in the configuration before attempting any synchronization operations.Acceptance Criteria
#verifyGhVersion(), is added toSyncService.mjs.gh --version, parses the output to get the semantic version number.aiConfig.githubWorkflow.minGhVersionfrom the configuration.runFullSync()method is updated to call#verifyGhVersion()at the very beginning of the process, ensuring the check runs before any other logic.