Skip to content

intake: read task dates and render the dashboard's Recent table - #249

Merged
Jammy2211 merged 1 commit into
mainfrom
claude/pyautomind-task-dates-recent-06v1g7
Aug 23, 2026
Merged

intake: read task dates and render the dashboard's Recent table#249
Jammy2211 merged 1 commit into
mainfrom
claude/pyautomind-task-dates-recent-06v1g7

Conversation

@Jammy2211

Copy link
Copy Markdown
Contributor

Pairs with PyAutoMind, which now dates every task the moment it leaves the backlog (REFERENCE.md → "Task dates"). The census reads those dates back and the dashboard grows the one section laid out by date rather than by state.

Reading the dates

  • parse_registry reads each entry's date via the key that names its event (issued: / parked: / filed:, most-specific first). A date sitting in another field's prose stays invisible — that is the un-parseable habit the convention replaced, and reading it back would re-legitimise it.
  • parse_header reads a prompt's own Issued: copy as the fallback that keeps an orphan in-flight prompt (no registry row claims it) dated rather than dropping it out of the feed.
  • completed_records walks complete/<YYYY>/<MM>/ newest-first and stops one month after it has enough. The ledger is 1000+ files and a 20-row table must not open all of them on every render. A record with no completed: field dates by the month folder the lifecycle engine filed it into — coarse, but never wrong about the month, and the alternative is dropping a fifth of the ledger out of the feed.

The Recent section

Sits between Backlog and Epics in both the markdown page and its Pages twin (a real <table>, with a copy button per row on the HTML side). Every other section answers "what should I do now?"; recency is orthogonal to state, so none of them can answer "what has been happening?".

Live work is selected first and completions fill the rest. A straight date sort on a Mind that ships ~200 records a month is twenty receipts and no work — it would have hidden the dates on the very page they were added for. So rows are selected live-first (in flight, parked, planned), completions fill whatever room is left, and the selected set is then sorted by date like any other feed. On a quiet Mind that changes nothing.

In flight / Parked / Planned rows now also carry their date as a facet, because a status line reads very differently against a row issued yesterday than against one issued in May.

Testing

  • 15 new tests in tests/test_intake_dashboard.py: the merged feed, the event label per registry key, newest-first ordering, section placement, a busy ledger never crowding out live work, undated rows being absent rather than padded, registry rows linking their own heading anchor, the prompt header fallback and the registry row beating it, prose not counting, folder-dated records, the HTML twin's copy buttons, and the bounded ledger scan.
  • python3 -m pytest tests/ — 395 passed.
  • bin/pyauto-brain intake dashboard --check — clean against the regenerated PyAutoMind pages.
  • Rendered dashboard.html checked at 430px in both light and dark themes.

Generated by Claude Code

The Mind now dates every task the moment it leaves the backlog (PyAutoMind
REFERENCE.md "Task dates"). The census reads those dates back and the dashboard
grows the one section laid out by DATE rather than by state.

- parse_registry reads each entry's date via the key that names its event
  (`issued:` / `parked:` / `filed:`, most-specific first); a date sitting in
  another field's prose stays invisible, since that is the un-parseable habit
  the convention replaced. parse_header reads a prompt's own `Issued:` copy as
  the fallback that keeps an orphan in-flight prompt dated.
- completed_records walks complete/<YYYY>/<MM>/ newest-first and stops once it
  has enough — the ledger is 1000+ files and a 20-row table must not open all
  of them on every render. A record with no `completed:` field dates by the
  month folder the lifecycle engine filed it into.
- Recent sits between Backlog and Epics in both the markdown page and its
  Pages twin (a real table, with a copy button per row on the HTML side).
  Live work is SELECTED first and completions fill the rest: a straight date
  sort on a Mind that ships two hundred records a month is twenty receipts and
  no work, which would hide the dates on the very page they were added for.
- In flight / Parked / Planned rows now carry their date as a facet too.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L4HPWjv5rdzBAkKpfW1SbR
@Jammy2211
Jammy2211 merged commit afdd6f4 into main Aug 23, 2026
2 checks passed
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.

2 participants