Feature #209: self-heal (health, empty guide, degraded visibility) #216

Merged
crueber merged 1 commit from feat/issue-209 into main 2026-09-08 20:40:29 +00:00
Owner

Implements issue #209 waves 1-3 per the plan with R1 + review normative (give-up CUT).

Backend (internal/api): summary health empty|healthy|degraded (empty from in-hand manifest+refs, +0 trips; degraded via one conditional fsck.pb probe on non-empty summaries; ETag covers health with ~degraded suffix); empty repository: 404-marker prefix at all 9 bind_wal sites (exact HeadSeq==0 + no-refs predicate, fail-closed); overview fsck projection (+1 conditional GET, stated) with read-side repair_stalled + effective upstream. No new endpoints, no bucket families, no protobuf changes.

Web: EmptyRepoGuide on Code tab, known-empty fetch suppression, degraded amber banner + inline notices + WAL object-health section with re-audit trigger. SDK typedefs updated.

Docs: 07_api, 10_maintenance, 12_web_ui + Decisions appends; EVIDENCE E13 no-change entry.

Tests: go test -race + cover 95.3% on internal/api; node --test 410/410; real-Chromium 29/29 (empty guide zero toasts, degraded banner, WAL card, both themes, console clean). No new Go modules, no new npm deps.

Implements issue #209 waves 1-3 per the plan with R1 + review normative (give-up CUT). Backend (internal/api): summary health empty|healthy|degraded (empty from in-hand manifest+refs, +0 trips; degraded via one conditional fsck.pb probe on non-empty summaries; ETag covers health with ~degraded suffix); empty repository: 404-marker prefix at all 9 bind_wal sites (exact HeadSeq==0 + no-refs predicate, fail-closed); overview fsck projection (+1 conditional GET, stated) with read-side repair_stalled + effective upstream. No new endpoints, no bucket families, no protobuf changes. Web: EmptyRepoGuide on Code tab, known-empty fetch suppression, degraded amber banner + inline notices + WAL object-health section with re-audit trigger. SDK typedefs updated. Docs: 07_api, 10_maintenance, 12_web_ui + Decisions appends; EVIDENCE E13 no-change entry. Tests: go test -race + cover 95.3% on internal/api; node --test 410/410; real-Chromium 29/29 (empty guide zero toasts, degraded banner, WAL card, both themes, console clean). No new Go modules, no new npm deps.
Implements 07_api §9.1/§9.10/§12.1, 10_maintenance §9.3, 12_web_ui
§2.4/§2.6/§2.9 — R1 + review normative (plan waves 1-3, give-up CUT).

Backend: summary health empty|healthy|degraded (empty from in-hand
manifest+refs, +0 trips; degraded via one conditional fsck.pb probe on
non-empty summaries; ETag covers health with ~degraded suffix); empty
repository: 404-marker prefix at all 9 bind_wal sites (exact
HeadSeq==0+no-refs predicate, fail-closed, damage-404s byte-identical);
overview fsck projection (+1 conditional GET, stated) with read-side
repair_stalled derivation and effective upstream. No new endpoints
(POST ops/fsck already addressable), no bucket families, no protobuf.

Web: EmptyRepoGuide on Code tab (verbatim clone_url, push commands,
copy buttons), known-empty fetch suppression (useResolved short-circuit
+ Commit direct suppression, selArgs-null pattern), degraded amber
banner + inline tolerateDegraded notices + WAL object-health section
with re-audit trigger. SDK typedefs updated.

Docs + Decisions appended (law 12); EVIDENCE E13 no-change entry with
the TestSummaryOverviewRoundTrips counting harness.
Sign in to join this conversation.
No description provided.