Skip to content

feat: standardize dashboard freshness footers #486

Closed

Description

@Jammy2211

Overview

Standardize Last updated beneath the copy controls beside Read the prompt on all thirteen organ dashboards. User approved with “go”.

Plan

  • Extend the shared panel with owner-supplied refreshed_at and refresh_url.
  • Use green <1 hour, yellow <24 hours, red >=24 hours, grey unknown; expose exact UTC time and advance age in the browser.
  • Wire all thirteen boards to honest refresh timestamps and existing owner refresh destinations; retain evidence-age and health semantics.
  • Verify timestamp boundaries, unchanged copying, mobile/desktop and light/dark; update the canonical standard and adoption matrix.
    Tier: undeclared — merge mode: human /prm.
Detailed implementation plan

Affected repositories and branch survey

PyAutoBrain (primary, also owns Mind/Cortex renderers), PyAutoEars, PyAutoHeart, PyAutoHands, PyAutoMemory, PyAutoPulse, PyAutoInsight, PyAutoNerves, PyAutoGut, PyAutoEyes, PyAutoScientist. All main. Brain has unrelated untracked delegation log; Eyes has untracked data/output/scripts; preserve these via isolated worktrees. Cortex has seven dirty files, behind main, but renderer changes belong in Brain. Mind owns task state. Guard passed all thirteen repositories.
Branch: feature/dashboard-freshness. Root: /home/jammy/Code/PyAutoLabs/.worktrees/dashboard-freshness.

Implementation steps

  1. Shared core phase: board/_theme.py orchestration_panel, CSS, JS; docs/board-orchestration.md; focused Python and browser tests. Optional refreshed_at/refresh_url keywords preserve callers. Native exact timestamp disclosure, unknown fallback, safe owner links. No client mutation, reload-as-refresh, added schedules or scientific runs.
  2. Core consumers: board/_board.py, agents/conductors/intake/_intake.py, agents/conductors/cortex/_cortex.py. Honest snapshot refresh timestamps; existing owner workflow destinations.
  3. Remaining consumers phase: ears/board.py; heart/dashboard.py; autohands/board.py; scripts/board.py in Memory/Nerves/Gut; pulse and insight board.py/campaigns.py; eyes/board.py; scripts/organism_board.py. Read owner instructions; use existing successful capture time or explicit unknown; never reinterpret content-change/evidence timestamp as refresh. Introduce explicit presentation refresh metadata only where required and justified by owner producer.
  4. Run affected tests and browser layout/copy checks, invalid/future/timezone/boundary/multiple-panel cases. Record adoption mapping and real action destinations in standard. One PR per changed repository; publish verification follows authorized merge.

Delivery

No merge or release authorization. Heart YELLOW acknowledgement remains ship-time. Preserve unrelated source/data and task claims.

Original Prompt

Starting prompt

Shared dashboard freshness footer

Type: feature
Target: @PyAutoBrain
Difficulty: large

Original request

Should all dashboards have a last updated text? Feels like they should and thtat this should be homogenized
and common amongst all. I would put it to the right of the "> Read the prompt" thing on each copyable button under the copy button,
with its text the same across all and it being in green if its within a certain time threshold (under 1 hour?) yellow for another and red for another, with it clickable or an update button next to it, but it should be smaller font that the other stuff in the button

Approved design

User approved with “go”. Shared footer beside Read the prompt, under controls: Last updated and Update. Green under 1 hour; yellow 1–24 hours; red at least 24 hours; grey unavailable. Smaller font, mobile wrapping, exact timestamp accessible on click, browser age advances without resetting source time. Timestamp represents successful displayed-information refresh, separate from scientific evidence age and health. Owner supplies real refresh destination; no fake reload-as-update behavior.

Scope and validation

Extend Brain shared orchestration_panel/CSS/JS and standard; adopt across the thirteen organ boards (Brain, Mind, Cortex, Ears, Heart, Hands, Memory, Pulse, Insight, Nerves, Gut, Eyes, Scientist). Survey owner timestamps, refresh mechanisms and claims. Preserve domain meanings and actions. Validate boundary and missing timestamps, multiple panels, accessibility, prompt copying and responsive rendering. No merge authorization.

Activity

  1. Jammy2211 commented on Oct 7, 2026

    @Jammy2211
    ContributorAuthor

    Implemented the approved shared freshness footer across all thirteen organ boards in eleven isolated repository worktrees, branch feature/dashboard-freshness.

    Validation: 3,945 tests verified across full runs and targeted reruns; 120 final browser layout cases and 14 clipboard regression cases. Brain’s five clipboard mock failures were fixed for new DOM initialization; its grouped-root fixture passes with inherited workspace overrides cleared. No unresolved failures. Independent review corrected Pulse/Insight to use a separate successful-refresh receipt, preserving evidence/capture history and offline replay. Missing or failed collection shows unknown. Exact timestamps, live age, responsive layouts and copy behavior checked.

    Implementation, adoption standard, eleven PR bodies and review patches are prepared. Not yet committed/pushed/opened as PRs: ship-library requires explicit Heart YELLOW acknowledgement for manifest drift: shared-standards blocks (generated) — 2 mismatch(es) vs PyAutoMind/repos.yaml. Release evidence is also stale from source movement (PyAutoNerves, PyAutoFit, PyAutoArray, PyAutoGalaxy, PyAutoLens); no RED reasons on canonical-root readiness.

    Resume: acknowledge current YELLOW, commit/push/open owner PRs with Brain-first dependency, then human /prm and published-page verification. No merge or release authorized. Local worktree/evidence: /home/jammy/Code/PyAutoLabs/.worktrees/dashboard-freshness, tmp/validation.md, tmp/pr-drafts/, tmp/browser/final-validation.json.

  2. Jammy2211 commented on Oct 7, 2026

    @Jammy2211
    ContributorAuthor

    /prm checkpoint: Brain PR #487 merged after docs and both Python jobs passed. Ten consumer PRs are open; no further merges after Ears browser job failed.

    Ears #18: Python 3.12 and 3.13 pass; browser fails in tests/board_browser.py:50 at assert page.locator('.orchestration-panel a').count() == 2. The new Update link makes three links. This existing owner-specific browser assertion was missed during implementation; the separate all-owner shared browser witness passed. Failing log saved locally as tmp/ci-failure-PyAutoEars-112691117119.log (run 37590669940, job 112691117119).

    At the audit: Heart #289, Hands #305, Memory #120, Pulse #22, Insight #10, Nerves #190, Gut #26 and Scientist #47 have all jobs green. Eyes #22 lint pending. Ears #18 red. No automatic rerun or monitor armed. Task and worktrees retained. Next authorized development action: fix Ears browser link assertion to distinguish work links from the new Update link, run that exact owner browser check, ship the fix, then resume /prm. The prm skill requires stopping on red CI, so no code was changed in this merge run.

  3. Jammy2211 commented on Oct 7, 2026

    @Jammy2211
    ContributorAuthor

    Dashboard freshness

    Shipped the shared freshness footer across all thirteen organ dashboards. Beside “Read the prompt”, smaller text reports “Last updated”: green below one hour, yellow below 24 hours, red thereafter, grey for unknown/incomplete collection. Native disclosure shows the exact UTC timestamp; Update opens the owning refresh workflow. Relative age advances without confusing page reload time with a successful collection. Pulse/Insight preserve scientific evidence/capture times and offline receipts.

    The Ears CI failure was an outdated count that included the newly added Update anchor. Commit 74ecc83 scopes the two existing work links separately and explicitly verifies the Update destination. Exact Playwright reproduction now passes; all 74 Ears Python tests and the state contract pass. Every current-head CI run/matrix job was green before merging all eleven PRs, shared Brain core first. Git ancestry and GitHub MERGED receipts independently prove every claimed branch landed.

    Validation: 3,945 Python cases across complete suites and targeted reruns; 120 browser layout cases; 14 clipboard checks; exact Ears owner-browser regression and CI. Independent review findings on receipt semantics and incomplete collection were fixed before shipment. Evidence retained locally in PyAutoMind/tmp/dashboard-freshness/.

    User explicitly authorized fixing red and /prm. Canonical Heart retains the disclosed, acknowledged YELLOW shared-standards manifest drift and stale release evidence; no RED reason, no release attempted. This organ/dashboard change creates no library release obligation.

    Merged PRs:

    Reconciliation: batch_slice.md, board_without_gh_phase2_legs.md and brain_board_follow_ups.md remain because resemblance does not establish coverage; follow-up door /intake reconcile draft/feature/pyautobrain. Historical coordination references remain, with current overlap instructions repointed to this completion record. Dashboard regeneration and lifecycle validation accompany this record.

    Publication: all thirteen live Pages dashboards verified with one shared freshness footer and the correct owner Update link. All thirteen refresh workflows succeeded. Scientist was queued behind obsolete scheduled run 37510712274; cancelling that old run allowed current-main publication 37591917906 to succeed. Brain/Ears currently show honest unknown for incomplete collection, rather than a fabricated fresh stamp.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions