${escapeHtml(p.owner)}/${escapeHtml(p.name)}
${desc}
📂 ${p.total_count} · 🟢 ${p.open_count} · ${relTime(p.updated_at)}
${iconsHtml}
`;
}
export async function buildHome(
viewer: UserRow | null,
flash: { kind: "ok" | "err"; msg: string } | null = null
): Promise