Skip to content

v0.4.1

Choose a tag to compare

@grumpy-miner grumpy-miner released this 28 Oct 16:16
· 235 commits to main since this release
82bc545

Patch release, one day after v0.4.0: the job overview finished and hardened, and one house rule applied to every line of copy. Ten merged branches, no migration (head stays 0034), no breaking change for self-hosters.

What changed

  • Overview numbers agree with each other. The Applications tile, the apply-rate denominator and the per-job 7-day count now use the same UTC calendar days as the views and the daily chart (today and the 29 days before it). The tiles say so in their tooltips.
  • Empty states that tell the truth. A live job with no views yet says "No views yet. Share it:" with the share links right there. A closed job says views were not counted and offers nothing to share. A job whose applications predate the counter says views are counted from the 0.4.0 update on.
  • Accessibility. The daily chart's accessible name carries the period's totals instead of thirty mouse-only tooltips. The custom share-link input has a real label, a polite live status line and aria-invalid. When the company summary cannot load, the share cards say so instead of showing a skeleton forever. An axe check guards the overview page.
  • Share links. Built with the URL API (fragments stay last, an existing src is replaced). A custom name that is already a built-in source says so and keeps its link; direct is refused, since it is the name of untracked traffic.
  • Counters under load. The per-day source budget is serialised per job and day, so a burst of new tracked-link names can no longer overshoot the 50-source cap.
  • Bot detection. "bot" counts only where crawlers put it, so phones such as CUBOT count as people again. The user-agent table grew on both sides.
  • Optional GANEK_SSR_SECRET. Set the same long random string on the backend and the frontend and only the page render can count a view; anyone calling the API with the view headers but without the secret is served as usual and not counted. Unset, nothing changes.
  • No em or en dashes anywhere. Every line of copy, from page titles and email subjects to the question bank, uses a plain "-". A repo-wide guard keeps it that way.

Upgrade from v0.4.0

  • No migration, no new required setting. docker compose pull && docker compose up -d is the whole upgrade.
  • GANEK_SSR_SECRET is optional; see .env.example and the configuration page. The compose file passes it to the frontend service.
  • The question bank text changed (dashes only). Instances that seeded the bank keep their stored copies; nothing to do.

Run it

git clone https://github.com/Ganek-dev/ganek && cd ganek
docker compose up

Container images: ghcr.io/ganek-dev/ganek-backend:0.4.1 and ghcr.io/ganek-dev/ganek-frontend:0.4.1 (linux/amd64 and linux/arm64).

Docs: the quickstart and the self-hosting guide on ganek.dev; the compliance pack is in docs/compliance/. Try it first at demo.ganek.dev. Hosted version: join the waitlist at ganek.io.

License: AGPL-3.0.