Files
VoxVera/AGENTS.md
T
thePR0M3TH3ANandClaude Opus 4.8 77bfef1bbe Serve client at site root; redirect legacy /nostr/
The /nostr/ path was a leftover from when the site also hosted a Tor
client. The app is Nostr-only now, so move the client to the site root
and shorten poster URLs to https://voxvera.org/#naddr1... (drops both
/nostr/ and the ?addr= query key, for a cleaner/smaller tear-off QR).

- Move site/nostr/{nostr-client.js,css,locales.js,vendor} to site/.
- site/index.html is now the client; site/nostr/index.html is a redirect
  stub that forwards /nostr/ to / while preserving the query string and
  #naddr fragment, so older poster URLs and printed QR codes still
  resolve.
- Carry the naddr in the URL fragment (#) instead of ?addr=; the viewer
  reads query, fragment, or the full URL, so old links keep working.
- Update README, AGENTS.md, and the spec to the new paths.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-06-09 10:49:36 -04:00

1.6 KiB

AI Agent Instructions For VoxVera

main is the Nostr static-client branch. The old Tor/OnionShare CLI application is preserved on legacy-tor.

Current Architecture

  • Active frontend: site/ (index.html, nostr-client.js, nostr-client.css, locales.js)
  • Static deployment root: site
  • Browser dependencies: vendored under site/vendor/
  • Legacy path: site/nostr/index.html is a redirect stub forwarding old /nostr/ poster URLs and QR codes to the root
  • Python helper package: voxvera/nostr/
  • Design plan: docs/nostr-static-client-spec.md

Guardrails

  • Do not reintroduce the legacy Tor CLI, OnionShare runtime, installer, Electron manager, bundled Tor binaries, generated old flyer site, or packaging workflows on main.
  • Keep the Nostr client static and host-agnostic.
  • Do not load frontend dependencies from CDNs.
  • Treat Nostr event content as untrusted. Escape rendered content and reject unsafe schema input.
  • Preserve print behavior: app controls must not print or shift the flyer sheet in print output.
  • Preserve the old flyer visual language unless the user explicitly asks for a redesign.

Localization

  • Use site/locales.js for flyer content defaults.
  • Use NOSTR_UI in site/nostr-client.js for editor/viewer controls and Nostr-specific labels.
  • Add translations for every supported language when adding user-facing strings.
  • Check right-to-left languages when touching layout.

Verification

Run:

node --check site/nostr-client.js
pytest -q

For visual or print changes, also run a local static server and inspect the site root (/) in a browser.