theseus/bundled-addons
Local Dev 3b2cad491d hermes: ship the browser side of the Theseus feature set
Fixes the "unknown invoke: fetchCloudBackup" dead-end on mobile sign-in
and the empty hooks the Settings UI depended on. The shim now implements:

- Local wrap: on signup it generates a BIP-39 mnemonic (@scure/bip39),
  derives the Nostr sk via PBKDF2+HKDF with purpose "messenger/0" (same
  chain Theseus runs), scrypt+AES-GCM wraps the mnemonic (@noble/hashes
  scrypt matching HERMES_SCRYPT N=2^15 r=8 p=1), stores it in
  localStorage.hermes.wrap. hasBackup/getBackup use that wrap, so a
  password sign-in now works on the same device.

- Cloud backup: publishCloudBackup / fetchCloudBackup / removeCloudBackup
  / hasCloudBackup matching Theseus's dtag format
  (hermes.backup.v1/<sha256(bareName)[:32]>). Password unlocks the local
  wrap, re-wraps for the cloud copy with a fresh salt, publishes a
  kind:30078 to every relay, remembers the event id for later retract
  via NIP-09.

- Phone discovery: setPhone / clearPhone / findByPhones with the same
  hermes.phone/<base64url(sha256(E.164))[:32]> d-tag Theseus uses, so a
  vCard import on the browser surfaces the same matches a Theseus user
  would see.

- contactsUpdate / contactsRemove rounded out so the panel's contacts
  menu is fully wired.

Also:

- Default relay list bumped to [wss://hermes.x, wss://relay.silentmode.st,
  wss://nos.lol] in both the Theseus host and the web shim, so every
  publish/fetch hits our own strfry on the VPS and the cloud backup lives
  somewhere we control.

- Theseus host: addons-host.js + main.js now understand a `width` field
  on sidebar panels, so the Hermes panel declares width:500 and opens at
  a Telegram-ish width by default (user can still drag; saved per-panel).

- Panel + web messenger: forced color-scheme:dark (the brand mark has
  hard navy cutouts that stand out as "black inside the envelope" on a
  light background; dark everywhere is cheaper than theme-aware marks).

- Password fields: 👁 toggle appears on every <input type="password">
  via a tiny JS enhancer in both the panel and the web messenger.

- Settings/signin tabs: Sign in / Sign up persistent pill, drag-to-resize
  contacts/thread splitter (persisted per device), 2-column always.
2026-10-22 15:33:07 +03:00
..
aegis Aegis 0.32.3: WizardConnect waits between relay reconnects 2026-10-07 19:17:25 +02:00
blocker feat(theseus): Settings pages have addresses and sub-pages; Privacy regrouped 2026-09-27 22:01:28 +02:00
consent feat(theseus): Settings pages have addresses and sub-pages; Privacy regrouped 2026-09-27 22:01:28 +02:00
docx-editor Theseus: start extensions on first use, Startup switches in Settings 2026-10-03 16:05:32 +02:00
hermes hermes: ship the browser side of the Theseus feature set 2026-10-22 15:33:07 +03:00
notepad Theseus: start extensions on first use, Startup switches in Settings 2026-10-03 16:05:32 +02:00
pdf-editor Theseus: start extensions on first use, Startup switches in Settings 2026-10-03 16:05:32 +02:00
pithos Pithos 0.3.23: rename S3 users 2026-10-07 00:17:32 +02:00
screenshot Theseus: start extensions on first use, Startup switches in Settings 2026-10-03 16:05:32 +02:00
translate Theseus: start extensions on first use, Startup switches in Settings 2026-10-03 16:05:32 +02:00
vpn Theseus: start extensions on first use, Startup switches in Settings 2026-10-03 16:05:32 +02:00