Skip to content

feat(cortex): the check-in stamp is a box, the map is a map - #357

Merged
Jammy2211 merged 1 commit into
mainfrom
feature/cortex-checkin-stamp-prominent
Sep 4, 2026
Merged

Jammy2211 merged 1 commit into
mainfrom
feature/cortex-checkin-stamp-prominent

Conversation

@Jammy2211

@Jammy2211 Jammy2211 commented Sep 4, 2026 •

Copy link
Copy Markdown
Contributor

The Cortex board's one freshness fact — when the science was last checked in — was a bold line in a paragraph, under two blurbs that restated what the page already is. This makes it the first thing you see, and makes it read on your own clock.

What changed

The check-in stamp is a box, not a line. <div class="checkin" id="checkin-box"> — a mark, a small uppercase label, the stamp at 1.6rem tabular-nums, and a note. The page's script paints it on load:

box mark note
under 3 h fresh-ok (green border + tint) ✓ fresh · N min ago (N h past an hour)
over 3 h, or unparseable fresh-bad (red border + tint) ✗ stale, paste the check-in
never checked in fresh-bad ✗ never checked in

The threshold is the new module constant CHECKIN_FRESH_MINUTES = 180, interpolated into _CHECKIN_JS (was a hard-coded 60). The age is still computed on load and nowhere else — a static page cannot know it is stale at render, and a doc-only push must not be able to fake freshness. With JS off the box is neutral and still shows the date. The markdown twin renders ### Last check-in: <stamp>.

Two blurbs gone. REFRESH_BLURB is deleted from the Cortex renderer (the Mind's _intake.py keeps its own, untouched): "only as current as they are" told the reader nothing the box does not now say in their own units. The Projects section's blurb is "" — the section is the map, and the cards say what they are. Both h2() helpers tolerate an empty blurb: the markdown one stops at the link with no dangling —, the HTML one emits no empty <p class="muted">.

The Last updated footnote stays in both twins and keeps the line prefixes dashboard_body strips (> **Last updated and <div class="fresh">), so --check drift behaviour is unchanged — pinned by the existing test_the_check_compare_ignores_the_date_but_not_the_content.

Project names are readable. Every shown card is wrapped in <section class="project">…</section>, so .project h3 can size a project's name at 1.35rem, bold, accent-ruled — without touching the shared h3 in board/_theme.py, which is calibrated for card-internal headings on every other board.

Nothing-open projects are a table, not a fold. They leave the <details> at the foot of the map and become a Nothing open table under the Summary: Project | Status | Phases, in project_order. Same data, in the place a reader is already scanning rows.

Tests

tests/test_cortex_conductor.py — 81 passed; full suite 910 passed. The stamp assertions move to ### Last check-in:; test_the_html_twin_ages_the_stamp_on_the_viewers_clock now pins /60000>180, both tone classes and their CSS, ✓/✗, both notes, and the absence of the refresh blurb from both twins; the folded-project test becomes test_a_project_with_nothing_open_is_a_row_under_the_summary and pins the table row in both twins plus the absence of "project(s) with nothing open"; a new test_the_map_is_a_map_not_a_paragraph pins the blurb's absence, the undangled link line, .project h3{, and one balanced <section class="project"> per shown project.

Merge order

This PR first. PyAutoLabs/PyAutoCortex#15 carries the regenerated dashboard.md + dashboard.html; its refresh check renders against PyAutoBrain main and stays red until this merges.

Closes #356

🤖 Generated with Claude Code

https://claude.ai/code/session_01JYs4cX2wT5vsZScjLNLZif

The board's one freshness fact was a bold line in a paragraph, sitting under
two blurbs that repeated what the page already is. It now reads as the first
thing on the page and reads on the viewer's own clock.

- The check-in stamp is a bordered box: a mark, the label, the stamp at
  1.6rem, and a note. The script paints it green (`fresh-ok`, `✓`,
  `fresh · N min ago`) or red (`fresh-bad`, `✗`, `stale, paste the
  check-in` / `never checked in`) on load, at 3 h — `CHECKIN_FRESH_MINUTES`,
  up from an hour. Age is still computed on load and nowhere else: a static
  page cannot know it is stale at render. The markdown twin renders
  `### Last check-in: <stamp>`.
- `REFRESH_BLURB` is gone from the Cortex page (the Mind keeps its own): the
  "only as current as they are" sentence told the reader nothing the box does
  not now say in their own units. The `Last updated` footnote stays — both
  twins keep the prefixes `dashboard_body` strips, so `--check` is unchanged.
- The Projects blurb is gone too, and every card is wrapped in
  `<section class="project">` so a project's name can be a 1.35rem
  accent-ruled heading rather than the shared card-internal `h3`. Both
  `h2()` helpers now tolerate an empty blurb with no dangling dash.
- Projects with nothing open move out of a fold at the foot of the map and
  into a `Nothing open` table under the Summary — project, status, phases.

Closes #356

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JYs4cX2wT5vsZScjLNLZif
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(cortex): big green/red check-in stamp, no blurbs, readable project names, nothing-open table

1 participant