Skip to content

intake: hold 50 in the Recent feed, show 10, reveal the rest on tap - #251

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

intake: hold 50 in the Recent feed, show 10, reveal the rest on tap#251
Jammy2211 merged 1 commit into
mainfrom
claude/pyautomind-task-dates-recent-06v1g7

Conversation

@Jammy2211

Copy link
Copy Markdown
Contributor

Follow-up to #250. The Recent table is a glance, not a log — but capping the feed at what fits on screen is the wrong trade, because a quiet fortnight and a busy week want different depths.

The feed now holds 50 (RECENT_MAX) and shows 10 (RECENT_PAGE), with the rest one tap away. Each surface reveals it with what that surface actually renders:

Pages twin — every row ships in the DOM with the overflow marked hidden, and a button flips ten at a time, retiring itself when the feed is exhausted. Hidden rather than absent, so a reader with JS off gets the whole feed instead of ten rows and a dead button.

Markdown page — GitHub strips that script, so the reveal is <details>, nested: each tap shows the next ten and leaves another behind it. Sibling blocks would let a reader open page 4 without page 3, which is not what "show me more" means on a list ordered by date. Each revealed page carries its own header row, since a markdown table cannot span an HTML block boundary.

Also fixes the blurb printing literal backticks on the Pages page — it is shared with the markdown renderer and was never run through _summary_label.

Verification

Driven in Chromium against a 62-task fixture (feed caps at 50):

initial        (10 visible, '… 10 more (40 left)')
after click 1  (20 visible, '… 10 more (30 left)')
after click 2  (30 visible, '… 10 more (20 left)')
after click 3  (40 visible, '… 10 more (10 left)')
after click 4  (50 visible, button removed)

Markdown on the same fixture: 10 rows, then 4 nested <details>, summaries … 10 more (40 left)(10 left). Screenshots checked at 430px in both themes.

  • 7 new tests: feed depth vs page size, markdown nesting and per-page headers, no reveal when the feed fits on one page, the HTML hidden-row split and button, every row present for a JS-off reader, and the blurb's code spans.
  • python3 -m pytest tests/ — 401 passed.

Note on today's data: PyAutoMind currently has exactly 10 dated live tasks, so the regenerated pages show 10 rows and no — there is nothing past the first page yet. The paging appears on its own as the registries grow.

Merge before the paired PyAutoMind PR (its refresh check renders using this repo's main).


Generated by Claude Code

The table is a glance, not a log. Twenty rows already pushed the Epics below a
scroll on a phone, and capping the feed at what fits on screen is the wrong
trade: a quiet fortnight and a busy week want different depths.

So the feed now holds 50 (RECENT_MAX) and shows 10 (RECENT_PAGE), with the rest
one tap away — and each surface reveals it with what it actually renders:

- Pages twin: every row ships in the DOM, the overflow marked `hidden`, and a
  `…` button flips ten at a time before retiring itself. Hidden rather than
  absent, so a reader with JS off gets the whole feed instead of ten rows and a
  dead button.
- Markdown page: GitHub strips that script, so the reveal is `<details>` —
  NESTED, so each tap shows the next ten and leaves another `…` behind it.
  Sibling blocks would let a reader open page 4 without page 3, which is not
  what "show me more" means on a list ordered by date. Each page carries its
  own header row, since a markdown table cannot span an HTML block boundary.

Also fixes the blurb printing literal backticks on the Pages page — it is
shared with the markdown renderer and was never run through `_summary_label`.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L4HPWjv5rdzBAkKpfW1SbR
@Jammy2211
Jammy2211 merged commit ad927eb into main Aug 23, 2026
2 checks passed
Jammy2211 pushed a commit that referenced this pull request Aug 23, 2026
The feed held 50 and could only find 10, because it read every bucket EXCEPT
the largest: `draft/` is 150 prompts against a handful of registry rows, so
skipping it meant Recent saw almost none of what had been happening. The
paging added in #251 had nothing to page.

Drafts now carry their own date (PyAutoMind grows a `Filed:` prompt header) and
the census reads it back, so a filed prompt is an event like any other. That
fills the feed: 45 filed, 3 parked, 1 issued, 1 found on today's Mind, and the
`…` reveal finally does something.

Epic members stay out, as they do in every pick list on the page — they are
worked in order through their epic, and a Recent row hands out a standalone
`/start_dev`.

`_header_date` replaces the inline `Issued:` lookup: `Issued:` wins over
`Filed:` when a prompt carries both, since an issued prompt keeps the `Filed:`
it had as a draft and the later event is the one that dates the task.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L4HPWjv5rdzBAkKpfW1SbR
Jammy2211 added a commit that referenced this pull request Aug 23, 2026
The feed held 50 and could only find 10, because it read every bucket EXCEPT
the largest: `draft/` is 150 prompts against a handful of registry rows, so
skipping it meant Recent saw almost none of what had been happening. The
paging added in #251 had nothing to page.

Drafts now carry their own date (PyAutoMind grows a `Filed:` prompt header) and
the census reads it back, so a filed prompt is an event like any other. That
fills the feed: 45 filed, 3 parked, 1 issued, 1 found on today's Mind, and the
`…` reveal finally does something.

Epic members stay out, as they do in every pick list on the page — they are
worked in order through their epic, and a Recent row hands out a standalone
`/start_dev`.

`_header_date` replaces the inline `Issued:` lookup: `Issued:` wins over
`Filed:` when a prompt carries both, since an issued prompt keeps the `Filed:`
it had as a draft and the later event is the one that dates the task.


Claude-Session: https://claude.ai/code/session_01L4HPWjv5rdzBAkKpfW1SbR

Co-authored-by: Claude <noreply@anthropic.com>
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