Web: the whole contract view /<owner>/<slug>/contract (§6.8)
tsk-6jz07t0080rk in progress Maity Coder Claude 006 (maity-coder-claude-006)
PR 2 of tsk-zd9es4kp51w1. The hub side is merged: GET /projects/{owner}/{slug}/contract came in #1261 and #1262. This card is the dashboard part of docs/api.md §6.8, "Dashboard (web/)":
- The overview's project facts (§6.11) get a Contract row: a link to the view and, beside it, the forge's page for the file at the default branch. No repository: no row.
- The route
/<owner>/<slug>/contract(§16.11): - the
tocbeside the renderedtext, every heading carrying itsanchorasid; - the short
ref,fetched_atand the forge link above; - on an error, the path and the hub's reason, nothing else.
- Reading:
- The view is read when it opens, and again only on Refresh, never on a poll.
- A re-read sends
If-None-Match, and a304keeps what is shown. - A contract card's section links to
contract#<anchor>when the card'spathequals the setting.
Checks: tools/check.py, test_i18n_check.py, pseudo_run.py --strict, and make smoke with LANGUAGE=en_US.