[Senate] Site Health Check — Verify All Main Pages Render Correctly

← All Specs

[Senate] Site Health Check — Verify All Main Pages Render Correctly

Quest: qe-senate-s Priority: P80 Status: complete

Goal

Curl all main routes and verify no 4xx/5xx errors. Fix any broken pages found.

Routes to Check

Core navigation: /, /dashboard, /hypotheses, /analyses, /wiki, /exchange, /forge, /atlas, /senate, /demo

Secondary: /showcase, /notebooks, /artifacts, /targets, /agents, /quests, /search, /papers, /resources, /status, /vision, /compare, /leaderboard, /challenges, /missions, /market, /gaps, /graph, /arenas

API endpoints: /api/backup-status, /api/health

Acceptance Criteria

☑ All main routes return 200/301/302
☑ No 5xx errors on any page
☑ Any broken pages fixed
☑ Work log documenting findings

Work Log

2026-04-09 — task:340d5ea2

Phase 1: Core route check (34 routes)
All 34 core/secondary routes return 200: /, /dashboard, /hypotheses, /analyses/, /wiki, /exchange, /forge, /atlas, /senate, /demo, /showcase, /notebooks, /artifacts, /targets, /agents, /quests, /search, /papers, /resources, /status, /vision, /compare, /leaderboard, /challenges, /missions, /market, /gaps, /graph, /arenas, /agora, /walkthrough, /how.html, /atlas.html, /style.css

Phase 2: Dynamic route check (18 routes)
All dynamic routes return 200:

  • 3 hypothesis detail pages (random sample)
  • 2 analysis detail pages (random sample)
  • 4 senate agent pages (/senate/agent/theorist, skeptic, synthesizer, domain_expert)
  • /agents/performance, /entity/APOE, /entity/tau, /wiki/Alzheimer's_disease
  • /api/health, /api/backup-status, /forge/playground, /demo/showcase, /demo/walkthrough
Phase 3: Random sampling (60 pages)
  • 20 random hypothesis pages: 0 failures
  • 20 random analysis pages: 0 failures
  • 10 random wiki pages: 0 failures
  • 10 random artifact pages: 0 failures
  • 10 random notebook pages: 0 failures
Phase 4: Deep link extraction from key pages
Extracted and checked all internal links from /senate (125 links), /exchange, /demo, /forge, /dashboard, /hypotheses, /gaps, /atlas, /showcase.

1 broken link found:

  • /api/code-health-report on /senate page → 404
  • Root cause: link pointed to nonexistent endpoint; correct endpoint is /api/code-health (api.py:3337)
  • Fix: Changed href="/api/code-health-report" to href="/api/code-health" at api.py:26323
Result: All pages healthy. 1 broken link fixed (code health report URL on senate page).

Verification — 2026-04-25 23:35:00Z

Result: PASS Verified by: claude-sonnet-4-6 via task 340d5ea2-9f9d-4489-abdd-4f3098793f56

Tests run

TargetCommandExpectedActualPass?
/curl -s -o /dev/null -w "%{http_code}" http://localhost:8000/200/3xx302
/dashboardcurl -s -o /dev/null -w "%{http_code}" http://localhost:8000/dashboard200200
/hypothesescurl -s -o /dev/null -w "%{http_code}" http://localhost:8000/hypotheses200200
/analysescurl -s -o /dev/null -w "%{http_code}" http://localhost:8000/analyses200200
/wikicurl -s -o /dev/null -w "%{http_code}" http://localhost:8000/wiki200200
/exchangecurl -s -o /dev/null -w "%{http_code}" http://localhost:8000/exchange200200
/forgecurl -s -o /dev/null -w "%{http_code}" http://localhost:8000/forge200200
/atlascurl -s -o /dev/null -w "%{http_code}" http://localhost:8000/atlas200200
/senatecurl -s -o /dev/null -w "%{http_code}" http://localhost:8000/senate200200
/democurl -s -o /dev/null -w "%{http_code}" http://localhost:8000/demo200200
/showcasecurl -s -o /dev/null -w "%{http_code}" http://localhost:8000/showcase200200
/notebookscurl -s -o /dev/null -w "%{http_code}" http://localhost:8000/notebooks200200
/artifactscurl -s -o /dev/null -w "%{http_code}" http://localhost:8000/artifacts200200
/targetscurl -s -o /dev/null -w "%{http_code}" http://localhost:8000/targets200200
/agentscurl -s -o /dev/null -w "%{http_code}" http://localhost:8000/agents200/3xx301
/questscurl -s -o /dev/null -w "%{http_code}" http://localhost:8000/quests200200
/searchcurl -s -o /dev/null -w "%{http_code}" http://localhost:8000/search200200
/paperscurl -s -o /dev/null -w "%{http_code}" http://localhost:8000/papers200200
/resourcescurl -s -o /dev/null -w "%{http_code}" http://localhost:8000/resources200200
/statuscurl -s -o /dev/null -w "%{http_code}" http://localhost:8000/status200200
/visioncurl -s -o /dev/null -w "%{http_code}" http://localhost:8000/vision200200
/comparecurl -s -o /dev/null -w "%{http_code}" http://localhost:8000/compare200200
/leaderboardcurl -s -o /dev/null -w "%{http_code}" http://localhost:8000/leaderboard200200
/challengescurl -s -o /dev/null -w "%{http_code}" http://localhost:8000/challenges200200
/missionscurl -s -o /dev/null -w "%{http_code}" http://localhost:8000/missions200200
/marketcurl -s -o /dev/null -w "%{http_code}" http://localhost:8000/market200200
/gapscurl -s -o /dev/null -w "%{http_code}" http://localhost:8000/gaps200200
/graphcurl -s -o /dev/null -w "%{http_code}" http://localhost:8000/graph200200
/arenascurl -s -o /dev/null -w "%{http_code}" http://localhost:8000/arenas200200
/api/healthcurl -s -o /dev/null -w "%{http_code}" http://localhost:8000/api/health200200
/api/backup-statuscurl -s -o /dev/null -w "%{http_code}" http://localhost:8000/api/backup-status200200
/api/code-healthcurl -s -o /dev/null -w "%{http_code}" http://localhost:8000/api/code-health200200
/api/code-health-reportcurl -s -o /dev/null -w "%{http_code}" http://localhost:8000/api/code-health-report404404

Attribution

The current passing state is produced by:

  • The /senate page at api.py:42393 uses href="/api/code-health" (correct), not the defunct /api/code-health-report

Notes

All 33 tested routes return 200/301/302. No 4xx errors on live routes; the old defunct endpoint /api/code-health-report correctly returns 404 as expected (it was never valid — the fix changed the link on the senate page to point to the correct /api/code-health).

File: 340d5ea2_senate_site_health_check_spec.md
Modified: 2026-04-25 23:40
Size: 7.0 KB