fix: keyboard access to a home row's runs, refresh stale home table comments

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Diego Imbert
2026-10-08 21:45:42 +02:00
co-authored by Claude Opus 5.5
parent 1c67ba47b2
commit d7e690fad8
3 changed files with 14 additions and 6 deletions
@@ -9,6 +9,7 @@
import { ExternalLink } from 'lucide-svelte'
import { Button } from '$lib/components/common'
import { workspaceStore } from '$lib/stores'
import { goto } from '$lib/navigation'
import { getHomeActivity, type ActivityKind } from './homeActivity.svelte'
interface Props {
@@ -93,10 +94,17 @@
{#if lastRun}
<!-- The close delay lets the pointer cross into the popup to click a run. -->
<Tooltip class="min-w-0" closeDelay={150}>
<!-- Not a link: the popover's "View runs" and run entries are the ways in. -->
<!-- Not a link for the mouse: the popover's "View runs" and run entries are the
ways in. The popover's links are out of the tab order, so Enter on the focused
cell stands in for "View runs". -->
<span
class="flex items-center gap-1.5 min-w-0 text-secondary cursor-default"
aria-label="Latest runs"
tabindex="0"
role="link"
class="flex items-center gap-1.5 min-w-0 text-secondary cursor-default rounded focus-visible:outline focus-visible:outline-1"
aria-label="Latest runs, press Enter to view all runs"
onkeydown={(e) => {
if (e.key === 'Enter') goto(`/runs/${path}?workspace=${$workspaceStore}`)
}}
>
<span class={twMerge('w-1.5 h-1.5 rounded-full shrink-0', statusClass[lastRun.status])}
></span>
@@ -73,7 +73,7 @@
leaf
}: Props = $props()
// The home table draws no separators between its rows.
// The home table's rows carry its faint separator and a hover shade instead.
const separator = isHomeTable()
? `pl-5 hover:bg-surface-hover ${HOME_TABLE_ROW_SEPARATOR}`
: 'border-b'
@@ -3,8 +3,8 @@ import { getContext, setContext } from 'svelte'
/**
* Column template shared by the home table's header and every row, so the
* columns line up across separately rendered rows (the tree nests them):
* select · name · badges · last run · triggers · last edited · actions. Below `lg` the labels,
* triggers and runs cells are hidden, and the template drops them too.
* select · name · badges · last run · triggers · last edited · actions. Below `lg` only
* select, name and actions remain, and the template drops the other columns.
*/
export const HOME_TABLE_GRID =
'grid items-center gap-x-5 grid-cols-[1rem_minmax(0,1fr)_var(--home-actions-w,6.5rem)] lg:grid-cols-[1rem_minmax(0,3fr)_minmax(0,1fr)_6rem_13rem_5rem_var(--home-actions-w,6.5rem)]'