main · last commit
18 hours ago ·
7bghjra2
sr-ht-ecore-n3u Add a shared pager partial and inc/dec/agotime/shorttime helpers to chrome
Lined Up
bd update sr-ht-ecore-n3u --claim
bd close sr-ht-ecore-n3u
| Created by | Eugene Blikh |
| Owner | bigbes@gmail.com |
| Created | 2026-08-17T20:36:52Z |
| Updated | 2026-08-17T20:36:52Z |
What is wrong: four services (bench, coverage, curator, dolt) each hand-roll their own pagination markup — four different HTML shapes, one of them a <button> instead of a link — plus byte-equivalent inc/dec arithmetic copied three times, plus two incompatible ago time-formatting helpers (coverage: short units, forward-facing, reads time.Since directly; dolt: long units, past-facing, clamps the future, swappable timeNow) — while sr-ht-ecore/chrome.Funcs already provides a third phrasing, reltime. sr-ht-ecore/chrome ships none of a pager, inc/dec or ago, so there is nowhere for a new service to import these from and every donor copy re-derives its own.
Why it matters: this is the most visible inconsistency to a user hopping between services on the same instance. Upstream SourceHut ships a shared core.sr.ht/srht/templates/pagination.html and ecore currently has no equivalent. RelTime's own doc-comment names exactly this class of drift as the reason it was hoisted into chrome in the first place ('the copies disagreed about the future... for the same instant').
Correct variant: none of the four existing copies alone — dolt's clock-swappable, past-facing ago is judged the better implementation; coverage's short units serve a legitimately different, valid need, so the fix may need two ago variants rather than one.
Fix: add srht-pager to sr-ht-ecore/chrome/templates/chrome.tmpl over a chrome.Pager{PrevHref, NextHref, Page, TotalPages} dot, plus inc/dec and agotime/shorttime to chrome.Funcs(). Converting bench/coverage/curator/dolt to use it and deleting their private copies is separate follow-up work per consumer repo, not part of this issue.
Confidence: verified.
Audit: D40 (cross-repo audit, 2026-08-17)
No outgoing dependencies.
Nothing depends on this issue.
| id | sr-ht-ecore-n3u |
| content_hash | d2d6482ab7bda4ccd731bac37ca96f8b241666d6991211ad7a6df42ba67e3736 |
| title | Add a shared pager partial and inc/dec/agotime/shorttime helpers to chrome |
| description | What is wrong: four services (bench, coverage, curator, dolt) each hand-roll their own pagination markup — four different HTML shapes, one of them a <button> instead of a link — plus byte-equivalent inc/dec arithmetic copied three times, plus two incompatible ago time-formatting helpers (coverage: short units, forward-facing, reads time.Since directly; dolt: long units, past-facing, clamps the future, swappable timeNow) — while sr-ht-ecore/chrome.Funcs already provides a third phrasing, reltime. sr-ht-ecore/chrome ships none of a pager, inc/dec or ago, so there is nowhere for a new service to import these from and every donor copy re-derives its own. Why it matters: this is the most visible inconsistency to a user hopping between services on the same instance. Upstream SourceHut ships a shared core.sr.ht/srht/templates/pagination.html and ecore currently has no equivalent. RelTime's own doc-comment names exactly this class of drift as the reason it was hoisted into chrome in the first place ('the copies disagreed about the future... for the same instant'). Correct variant: none of the four existing copies alone — dolt's clock-swappable, past-facing ago is judged the better implementation; coverage's short units serve a legitimately different, valid need, so the fix may need two ago variants rather than one. Fix: add srht-pager to sr-ht-ecore/chrome/templates/chrome.tmpl over a chrome.Pager{PrevHref, NextHref, Page, TotalPages} dot, plus inc/dec and agotime/shorttime to chrome.Funcs(). Converting bench/coverage/curator/dolt to use it and deleting their private copies is separate follow-up work per consumer repo, not part of this issue. Confidence: verified. Audit: D40 (cross-repo audit, 2026-08-17) |
| design | |
| acceptance_criteria | |
| notes | |
| status | open |
| priority | 3 |
| issue_type | task |
| assignee | NULL |
| estimated_minutes | NULL |
| created_at | 2026-08-17T20:36:52Z |
| created_by | Eugene Blikh |
| owner | bigbes@gmail.com |
| updated_at | 2026-08-17T20:36:52Z |
| closed_at | NULL |
| closed_by_session | |
| external_ref | NULL |
| spec_id | |
| compaction_level | 0 |
| compacted_at | NULL |
| compacted_at_commit | NULL |
| original_size | NULL |
| sender | |
| ephemeral | 0 |
| wisp_type | |
| pinned | 0 |
| is_template | 0 |
| mol_type | |
| work_type | |
| source_system | |
| metadata | �{} |
| source_repo | |
| close_reason | |
| event_kind | |
| actor | |
| target | |
| payload | |
| await_type | |
| await_id | |
| timeout_ns | 0 |
| waiters | |
| hook_bead | |
| role_bead | |
| agent_state | |
| last_activity | NULL |
| role_type | |
| rig | |
| due_at | NULL |
| defer_until | NULL |
| no_history | 0 |
| started_at | NULL |
| is_blocked | 0 |
| id | 01a01170-fa99-7670-8617-ae1075aeabe1 |
| issue_id | sr-ht-ecore-n3u |
| event_type | created |
| actor | Eugene Blikh |
| old_value | |
| new_value | |
| comment | NULL |
| created_at | 2026-08-17T23:36:51Z |
No comments.