Releases: malinfossum/hugin
Release list
v3.3.0 — focus filters
Everything since v3.0.0 — the v3.1 polish wave, the v3.2 feedback wave, the Hugin brand pack, and v3.3:
Focus (new in v3.3). On first launch Hugin asks what you want to follow — a fylke and ad categories. The choice persists in your browser, filters the dashboard and the company list everywhere at once, and is editable any time (Companies filters write back; Settings has a Fokus section with reset). Ads you track always bypass the filter, so a tracked deadline can never disappear.
Companies. Fylke → kommune cascading filter (2024 fylke set, derived from kommune numbers). Count line counts what you actually see.
Polish. Correct singular forms (1 dag / 1 day); dashboard cards surface load failures with retry instead of vanishing; Settings announces its changes to screen readers; star-toggle and export race conditions closed; API returns 400/404 instead of 500 on malformed reorder and update/delete races.
Brand + a11y. Hugin brand pack v1.0.0 (raven marks, full favicon/PWA set, banner/social); brand typography pinned to bundled font faces (no more blurry buttons); design system at 3.2.0 — form controls get a dedicated boundary token meeting WCAG 1.4.11.
Downloads. hugin-v3.3.0-win-x64.zip = CLI + dashboard exes (needs the .NET 10 runtime). hugin-v3.3.0-win-x64-single.zip = one self-contained Hugin.exe, no install. Both ship hugin.json.example — copy it to hugin.json beside the exe and start.
v3.0.0
Hugin v3.0.0 — the standalone release. Everything since v2.0.1: the v3 pivot plus the v3.1 polish wave.
Highlights
- Single-file distribution:
Hugin.exeis now one self-contained file — no .NET runtime install, the dashboard's frontend is embedded. Double-click and the browser opens on localhost. - Simpler tracking model: statuses are now
active → applied → answeredplus an independent ⭐ star. Existing databases migrate automatically (a.bakbackup is written first). - Track from the dashboard: untracked companies get a Track button directly on their deadline rows.
- Export, reworked:
extractreplacesexport's old fixed shape — md/txt/json × new/category/all, and includingactiveentries is now an opt-in (--include-activeon the CLI, a checkbox in the dashboard). - Bilingual UI: full Norwegian/English dashboard with one segmented NO/EN switch, plus a dark/light theme toggle (dark default).
Dashboard
- Fixed: the "Mark as seen" confirm dialog no longer renders permanently inline — it appears only when asked.
- One date format everywhere:
dd.MM.yyyy, in both languages. - Sources row in the header: Brønnøysundregisteret, NAV, FINN, LinkedIn — short labels, your configured links.
- Deadline rows align date, days-left, and category in clean columns.
- Company names display in Title Case (legal forms like AS/ASA/HF stay uppercase); raw register names are untouched in the database and exports.
- Companies group hovedenhet + avdelinger into one expandable row, with filters for kommune, search, and "has own website" — and links sit on the row itself.
- Views keep their state while you move around the app (filters, open detail, scroll); everything resets on restart.
Data & discovery
- Websites from job ads: when the register has no (or a dead) website for an employer, Hugin adopts the one from the NAV ad detail and verifies it with the existing link checker. A healthy register website always wins.
- Discovery scales:
hugin.jsonnow takesfylker(two-digit county codes) andallOfNorwayalongsidemunicipalities— Brreg queries are chunked per fylke, and NAV ads resolve municipalities through the full kommune register. - Dead links are still never rendered; every company always offers a working link (verified site, or Google/Proff.no search).
CLI & API
hugin.exeworks fully standalone:sync,new,track,export,list.- The localhost API doubles as a machine interface for your own tooling — endpoint table in the README. Loopback-only; writes require the
X-Hugin: 1header (CSRF protection, not authentication).
Assets
hugin-v3.0.0-win-x64.zip—hugin.exe(CLI) +hugin-api.exe(dashboard host) + frontend; requires the .NET 10 runtime.hugin-v3.0.0-win-x64-single.zip— the self-contained single-fileHugin.exe; no runtime needed.
Both share a hugin.json beside the exe (see hugin.json.example); the database is created next to it on first sync.
v2.0.1 — one double-click
Getting started is now a single action: run hugin-api.exe and the dashboard opens in your default browser by itself. Closing the console window stops Hugin. --no-browser skips the launch for scripted use.
Install
Unzip anywhere, put a hugin.json beside the executables (start from the bundled hugin.json.example), double-click hugin-api.exe. Requires the .NET 10 runtime. Existing databases upgrade automatically. The CLI (hugin.exe) is unchanged.
v2.0.0 — the web dashboard
Hugin grows a face: a localhost web dashboard as a full daily driver over the same config and database as the CLI, which keeps working unchanged. (v1, the initial CLI, predates tagged releases.)
Highlights
- Deadline-first dashboard — active ads sorted by days-until-frist with urgency colors, a "Trenger handling" callout for tracked-but-not-applied ads closing within a week, and "Nytt siden sist" mirroring
hugin new. - Full daily routine in the browser — auto-sync on launch plus a sync button, pipeline tracking with inline editing, ad dismissal (Skjul/Vis skjulte), company browser with per-company ad history, and the Preparelogg markdown export with copy-to-clipboard.
- Local-only security model — loopback-only binding, a Host-header allowlist, and a custom write header, so neither other machines nor websites in your browser can reach the API.
- Smarter pipeline matching — ads match tracked companies through the registry's parent chain, and sync enriches unknown ad-employer units from Brreg so the chain resolves.
- Architecture refactor: shared
Hugin.Infrastructure(EF Core + SQLite, HTTP clients, config) under two thin hosts,Hugin.ConsoleandHugin.Api, with a React + TypeScript frontend inhugin-web. 205 tests (152 NUnit + 53 Vitest).
Install
Unzip, put a hugin.json beside the executables (start from the bundled hugin.json.example), then run hugin-api.exe and open http://localhost:5111 — or use hugin.exe for the CLI. Requires the .NET 10 runtime. Existing databases upgrade automatically.