Forgejo's web action routes don't support API token auth for private
repos. Read the zstd-compressed log files directly from indri via SSH.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Authenticated runner-logs script that lists workflow runs and fetches
job logs. Uses Forgejo API token from 1Password and auto-detects the
repo from git remote.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Pin dagger CLI to 0.20.0 in mise.toml (was "latest"), bump engine
version in dagger.json. New .dagger/.gitattributes and .gitignore
generated by v0.20.0.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace hardcoded TODO markers with Forgejo template variables (${REPO_NAME},
${REPO_OWNER}, etc.) so new repos created from this template are auto-customized.
Use Forgejo Actions context variables in build.yaml for dynamic FORGE_URL.
Hardcode forge.eblu.me as the Forgejo instance. Update CLAUDE.md and README.md
to reflect reduced manual setup steps.
Python class names kept as manual TODO (same as directory rename) since template
variables in Python code positions aren't valid syntax for linters.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds a README.md describing the template and how to fork it. Adds TODO
comments to Dagger config, Quartz config, and CI workflow where they
were missing. Adds a "First-Time Setup" section to CLAUDE.md that
instructs Claude to proactively suggest resolving TODOs.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>