Skip to content

docs: build-archives.mjs has no retry and swallows git stderr, making npm run check unrunnable on flaky networks #294

Description

@jeremi

Observed 2026-07-07 while running the docs gate locally for #285. npm run check failed five consecutive runs, each at a DIFFERENT anonymous shallow clone inside build:archives / fetch-openapi (v0.8.4 relay spec, pre-monorepo jeremi/registry-notary at two different SHAs, registry-stack at two different SHAs). Every failing SHA fetched fine when retried individually, and a 12-iteration sequential fetch loop of one of them passed 12/12, so the content and pins are correct; the failures are transient network/throttling during the long multi-clone runs.

Two compounding problems:

  1. No retry: one dropped connection out of dozens of clones fails the entire check pipeline, and the seo/links stages behind it never run.
  2. Swallowed stderr: the error surfaces as Command failed: git fetch --quiet --depth 1 origin <sha> with git's actual message discarded, so diagnosing transient-vs-real takes manual reproduction.

Suggest: retry each clone/fetch 2-3 times with backoff, and include the child process stderr in the thrown error. Optionally allow SKIP_ARCHIVES=1 for local runs so content edits can complete seo/links checks without rebuilding historical docsets (CI stays authoritative for the full pipeline).

Metadata

Metadata

Assignees

No one assigned

    Labels

    1.0-blockerBlocks the 1.0 release intent.agent-readyReady for an implementation agent.area:docsDocumentation site ownership.bugSomething isn't workingcriticality:p3Priority/criticality P3.javascriptPull requests that update javascript codetriage:needs-implementationNeeds implementation.

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions