Files
hermes-agent/scripts
Teknium d2c05341fc fix(skills): install skills.sh skills from a lone generic dir under their slug; resolve index paths before the token expires
skills.sh rows in the hermes-index carry the skills.sh slug as `path` and,
since mid-September, never a `resolved_github_id`: the scheduled index build
resolves paths AFTER the ClawHub walk, ~80 min into the job, when the 1 h
GitHub App token has expired. Every tree fetch 401s and the log says
"Resolved 0/20000 paths" (last good run 2026-09-15: 17917/20000). Installs
then work only where the repo dir happens to equal the slug, and everything
else is reported as a "stale index entry".

- build_skills_index: resolve skills.sh paths straight after the skills.sh
  crawl, while the token is fresh.
- HermesIndexSource.fetch: when the indexed candidates miss, locate the skill
  in the repo tree (slug-named dir, a lone SKILL.md in a generic dir such as
  `skills/`, or the repo root) and install it under the slug, not as
  `skills/`.
- _find_skill_in_repo_tree: a tree with exactly one non-root SKILL.md
  resolves to it when no dir matches the slug (fails closed on 2+).
- GitHubAuth: once the credential chain came up empty, stay anonymous for the
  instance instead of re-running `gh auth token` before every API call; with
  gh installed but not logged in that cost up to 5 s per request and pushed an
  anonymous install past four minutes.

Fixes #130129
Based on #130135 by @dskwe.
2026-10-05 15:56:28 -07:00
..