Skip to content

estack-repo-search: bootstrap sync loop times out as the repo cache grows #30

Description

@ElliotDrel

Expected

Invoking the skill lists the cached repos in ~/.e-stack/estack-repo-search/, force-syncing each to its remote HEAD, within the normal Bash tool timeout.

Actual

The "Available repos" bootstrap block (the \``!script at the top of SKILL.md) hitCommand timed out after 2m 0spartway through the sync loop. With 15 repos currently cached — including large ones likeopenai/codex(1400+ files) andraycast/extensions(a big monorepo, needed a forced ref update) — the sequentialfetch --depth 1+reset --hard+clean -fdxper repo pushed the whole loop past the 2-minute ceiling. The run was cut off mid-reset on theopenclaw/openclaw` entry, so the skill never got to present a repo list or accept a search request for that turn.

Why it matters

This isn't a one-off slow repo — it's the ordinary failure mode as the cache grows over time (every prior repo-search invocation adds one more entry, and the loop is O(n) sequential network round-trips with no time budget). Anyone with a similarly-sized cache will hit the same timeout going forward, blocking the skill's first step entirely.

Suggested fix directions

  • Cap per-repo sync time (e.g. timeout 15s git fetch ...) and skip/report repos that don't sync in time rather than blocking the whole loop.
  • Run the syncs in parallel (& + wait) instead of sequentially.
  • Or drop the eager full-cache resync entirely and only sync the repo actually needed for the current question.

Environment

  • Windows 11, Git Bash tool inside Claude Code
  • gh version 2.97.0 (2026-07-31)
  • Cache at time of failure: 15 repos in ~/.e-stack/estack-repo-search/

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions