improvement(links): open go/ links alongside sim/ and call the page Links

Merged
WA
5d ago
+154-109

Summary

  • Links open from both sim/<name> and go/<name>: the extension's redirect rule, host access, and opt-in search recovery cover both hosts, and /sim-links/recover accepts both
  • One shared host list (SIM_LINK_HOSTS in @sim/browser-extension-protocol) drives the redirect filter, host permissions, recovery rules, and server-side prefix stripping
  • Typed names drop a leading sim/ or go/ in the create form, search, and the Chat lookup by name (which previously normalized sim/handbook to simhandbook and missed)
  • The sim address-bar keyword still strips only its own sim/, since a link can be named go
  • The page is called Links (sidebar, title, empty state, errors); the registry shows link names without a prefix
  • Browser shortcuts offers Enable go/ shortcuts and Enable sim/ shortcuts
  • Docs, extension README/DESIGN, and the privacy policy describe both prefixes

Type of Change

  • Improvement

Testing

  • Extension: tsc --noEmit, production build, and a headless Chromium run with the built extension: http://go/bookface, https://go/jira/ABC-1?x=1, and http://sim/bookface all land on <origin>/sim/... with path and query intact
  • Extension E2E covers both hosts for direct navigation and search recovery; sim-links E2E covers go/ recovery and the new conflict message
  • vitest on lib/sim-links, message-sources.test.tsx, and settings.test.ts (89 passing); bun run lint

Checklist

  • Code follows project style guidelines
  • Self-reviewed my changes
  • Tests added/updated and passing (new tests pass the test-audit authoring gate)
  • No new warnings introduced
  • I confirm that I have read and agree to the terms outlined in the Contributor License Agreement (CLA)