Commitcf793f9unknown_key
fix(admin): surface Health / Deploys / Self-host / Status in admin tile grid
fix(admin): surface Health / Deploys / Self-host / Status in admin tile grid Four /admin/* pages already existed as real routes but weren't linked from the /admin landing page — operators had to know the URLs: /admin/health (traffic-light view of every integration) /admin/deploys (deploy timeline + step durations) /admin/self-host (canonical-repo / hook / env state) /admin/status (live activity SSE stream) Each verified to respond (302 to login when not authed = route exists). Splits the existing "Health / Diagnose" tile into the two surfaces it actually points at (full traffic-light health vs. the older diagnose report) since they're substantially different pages.
1 file changed+18−2cf793f9a031a6ef0ed8a8fc26ed77d73d5a50235
1 changed file+18−2
Modifiedsrc/routes/admin.tsx+18−2View fileUnifiedSplit
@@ -885,9 +885,25 @@ admin.get("/admin", async (c) => {
885885 <span class="admin-action-icon">{Icons.key}</span>
886886 Integrations
887887 </a>
888 <a href="/admin/diagnose" class="admin-action is-primary">
888 <a href="/admin/health" class="admin-action is-primary">
889889 <span class="admin-action-icon">{Icons.pulse}</span>
890 Health / Diagnose
890 Health (traffic lights)
891 </a>
892 <a href="/admin/deploys" class="admin-action is-primary">
893 <span class="admin-action-icon">{Icons.ops}</span>
894 Deploys
895 </a>
896 <a href="/admin/diagnose" class="admin-action">
897 <span class="admin-action-icon">{Icons.pulse}</span>
898 Diagnose
899 </a>
900 <a href="/admin/self-host" class="admin-action">
901 <span class="admin-action-icon">{Icons.ops}</span>
902 Self-host status
903 </a>
904 <a href="/admin/status" class="admin-action">
905 <span class="admin-action-icon">{Icons.pulse}</span>
906 Live activity stream
891907 </a>
892908 <a href="/admin/users" class="admin-action">
893909 <span class="admin-action-icon">{Icons.users}</span>
894910