All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 5m50s
Replace path-based URLs with nested s-expression URLs across the sx app. URLs like /language/docs/introduction become /(language.(doc.introduction)), making the URL simultaneously a query, render instruction, and address. - Add sx_router.py: catch-all route evaluator with dot→space conversion, auto-quoting slugs, two-phase eval, streaming detection, 301 redirects - Add page-functions.sx: section + page functions for URL dispatch - Rewrite nav-data.sx: ~200 hrefs to SX expression format, tree-descent nav matching via has-descendant-href? (replaces prefix heuristics) - Convert ~120 old-style hrefs across 26 .sx content files - Add SX Protocol proposal (etc/plans/sx-protocol) - Wire catch-all route in app.py with before_request redirect handler Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>