fix(wiki): Remove the hidden 60s default timeout, validate gitnexus wiki timeout/retry flags, and surface timeout errors#1651
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
gitnexus wiki
gitnexus wikigitnexus wiki
|
Claude finished @magyargergo's task in 4m 39s —— View job PR #1651 Review — fix(wiki): Remove hidden 60s default timeoutReview tasks:
Review bar for this PR
Current PR state
Branch hygiene assessmentClean feature/fix PR. Two commits ( Understanding of the changeRuntime flow: Before this PR: After this PR: FindingsFinding 1 — No second hidden 60s LLM ceiling
Finding 2 —
Finding 3 — Commander has no default value for
Finding 4 — Invalid
Finding 5 — AbortError/TimeoutError is not retried (correct, but a semantic nuance)
Finding 6 — No command-path test for CLI option → requestTimeoutMs mapping
Finding 7 — Test quality is solid
Finding 8 — Tests ARE wired into CI
Finding 9 — Docs consistently updated, no stale references
Finding 10 — CI incomplete, PR is Draft
Finding 11 — No hidden Unicode
PR-specific assessmentIssue-fit and repro coverage: ✅ The fix directly removes the CLI contract and option parsing: ✅ Runtime timeout/retry behavior: ✅ Test coverage and CI wiring: ✅ New tests cover the real Docs/help consistency: ✅ All three public doc surfaces updated to "default: disabled." No stale references found. Security/hygiene/hidden Unicode: ✅ No new injection surfaces. Branch hygiene: ✅ Clean feature/fix PR. Two commits, 5 files, focused. The "Initial plan" commit is an empty Copilot planning marker. Specific likely issues verified
Final verdictproduction-ready with minor follow-ups — once CI is green and draft status is resolved. The core fix is correct and precisely scoped: the hidden Two items should be tracked as follow-ups (neither blocks the fix): (1) invalid |
|
@copilot fetch all the comment and filter for claude's comments and make sure you get all the findings and they are addressed with tests and each findings is a separate commit. Follow DoD.md and act as a senior principal GitNexus engineer. |
Addressed the actionable Claude findings in separate commits: |
gitnexus wikigitnexus wiki --timeout
|
@copilot we need to surface information for the user if the timeout got engaged |
Addressed in |
gitnexus wiki --timeoutgitnexus wiki --timeout, and surface engaged timeout errors
|
Claude finished @magyargergo's task in 4m 56s —— View job PR #1651 Review — fix(wiki): Remove hidden 60s default timeoutReview tasks:
Review bar for this PR
Current PR state
Branch hygiene assessmentClean feature/fix PR. 11 focused commits, all directly relevant to the fix. Files changed: 2 src files (wiki.ts, llm-client.ts), 1 CLI registration (index.ts), 2 test files, 2 doc files. No merge-from-main commits, no unrelated churn. The "Initial plan" commit is an empty Copilot planning marker with no file changes. Understanding of the changeRuntime flow: Before this PR: After this PR: FindingsFinding 1 — Core fix is correct and complete
Finding 2 — No second hidden 60s LLM ceiling
Finding 3 —
Finding 4 — Commander has no default for
Finding 5 — Timeout error surfacing is correct end-to-end
Finding 6 —
Finding 7 — Signal is per-call, not per-attempt; PR description is inaccurate
Finding 8 —
Finding 9 — Tests are solid and exercise the real
Finding 10 — CI has NOT run on the current HEAD SHA — hard merge gate
Finding 11 — Docs consistently updated; no stale references
Finding 12 — No hidden Unicode
PR-specific assessmentIssue-fit and repro coverage: ✅ The fix directly removes the CLI contract and option parsing: ✅ Runtime timeout/retry behavior: ✅ Test coverage and CI wiring: ✅ New tests cover the real Docs/help consistency: ✅ All three public doc surfaces updated to Security/hygiene/hidden Unicode: ✅ Branch hygiene: ✅ Clean feature/fix PR. 11 focused commits, 7 directly relevant files. No unrelated churn. Specific likely issues verified
Final verdictnot production-ready The core runtime fix is correct and precisely scoped: the hidden |
|
@copilot get claude's new findings and make sure they are all address from the comments |
Addressed the new actionable Claude findings in |
gitnexus wiki --timeout, and surface engaged timeout errorsgitnexus wiki timeout/retry flags, and surface timeout errors
|
@copilot CI must be healthy |
I investigated the GitHub Actions state. No wiki-related code change is needed from this comment: the old failing Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
CI Report✅ All checks passed Pipeline Status
Test Results
✅ All 9170 tests passed 1 test(s) skipped — expand for details
Code CoverageTests
📋 View full run · Generated by CI |
…wiki` timeout/retry flags, and surface timeout errors (abhigyanpatwari#1651)
Large repos could fail
gitnexus wikiafter 60 seconds even though wiki generation is expected to run for many minutes. The command exposed--timeout, but the runtime path still imposed a default 60s per-request LLM timeout.This PR also tightens the CLI boundary for
--timeoutbased on review feedback so invalid or overflow-prone timeout values fail fast with a clear error instead of being silently ignored, surfaces a dedicated user-facing message when the configured timeout actually engages, and applies the same fail-fast validation to--retries.Runtime behavior
AbortSignal.timeout(...)to wiki LLM requests.--timeoutis not provided, the request runs without a built-in ceiling.gitnexus wiki --timeout <seconds>still enforces a request timeout.--timeoutor omit it to disable the request timeout.CLI / docs
60.gitnexus wiki --timeoutat the CLI boundary:gitnexus wiki --retriesat the CLI boundary with the same positive-integer fail-fast behavior.gitnexus wikias a dedicatedTimeout:message instead of a generic error.Regression coverage
callLLMpath:requestTimeoutMsis omittedrequestTimeoutMsis setwikiCommand:--timeout 120maps torequestTimeoutMs = 120000--timeoutleavesrequestTimeoutMsunset--retries 5maps tomaxAttempts = 5> [!WARNING]
>
>