From 145372abaeef9db7aaaf3eac29b5129d9ca3dd38 Mon Sep 17 00:00:00 2001 From: Jammy2211 Date: Thu, 20 Aug 2026 10:56:58 -0400 Subject: [PATCH] board: rename to 'PyAutoHeart Dashboard', publish markdown version (PyAutoLabs/PyAutoScientist#13) Co-Authored-By: Claude Fable 5 --- .github/workflows/heart-health.yml | 1 + README.md | 4 ++-- heart/dashboard.py | 10 +++++----- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/.github/workflows/heart-health.yml b/.github/workflows/heart-health.yml index c99bb4a..73bf1de 100644 --- a/.github/workflows/heart-health.yml +++ b/.github/workflows/heart-health.yml @@ -99,6 +99,7 @@ jobs: PYTHONPATH="$PWD" python -m heart.dashboard --cloud --html > _site/index.html PYTHONPATH="$PWD" python -m heart.dashboard --cloud --badge > _site/badge.json PYTHONPATH="$PWD" python -m heart.dashboard --cloud --md > board.md + cp board.md _site/dashboard.md # The README carries only the brief strip; the full board lives on # the Pages page (one-tap 📋 fix prompts) and the step summary. PYTHONPATH="$PWD" python -m heart.dashboard --cloud --md-brief > readme_strip.md diff --git a/README.md b/README.md index 270daa0..9b18f6f 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ sees into one authoritative verdict: **GREEN / STALE / YELLOW / RED**. GREEN means it is safe to release. See the **[PyAutoHeart Dashboard](https://pyautolabs.github.io/PyAutoHeart/)** -(mobile phone dashboard) for the whole picture on one page — every check a +for the whole picture on one page — every check a traffic-light row, and every red or yellow finding carrying links to the failing run and a one-tap 📋 button that copies a ready-made Claude prompt (`/bug …`), so going from "something is red" to "an agent is fixing it" is @@ -26,7 +26,7 @@ copy → paste, on a laptop or a phone. -🔵 **STALE** · score 65 · [full board →](https://pyautolabs.github.io/PyAutoHeart/) +🔵 **STALE** · score 65 · [dashboard →](https://pyautolabs.github.io/PyAutoHeart/) ## How PyAutoHeart works diff --git a/heart/dashboard.py b/heart/dashboard.py index e84415a..9a16001 100644 --- a/heart/dashboard.py +++ b/heart/dashboard.py @@ -925,7 +925,7 @@ def _render_md(board: Board) -> str: emoji = _STATE_MD[_VERDICT_STATE.get(board.verdict, OK)] age = format_age(board.age_seconds, stale=board.stale) lines = [ - f"## {emoji} PyAuto health — **{word}** (score {board.score})", + f"## {emoji} PyAutoHeart Dashboard — **{word}** (score {board.score})", "", f"_snapshot `{board.ts}` · {age}_" + (" ⚠️ **stale — run `pyauto-heart tick`**" if board.stale else ""), @@ -944,7 +944,7 @@ def _render_md(board: Board) -> str: status += f" · _{_md_escape(sec.observed_ago)}_" lines.append(f"| {em} | {sec.title} | {status} |") lines.append("") - lines.append(f"[Full board]({PAGES_URL})") + lines.append(f"[Dashboard]({PAGES_URL})") return "\n".join(lines) @@ -958,7 +958,7 @@ def _render_md_brief(board: Board) -> str: word = _VERDICT_WORD.get(board.verdict, "GREEN") emoji = _STATE_MD[_VERDICT_STATE.get(board.verdict, OK)] lines = [ - f"{emoji} **{word}** · score {board.score} · [full board →]({PAGES_URL})" + f"{emoji} **{word}** · score {board.score} · [dashboard →]({PAGES_URL})" ] if board.verdict in ("red", "yellow"): label, items = _shown_reasons(board) @@ -1091,9 +1091,9 @@ def _render_html(board: Board) -> str: function fb(t){{window.prompt('Copy this:',t)}}
-

PyAuto organism health

+

PyAutoHeart Dashboard

{word} · score {board.score}

-

snapshot {_html.escape(board.ts)} · {age}

+

snapshot {_html.escape(board.ts)} · {age} · markdown version

{stale_html} {reasons_html} {''.join(rows)}