Skip to content

fix(registry): answer 410 for gone sources on skill-files and skill-asset - #109

Merged
harlan-zw merged 1 commit into
mainfrom
fix/skill-files-gone-source
Sep 1, 2026
Merged

harlan-zw merged 1 commit into
mainfrom
fix/skill-files-gone-source

Conversation

@harlan-zw

Copy link
Copy Markdown
Collaborator

🔗 Linked issue

Resolves #98
Related to #99

❓ Type of change

  • 🐞 Bug fix

📚 Description

The 2026-09-01 check-in caught SKILLD-11 growing 212 to 256 events with a culprit it had not carried before, GET /api/skill-files/.... #100 split "gone" from "unavailable" on skills-raw and stopped there, so the other two readers of the same ungh tree kept both defects it removed: no source_resolved short-circuit, and every tree rejection collapsed into an outage.

That matters because a 503 with retry-after on these URLs is an instruction to retry, and the run command hands the URL straight to an agent. A deleted repository therefore got retried forever, and each retry raised the 5xx event that is the issue's count.

The classification now lives in one place so the three readers cannot drift apart again. Genuine outages still answer 503.

Loose end: the current culprit repository came back healthy while I was looking at it, so the live 410 path is unexercised until something actually gets deleted. Issue #99 reads as already closed by #100 to me, but I left it open rather than guess.

🤖 AI disclosure: Harlan Agent Kit modified this description. My AI open-source policy.

…sset

SKILLD-11 grew 212 to 256 events with a new culprit on
GET /api/skill-files/... . #100 split "gone" from "unavailable" on
skills-raw only, so the other two upstream-tree readers kept both
defects it removed.

Neither row query selected s.source_resolved, so the registry's own
verdict that a source is gone never reached the endpoint and every
request paid an upstream call to rediscover it. And both collapsed
every tree rejection into `unavailable`, so a deleted repository was
indistinguishable from an outage and answered 503 with retry-after.
A 503 on these URLs is an instruction to retry, the run-command
surface gives it to agents, and each retry raises the 5xx event.

The classification now lives in one place, fetchUpstreamTree, so the
three readers cannot drift apart again. skills-raw keeps its behaviour
and loses its private copy.

Failing tests first, modelling both shapes on both endpoints.

Claude-Session: https://claude.ai/code/session_01C5pA9DgibNnNorhmXvQ8ag
@harlan-github-agent harlan-github-agent Bot added harlan-agent-running An Agent holds a Task on this issue or pull request right now. harlan-agent-review-required Pull request triage requires an adversarial Review for this head commit. labels Sep 1, 2026
@harlan-github-agent

harlan-github-agent Bot commented Sep 1, 2026 •

Copy link
Copy Markdown
Contributor

🤖 MERGED

Harlan Agent Kit posted this automated review. It is not Harlan's personal review or approval. AI open source policy. Last updated: 2026-09-01 04:03 UTC.

GitHub merged this pull request. No further automated Review will run.

@harlan-github-agent harlan-github-agent Bot added harlan-agent-pending The automated Review is waiting on a gate for this head commit. and removed harlan-agent-running An Agent holds a Task on this issue or pull request right now. harlan-agent-review-required Pull request triage requires an adversarial Review for this head commit. labels Sep 1, 2026
@harlan-zw
harlan-zw merged commit 24a14b5 into main Sep 1, 2026
5 checks passed
@harlan-github-agent harlan-github-agent Bot removed the harlan-agent-pending The automated Review is waiting on a gate for this head commit. label Sep 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant