Skip to content

feat(ui): adds created and updated date display to issue and PR rows#39

Merged
wgordon17 merged 19 commits intogordon-code:mainfrom
wgordon17:worktree-date-display
Mar 31, 2026
Merged

feat(ui): adds created and updated date display to issue and PR rows#39
wgordon17 merged 19 commits intogordon-code:mainfrom
wgordon17:worktree-date-display

Conversation

@wgordon17
Copy link
Copy Markdown
Member

Summary

  • Adds shortRelativeTime() compact formatter (now, 5m, 3h, 7d, 2mo, 1y) and dual inline date display on ItemRow showing both created and updated times
  • Wires refreshTick from DashboardPage through tabs for reactive time display with 60s threshold and display-equality guard to suppress redundant updates
  • Uses semantic <time> elements with datetime attributes, aria-label for screen readers, and human-readable tooltips via toLocaleString()

- splits timeInfo into staticDateInfo and dateDisplay memos (perf, clarity)
- adds future-timestamp guard to relativeTime (clock skew consistency)
- aligns Date.parse usage across relativeTime and shortRelativeTime
- documents void props.refreshTick reactive dependency pattern
- migrates WorkflowRunRow to semantic <time> element with createMemo
- wires refreshTick through ActionsTab to WorkflowRunRow
- adds boundary tests (59s/60s, 29d/30d, 11mo/12mo)
- adds datetime attribute, zero-diff, and future relativeTime tests
- adds 60s wall-clock tick for relative time freshness (cor-1)
- memoizes WorkflowRunRow tooltip with Created prefix (cq-1, cq-2)
- renames hasUpdate to shouldShowUpdated (cq-5)
- simplifies duplicate reactivity comments (cq-4)
- switches ItemRow test locators to querySelector (gordon-codegh-5)
- fixes double-mock pattern with vi.mocked (qa-4)
- adds 2mo, invalid date, and title attribute tests (qa-1, qa-2, qa-3)
- adds external-link icon on repo group headers linking to GitHub per tab
- moves scrollbar to viewport edge via page scroll with sticky tabs
- adds depDashboard filter with toggle pill, hidden by default
- fixes detectReorderedRepos false flash on repo add/remove
- extracts ExternalLinkIcon shared component
- preserves depDashboard toggle across resetAllTabFilters
- uses schema defaults in resetTabFilter instead of hardcoded all
- Extracts RepoGitHubLink shared component, replacing duplicated anchor markup in IssuesTab, PullRequestsTab, and ActionsTab

- Moves clockInterval inside onMount to match coordinator lifecycle pattern

- Promotes depDashboard from string enum in tabFilters to top-level boolean (hideDepDashboard), eliminating resetAllTabFilters preserve hack

- Expands void refreshTick comments to explain SolidJS dependency tracking mechanism

- Normalizes Date.parse() usage in formatDuration for consistency with relativeTime/shortRelativeTime

- Adds tests for mixed valid/invalid dates, 360-day boundary, external link rendering, clock cleanup specificity, and hideDepDashboard lifecycle
@wgordon17 wgordon17 force-pushed the worktree-date-display branch from fc99098 to ff9d4cc Compare March 31, 2026 17:56
@wgordon17 wgordon17 merged commit fbc6b74 into gordon-code:main Mar 31, 2026
1 check passed
@wgordon17 wgordon17 deleted the worktree-date-display branch March 31, 2026 18:07
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.

1 participant