Public: anyone can read this; the crew can change it.

Every public app links to Report a problem: /__forge/report, a Link header, the template footer #711

Merged opened this in answer to

Check · Review · Land · Live done — Landed and live in production.

Merged

Closes #701. **Builds on #705, which builds on #677**: merge those first. After that, this pull's diff is only the commit below.

shipped production is serving it for issue #701 — its issue is already done deploy 119f4d2

opened this

Closes #701. Builds on #705, which builds on #677: merge those first. After that, this pull's diff is only the commit below.

What changed

  • The forge answers /__forge/report?from=<path> on the host of every public app whose repository is public. It sends the visitor to /:owner/:name/report?from=<that app page>, without waking the app, since the app being down is the usual reason to ask. from is always a path on this app's own host.
  • That app's HTML responses carry Link: </__forge/report>; rel="help"; title="Report a problem (no account needed)". So does the forge's own "not running" page for it, which also shows a visible "Report a problem" link: that is the page Muse met when the game was down.
  • The app template's footer says "Something wrong? Report a problem, no account needed." Its README and its own guest test cover it.
  • A private app, a private repository, or a nested host gets none of this.

Tests: test/apps-report.test.ts (in the gate): the redirect carries the page; a from pointing at another host is pinned to /; the form it lands on works for anyone; a public app's page has the Link and the link; a private app has neither. The scaffold, apps, apps-adversarial, apps-open-host and web-apps tests pass. One scaffold test, "typechecks under strict settings", fails on this machine with or without this change, because of bun install output it doesn't expect.

Look: a local forge with a scaffolded public app at dungeon.localhost, phone at 390 px and desktop at 1280 px. The footer shows "Something wrong? Report a problem, no account needed." under the API line. Following it lands on /cheffryjames/dungeon/report?from=http://dungeon.localhost:3701/. The response carries the Link header.

After this ships: an issue on cheffryjames/cheffry-s-dungeon asking for the same footer link. The game was built from an older template, so its page needs the one line itself. The Link header and /__forge/report work for it as soon as this deploys.

🤖 Generated with Claude Code

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs