Skip to content

queue: line kinds — a heading is not a paper you can download - #62

Merged
Jammy2211 merged 1 commit into
mainfrom
claude/pyautomemory-queue-line-kinds
Aug 25, 2026
Merged

Jammy2211 merged 1 commit into
mainfrom
claude/pyautomemory-queue-line-kinds

Conversation

@Jammy2211

Copy link
Copy Markdown
Collaborator

What the backfill's misses actually were

The ref backfill (#61) resolved 125 of 230 lines. Reading the 105 misses, a good
share were never papers at all: __Dark Matter__ and five other bold groupings,
tracking-wrapped links pasted out of Outlook, stray lines of prose. The board was
rendering each as a paper — a search link, three issue buttons, a slot in the
"N waiting" count — and the nightly backfill was spending an arXiv lookup on each
of them, every night, forever.

Line kinds

_parse_paper now decides what a line is:

Kind Shape Behaviour
subhead __Bold Text__ alone on a line renders as a heading; no link, no buttons, not counted, never looked up
note NOTE <text>, or a bare non-arXiv link renders muted; a link is still clickable, labelled by host rather than 700 characters of safelink
paper everything else counted, gets its buttons, gets looked up

NOTE is a deliberate sibling of the existing DONE prefix — same shape, same
never-delete rule.

The marker

backfill_arxiv_refs.py --mark-unresolved writes the NOTE prefix in bulk for
lines it could not identify. Opt-in, and never used by the nightly run: an
unresolved title is more often a real paper whose line lost something on the way
in (a LaTeX redshift, a wrapped subtitle) than a genuine non-paper, and those
deserve re-trying once a human fixes the line. The nightly keeps asking; a human
who has read a dry run retires the ones that are genuinely prose.

A fix that falls out of the same parse

A line that is only an arXiv link was read as a titleless paper with no ref —
so it got a search box instead of the PDF it plainly names. It is now a paper
labelled arXiv:<id>, with its abstract page and its 📄 button.

Effect on the live queue

before after
Papers waiting 232 223 (6 headings + 3 links stop pretending)
With a 📄 PDF button 127 133
Search-only 105 90

6 new tests; 113 pass, make validate clean.


Generated by Claude Code

The backfill's 105 misses turned out not to be 105 papers arXiv couldn't find.
A good share of them were never papers: `__Dark Matter__` and five other bold
groupings, tracking-wrapped links pasted from email, stray prose. The board was
rendering each one as a paper — a search link, three issue buttons, a slot in
the "N waiting" count — and the nightly backfill was spending an arXiv lookup on
each of them, every night, forever.

So a queue line now has a kind, decided in `_parse_paper`:

* `__Bold__` on its own line is a **subhead** — a grouping the human wrote.
  Renders as a heading: no link, no buttons, not counted.
* `NOTE <text>` is a **note** — an annotation, sibling of the `DONE ` prefix
  (same shape, same never-delete rule). A bare non-arXiv link is one
  automatically, rendered as a link labelled by host rather than 700 characters
  of Outlook safelink.
* Everything else is a **paper**, and only papers are counted, given buttons, or
  looked up on arXiv.

`backfill_arxiv_refs.py --mark-unresolved` writes the `NOTE ` prefix in bulk for
lines it could not identify. Deliberately opt-in and never used by the nightly:
an unresolved title is more often a real paper whose line lost something on the
way in (a LaTeX redshift, a wrapped subtitle) than a genuine non-paper, and
those deserve re-trying once a human fixes the line.

One fix falls out of the same parse: a line that is *only* an arXiv link was
being read as a titleless paper with no ref, so it got a search box instead of
the PDF it plainly names. It is now a paper labelled `arXiv:<id>`, with its
abstract page and its 📄 button.

On the live queue: 6 headings and 3 links stop pretending to be papers, the
waiting count drops 232 → 223, and PDF coverage rises 127 → 133.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PjWdVFPn2WDzcqpMXTMp7G
@Jammy2211
Jammy2211 merged commit 2dc8da4 into main Aug 25, 2026
1 check passed
@Jammy2211
Jammy2211 deleted the claude/pyautomemory-queue-line-kinds branch August 26, 2026 20:06
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