Commits
writeups capturing the multi-act investigation into two interlocking
spindle issues, surfaced by switching the bot repo's spindle setting
to this self-hosted instance:
- spindle-diagnosis-evolution.md: chronological account of how the
understanding evolved across three "acts" — historical pipeline
backfill on switch (cursor=0 default), name divergence between the
knot's internal repoName and PDS sh.tangled.repo Name (drops the
pipeline silently at GetRepo), then the same name divergence at a
second lookup site (GetSecretsUnlocked) causing pipelines to run
but with empty env vars. designed for sharing with the spindle
author since the journey of misunderstandings is itself the signal.
- spindle-backfill-issue-draft.md: formal upstream issue text for
both bugs, including reproduction, source-code references, the
three known lookup sites that key off pipeline.RepoName (repos,
secrets, rbac), workarounds, and a sketched fix (thread repoDid
through models.Pipeline.RepoId, use it everywhere downstream).
these stay in notes/ since they're project-internal working artifacts
rather than user-facing docs.
Co-Authored-By: Claude Opus 4 (1M context) <noreply@anthropic.com>
dig+short with TXT record lookup is the same thing the curl+jq+tr+sed
pipeline was doing via DNS-over-HTTPS, minus three pipes and the JSON
parse. doesn't depend on dns.google specifically.
Co-Authored-By: Claude Opus 4 (1M context) <noreply@anthropic.com>
- fix broken doc anchors: knot link points to the actual page (was a non-existent
fragment on root), spindle link pinned to #self-hosting-guide
- inline the DID-resolution curl in the setup instructions; drop the
resolve-did justfile recipe (it was a one-liner)
- generalize the migration section for any old → new knot move, not the
specific zzknotzz.fly.dev → knot.zzstoatzz.io case
- drop the "what NOT to do" section (obvious advice)
- drop list-old-knot-repos recipe (was hard-coded to zzknotzz)
Co-Authored-By: Claude Opus 4 (1M context) <noreply@anthropic.com>
terraform + cloud-init provisioning for a hetzner cpx31 hosting both
knot.zzstoatzz.io and spindle.zzstoatzz.io. tangled core pinned to
v1.13.0-alpha, built from source via bootstrap.sh, fronted by caddy
with auto letsencrypt. spindle gets docker access for spawning step
containers.
Co-Authored-By: Claude Opus 4 (1M context) <noreply@anthropic.com>
writeups capturing the multi-act investigation into two interlocking
spindle issues, surfaced by switching the bot repo's spindle setting
to this self-hosted instance:
- spindle-diagnosis-evolution.md: chronological account of how the
understanding evolved across three "acts" — historical pipeline
backfill on switch (cursor=0 default), name divergence between the
knot's internal repoName and PDS sh.tangled.repo Name (drops the
pipeline silently at GetRepo), then the same name divergence at a
second lookup site (GetSecretsUnlocked) causing pipelines to run
but with empty env vars. designed for sharing with the spindle
author since the journey of misunderstandings is itself the signal.
- spindle-backfill-issue-draft.md: formal upstream issue text for
both bugs, including reproduction, source-code references, the
three known lookup sites that key off pipeline.RepoName (repos,
secrets, rbac), workarounds, and a sketched fix (thread repoDid
through models.Pipeline.RepoId, use it everywhere downstream).
these stay in notes/ since they're project-internal working artifacts
rather than user-facing docs.
Co-Authored-By: Claude Opus 4 (1M context) <noreply@anthropic.com>
- fix broken doc anchors: knot link points to the actual page (was a non-existent
fragment on root), spindle link pinned to #self-hosting-guide
- inline the DID-resolution curl in the setup instructions; drop the
resolve-did justfile recipe (it was a one-liner)
- generalize the migration section for any old → new knot move, not the
specific zzknotzz.fly.dev → knot.zzstoatzz.io case
- drop the "what NOT to do" section (obvious advice)
- drop list-old-knot-repos recipe (was hard-coded to zzknotzz)
Co-Authored-By: Claude Opus 4 (1M context) <noreply@anthropic.com>
terraform + cloud-init provisioning for a hetzner cpx31 hosting both
knot.zzstoatzz.io and spindle.zzstoatzz.io. tangled core pinned to
v1.13.0-alpha, built from source via bootstrap.sh, fronted by caddy
with auto letsencrypt. spindle gets docker access for spawning step
containers.
Co-Authored-By: Claude Opus 4 (1M context) <noreply@anthropic.com>