commits
Prevent accidental data loss by requiring user confirmation before
"Delete key" and "Delete everything" buttons execute.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Split edit_renderer, moderation_ui, qr_widget, reply_renderer,
timestamp_insert, and timestamp_observer out of the monolithic
render.js to improve readability and maintainability.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Extract the repeated hashtag-to-link logic into a shared linkHashtags
helper, removing two near-identical loops in renderer.paragraph.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move normalizeTimestamp, isHash, and getOpenedFromQuery into a shared
utils module to reduce duplication across adder.js and
feed_orchestrator.js.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Collapse the five-branch enqueuePost logic into three clear cases:
initial load (render immediately), newer post while scrolled down
(buffer behind banner), and everything else (render immediately).
Preserves the active-feed guard and local-post bypass from upstream.
Fix flushPending to always update oldestVisibleTs with Math.min
instead of only setting it when previously unset.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Refresh timestamps on visibility
Collapse the five-branch enqueuePost logic into three clear cases:
initial load (render immediately), newer post while scrolled down
(buffer behind banner), and everything else (render immediately).
Preserves the active-feed guard and local-post bypass from upstream.
Fix flushPending to always update oldestVisibleTs with Math.min
instead of only setting it when previously unset.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>