{% if debug_mode %} {% endif %}
{% for folder in folder_options %} {% endfor %}
{# Same picker as the per-post Re-fetch menu, applied to every article in the batch: "Original"/"Pub date" land each one on its own date, only "Now" is uniform across the whole scope. A separate class/variable from the per-post one (ctx-scope-refetch-date-opt / refetchScopeDateChoice) — sharing state would let opening one menu silently reset the other's choice, and nothing here should be pre-selected either. #}
Land on:
{# Bulk-only siblings of ctx-post-mark-read: both directions always shown (like the star/unstar pair below) rather than one mixed-selection toggle — there is no single "obvious direction" to collapse to when the selection spans both read states. #} {# Bulk-only, both directions shown regardless of the selection's mixed star state — add and remove are equally common triage actions here (the Saved view especially), so there's no one "obvious direction" to collapse to. Same reasoning as the read/unread pair above. #}
{# Works on any post — the right-clicked one, or the whole multi-selection. #} {# "shown", not "visible": this moves everything matching the active filters, including rows scroll-chunking has not painted yet. #} {# Shown only when every post in play (the right-clicked one, or the whole multi-selection) has a video_id — see contextSelectedPosts in app.js. #}
{# Bulk-only: queues the selection into the paced background re-fetch job. #} {# Edit and Re-fetch each collapse into a flyout: they are four and four items that only matter once you have decided to change this post, and inline they pushed the everyday actions (mark read, copy URL) down a menu nobody wants to read. #}
Editchevron_right
Re-fetchchevron_right
{# Where the re-fetch lands, not which mode fetches it — applies to all three buttons below. Nothing pre-selected (decided 2026-08-24): unset means today's default (a capture bumps to Now, a feed entry keeps its date), same as before this existed. #}
Land on:
{# Whole-page capture instead of readability extraction — for a post whose normal re-fetch keeps coming back wrong. #} {# The archive by explicit request. The automatic fallback only fires when the live fetch is REFUSED; a publisher serving a page that passes every guard but is no longer the article is the case that otherwise sends you to archive.org by hand. #} {# Undo. Lives here because a bad re-fetch is what you are undoing, and the header icon it replaces was unfindable exactly when needed. Shown only when there IS a stored original. #}
{% if debug_mode %}{% endif %}
{# Scoped to the CURRENT view, not the whole tag: the case this serves is "drilled down to a single feed with stars I don't need". The label carries the server's count so the set is stated before the click. #}