Holger features
New Holger features from May to October 2026, with status, date, source path and commit. The list was made on 2026-10-28 from the main branches.
Status: Live runs in the current release (R6, 2026-10-27, on holger.rs). Live (off) is in the release but switched off by default. Merged is on the main branch and not yet released. A source path starts with its repository (holger or holger-ui). A commit without a label is in holger.
Login, sessions, invites and step-up use the shared edda crate nornir-identity (Holger implements IdentityHost). See HOLGER-V2.md for the design.
October 14 to 28, 2026
Security gateway (the product core)
| Feature | Status | Date | Source path | Commit |
| The intake chain. Each artifact has one explicit state from UNTRUSTED to AVAILABLE, gated on HTTP PUT, native uploads and gRPC, and is served only when AVAILABLE. | Live | 2026-10-19 | holger/server/lib/src/promote/intake.rs |
99daae77 |
| The scanner framework: one Scanner trait, typed evidence, an append-only evidence store, signed scan results. | Live | 2026-10-19 | holger/server/lib/src/scanner |
94af4ba6 |
| File and archive inspection on every ingest (zip bombs, nesting, path traversal) and a ClamAV and YARA malware hook. | Live | 2026-10-19 | holger/server/inspect |
b231aa9e |
| Separation of duties (Developer, Importer, SecurityApprover, RepositoryAdmin, Auditor). | Live | 2026-10-19 | holger/server/lib/src/promote/duties.rs |
17bda3af |
| Offline vulnerability intelligence: OSV, NVD and KEV become a signed update bundle and a verified local advisory database. | Live | 2026-10-19 | holger/intel |
c643b9a7 |
| One tamper-evident audit trail per artifact (hash chain with signed checkpoints) and its SIEM export. | Live | 2026-10-19 | holger/server/lib/src/audit |
2c0d2eca |
The airgap demo end to end: holger-server export takes the AVAILABLE set with stored evidence and signed attestations. |
Live | 2026-10-19 | holger/server/lib/src/promote/airgap.rs |
297c3efb |
| AI models are first-class artifacts, and pickle files are blocked by default. | Live | 2026-10-19 | holger/server/lib/src/scanner/model.rs |
7bb56235 |
twine upload goes into the intake chain, and the PEP 691 index serves the result. |
Live | 2026-10-19 | holger/server/lib/src/promote/intake.rs |
513dcac5 |
| The shipped estate turns the security gateway on (intake chain, required scan, approvals). | Live | 2026-10-19 | holger/holger-recipe/src/estate_ron.rs |
c8d439a3 |
| The security pages: intake queues with counts, and each artifact's state, votes and evidence. | Live | 2026-10-19 | holger/server/lib/src/promote, holger-ui/src/security.rs |
ce75bb58, holger-ui 45204fb9 |
| The licence policy is a real scanner (SPDX), used by both intake and promotion. | Live | 2026-10-20 | holger/server/lib/src/scanner/license.rs |
697d7530 |
| Import doors for signed intel bundles and package bundles (gRPC and HTTP). | Live | 2026-10-20 | holger/server/lib/src/import_door.rs |
d4b2423c |
| Stored evidence is read back with its DSSE envelopes; one quarantine for all. | Live | 2026-10-20 | holger/server/lib/src/exposed/http.rs |
0cb5f11f |
| npm through the security gateway (publish into intake, packuments, tarballs, dist-tags). | Live | 2026-10-21 | holger/server/lib/src/promote/npm.rs |
1027710e |
| An airgapped Holger imports signed intel under a trust policy that rides the release. | Live | 2026-10-22 | holger/xtask/src/estate_media.rs |
85febf04 |
| "what did this person download": an audit query by identity, repository and time. | Live | 2026-10-22 | holger/server/lib/src/audit/query.rs |
7492403d |
| holger-sandbox, a hardened rootless container runner, and every scan runs inside it. | Live | 2026-10-23 | holger/server/sandbox, holger/server/lib/src/sandbox |
1998749a, babf13c8 |
| The default intel feeds carry Wolfi and Chainguard advisories, so Chainguard images get their CVEs. | Live | 2026-10-23 | holger/intel/src/feeds.rs |
d605b919 |
| The provenance scanner verifies DSSE, in-toto and SLSA, and Sigstore keyless (Fulcio chain, identity) offline. | Live | 2026-10-23 | holger/provenance |
5eeac4fd |
| Pull-through runs the intake chain for OCI (cgr.dev) and Python (PyPI, Chainguard Libraries for Python). | Live | 2026-10-23 | holger/server/lib/src/pull_intake |
77477911 |
cargo xtask demo airgap, the 1.0 demo as one command (an online intake Holger, a secure Holger with no network, real pip). |
Live | 2026-10-23 | holger/xtask/src/demo.rs |
0c73355d |
| APK pull-through (Alpine, Wolfi), each package held through the intake chain. | Live | 2026-10-24 | holger/server/lib/src/pull_intake/apk.rs |
ce1d6a13 |
| The image cataloger reads rpm databases, Go build info and cargo-auditable data. | Live | 2026-10-24 | holger/server/inspect/src |
d71c6adc |
| A laid box carries its scan sandbox (crun over its own root file system, ClamAV beside it). | Live | 2026-10-24 | holger/server/sandbox/src/crun.rs |
7185cac6 |
| Maven Central .asc signatures are verified offline against pinned keys (opt-in). | Live | 2026-10-25 | holger/provenance/src/pgp.rs |
919d2416 |
| Faster scans (a CVE index built once, a YARA prefilter). | Live | 2026-10-25 | holger/server/lib/src/advisory_index.rs |
3bad1b14 |
| A container image is never auto-approved. | Live | 2026-10-26 | holger/server/lib/src/pull_intake/mod.rs |
00ddbdab |
| ClamAV (pinned signatures) and YARA are required scanners in the end-to-end gate. | Live | 2026-10-26 | holger/server/cli/tests/e2e_internet_to_build_systems.rs |
3b9c6493 |
Holger 2.0 open core, sync and clients
| Feature | Status | Date | Source path | Commit |
cargo install holger and a plain cargo build --release give a working server; a lone clone builds and serves. |
Live | 2026-10-22 | holger/holger-recipe, holger/xtask/src/lone_clone.rs |
80ec7d64, 81085f58 |
| The small default build (290 crates, HTTPS by rustls). | Live | 2026-10-22 | holger/server/lib |
3f23974d |
| Streamed gRPC uploads. | Live | 2026-10-22 | holger/server/lib/src/grpc/services.rs |
9e2422b2 |
| Replication runs as a resumable job. | Live | 2026-10-22 | holger/server/lib/src/grpc/services.rs |
dc801dff |
| Capacity reports cores and RAM beside the data room. | Live | 2026-10-22 | holger/server/lib/src/capacity.rs |
f0526d4b |
| Tier 1: a plain cargo build carries the intake chain, configured in one RON shape (sources, steps, rules, gates). | Live | 2026-10-23 | holger/server/lib/src/sources.rs |
baa48b3a |
| Holger 2.0 clean build: the root workspace is the open core, the estate parts are a separate workspace. | Live | 2026-10-25 | holger/estate |
c804ffc9 |
| The sync protocol (signed sync manifests with generations), behind a default-off feature. | Live | 2026-10-25 | holger/sync, holger/server/lib/src/sync.rs |
be9cb743 |
cargo install holger --features downstream is the on-premises gateway. |
Live | 2026-10-26 | holger/server/downstream |
7b1b68fe |
cargo xtask e2e, the end-to-end gate (fake internet, upstream pull, scan, two-person approval, signed sync, USB, downstream). |
Live | 2026-10-26 | holger/xtask/src/e2e.rs |
fa2a898d |
holger-cli, the thin gRPC client; every console call is a CLI command. |
Live | 2026-10-26 | holger/holger-cli, holger-ui/tests/every_call_is_a_cli_command.rs |
5022717e, holger-ui 0fff374f |
holger-cli --at https://<repo host> reaches the estate through the front. |
Live | 2026-10-26 | holger/holger-cli/src/conn.rs |
ec98db05 |
| Airgap is the default; with no upstream named, Holger is offline. | Live | 2026-10-26 | holger/server/lib/src/egress.rs |
d72706dd |
| Build flavours as building blocks: a systemd service, a Kubernetes chart and a separate scan-worker sidecar (the release flavours are not yet a delivery). | Merged | 2026-10-27 | holger/server/cli/src/systemd_verbs.rs, holger/xtask/src/k8s.rs |
7564037d |
| Holger's 15 crates are not yet published on crates.io. | Merged | – | holger (15 crates) | – |
Console, board and buying
| Feature | Status | Date | Source path | Commit |
| The console only calls Holger and renders (thin UI). | Live | 2026-10-17 | holger-ui/crates/holger-ui-server |
holger-ui f4d917e4 |
| The primary's console is at /login. | Live | 2026-10-18 | holger/holger-recipe/src/packaging.rs |
b1bc09e8 |
| A paired downstream reports how far it synced; Admin, Sync lists twins and downstreams. | Live | 2026-10-18 | holger/server/lib/src/peers.rs, holger-ui/src/sync.rs |
2b915e5c, holger-ui 4762c50d |
| The estate board (front, main, twin and downstreams with state) and meter trust. | Live | 2026-10-19 | holger/server/lib/src/topology.rs |
1f86680f |
| A repository made at run time serves at once, without a restart. | Live | 2026-10-19 | holger/server/lib/src/exposed/fast_routes.rs |
0a1e1efa |
| A private Holger's buyer signs in with the shop's first-login link and becomes the estate's first admin. | Live | 2026-10-21 | holger/server/lib/src/passkey.rs |
475090ec |
| Buyer pages: My repositories, My plan and My tokens. | Live | 2026-10-21 | holger/server/lib/src/account.rs, holger-ui/src/mine.rs |
6d569b4e, holger-ui 0847bfd0 |
| Owner-only grants on every server, audited, and sign-up redemption. | Live | 2026-10-21 | holger/server/lib/src/account.rs, holger-ui/src/pages/mine.rs |
c0af8a2e, holger-ui ac6877a0 |
| The /signup page with Holger's two choices: an account on this site and a private Holger. | Live | 2026-10-21 | holger/server/lib/src/room.rs, holger-ui/assets/signup.html |
9eb558e2, holger-ui b9c603e3 |
| The estate board draws the upstreams, each downstream's fetched packages and lag, and every consumer. | Live | 2026-10-23 | holger/server/lib/src/upstreams.rs, holger-ui/src/security.rs |
030c0240, holger-ui 76ecc302 |
| Holger's buy pages are the shared buy flow on the site's own doors. | Live | 2026-10-23 | holger/holger-estate-front/src/buy.rs, holger-ui/assets |
3ab3127e, holger-ui 2c4c7fc8 |
| A sold Holger mints and mails its buyer's sign-in-again link. | Live | 2026-10-23 | holger/server/lib/src/sign_in_again.rs |
4e44a18e |
| holger.rs splits "Sign up account" and "Log in", as Gunnar's front does. | Live | 2026-10-23 | holger/holger-front/src/lib.rs, holger-ui/assets/login.html |
43e3783b, holger-ui 82d8e036 |
| Browser tests in headless Chromium (buy pages, passkey step, upload, intake, two approvals, board). | Live | 2026-10-24 | holger-ui/browser-tests |
holger-ui 5b378895 |
| holger.rs public site pages (SEO, llms.txt), on for holger.rs. | Live | 2026-10-25 | holger-ui/crates/holger-public-site |
571571b0, holger-ui 9540493b |
| The upstream's Sync board: per downstream the last sync applied, lag and invalid packages. | Live | 2026-10-26 | holger-ui/src/sync_board.rs |
holger-ui 709da7e8 |
| The estate board on Overview, Admin and Security draws the RON's own graph. | Live | 2026-10-27 | holger/server/lib/src/topology.rs, holger-ui/src/pages |
0d965761, holger-ui a67790aa |
| Access posture in the RON (reads Gated or Open, front Open or Gated, per-repository Public), shown on the Account page. | Merged | 2026-10-27 | holger/server/lib/src/posture.rs |
8f00da6f, holger-ui a192caa0 |
| The board's summary line is plain and true (boxes, upstream, downstreams with last sync or lag). | Merged | 2026-10-27 | holger/server/lib/src/topology.rs |
0fea2068 |
| A sold private Holger's /signup says it is private and asks for an invite. | Merged | 2026-10-27 | holger/holger-estate-front/src/console.rs |
35089526 |
| The login page uses the shared edda login helpers. | Merged | 2026-10-27 | holger-ui/assets/login.js |
holger-ui 6604faab |
| The Security page shows the real chain and its counts, sources and their checks, and the scanners. | Merged | 2026-10-28 | holger/server/lib/src/security_view.rs |
6bfff5ed |
| An estate's public repositories are data (holger.rs: crates and npm) and are shown as public. | Merged | 2026-10-28 | holger/holger-recipe/src/estate_ron.rs |
36264444 |
| WireGuard downstreams. Downstreams sync through the front by default, or over a separate WireGuard that reaches only the main's sync door; enrolment by signed invite, revocation in the console, shown on the board (29/29 on real VMs). | Merged | 2026-10-28 | holger/server/lib/src/sync/downstreams.rs, holger/holger-estate-front/src/downstreams.rs |
5a34ad3c, holger-ui 28159bf7 |
| Holger runs on the shared identity core with a __Host- HttpOnly session cookie (everyone registers their passkey again after this release). | Merged | 2026-10-28 | holger/server/lib/src/identity_host.rs, holger-ui/crates/holger-ui-server/src/session.rs |
d47e5b15, holger-ui a1d1f9b1 |
| A laid main keeps the mail relay the ONE box feeds it. | Merged | 2026-10-28 | holger/server/lib/src/refeed.rs |
a1c96e89 |
A laid site takes its public-site switch again from the ONE box (site refeed <site> --only public_site): main and twin keep it as the console's setting console.public-site, audited, as Gunnar does. |
Merged | 2026-11-01 | holger/estate/holger-fleet/src/order.rs, holger/server/lib/src/fleet_box.rs |
HOL-PUBSITE-FEED |
Estate (the Gunnar lifecycle for Holger)
| Feature | Status | Date | Source path | Commit |
| Holger pulls from the ONE monetize and takes the ONE box's keep-only update (twin, main, front). | Live | 2026-10-17 | holger/estate/holger-fleet, holger/holger-estate-front/src/update.rs |
4c9096bf, 5ac4ad85 |
| Holger's live slot (twin, main and front take a live update). | Live | 2026-10-18 | holger/estate/holger-live |
8579df6c |
| Holger's front recharges a lost main or twin. | Live | 2026-10-18 | holger/holger-estate-front/src/recharge.rs |
8faaaf48 |
| Every estate link runs over WireGuard only. | Live | 2026-10-19 | holger/server/lib/src/tunnel_addr.rs |
84554886 |
| One recharge path, the same as Gunnar's. | Live | 2026-10-19 | holger/crates/holger-monetize-guest |
761c4c52 |
| Pairing renews every paired link before it ends. | Live | 2026-10-19 | holger/holger-estate-front/src/renew.rs |
d72f6373 |
| Holger DEV media narrate their boot logs like Gunnar's. | Live | 2026-10-19 | holger/server/dev-narrate |
a1beec5c |
| Holger follows Gunnar's pattern for the live switch, the off-site copy and the purge. | Live | 2026-10-20 | holger/server/lib/src/offsite.rs |
40883d02 |
| What a sale made rides the twin and comes back with a recharge. | Live | 2026-10-21 | holger/server/lib/src/twin_follow.rs |
be1bb292 |
cargo xtask installtest, the KVM install proof. |
Live | 2026-10-21 | holger/xtask/src/installtest.rs |
0c3cb815 |
| The public HTTP door and the gRPC door speak TLS 1.3 only. | Live | 2026-10-22 | holger/server/lib/src/exposed/tls.rs |
831a8dee |
Earlier (May to October 13, 2026)
Everything here is live.
| Feature | Status | Date | Source path | Commit |
| The Holger estate box line (holger-ebox). | Live | 2026-10-05 | – | 07de7854 |
| Console: Admin, Invites and a step-up login. | Live | 2026-10-04 | holger-ui | – |
| Holger registers its own signed monetize plugin, sells and enforces disk space, and the console sells room. | Live | 2026-09-28 | – | 2c722a46 |
| debuginfod ingestion and promotion. | Live | 2026-09-23 | – | – |
| A durable job queue for promote, replicate, upload and gate; one ISO where the role is elected at boot. | Live | 2026-09-21 | – | 401ab8b7, ac6d5f4d |
| A tamper-evident audit log; loaded WebAssembly plugins run as untrusted code. | Live | 2026-09-20 | – | 677c4c81, e1be20d0 |
| Holger declares a bootable live medium. | Live | 2026-09-17 | – | – |
| A full security review (40 defects found). | Live | 2026-09-11 | docs/security-review-2026-09-11.md |
– |
| A per-site installer ISO in one command; one ISO installs many machines, each with its own identity; a secure-boot proof. | Live | 2026-08-13 to 2026-08-14 | – | ebcb351f |
| A package handler can be a WebAssembly module that Holger loads. | Live | 2026-08-05 | – | e490696f |
| The MVP build thing. | Live | 2026-07-23 | – | – |
| A read-only mini tier UI. | Live | 2026-07-22 | – | – |
| Pluggable OIDC and bearer authentication. | Live | 2026-07-18 | – | – |
Maven metadata, Debian control fields, browsable OCI images, a Migrate pane, a 14-ecosystem security sweep, holger-server scan, provenance checks on archive open, and benches against Artifactory. |
Live | 2026-06 | – | – |
holger-client-cli with airgap and push commands. |
Live | 2026-05-22 | – | – |
| Benchmarks against Nexus. | Live | 2026-05 | – | – |