Owners page: two-column repos, last-active stamps, clearer owner headers #142
Labels
No labels
actions
bug
cli
duplicate
enhancement
fork
forum
git storage
help wanted
insights
invalid
issues
moderation
oidc
ownership transfer
packages
pr/merge protection rules
projects
pull requests
question
releases
sponsorships
tags
webhooks
wiki
wontfix
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
crueber/walhub#142
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Owners page: two-column repos, last-active stamps, clearer owner headers
Follow-up to #117/#137 (the calm divider redesign). Three improvements:
<DateTime>component from #133 (relative + local-tz hover). Source of truth: decide in the change — latest commit date, manifest/head activity, or summary field (document the choice + cost; capped lists keep it bounded; never block first paint on it).Acceptance criteria
node --testgreen; browser check dark + light, zero console errors; no new deps.Fix is up: #144 (branch fix/issue-142, scratch worktree off origin/main — main worktree untouched).
What it does (frontend + doc only, §2.3.1 + FIXED entry in 12_web_ui.md):
Tests: node --test web/test/unit/*.test.js 317/317 green (incl. new activity.test.js: commit_date preference, author_date fallback, empty→null, TTL contract). Browser (shared chrome-cdp vs local server on scratch port, seeded alice/bob repos): dark+light @1280 two columns with resolved stamps + time titles, 500px single column, /alice grid verified; rows keyboard-unchanged (plain anchors, DOM order = visual order). No new npm deps.
Deviations/notes: (a) 'zero console errors' holds except ONE handled entry: the empty repo's commits 404 is logged by Chrome as a failed resource even though the UI handles it (no tray error, correct text) — avoiding it would cost an extra summary GET per row or a wire-behavior change (404→200, Rust-compat risk under law 5), so documented as accepted. (b) / rows lose the text-sm link size (now share /:owner base-size rows — one row markup everywhere). (c) Env note: scratch servers on :18081 were SIGTERM'd twice by persons unknown (shared box, other agents active); verification completed on :18771.
Review of PR #144 (fix/issue-142) — verified in scratch worktree off origin/fix/issue-142 (removed afterward). No browser (per brief); node tests + reasoning + vite build. Main worktree untouched (read-only).
TESTS (scratch):
node --test web/test/unit/*.test.js→ 317/317 pass (incl. new activity.test.js: commit_date preference, author_date fallback, empty/missing → null, TTL contract). Note: first run showed 2 fails (data-guard, reaction-cache) purely from missing web/node_modules in the fresh worktree (ERR_MODULE_NOT_FOUND solid-js); green after provisioning node_modules. Vite build → clean (121 modules, built in ~1.5s).REVIEW, point by point:
grid grid-cols-1 gap-x-6 gap-y-1 sm:grid-cols-2in Owners.jsx:50 and Repos.jsx:54 — collapses to one column below sm; no order-* utilities so DOM order = visual order = newest-first; #117 caps/overflow (newestFirst/pageSlice/MAX_*, "+N more →" Owners.jsx:56-62) untouched. /:owner stays uncapped and now shares RepoRow — link classes identical to its old row, so no /:owner regression (only addition is the stamp).commits?n=1with server-side ref→HEAD default verified (internal/api/commits.go:18); "last commit" meaning + honest-proxy note (branch-delete/tag-only pushes don't move it) make theactivelabel honest; summary-shape claim verified (summaryBody has no date field, internal/api/summary.go:12-22). commit_date/author_date fields verified in SDK types (web/sdk/src/types.js:9); 404→{commits: []}mapping via SDKerr.notFoundverified (web/sdk/src/errors.js:25) with backend unborn-HEAD→404 verified (internal/api/bind_wal.go:178-187).activity:{o}/{r}keys with cross-page reuse, placeholder-first + non-blocking independent rows, #117 caps bound it, and batching would need a new backend endpoint (dependency/seam cost disproportionate here). Honest worst case is stated in the component header + doc. One observation (not blocking, pre-exists from #137): data.js LRU cap is 400 entries, so a maxed-out page (1051 keys) churns within the TTL — typical instances are far below caps.text-base font-bold tracking-tight+ repo-count meta + divide-y sections (Owners.jsx:31-42). Non-blocking nit: the doc (§2.3.1 + FIXED entry) says "a full step above the text-sm rows," but shared RepoRow dropped the old owners-rowtext-smon the link (Repos.jsx:22-27), so header-vs-link is distinguished by weight/tracking/spacing, not scale. Suggest a one-word doc touch-up ("by weight" / "above the text-xs meta"); not worth a push on its own.No fixes pushed — nothing found that rises above the doc nit. MERGE RECOMMENDATION: ready to merge.
Fixed by PR #144 (review: cost explicitly accepted, source verified truthful; 317/317 node tests), merged. Closing.