TUI: shared row renderers #131

Closed
opened 2026-08-18 10:45:25 +00:00 by nalum · 0 comments
Owner

From the surface parity report (2026-08-18), section 5.3 and consolidation target 9.

The TUI has no shared row-renderer layer — only atoms. today.go, jobs.go and lists.go each re-implement the job row (repeat glyph only in jobs.go). Event rows fork ×2 (today.go drops end range, repeat, participants, cancelled state). Member rows fork ×9 (jobs.go assign picker has no mark; roleFromName/familyRoleFromName are byte-identical duplicates). The "↑/↓ N more" overflow block is copied ~8×, the mutate wrapper 7+×, cursor-restore 8×.

Target: itemLine(item, opts), eventLine, hoisted rewardLine, memberLabel, and a listBlock scaffold helper. Also closes the bounty-math and enum-leak defects (separate issue).

From the surface parity report (2026-08-18), section 5.3 and consolidation target 9. The TUI has no shared row-renderer layer — only atoms. today.go, jobs.go and lists.go each re-implement the job row (repeat glyph only in jobs.go). Event rows fork ×2 (today.go drops end range, repeat, participants, cancelled state). Member rows fork ×9 (jobs.go assign picker has no mark; `roleFromName`/`familyRoleFromName` are byte-identical duplicates). The "↑/↓ N more" overflow block is copied ~8×, the `mutate` wrapper 7+×, cursor-restore 8×. Target: `itemLine(item, opts)`, `eventLine`, hoisted `rewardLine`, `memberLabel`, and a `listBlock` scaffold helper. Also closes the bounty-math and enum-leak defects (separate issue).
nalum closed this issue 2026-08-18 16:43:43 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
eagraiclainne/app#131
No description provided.