Files
Ganonmaster 3dcd75e490
Release / Build and push Docker image (push) Successful in 14m16s
Release / Build Linux release binary (push) Successful in 15m14s
v0.4.0
Co-authored-by: Copilot <copilot@github.com>
2026-05-02 02:53:09 +02:00

3.9 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

0.4.0 - 2026-05-02

Added

  • POST /manage/import — import emotes from a legacy JSON endpoint, downloading each image and mirroring it to S3 with original timestamps preserved.
  • Duplicate detection: emotes whose name already exists are skipped (compatible with both SQLite and PostgreSQL).
  • Host allowlist for import source URLs, configurable via [import] allowed_hosts in config.toml (default: ["smutba.se"]).
  • Dry-run mode ("dry_run": true in request body): previews the import without writing to S3 or the database. Result statuses are "would_import" and "would_skip" instead of "imported" and "skipped".

0.3.0 - 2026-04-28

Added

  • Management UI at GET /manage for adding, editing, and deleting emotes.
  • GET /manage/emotes — admin JSON endpoint returning full emote data (uuid, name, alias, url, timestamps) for use by the management UI.
  • AdminEmoteResponse model exposing uuid and alias fields not present in the public EmoteResponse.
  • Client-side search on the management page filtering emotes by name or alias.
  • HTTP Basic Auth middleware protecting /manage and all emote write endpoints (POST /emotes, PUT /emotes/{uuid}, DELETE /emotes/{uuid}). Credentials are configured via [auth] in config.toml or the APP__AUTH__USERNAME / APP__AUTH__PASSWORD environment variables. Omitting the section causes all protected routes to return 401.

0.2.4 - 2026-04-11

Fixed

  • Gitea release workflow: remove target_commitish from release creation API call to fix 409 conflict when creating releases for existing tags.

0.2.3 - 2026-04-11

Fixed

  • Gitea release workflow: retry release creation with backoff to handle timing between tag push and tag availability in the API.

0.2.2 - 2026-04-09

Fixed

  • Updated Gitea container registry token in CI.

0.2.1 - 2026-04-09

Removed

  • Deleted old GitHub Actions workflows (superseded by Gitea workflows).

0.2.0 - 2026-04-09

Added

  • Emotes listing HTML page at GET / with styled table (accent colors, drop shadow, glow effects).
  • GET / health check endpoint (returns 200 OK).
  • Dockerfile and Docker build/push workflow targeting the Gitea container registry.

Fixed

  • Error handling added to the client-side emotes fetch call on the HTML page.

0.1.0 - 2026-03-18

Added

  • Rust/Axum HTTP server with SQLite and PostgreSQL support via sqlx::AnyPool.
  • EmoteRow DB model and EmoteResponse JSON API response type.
  • POST /emotes — create emote (multipart: name, alias?, file).
  • PUT /emotes/{uuid} — update emote metadata.
  • DELETE /emotes/{uuid} — delete emote from DB and S3.
  • GET /json — list all emotes as JSON.
  • GET /version — git commit hash and tag baked in at build time via build.rs.
  • S3/Wasabi storage backend with configurable endpoint and public URL.
  • Database migrations run automatically on startup.
  • GitHub Actions release workflow building a Linux binary on v* tag push.