web_frontend: GET /new — a standalone issue-filing page, linked from the homepage nf-tue1 ← Beads

closed priority 2 task web-new-page
What's wanted

Aedan's ask, verbatim: "make https://nfold.dev/new open a page to just file a new issue in beads, and link it from the homepage. nfold.dev is the web dashboard" (tools/web_frontend/server.py).

Current state

The filing form already exists (_filing_form_html(), tools/web_frontend/server.py:1266) and already POSTs to /issue/new (_handle_issue_new, :1515) — but it's only rendered embedded at the bottom of the /beads page (render_beads_page, :1003), not as its own page. There is no GET /new (or GET /issue/new) route at all — do_GET (:1416) only handles /, /beads, /issue/<id>, /board/<id>. The homepage (render_index, :931) links only to /beads (href="/beads", :951) — reaching the filing form today means Dashboard → Beads → scroll to the bottom.

Prescription

1. Add a GET /new route to do_GET that renders a standalone page: just _filing_form_html() inside _page_shell(), same POST target (/issue/new) it already has — no new form-handling logic needed, this is purely "give the existing form its own page and URL." 2. Add a nav link to /new from the homepage (render_index, next to or near the existing Beads → link at :951) — e.g. New issue →. 3. Leave /beads's embedded copy of the form as-is unless it's obviously better to redirect that page's form section to link to /new instead of duplicating it — implementer's call, not prescribed here.

Non-goals

- Not fixing nf-jfeh (the existing POST /issue/new handler's Bd.create(body=...) bug) — different task, already filed and staffed separately (bd-papercuts session). This task is purely about the missing page/route/link; if nf-jfeh hasn't landed yet when this ships, the new /new page will surface the same pre-existing submit bug the embedded form already has — not a regression this task introduces.

Test plan

GET /new returns 200 with the filing form. Homepage HTML contains a link to /new. Existing /beads page and POST /issue/new behavior unchanged.

Dependencies

None.

Comments

jcantsp-bot · 2026-08-20T14:41:17Z

CLAIM

jcantsp-bot · 2026-08-20T15:06:15Z

Landed in #1201 (merged).

Add a comment