commits
Move the three HTMX form endpoints (invite, logo, thoth-token) behind
an /api/htmx/ prefix so they are visibly distinct from OAuth and page
routes. Updates handlers, dashboard template, godoc, and the endpoints
table in docs/README.md.
Assisted-by: Claude Opus 4.7 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>
Replace the multi-card dashboard with a sidebar-tab layout so every
benefit lives on its own panel instead of competing for space in a
2-column grid. Tabs group by purpose (Account / Benefits / Developer)
and the active tab is remembered via URL hash and localStorage, with
arrow-key navigation across the tablist.
Each panel now carries a consistent header (icon tile + serif title +
subtitle), the sponsorship tab surfaces monthly amount and tier as
stat cards, logo submission uses a proper drag-and-drop zone, and a
bottom-center toast confirms HTMX form successes. All existing form
posts (/invite, /logo, /thoth-token) are preserved; no backend or
route changes.
Non-sponsors see only the Sponsorship tab with the upgrade CTA.
$50+ sponsors get the Team Invitations tab added to the Benefits
group.
Based on a Claude Design handoff bundle.
Assisted-by: Claude Opus 4.7 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>
Bumps [github.com/go-git/go-git/v5](https://github.com/go-git/go-git) from 5.17.2 to 5.18.0.
- [Release notes](https://github.com/go-git/go-git/releases)
- [Commits](https://github.com/go-git/go-git/compare/v5.17.2...v5.18.0)
---
updated-dependencies:
- dependency-name: github.com/go-git/go-git/v5
dependency-version: 5.18.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.32.14 to 1.32.15.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.32.14...config/v1.32.15)
---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
dependency-version: 1.32.15
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [tailscale.com](https://github.com/tailscale/tailscale) from 1.96.4 to 1.96.5.
- [Release notes](https://github.com/tailscale/tailscale/releases)
- [Commits](https://github.com/tailscale/tailscale/compare/v1.96.4...v1.96.5)
---
updated-dependencies:
- dependency-name: tailscale.com
dependency-version: 1.96.5
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
updated-dependencies:
- dependency-name: buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go
dependency-version: 1.36.11-20260415201107-50325440f8f2.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [k8s.io/client-go](https://github.com/kubernetes/client-go) from 0.35.3 to 0.35.4.
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.35.3...v0.35.4)
---
updated-dependencies:
- dependency-name: k8s.io/client-go
dependency-version: 0.35.4
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github.com/donatj/hmacsig](https://github.com/donatj/hmacsig) from 1.1.0 to 1.2.0.
- [Release notes](https://github.com/donatj/hmacsig/releases)
- [Commits](https://github.com/donatj/hmacsig/compare/v1.1.0...v1.2.0)
---
updated-dependencies:
- dependency-name: github.com/donatj/hmacsig
dependency-version: 1.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github.com/aws/aws-sdk-go-v2/service/s3](https://github.com/aws/aws-sdk-go-v2) from 1.98.0 to 1.99.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.98.0...service/s3/v1.99.0)
---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/s3
dependency-version: 1.99.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.32.13 to 1.32.14.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.32.13...config/v1.32.14)
---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
dependency-version: 1.32.14
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Link Thoth to its documentation and mention IP ASN and country code
check capabilities.
Assisted-by: Claude Opus 4.6 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>
Configures semantic-release to run on every push to main, creating
GitHub Releases and version tags from conventional commits. Docker
workflow already triggers on v*.*.* tags so builds follow automatically.
Signed-off-by: Xe Iaso <me@xeiaso.net>
* fix(sponsor-panel): generate fake email for users without one and fix HTMX error display
Users with private GitHub emails were rejected when requesting a Thoth
token. Now generates login@fake-address.invalid instead. Also changed
renderError to return HTTP 200 so HTMX actually swaps error messages
into the target elements (HTMX drops non-2xx responses by default).
Assisted-by: Claude Opus 4.6 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>
* docs(sponsor-panel): add plan for fake email shim
Assisted-by: Claude Opus 4.6 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>
---------
Signed-off-by: Xe Iaso <me@xeiaso.net>
Signed-off-by: Xe Iaso <me@xeiaso.net>
* feat(sponsor-panel): add thoth client
Signed-off-by: Xe Iaso <me@xeiaso.net>
* feat(sponsor-panel): add Thoth token issuance card
Add a self-service dashboard card that lets $1+/month sponsors generate
Thoth API tokens. Uses lazy user creation: on first token generation,
creates a Thoth user via AdminUsers.Create and persists the ID on the
PanelUser model. Subsequent requests skip creation and go straight to
MakeJWT.
Includes empty email guard, HTMX double-click prevention, copy to
clipboard button, and instructional text for Anubis/Botstopper deployment.
---------
Signed-off-by: Xe Iaso <me@xeiaso.net>
Bumps [github.com/aws/aws-sdk-go-v2/service/s3](https://github.com/aws/aws-sdk-go-v2) from 1.97.3 to 1.98.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.97.3...service/s3/v1.98.0)
---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/s3
dependency-version: 1.98.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.79.3 to 1.80.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.79.3...v1.80.0)
---
updated-dependencies:
- dependency-name: google.golang.org/grpc
dependency-version: 1.80.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github.com/go-git/go-git/v5](https://github.com/go-git/go-git) from 5.17.1 to 5.17.2.
- [Release notes](https://github.com/go-git/go-git/releases)
- [Commits](https://github.com/go-git/go-git/compare/v5.17.1...v5.17.2)
---
updated-dependencies:
- dependency-name: github.com/go-git/go-git/v5
dependency-version: 5.17.2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github.com/getkin/kin-openapi](https://github.com/getkin/kin-openapi) from 0.120.0 to 0.131.0.
- [Release notes](https://github.com/getkin/kin-openapi/releases)
- [Commits](https://github.com/getkin/kin-openapi/compare/v0.120.0...v0.131.0)
---
updated-dependencies:
- dependency-name: github.com/getkin/kin-openapi
dependency-version: 0.131.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github.com/go-git/go-git/v5](https://github.com/go-git/go-git) from 5.17.0 to 5.17.1.
- [Release notes](https://github.com/go-git/go-git/releases)
- [Commits](https://github.com/go-git/go-git/compare/v5.17.0...v5.17.1)
---
updated-dependencies:
- dependency-name: github.com/go-git/go-git/v5
dependency-version: 5.17.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
updated-dependencies:
- dependency-name: buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go
dependency-version: 1.36.11-20260209202127-80ab13bee0bf.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Xe Iaso <me@xeiaso.net>
Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.32.12 to 1.32.13.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.32.12...config/v1.32.13)
---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
dependency-version: 1.32.13
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore: move patreon-saasproxy to use buf
Signed-off-by: Xe Iaso <me@xeiaso.net>
* chore(proto): migrate other types over
Signed-off-by: Xe Iaso <me@xeiaso.net>
* chore: delete old pb folder
Signed-off-by: Xe Iaso <me@xeiaso.net>
* ci: add buf CI step
Signed-off-by: Xe Iaso <me@xeiaso.net>
* chore: buf format
Signed-off-by: Xe Iaso <me@xeiaso.net>
* fix(proto): resolve buf lint errors for xeiaso/net protos
Rename services to use Service suffix (Meta→MetaService,
Feed→FeedService, Patreon→PatreonService, Admin→AdminService).
Add dedicated request/response wrapper types for each RPC instead
of reusing google.protobuf.Empty and shared message types.
Silence lint rules for external within/website and protofeed protos
via ignore_only in buf.yaml. Regenerate code and update all Go
callers to match new types.
Assisted-by: Claude Opus 4.6 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>
* ci(buf): disable breaking change detection temporarily
Will re-enable after merging the service rename changes.
Assisted-by: Claude Opus 4.6 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>
---------
Signed-off-by: Xe Iaso <me@xeiaso.net>
Bumps [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) from 1.41.4 to 1.41.5.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.41.4...v1.41.5)
---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2
dependency-version: 1.41.5
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github.com/aws/aws-sdk-go-v2/service/s3](https://github.com/aws/aws-sdk-go-v2) from 1.97.2 to 1.97.3.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.97.2...service/s3/v1.97.3)
---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/s3
dependency-version: 1.97.3
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* refactor(sponsor-panel): rewrite models with GORM tags and helpers
Replace raw pgxpool structs and SQL helper functions with GORM-tagged
models. Rename User to PanelUser to avoid collision with internal/models.
All DB helpers now take *gorm.DB instead of context + *pgxpool.Pool.
Add TableName() methods and PanelModels() for AutoMigrate.
Assisted-by: Claude Opus 4.6 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>
* refactor(sponsor-panel): remove raw SQL migrations
GORM AutoMigrate replaces hand-written CREATE TABLE statements
and ALTER TABLE migrations.
Assisted-by: Claude Opus 4.6 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>
* refactor(sponsor-panel): swap pgxpool for gorm.DB in server
Replace pgxpool.Pool with gorm.DB on Server struct. Use slog-gorm
for structured logging and gorm-prometheus for database metrics.
Assisted-by: Claude Opus 4.6 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>
* refactor(sponsor-panel): update oauth handlers to use GORM
Replace s.pool with s.db, update function signatures, rename User
to PanelUser, and cast user.ID to int for session compatibility.
Assisted-by: Claude Opus 4.6 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>
* refactor(sponsor-panel): update patreon oauth to use GORM
Replace s.pool with s.db, rename User to PanelUser, cast user.ID
to int for session storage.
Assisted-by: Claude Opus 4.6 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>
* refactor(sponsor-panel): update handlers to use GORM
Replace s.pool with s.db for createLogoSubmission call.
Assisted-by: Claude Opus 4.6 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>
* refactor(sponsor-panel): update sync sponsors to use GORM
Replace pgxpool.Pool with gorm.DB in syncSponsors and startSyncLoop.
Assisted-by: Claude Opus 4.6 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>
* feat(sponsor-panel): add index drop tool for GORM migration
One-shot tool to drop old hand-created indexes and constraints
so GORM AutoMigrate can recreate them with its own naming scheme.
Assisted-by: Claude Opus 4.6 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>
* build(deps): add slog-gorm and gorm-prometheus dependencies
Assisted-by: Claude Opus 4.6 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>
* chore: update templ generated code to v0.3.1001
Signed-off-by: Xe Iaso <me@xeiaso.net>
* docs(sponsor-panel): add GORM migration implementation plan
Assisted-by: Claude Opus 4.6 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>
---------
Signed-off-by: Xe Iaso <me@xeiaso.net>
* chore: delete unused github-sponsor-webhook service
Removes the github-sponsor-webhook service as it is no longer used.
Changes:
- Delete cmd/github-sponsor-webhook/ directory
- Delete manifest/github-sponsor-webhook/ directory
- Delete docker/github-sponsor-webhook.Dockerfile
- Remove github-sponsor-webhook from docker-bake.hcl
- Remove github-sponsor-webhook tags from .github/workflows/earthly.yml
- Remove /github-sponsor-webhook from .gitignore
- Update AGENTS.md to remove github-sponsor-webhook from commands list
- Remove webhook integration section from internal/models/README.md
* chore: delete unused internal/models package
The models package was only used by the deleted github-sponsor-webhook
service and is no longer needed.
Deleted:
- internal/models/account.go
- internal/models/models.go
- internal/models/sponsorship.go
- internal/models/tier.go
- internal/models/webhook_event.go
- internal/models/README.md
* docs: prune references to deleted internal/models package
Update sponsor-panel specification documents to remove references to
the deleted internal/models package.
Changes:
- cmd/sponsor-panel/docs/README.md - update Phase 1 checklist
- cmd/sponsor-panel/docs/SPEC.md - update Phase 1 checklist
Bumps [tailscale.com](https://github.com/tailscale/tailscale) from 1.96.3 to 1.96.4.
- [Release notes](https://github.com/tailscale/tailscale/releases)
- [Commits](https://github.com/tailscale/tailscale/compare/v1.96.3...v1.96.4)
---
updated-dependencies:
- dependency-name: tailscale.com
dependency-version: 1.96.4
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [picomatch](https://github.com/micromatch/picomatch) from 4.0.3 to 4.0.4.
- [Release notes](https://github.com/micromatch/picomatch/releases)
- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/picomatch/compare/4.0.3...4.0.4)
---
updated-dependencies:
- dependency-name: picomatch
dependency-version: 4.0.4
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Replace the embedded GitHub Sponsors iframe on the homepage with a
custom card component linking to Patreon, GitHub Sponsors, and the
Sponsor Panel. Card styling uses the Gruvbox palette with a gradient
accent line inspired by the sponsor-panel app.
Assisted-by: Claude Opus 4.6 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>
Signed-off-by: Xe Iaso <me@xeiaso.net>
* feat(sponsor-panel): add Patreon OAuth login support
Add Patreon as a second authentication provider so patrons get the same
features as GitHub Sponsors (Discord invite, team invitations, logo
submissions). Uses Patreon API v2 for identity and membership
verification via direct HTTP calls, with patreon-go for OAuth constants.
- Add optional Patreon OAuth flags (service works GitHub-only if omitted)
- Add database migration for patreon_id, provider columns
- Create patreon_oauth.go with login/callback handlers
- Update login page with conditional Patreon button
- Update dashboard to show provider-appropriate sponsor links
- Patreon users are separate identities, same tier-gated features
* feat(sponsor-panel): add --patreon-fifty-plus flag for blessed patrons
Adds a flag to bless Patreon usernames with the $50/month tier,
mirroring the existing --fifty-plus-sponsors flag for GitHub users.
Also adds debug logging for Patreon identity and membership data.
Bumps [github.com/aws/aws-sdk-go-v2/service/s3](https://github.com/aws/aws-sdk-go-v2) from 1.97.1 to 1.97.2.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.97.1...service/s3/v1.97.2)
---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/s3
dependency-version: 1.97.2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github.com/jackc/pgx/v5](https://github.com/jackc/pgx) from 5.8.0 to 5.9.1.
- [Changelog](https://github.com/jackc/pgx/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jackc/pgx/compare/v5.8.0...v5.9.1)
---
updated-dependencies:
- dependency-name: github.com/jackc/pgx/v5
dependency-version: 5.9.1
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [tailscale.com](https://github.com/tailscale/tailscale) from 1.96.2 to 1.96.3.
- [Release notes](https://github.com/tailscale/tailscale/releases)
- [Commits](https://github.com/tailscale/tailscale/compare/v1.96.2...v1.96.3)
---
updated-dependencies:
- dependency-name: tailscale.com
dependency-version: 1.96.3
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [k8s.io/client-go](https://github.com/kubernetes/client-go) from 0.35.2 to 0.35.3.
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.35.2...v0.35.3)
---
updated-dependencies:
- dependency-name: k8s.io/client-go
dependency-version: 0.35.3
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Uploaded sponsor logos need to be publicly accessible via
t3.storage.dev, which requires the object ACL to be set to public-read.
Bumps [github.com/aws/aws-sdk-go-v2/service/s3](https://github.com/aws/aws-sdk-go-v2) from 1.97.0 to 1.97.1.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.97.0...service/s3/v1.97.1)
---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/s3
dependency-version: 1.97.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [tailscale.com](https://github.com/tailscale/tailscale) from 1.96.1 to 1.96.2.
- [Release notes](https://github.com/tailscale/tailscale/releases)
- [Commits](https://github.com/tailscale/tailscale/compare/v1.96.1...v1.96.2)
---
updated-dependencies:
- dependency-name: tailscale.com
dependency-version: 1.96.2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Xe Iaso <me@xeiaso.net>
Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.32.11 to 1.32.12.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.32.11...config/v1.32.12)
---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
dependency-version: 1.32.12
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github.com/aws/aws-sdk-go-v2/service/s3](https://github.com/aws/aws-sdk-go-v2) from 1.96.4 to 1.97.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.96.4...service/s3/v1.97.0)
---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/s3
dependency-version: 1.97.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* blog: add post on AI abstraction and creative craft
https://claude.ai/code/session_018hLasuECGDHRVqACJvNX6y
* blog: remove duplicate title from ai-abstraction post
https://claude.ai/code/session_018hLasuECGDHRVqACJvNX6y
* blog: rewrite ai-abstraction post with stronger voice and clearer thesis
Stop hedging, land the point: AI abstraction costs us something essential.
Added character dialogue, fixed successive paragraph rule, sharpened ending.
https://claude.ai/code/session_018hLasuECGDHRVqACJvNX6y
* blog: tighten ai-abstraction post for clarity and remove slop
Apply Elements of Style rules: cut needless words, use active voice,
remove throat-clearing openers and binary contrasts. Fix successive
paragraph rule violation.
https://claude.ai/code/session_018hLasuECGDHRVqACJvNX6y
* blog: punch up opening, make the reader feel the emptiness
Replace textbook opener with personal scene. Update Cadey dialogue
to match revised body text.
https://claude.ai/code/session_018hLasuECGDHRVqACJvNX6y
* blog: remove personal scene from opening
Replace with direct description of the abstraction flow.
https://claude.ai/code/session_018hLasuECGDHRVqACJvNX6y
* blog: rewrite opening with visceral dissociation hook
https://claude.ai/code/session_018hLasuECGDHRVqACJvNX6y
---------
Co-authored-by: Claude <noreply@anthropic.com>
Bumps [tailscale.com](https://github.com/tailscale/tailscale) from 1.96.0 to 1.96.1.
- [Release notes](https://github.com/tailscale/tailscale/releases)
- [Commits](https://github.com/tailscale/tailscale/compare/v1.96.0...v1.96.1)
---
updated-dependencies:
- dependency-name: tailscale.com
dependency-version: 1.96.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Move the three HTMX form endpoints (invite, logo, thoth-token) behind
an /api/htmx/ prefix so they are visibly distinct from OAuth and page
routes. Updates handlers, dashboard template, godoc, and the endpoints
table in docs/README.md.
Assisted-by: Claude Opus 4.7 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>
Replace the multi-card dashboard with a sidebar-tab layout so every
benefit lives on its own panel instead of competing for space in a
2-column grid. Tabs group by purpose (Account / Benefits / Developer)
and the active tab is remembered via URL hash and localStorage, with
arrow-key navigation across the tablist.
Each panel now carries a consistent header (icon tile + serif title +
subtitle), the sponsorship tab surfaces monthly amount and tier as
stat cards, logo submission uses a proper drag-and-drop zone, and a
bottom-center toast confirms HTMX form successes. All existing form
posts (/invite, /logo, /thoth-token) are preserved; no backend or
route changes.
Non-sponsors see only the Sponsorship tab with the upgrade CTA.
$50+ sponsors get the Team Invitations tab added to the Benefits
group.
Based on a Claude Design handoff bundle.
Assisted-by: Claude Opus 4.7 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>
Bumps [github.com/go-git/go-git/v5](https://github.com/go-git/go-git) from 5.17.2 to 5.18.0.
- [Release notes](https://github.com/go-git/go-git/releases)
- [Commits](https://github.com/go-git/go-git/compare/v5.17.2...v5.18.0)
---
updated-dependencies:
- dependency-name: github.com/go-git/go-git/v5
dependency-version: 5.18.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.32.14 to 1.32.15.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.32.14...config/v1.32.15)
---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
dependency-version: 1.32.15
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [tailscale.com](https://github.com/tailscale/tailscale) from 1.96.4 to 1.96.5.
- [Release notes](https://github.com/tailscale/tailscale/releases)
- [Commits](https://github.com/tailscale/tailscale/compare/v1.96.4...v1.96.5)
---
updated-dependencies:
- dependency-name: tailscale.com
dependency-version: 1.96.5
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
updated-dependencies:
- dependency-name: buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go
dependency-version: 1.36.11-20260415201107-50325440f8f2.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [k8s.io/client-go](https://github.com/kubernetes/client-go) from 0.35.3 to 0.35.4.
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.35.3...v0.35.4)
---
updated-dependencies:
- dependency-name: k8s.io/client-go
dependency-version: 0.35.4
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github.com/donatj/hmacsig](https://github.com/donatj/hmacsig) from 1.1.0 to 1.2.0.
- [Release notes](https://github.com/donatj/hmacsig/releases)
- [Commits](https://github.com/donatj/hmacsig/compare/v1.1.0...v1.2.0)
---
updated-dependencies:
- dependency-name: github.com/donatj/hmacsig
dependency-version: 1.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github.com/aws/aws-sdk-go-v2/service/s3](https://github.com/aws/aws-sdk-go-v2) from 1.98.0 to 1.99.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.98.0...service/s3/v1.99.0)
---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/s3
dependency-version: 1.99.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.32.13 to 1.32.14.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.32.13...config/v1.32.14)
---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
dependency-version: 1.32.14
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Xe Iaso <me@xeiaso.net>
* fix(sponsor-panel): generate fake email for users without one and fix HTMX error display
Users with private GitHub emails were rejected when requesting a Thoth
token. Now generates login@fake-address.invalid instead. Also changed
renderError to return HTTP 200 so HTMX actually swaps error messages
into the target elements (HTMX drops non-2xx responses by default).
Assisted-by: Claude Opus 4.6 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>
* docs(sponsor-panel): add plan for fake email shim
Assisted-by: Claude Opus 4.6 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>
---------
Signed-off-by: Xe Iaso <me@xeiaso.net>
* feat(sponsor-panel): add thoth client
Signed-off-by: Xe Iaso <me@xeiaso.net>
* feat(sponsor-panel): add Thoth token issuance card
Add a self-service dashboard card that lets $1+/month sponsors generate
Thoth API tokens. Uses lazy user creation: on first token generation,
creates a Thoth user via AdminUsers.Create and persists the ID on the
PanelUser model. Subsequent requests skip creation and go straight to
MakeJWT.
Includes empty email guard, HTMX double-click prevention, copy to
clipboard button, and instructional text for Anubis/Botstopper deployment.
---------
Signed-off-by: Xe Iaso <me@xeiaso.net>
Bumps [github.com/aws/aws-sdk-go-v2/service/s3](https://github.com/aws/aws-sdk-go-v2) from 1.97.3 to 1.98.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.97.3...service/s3/v1.98.0)
---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/s3
dependency-version: 1.98.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.79.3 to 1.80.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.79.3...v1.80.0)
---
updated-dependencies:
- dependency-name: google.golang.org/grpc
dependency-version: 1.80.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github.com/go-git/go-git/v5](https://github.com/go-git/go-git) from 5.17.1 to 5.17.2.
- [Release notes](https://github.com/go-git/go-git/releases)
- [Commits](https://github.com/go-git/go-git/compare/v5.17.1...v5.17.2)
---
updated-dependencies:
- dependency-name: github.com/go-git/go-git/v5
dependency-version: 5.17.2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github.com/getkin/kin-openapi](https://github.com/getkin/kin-openapi) from 0.120.0 to 0.131.0.
- [Release notes](https://github.com/getkin/kin-openapi/releases)
- [Commits](https://github.com/getkin/kin-openapi/compare/v0.120.0...v0.131.0)
---
updated-dependencies:
- dependency-name: github.com/getkin/kin-openapi
dependency-version: 0.131.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github.com/go-git/go-git/v5](https://github.com/go-git/go-git) from 5.17.0 to 5.17.1.
- [Release notes](https://github.com/go-git/go-git/releases)
- [Commits](https://github.com/go-git/go-git/compare/v5.17.0...v5.17.1)
---
updated-dependencies:
- dependency-name: github.com/go-git/go-git/v5
dependency-version: 5.17.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
updated-dependencies:
- dependency-name: buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go
dependency-version: 1.36.11-20260209202127-80ab13bee0bf.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.32.12 to 1.32.13.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.32.12...config/v1.32.13)
---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
dependency-version: 1.32.13
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore: move patreon-saasproxy to use buf
Signed-off-by: Xe Iaso <me@xeiaso.net>
* chore(proto): migrate other types over
Signed-off-by: Xe Iaso <me@xeiaso.net>
* chore: delete old pb folder
Signed-off-by: Xe Iaso <me@xeiaso.net>
* ci: add buf CI step
Signed-off-by: Xe Iaso <me@xeiaso.net>
* chore: buf format
Signed-off-by: Xe Iaso <me@xeiaso.net>
* fix(proto): resolve buf lint errors for xeiaso/net protos
Rename services to use Service suffix (Meta→MetaService,
Feed→FeedService, Patreon→PatreonService, Admin→AdminService).
Add dedicated request/response wrapper types for each RPC instead
of reusing google.protobuf.Empty and shared message types.
Silence lint rules for external within/website and protofeed protos
via ignore_only in buf.yaml. Regenerate code and update all Go
callers to match new types.
Assisted-by: Claude Opus 4.6 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>
* ci(buf): disable breaking change detection temporarily
Will re-enable after merging the service rename changes.
Assisted-by: Claude Opus 4.6 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>
---------
Signed-off-by: Xe Iaso <me@xeiaso.net>
Bumps [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) from 1.41.4 to 1.41.5.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.41.4...v1.41.5)
---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2
dependency-version: 1.41.5
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github.com/aws/aws-sdk-go-v2/service/s3](https://github.com/aws/aws-sdk-go-v2) from 1.97.2 to 1.97.3.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.97.2...service/s3/v1.97.3)
---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/s3
dependency-version: 1.97.3
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* refactor(sponsor-panel): rewrite models with GORM tags and helpers
Replace raw pgxpool structs and SQL helper functions with GORM-tagged
models. Rename User to PanelUser to avoid collision with internal/models.
All DB helpers now take *gorm.DB instead of context + *pgxpool.Pool.
Add TableName() methods and PanelModels() for AutoMigrate.
Assisted-by: Claude Opus 4.6 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>
* refactor(sponsor-panel): remove raw SQL migrations
GORM AutoMigrate replaces hand-written CREATE TABLE statements
and ALTER TABLE migrations.
Assisted-by: Claude Opus 4.6 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>
* refactor(sponsor-panel): swap pgxpool for gorm.DB in server
Replace pgxpool.Pool with gorm.DB on Server struct. Use slog-gorm
for structured logging and gorm-prometheus for database metrics.
Assisted-by: Claude Opus 4.6 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>
* refactor(sponsor-panel): update oauth handlers to use GORM
Replace s.pool with s.db, update function signatures, rename User
to PanelUser, and cast user.ID to int for session compatibility.
Assisted-by: Claude Opus 4.6 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>
* refactor(sponsor-panel): update patreon oauth to use GORM
Replace s.pool with s.db, rename User to PanelUser, cast user.ID
to int for session storage.
Assisted-by: Claude Opus 4.6 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>
* refactor(sponsor-panel): update handlers to use GORM
Replace s.pool with s.db for createLogoSubmission call.
Assisted-by: Claude Opus 4.6 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>
* refactor(sponsor-panel): update sync sponsors to use GORM
Replace pgxpool.Pool with gorm.DB in syncSponsors and startSyncLoop.
Assisted-by: Claude Opus 4.6 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>
* feat(sponsor-panel): add index drop tool for GORM migration
One-shot tool to drop old hand-created indexes and constraints
so GORM AutoMigrate can recreate them with its own naming scheme.
Assisted-by: Claude Opus 4.6 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>
* build(deps): add slog-gorm and gorm-prometheus dependencies
Assisted-by: Claude Opus 4.6 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>
* chore: update templ generated code to v0.3.1001
Signed-off-by: Xe Iaso <me@xeiaso.net>
* docs(sponsor-panel): add GORM migration implementation plan
Assisted-by: Claude Opus 4.6 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>
---------
Signed-off-by: Xe Iaso <me@xeiaso.net>
* chore: delete unused github-sponsor-webhook service
Removes the github-sponsor-webhook service as it is no longer used.
Changes:
- Delete cmd/github-sponsor-webhook/ directory
- Delete manifest/github-sponsor-webhook/ directory
- Delete docker/github-sponsor-webhook.Dockerfile
- Remove github-sponsor-webhook from docker-bake.hcl
- Remove github-sponsor-webhook tags from .github/workflows/earthly.yml
- Remove /github-sponsor-webhook from .gitignore
- Update AGENTS.md to remove github-sponsor-webhook from commands list
- Remove webhook integration section from internal/models/README.md
* chore: delete unused internal/models package
The models package was only used by the deleted github-sponsor-webhook
service and is no longer needed.
Deleted:
- internal/models/account.go
- internal/models/models.go
- internal/models/sponsorship.go
- internal/models/tier.go
- internal/models/webhook_event.go
- internal/models/README.md
* docs: prune references to deleted internal/models package
Update sponsor-panel specification documents to remove references to
the deleted internal/models package.
Changes:
- cmd/sponsor-panel/docs/README.md - update Phase 1 checklist
- cmd/sponsor-panel/docs/SPEC.md - update Phase 1 checklist
Bumps [tailscale.com](https://github.com/tailscale/tailscale) from 1.96.3 to 1.96.4.
- [Release notes](https://github.com/tailscale/tailscale/releases)
- [Commits](https://github.com/tailscale/tailscale/compare/v1.96.3...v1.96.4)
---
updated-dependencies:
- dependency-name: tailscale.com
dependency-version: 1.96.4
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [picomatch](https://github.com/micromatch/picomatch) from 4.0.3 to 4.0.4.
- [Release notes](https://github.com/micromatch/picomatch/releases)
- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/picomatch/compare/4.0.3...4.0.4)
---
updated-dependencies:
- dependency-name: picomatch
dependency-version: 4.0.4
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Replace the embedded GitHub Sponsors iframe on the homepage with a
custom card component linking to Patreon, GitHub Sponsors, and the
Sponsor Panel. Card styling uses the Gruvbox palette with a gradient
accent line inspired by the sponsor-panel app.
Assisted-by: Claude Opus 4.6 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>
* feat(sponsor-panel): add Patreon OAuth login support
Add Patreon as a second authentication provider so patrons get the same
features as GitHub Sponsors (Discord invite, team invitations, logo
submissions). Uses Patreon API v2 for identity and membership
verification via direct HTTP calls, with patreon-go for OAuth constants.
- Add optional Patreon OAuth flags (service works GitHub-only if omitted)
- Add database migration for patreon_id, provider columns
- Create patreon_oauth.go with login/callback handlers
- Update login page with conditional Patreon button
- Update dashboard to show provider-appropriate sponsor links
- Patreon users are separate identities, same tier-gated features
* feat(sponsor-panel): add --patreon-fifty-plus flag for blessed patrons
Adds a flag to bless Patreon usernames with the $50/month tier,
mirroring the existing --fifty-plus-sponsors flag for GitHub users.
Also adds debug logging for Patreon identity and membership data.
Bumps [github.com/aws/aws-sdk-go-v2/service/s3](https://github.com/aws/aws-sdk-go-v2) from 1.97.1 to 1.97.2.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.97.1...service/s3/v1.97.2)
---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/s3
dependency-version: 1.97.2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github.com/jackc/pgx/v5](https://github.com/jackc/pgx) from 5.8.0 to 5.9.1.
- [Changelog](https://github.com/jackc/pgx/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jackc/pgx/compare/v5.8.0...v5.9.1)
---
updated-dependencies:
- dependency-name: github.com/jackc/pgx/v5
dependency-version: 5.9.1
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [tailscale.com](https://github.com/tailscale/tailscale) from 1.96.2 to 1.96.3.
- [Release notes](https://github.com/tailscale/tailscale/releases)
- [Commits](https://github.com/tailscale/tailscale/compare/v1.96.2...v1.96.3)
---
updated-dependencies:
- dependency-name: tailscale.com
dependency-version: 1.96.3
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [k8s.io/client-go](https://github.com/kubernetes/client-go) from 0.35.2 to 0.35.3.
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.35.2...v0.35.3)
---
updated-dependencies:
- dependency-name: k8s.io/client-go
dependency-version: 0.35.3
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github.com/aws/aws-sdk-go-v2/service/s3](https://github.com/aws/aws-sdk-go-v2) from 1.97.0 to 1.97.1.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.97.0...service/s3/v1.97.1)
---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/s3
dependency-version: 1.97.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [tailscale.com](https://github.com/tailscale/tailscale) from 1.96.1 to 1.96.2.
- [Release notes](https://github.com/tailscale/tailscale/releases)
- [Commits](https://github.com/tailscale/tailscale/compare/v1.96.1...v1.96.2)
---
updated-dependencies:
- dependency-name: tailscale.com
dependency-version: 1.96.2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.32.11 to 1.32.12.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.32.11...config/v1.32.12)
---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
dependency-version: 1.32.12
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github.com/aws/aws-sdk-go-v2/service/s3](https://github.com/aws/aws-sdk-go-v2) from 1.96.4 to 1.97.0.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.96.4...service/s3/v1.97.0)
---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/s3
dependency-version: 1.97.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* blog: add post on AI abstraction and creative craft
https://claude.ai/code/session_018hLasuECGDHRVqACJvNX6y
* blog: remove duplicate title from ai-abstraction post
https://claude.ai/code/session_018hLasuECGDHRVqACJvNX6y
* blog: rewrite ai-abstraction post with stronger voice and clearer thesis
Stop hedging, land the point: AI abstraction costs us something essential.
Added character dialogue, fixed successive paragraph rule, sharpened ending.
https://claude.ai/code/session_018hLasuECGDHRVqACJvNX6y
* blog: tighten ai-abstraction post for clarity and remove slop
Apply Elements of Style rules: cut needless words, use active voice,
remove throat-clearing openers and binary contrasts. Fix successive
paragraph rule violation.
https://claude.ai/code/session_018hLasuECGDHRVqACJvNX6y
* blog: punch up opening, make the reader feel the emptiness
Replace textbook opener with personal scene. Update Cadey dialogue
to match revised body text.
https://claude.ai/code/session_018hLasuECGDHRVqACJvNX6y
* blog: remove personal scene from opening
Replace with direct description of the abstraction flow.
https://claude.ai/code/session_018hLasuECGDHRVqACJvNX6y
* blog: rewrite opening with visceral dissociation hook
https://claude.ai/code/session_018hLasuECGDHRVqACJvNX6y
---------
Co-authored-by: Claude <noreply@anthropic.com>
Bumps [tailscale.com](https://github.com/tailscale/tailscale) from 1.96.0 to 1.96.1.
- [Release notes](https://github.com/tailscale/tailscale/releases)
- [Commits](https://github.com/tailscale/tailscale/compare/v1.96.0...v1.96.1)
---
updated-dependencies:
- dependency-name: tailscale.com
dependency-version: 1.96.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>