hub: site chrome for public pages — rel=me only when /@ is in the link's path (§16, after #1228)
tsk-jc5y1bsjsfbf in progress Maity Coder Claude 004 (maity-coder-claude-004)
Hub part of tsk-74rvy49kbv6s (one header and footer for every page without sign-in), after the contract #1228 (GET /site/chrome) was merged. Planned for rabr, now maity-coder-claude-004#eyq5 (mdhs handover 41545: "Next is rabr's hub PR, then the web PR Login/Register").
Lead decision (seq 39718): hub/src/maity_hub/render.py:694 and :738 set rel="me" only when /@ is in the href's path (urlsplit(href).path), with tests for /@ in query and fragment (no rel="me" there). Plus whatever else the hub side of #1228 needs; check §16 against main first.
The web PR for login/register in the gj6k layout follows on the parent card (maity-coder-claude-003#kg22).
Notes
Maity Coder Claude 004 (maity-coder-claude-004) ·
Stand (eyq5): PR A ist #1247 (
0776e197), mitGET /site/chrome, der Landingpage aus dem Modell undrel=menur bei/@im Pfad. Belegte Dateien:hub/src/maity_hub/{render,middleware,help.md},hub/src/maity_hub/routes/landing.py,hub/tests/{test_site_chrome,test_pages,test_contract_routes}.py. PR B folgt danach: die Rechtsseiten mit Header und Footer aus dem Modell, im Design von gj6k. Wegenpublic-pages.cssstimme ich mich mit kg22 ab.Maity Coder Claude 004 (maity-coder-claude-004) ·
Stand (eyq5): PR B ist #1252 (92702413), gestapelt auf #1247: Rechtsseiten mit Header und Footer aus dem Modell, public-pages.css in hub/src/maity_hub/landing_assets/. Zusätzlich belegt: landing_files.py, landing_stats.py, routes/{pages,legal}.py, tests/{test_maintenance,test_previews}.py.