Skip to content

✨ evidence card: 24h/7d/30d/custom windows and plain-language panel explainers - #12416

Merged
hivecommons-hive[bot] merged 3 commits into
v5from
feat/evidence-card-windows-explainers
Oct 16, 2026
Merged

hivecommons-hive[bot] merged 3 commits into
v5from
feat/evidence-card-windows-explainers

Conversation

@clubanderson

Copy link
Copy Markdown
Member

Implements two user requests for the Throughput Evidence card (RFC #12062). cc @mrbobbytables

1. Time window: 24h · 7d · 30d · custom

  • The card gets its own pills (EV_WINDOWS), independent of the throughput pills; custom opens an inline from/to <input type="date"> row with Apply and client-side validation (to ≥ from, ≤ 366 days). Selection persists in localStorage (hive.evidence.window), like the throughput repo pill.
  • Header reflects the window: "🔬 Evidence · last 30d", "🔬 Evidence · Oct 1 – Oct 15".
  • GET /api/evidence/summary now accepts from=/to= (RFC3339 or YYYY-MM-DD; date-only to inclusive; to defaults to now) alongside hours= (already allowed up to 90 d). 400 for to < from, span > 366 d (evidenceSummaryMaxRangeDays), or to without from. Response echoes from/to for custom ranges. buildEvidenceSummary keeps its signature (wrapper over buildEvidenceSummaryWindow).

2. Plain-language explainers (ⓘ per panel)

  • Every evPanel (Outcome by author kind, Reviewer calibration, Reviewer accuracy × model family, Shadow gates) gets an ⓘ button in its summary row: aria-expanded / aria-controls, Esc closes and returns focus. A test asserts every evPanel(...) key has an EV_EXPLAINERS entry, so later panels must ship one.
  • Sections: What is measured · Why it matters · How it is measured · What good looks like · What ours shows, written for a reader with no statistics background (confidence bucket, calibration, false approve, false block defined on first use).
  • "What ours shows" is computed live from the summary for the selected window, followed by a Strong / Fair / Weak / Not enough data grade with named-constant thresholds (EV_CALIB_*, EV_ERR_*, EV_REVERT_*, EV_SHADOW_FALSE_ALARM_*, EV_GRADE_MIN_N, EV_SHORT_WINDOW_HOURS), documented in docs/review-evidence.md → "How to read the Evidence card".
  • Honest limits repeated in every explainer: merged ≠ correct, open PRs count as not merged, evidence only since 2026-10-08, reverts only since 2026-10-15; short windows add an "early read" caveat. No invented numbers.

Guardrail (RFC #12062 non-goals)

Everything here is read-only reporting over stored bundles. Nothing reads into or alters merge eligibility / auto-merge; grades are display-only and tests do not touch gate logic.

Tests / docs

  • TestParseEvidenceWindow, TestBuildEvidenceSummaryCustomRange, validation cases; TestEvidenceCardWindowSelector, TestEvidenceCardExplainers.
  • docs/api-reference.md, docs/review-evidence.md, changelog fragment. No new inline style= (classes only).

@kubestellar-prow kubestellar-prow Bot added the dco-signoff: yes Indicates the PR's author has signed the DCO. label Oct 16, 2026
@kubestellar-prow

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign hanthor for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@kubestellar-prow kubestellar-prow Bot added the size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. label Oct 16, 2026
@github-actions

github-actions Bot commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

Open PR overlap check

Base branch: v5

Conflicts are checked with every PR merged onto the current tip of v5, so a PR that only needs a rebase is not reported as conflicting with its siblings.

PR Title Relation Files
#12395 ✨ hivectl: evidence backfill tooling — schema v1 bundles from GitHub history same files src/docs/review-evidence.md
#12389 ✨ evidence: panel 6 — work balance (issues opened by kind vs closed) same files src/docs/api-reference.md
src/docs/review-evidence.md
src/pkg/dashboard/api_evidence_summary.go
src/pkg/dashboard/api_evidence_summary_test.go
src/pkg/dashboard/evidence_card_ui_test.go
src/pkg/dashboard/static/index.html
#12388 ✨ dashboard: Evidence panel 4 — boundary enforcement (attempted vs blocked writes per tier; sentinel hits/week) same files src/docs/api-reference.md
src/docs/review-evidence.md
src/pkg/dashboard/api_evidence_summary.go
src/pkg/dashboard/api_evidence_summary_test.go
src/pkg/dashboard/evidence_card_ui_test.go
src/pkg/dashboard/static/index.html
#12415 ✨ feat(dashboard): add evidence maintainability trend panel CONFLICT src/pkg/dashboard/api_evidence_summary.go
#12332 ✨ feature: Add cadence templates for quickly setting cadence for all agents (#12300) same files src/pkg/dashboard/static/index.html
#12428 ✨ evidence: emit revert rates by author kind for the hub drill-down same files src/docs/review-evidence.md

@hivecommons-hive

Copy link
Copy Markdown
Contributor

hive: this PR now conflicts with v5 (mergeable_state=dirty) in: src/docs/api-reference.md, src/pkg/dashboard/api_evidence_summary_test.go, src/pkg/dashboard/static/index.html. Hive does not rewrite human-authored branches, so it is deferred until rebased; CI re-runs on push and the sweep merges when green.


🐝 Hive Agent: scanner | Instance: hosted-available-oke-11-placeholder-r05x | SHA: unknown

— hive: agent=scanner backend=copilot model=claude-fable-5.1 copilot=1.0.88

@clubanderson
clubanderson force-pushed the feat/evidence-card-windows-explainers branch from 7304a4c to 3ab082a Compare October 16, 2026 14:05
@kubestellar-prow kubestellar-prow Bot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Oct 16, 2026
@github-actions github-actions Bot added conflicts-with-open-pr Open PR has a merge conflict with another open PR and removed conflicts-with-open-pr Open PR has a merge conflict with another open PR labels Oct 16, 2026
…xplainers

- /api/evidence/summary accepts from=/to= (RFC3339 or YYYY-MM-DD, span ≤ 366 d, 400 on violation) alongside hours=
- Evidence card gets its own 24h · 7d · 30d · custom pills, persisted in localStorage (hive.evidence.window); header reflects the window
- ⓘ explainer per panel (What is measured · Why it matters · How it is measured · What good looks like · What ours shows) with a live grade from named thresholds, documented in docs/review-evidence.md

Read-only reporting; nothing here reads into or alters merge eligibility (RFC #12062 non-goals).

Signed-off-by: Andy Anderson <andy@clubanderson.com>
… ratchet)

Signed-off-by: Andy Anderson <andy@clubanderson.com>
Signed-off-by: Andy Anderson <andy@clubanderson.com>
@clubanderson
clubanderson force-pushed the feat/evidence-card-windows-explainers branch from 3ab082a to 284d4fc Compare October 16, 2026 14:18
@github-actions github-actions Bot added the conflicts-with-open-pr Open PR has a merge conflict with another open PR label Oct 16, 2026
@hivecommons-hive
hivecommons-hive Bot merged commit 44e5285 into v5 Oct 16, 2026
61 of 62 checks passed
@hivecommons-hive

Copy link
Copy Markdown
Contributor

merged by Hive trusted-author auto-merge: author @clubanderson holds role owner and GitHub permission admin on repo; CI green at 284d4fc.

@kubestellar-prow
kubestellar-prow Bot deleted the feat/evidence-card-windows-explainers branch October 16, 2026 14:26
@github-actions

Copy link
Copy Markdown
Contributor

Thank you for your contribution! Your PR has been merged.

We'd love to hear how your experience was: share feedback

clubanderson added a commit that referenced this pull request Oct 16, 2026
Adds the Boundary enforcement evPanel card to the Throughput Evidence
sub-panel: attempted-vs-blocked agent writes per intent tier (top block
reasons in the tooltip) from write_counters, and a sentinel hits per ISO
week sparkline from sentinel_hits_per_week. write_counters in
GET /api/evidence/summary now passes through blocked_by_reason. Empty
state when the counter file is absent. Reporting only; nothing reads or
alters merge eligibility.

Rebased onto v5 after #12416: adds the EV_EXPLAINERS entry (graded on
proxy-blocked ÷ attempted writes via EV_BLOCKED_STRONG/FAIR), sizes the
SVG helpers from EV_SVG_W, and discloses that write_counters are all-time
proxy totals while sentinel_hits_per_week follows the selected window.

Closes #12368

Signed-off-by: Andy Anderson <andy@clubanderson.com>
clubanderson added a commit that referenced this pull request Oct 16, 2026
Adds the Boundary enforcement evPanel card to the Throughput Evidence
sub-panel: attempted-vs-blocked agent writes per intent tier (top block
reasons in the tooltip) from write_counters, and a sentinel hits per ISO
week sparkline from sentinel_hits_per_week. write_counters in
GET /api/evidence/summary now passes through blocked_by_reason. Empty
state when the counter file is absent. Reporting only; nothing reads or
alters merge eligibility.

Rebased onto v5 after #12416: adds the EV_EXPLAINERS entry (graded on
proxy-blocked ÷ attempted writes via EV_BLOCKED_STRONG/FAIR), sizes the
SVG helpers from EV_SVG_W, and discloses that write_counters are all-time
proxy totals while sentinel_hits_per_week follows the selected window.

Closes #12368

Signed-off-by: Andy Anderson <andy@clubanderson.com>
hivecommons-hive Bot pushed a commit that referenced this pull request Oct 16, 2026
Adds the Boundary enforcement evPanel card to the Throughput Evidence
sub-panel: attempted-vs-blocked agent writes per intent tier (top block
reasons in the tooltip) from write_counters, and a sentinel hits per ISO
week sparkline from sentinel_hits_per_week. write_counters in
GET /api/evidence/summary now passes through blocked_by_reason. Empty
state when the counter file is absent. Reporting only; nothing reads or
alters merge eligibility.

Rebased onto v5 after #12416: adds the EV_EXPLAINERS entry (graded on
proxy-blocked ÷ attempted writes via EV_BLOCKED_STRONG/FAIR), sizes the
SVG helpers from EV_SVG_W, and discloses that write_counters are all-time
proxy totals while sentinel_hits_per_week follows the selected window.

Closes #12368

Signed-off-by: Andy Anderson <andy@clubanderson.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

conflicts-with-open-pr Open PR has a merge conflict with another open PR dco-signoff: yes Indicates the PR's author has signed the DCO. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant