releases/v0.3.3.md
Rama master · réplica de lectura del repositorio original.
# v0.3.3
**Released:** 2026-06-11
Changes since v0.3.2 (`f38b687`..`456344b`).
## Features
- **Version label in the UI** (PR #95 by @CaTeIM, closes #94): The running FrankMD version is now visible in two places — a muted `v0.3.3` under the tagline in the **About** dialog, and a centered `FrankMD v0.3.3` footer at the bottom of the **Explorer** sidebar. Useful for bug reports, deciding when to `fed-update`, and general trust signal. Source of truth is `lib/frankmd/version.rb` (`FrankMD::VERSION`), exposed to views via `ApplicationHelper#app_version`.
## Infrastructure
- **Version-tag drift guard** (PR #95): A new `.github/workflows/version-guard.yml` runs on every `v*` tag push and asserts that `FrankMD::VERSION` matches the pushed tag. If you forget to bump the constant before tagging, the workflow fails with a clear error message instead of silently shipping a mislabeled image. Lives in its own workflow file so it does not couple to `ci.yml` / `docker-publish.yml`.
## Release Flow
Cutting a release now involves two file edits in the same commit:
1. Bump `lib/frankmd/version.rb` to the target version.
2. Add `releases/vX.Y.Z.md` with the changelog.
Then tag (`git tag -a vX.Y.Z -m vX.Y.Z`) and push the tag — the publish workflow builds and pushes the multi-arch image; the version guard verifies the constant matches the tag.
## Test Coverage
- 450 Ruby tests (+1), 1,393 JavaScript tests (1,843 total).