hub v0.51.0: DR-tier-by-default — per-customer dr_tier flag (default ON, legacy backfill from reality), cascade stages, WG-registration auto-provision hook, offsite-requires-DR guard (F-6 policy), host-page capability chips (inactive=neutral)

Claude-Session: https://claude.ai/code/session_01NptTCFtu7dz2Ru89qHRagN
This commit is contained in:
2026-07-12 20:37:00 +02:00
parent 007946faf4
commit 448a68237a
18 changed files with 824 additions and 87 deletions
@@ -153,6 +153,46 @@
{{end}}
</section>
<!-- Capabilities (v0.51.0): the agent's privileged-capability self-check, rendered.
inactive = disabled by configuration (neutral, DR tier off) — NOT degraded. -->
<section class="card" style="padding: 0; overflow: hidden;">
<h2 style="padding: 1.25rem 1.25rem 0.5rem;">Capabilities</h2>
{{if .NeedsDRMigration}}
<p class="hint" style="padding: 0 1.25rem; color: var(--text-muted); font-size: 0.85rem;">
This box predates the uniform DR plumbing (host-install &lt; v1.15.0) — the pbsdr
wrapper is missing. Migration one-liner set (as root on the host): fetch
<code>configs/felhom-pbs-apply</code> from the agent repo to
<code>/usr/local/sbin/felhom-pbs-apply</code> (0755), <code>apt-get install -y age</code>,
set <code>wg_tunnel.enabled: true</code> in agent.json, restart felhom-agent —
see documentation/runbooks/day0-install.md (retrofit).
</p>
{{end}}
{{if .Capabilities}}
<table class="data-table">
<thead>
<tr>
<th>Capability</th>
<th>Status</th>
<th>Feature / reason</th>
</tr>
</thead>
<tbody>
{{range .Capabilities}}
<tr>
<td>{{.Name}}{{if .Critical}} <span class="badge badge-neutral">critical</span>{{end}}</td>
<td><span class="badge {{.Class}}">{{.Status}}</span></td>
<td>{{.Feature}}{{if .Reason}} — {{.Reason}}{{end}}</td>
</tr>
{{end}}
</tbody>
</table>
{{else}}
<div class="empty-state" style="border: none;">
<p>No capability report yet (waiting for the first host report).</p>
</div>
{{end}}
</section>
<!-- Diagnostics: component log bundles (v0.46.0) -->
<section class="card">
<h2>Diagnostics — Log Bundles</h2>