Hermes: Ermis shortcut (Ctrl+Shift+E), sidebar add-on, vCard import, brand kit
Shortcut: Ctrl+Shift+M -> Ctrl+Shift+E. Chrome owns Ctrl+Shift+M as
'switch profile' and E matches the Greek spelling (Ermis).
Sidebar discoverability: new bundled add-on at bundled-addons/hermes/
registers a left-strip icon + launcher panel. The panel is a thin chrome
(mark + 'Open Messages' + shortcut hint) that forwards clicks through
api.onMessage -> ipcMain.emit('hermes-open-request') -> openHermesWindow.
All real messaging code stays in main.js — add-on is purely for discovery.
Address book: opt-in vCard (.vcf) import. Dialog in the Add Contact modal
lets the user pick a file; main.js parses BEGIN:VCARD blocks for X-BNS-NAME
/ X-NOSTR-NPUB / X-NOSTR-PUBKEY plus .bch names and npubs mentioned in
NOTE fields. Candidates are previewed per-contact with checkboxes; nothing
is added until the user confirms. Non-matching vCards are returned too (so
the user can still add manually) rather than silently dropped. Nothing is
uploaded; parsing is local.
site/hermes: status badge flipped from 'designed - not yet built' to
'MVP - desktop'. New 'What ships today' grid covers threaded chat, send by
name, address book, local history (all live) and mobile + Tor (next /
planned). Hero carries the new Ctrl+Shift+E shortcut and a link to
/hermes/branding.
site/hermes/branding: new page. Mark SVG (winged envelope, two variants
for 16-20px and 24-160px display sizes), palette (reuses Silent Mode
tokens + an amber accent that's distinctly warm-yellow, not Hermes-orange
— so it never collides with Hermès the fashion house), name explanation
(English Hermes / Greek Ermis), voice notes, do/don't table, MPL-2.0
attribution.
Hermes/MOBILE-RECOMMENDATION.md: analysis of three mobile paths (inside
Ariadne / standalone / hybrid). Recommendation is Option 1: ship as a
screen inside Ariadne. Reuses the wallet seed, aligns with the design
doc's 'one seed many purposes' architecture, lowest total cost.
2026-10-21 00:45:25 +03:00
|
|
|
{
|
|
|
|
|
"id": "hermes",
|
|
|
|
|
"name": "Hermes",
|
hermes: use the user's own mark.webp as the icon, drop the SVG attempts
User-authored artwork wins. mark.webp is the main icon; two sibling variants
(mark-wings-both.webp, mark-variant.webp) ship alongside for brand uses.
- bundled-addons/hermes/addon.json: version 0.2.2, icon/panels[0].icon are
now data:image/webp;base64,... from the main mark.
- bundled-addons/hermes/assets/mark.webp: served by the host via the panel
page's relative path (seedBundledAddons' fs.cpSync recursive carries it).
- bundled-addons/hermes/panel.html: both top-bar and signin inline SVGs
become <img src="assets/mark.webp"> at 24 and 72 px.
- site/hermes/index.html: hero SVG → <img> at 120 px.
- site/hermes/branding/{index.html,mark.webp,mark-wings-both.webp,mark-variant.webp}:
branding kit now carries the three webp files; the inline hero SVG uses
the main one.
- site-hermes-x/{index,branding,messenger}/index.html: same SVG → <img>
swap with the appropriate assets/ relative path.
- site-hermes-x/assets/mark{,-wings-both,-variant}.webp: sibling of the
existing favicon.svg and mark SVGs (kept for backward refs that still
point at them).
Legacy mark.svg + mark-stroke.svg + favicon.svg stay in place for any
external references; nothing in-repo points at them for the primary icon
slots anymore. favicons still point at the SVG files — safe to leave;
flipping those to webp is a one-liner if you want it.
2026-10-21 21:32:14 +03:00
|
|
|
"version": "0.2.2",
|
2026-10-21 18:39:37 +03:00
|
|
|
"description": "Message anyone by their on-chain name. End-to-end encrypted DMs over Nostr (NIP-17), identity derived from your wallet seed.",
|
Hermes: Ermis shortcut (Ctrl+Shift+E), sidebar add-on, vCard import, brand kit
Shortcut: Ctrl+Shift+M -> Ctrl+Shift+E. Chrome owns Ctrl+Shift+M as
'switch profile' and E matches the Greek spelling (Ermis).
Sidebar discoverability: new bundled add-on at bundled-addons/hermes/
registers a left-strip icon + launcher panel. The panel is a thin chrome
(mark + 'Open Messages' + shortcut hint) that forwards clicks through
api.onMessage -> ipcMain.emit('hermes-open-request') -> openHermesWindow.
All real messaging code stays in main.js — add-on is purely for discovery.
Address book: opt-in vCard (.vcf) import. Dialog in the Add Contact modal
lets the user pick a file; main.js parses BEGIN:VCARD blocks for X-BNS-NAME
/ X-NOSTR-NPUB / X-NOSTR-PUBKEY plus .bch names and npubs mentioned in
NOTE fields. Candidates are previewed per-contact with checkboxes; nothing
is added until the user confirms. Non-matching vCards are returned too (so
the user can still add manually) rather than silently dropped. Nothing is
uploaded; parsing is local.
site/hermes: status badge flipped from 'designed - not yet built' to
'MVP - desktop'. New 'What ships today' grid covers threaded chat, send by
name, address book, local history (all live) and mobile + Tor (next /
planned). Hero carries the new Ctrl+Shift+E shortcut and a link to
/hermes/branding.
site/hermes/branding: new page. Mark SVG (winged envelope, two variants
for 16-20px and 24-160px display sizes), palette (reuses Silent Mode
tokens + an amber accent that's distinctly warm-yellow, not Hermes-orange
— so it never collides with Hermès the fashion house), name explanation
(English Hermes / Greek Ermis), voice notes, do/don't table, MPL-2.0
attribution.
Hermes/MOBILE-RECOMMENDATION.md: analysis of three mobile paths (inside
Ariadne / standalone / hybrid). Recommendation is Option 1: ship as a
screen inside Ariadne. Reuses the wallet seed, aligns with the design
doc's 'one seed many purposes' architecture, lowest total cost.
2026-10-21 00:45:25 +03:00
|
|
|
"author": "Silent Mode",
|
hermes: use the user's own mark.webp as the icon, drop the SVG attempts
User-authored artwork wins. mark.webp is the main icon; two sibling variants
(mark-wings-both.webp, mark-variant.webp) ship alongside for brand uses.
- bundled-addons/hermes/addon.json: version 0.2.2, icon/panels[0].icon are
now data:image/webp;base64,... from the main mark.
- bundled-addons/hermes/assets/mark.webp: served by the host via the panel
page's relative path (seedBundledAddons' fs.cpSync recursive carries it).
- bundled-addons/hermes/panel.html: both top-bar and signin inline SVGs
become <img src="assets/mark.webp"> at 24 and 72 px.
- site/hermes/index.html: hero SVG → <img> at 120 px.
- site/hermes/branding/{index.html,mark.webp,mark-wings-both.webp,mark-variant.webp}:
branding kit now carries the three webp files; the inline hero SVG uses
the main one.
- site-hermes-x/{index,branding,messenger}/index.html: same SVG → <img>
swap with the appropriate assets/ relative path.
- site-hermes-x/assets/mark{,-wings-both,-variant}.webp: sibling of the
existing favicon.svg and mark SVGs (kept for backward refs that still
point at them).
Legacy mark.svg + mark-stroke.svg + favicon.svg stay in place for any
external references; nothing in-repo points at them for the primary icon
slots anymore. favicons still point at the SVG files — safe to leave;
flipping those to webp is a one-liner if you want it.
2026-10-21 21:32:14 +03:00
|
|
|
"icon": "data:image/webp;base64,UklGRmhNAABXRUJQVlA4WAoAAAAgAAAAtAUAzwIASUNDUMgBAAAAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADZWUDggeksAAHCwAZ0BKrUF0AI+MRiIRCIhiJdQEAGCWdu/HA4QmwhzbU/83HjZscNfT7MddoF///MA6efnMHXVl/tP7v983szmP69/eP2c/vH7gdUBtt94/L/9f/Z/6Ys03XrM38Q/Pv+X/ifyZ7j/8V/tP/r/y/wAfwX+Mf3f+wf4//0/4H/////6gP0r93P949AH9I/vv7Z/+v4zPTj/i/+L7C/+Z/s3/59vz1f/Qq83L/t/vJ8Of7rfuJ8C/8c/vH/+/7P/w2IH4T/5/6//XvcH8P/l/75/Wv269ierz7P9VrrbzN/j322/K/3z87v2j+T/9d/c/xo9G/yn9U/03+D/uvuBfhv8s/t35F+8nAX069AL2M+V/5/+o/ir8eU1Dks+AD/GfuP4AHkRemfqf8AH8v/svqwf0H/w/1Xni/QP8P/6P8x8BP8v/sH/Q/wn5WfNf7OP3X///vXft0ENSzuqOlFNCO6o6UU0I7qjpRTQjup/cjnZK7QjuqOlFNCO6o6UU0I7qjpRS2tnk/aKaEd1R0opoR3VHSimhHdUdKKaEd1R0opoR3VHSimhHdUdKKaEd1R0opoR3VHSimhHdUdKKaEd1R0opoR3VHSimhHdUdKKaEd1R0opoR3VHSimhHdUdKKaEd1R0opoR3VHSimhHdUdKKaEd1R0opoR3VHSimhHdUdKKaEd1R0opoR3VHSimhHdUdKKaEd1R0opoR3VHSimhHdUdKKaEd1R0opoR3VHSimhHdUdKKaEd1R0opoR3VHSimhHdUdKKaEd1R0opoR3VDSjuqOlFM9LLO5hvJcf4DK4/gS5MWQa8n6Trq7CBizrmmg52d1u6x4CGCO6o6UNFGJ6QGWQpoR7nvi4u5+0U0I7mGHjG//9U6u0IyV/An7Q0PF3PfO7CmhHdUhEQwR3VG8VSimhHdUbxu6o6FA3QEdDS5/nyzuqOlFNCOuaYWLIUz1uwpnqvJITM7qjpQ15P2imhHcytCO6jNNKyBIrSM1AOyjExZChgyxwHaGB1KGvJ8Dd1R0opnpZZ3MNwrizuqOlFNCOuae8RU69m0ECpaJiuOursIGLOuaaDnjd1R0opoR3VHSimhHdUdKKaEdzK0HWTe9NcMibO47ohwFn05FLgCbaDqUU0I7qjoTrlTq4wZY4DtDBHdUdJgO5753YNeT9opnr5jgSeLae/RoZ7GBrTADc6u0I7qjpMATYvpizuqN5W4aNw8mLINE/eT9opoR1zTQz3G4q8h+PaLISReuLKF+IhXfODCmEDFZ4p42SuuWXc/aG3riM06Utz2FMJ2EdCO6jIEdc0L6g7UgtznYFgOhk5h/oZH/7abNZKrWAw0vnkbOVJMbEoeiGeIrIVCyFPlAPQJ+0NeT9oa84N5OFRn8rPG7mG8nwN3VHShsgFwAXCMGf/ssob+qyPx/kjNg4ShRlFNO7e1mUb1iRNtBzxTiuxIFNE/aKYWLIUz1uwphYshaVTvJ+0Uz1uwphpWWmBq1+8hN/+3Cl4wE2b/q2Xz/WrhNUNKRh8UI+CjiQMzvd9z2o8bDpvyYPLBRvmB7lgC2YpLZs6M7sKaEd1R0l38+LgY8PTsKaEd1R0opnpRy394zv1eVf/p2I1BAaIAZ/fWo7L8cW0nouKaFAlLQ0JetLrSLVpzuNtzPRA9CSHLSJwjS+zAbrAbinPFet5jvBvJ+0UL5wJJpHvSy7Rbo7mVoR118Nk8Zqb/78lehHI/2myG6Vd//7HifQSnYd7rE5Y+h3u4wy2OV3IaCFyXzYApMiKlvwN1zTTttUUJDwjAv5c0rgUaEqSzrcKpZj5ojXxvVlrBkZBYpG0NgKL4E/SWa9j/EFvRG/2lo391bv55XSvQJR//xhbq8Ow8H7fBvsmunJkcnlulmjnDuioHwdy+XVz93gYXzgTrXY+yBd68P9H9vVagQQ9oOd9VuQBWuqq5q9SjqjqL8E5S8metHKFtXLCAho/6rhUtBAo+rMg+2C5z5IaOZ+d/5u3BuLc++eZbkUQPMdxbhginnqcASiEnbMMKNhsVMBXtSR8UCzbaUTJKEQI9oyy7nwN11LIroLcOJYza2dccto3NwstjfQLf9vzp/z4humKMfcP6OhpNdJc64v+TSSn13mvdYmdJEN2jMlY/r6ejwtyjaZQIQGncr8xIIvPRv5oLFxFRDD1XyFS5KYn8CftMIR1ZeegtUOI4VJ7PmdyXjSvZIwP53G//LShJBVN/8EpSPRhxs3QDleCffFiNInjomCI/fIbDv9p7psm7e6DYMrkhdlnqR2smGep8wr0D0Il6C2TUwF1KIEjQ3HPS7MveJGS4HZ1OJt7S1P1ZI3iHk+xL4oaHFML2PN67gWAG8l41lyntA9U79ctBKvxC/4tE0ePnRv/zRVT/ssq+ZQA/6tbxCytNL06CaWf5SU3KBOiZLpnZHI9JfM9F6LzpsIgTg5n+sPpe0MJur5i7xkiDxd75FDHdEDKnHoldy8s7qLLmmoY0j6odcy/SikxS92sUWz6uiDH6ZpZs39rr9vUFtfbS1yvulz/B3f6b7lC2VL9HdjG+b0WEeBOehB/uUTg1sUXRFgGF9lc28Wki3mivIgqQkVmOWG2edT/muGBzktbK7rqrWezR61Wwa92MHMwPBLpTQlUSLJqeCiBvHsvYU94MVtps6HTiIkPv1g+QX7a2ixHlqEav9aG//vMNfjmegYHGB9//vPqf1oLPadyV6BIyD73+6+x/mZBkj/fTaAdTY/0XTFAAOC6R1TYssvnKov/Wkr9bPErwe5YMXTSc8c8/F1S3VxaRcBozYzMVCGYX6Nw+BHJFEFIO5vgvTY0zY/ZLe94BGwFSubPxKr+JMKtaWB/TRb///j/hDzNUVethOX9Jqf/4kjpS8hJESqizjuODIJ/w5T/J8g/AfC/98TiUcEpv9mr+/sGjTyNZgQJ3R4fClutSXlDVqju8VewpoRQy2Ae0DEmvTpT80rawPBOSiMfoT0IEKQTeL5aWxJ9nAA7DvReqctlH396wBvKF/971z+0MH9a2Qp8kwPH05uD1ib7+Uc6ovBoSbuBOYPr8hTf+yV/f7+YtpEr5fo7/9vVDvTOoT8cb1E05VQPT3g3kepzZM++HbAmPpPfuMshTQjJDJoEXgYQrBi+vABW8yFeBxzsk1rTNUXqFC6Y18xvyL/l/cKE//tCF22uMY6HjWJ39qQ3++5eRcnbg2AnHKTACsNH3l9QCm/d73/+qpPgreWlu6L+S6PX+8iRCbimn7Q2NyokoypgDPhSPLU4mw2DZKFuKaGQT9l3WpkkWT8lgi0yxNAC+KF0/8ftzZYRFUVodIEGSZ6aIuq+HXwR4/48UtioZ3/sKTedidfg0COwetj9aHDjZAWZDoxmPkGO4E4Ahv7m
|
Hermes: Ermis shortcut (Ctrl+Shift+E), sidebar add-on, vCard import, brand kit
Shortcut: Ctrl+Shift+M -> Ctrl+Shift+E. Chrome owns Ctrl+Shift+M as
'switch profile' and E matches the Greek spelling (Ermis).
Sidebar discoverability: new bundled add-on at bundled-addons/hermes/
registers a left-strip icon + launcher panel. The panel is a thin chrome
(mark + 'Open Messages' + shortcut hint) that forwards clicks through
api.onMessage -> ipcMain.emit('hermes-open-request') -> openHermesWindow.
All real messaging code stays in main.js — add-on is purely for discovery.
Address book: opt-in vCard (.vcf) import. Dialog in the Add Contact modal
lets the user pick a file; main.js parses BEGIN:VCARD blocks for X-BNS-NAME
/ X-NOSTR-NPUB / X-NOSTR-PUBKEY plus .bch names and npubs mentioned in
NOTE fields. Candidates are previewed per-contact with checkboxes; nothing
is added until the user confirms. Non-matching vCards are returned too (so
the user can still add manually) rather than silently dropped. Nothing is
uploaded; parsing is local.
site/hermes: status badge flipped from 'designed - not yet built' to
'MVP - desktop'. New 'What ships today' grid covers threaded chat, send by
name, address book, local history (all live) and mobile + Tor (next /
planned). Hero carries the new Ctrl+Shift+E shortcut and a link to
/hermes/branding.
site/hermes/branding: new page. Mark SVG (winged envelope, two variants
for 16-20px and 24-160px display sizes), palette (reuses Silent Mode
tokens + an amber accent that's distinctly warm-yellow, not Hermes-orange
— so it never collides with Hermès the fashion house), name explanation
(English Hermes / Greek Ermis), voice notes, do/don't table, MPL-2.0
attribution.
Hermes/MOBILE-RECOMMENDATION.md: analysis of three mobile paths (inside
Ariadne / standalone / hybrid). Recommendation is Option 1: ship as a
screen inside Ariadne. Reuses the wallet seed, aligns with the design
doc's 'one seed many purposes' architecture, lowest total cost.
2026-10-21 00:45:25 +03:00
|
|
|
"main": "index.js",
|
|
|
|
|
"activation": "on-demand",
|
|
|
|
|
"panels": [
|
hermes: use the user's own mark.webp as the icon, drop the SVG attempts
User-authored artwork wins. mark.webp is the main icon; two sibling variants
(mark-wings-both.webp, mark-variant.webp) ship alongside for brand uses.
- bundled-addons/hermes/addon.json: version 0.2.2, icon/panels[0].icon are
now data:image/webp;base64,... from the main mark.
- bundled-addons/hermes/assets/mark.webp: served by the host via the panel
page's relative path (seedBundledAddons' fs.cpSync recursive carries it).
- bundled-addons/hermes/panel.html: both top-bar and signin inline SVGs
become <img src="assets/mark.webp"> at 24 and 72 px.
- site/hermes/index.html: hero SVG → <img> at 120 px.
- site/hermes/branding/{index.html,mark.webp,mark-wings-both.webp,mark-variant.webp}:
branding kit now carries the three webp files; the inline hero SVG uses
the main one.
- site-hermes-x/{index,branding,messenger}/index.html: same SVG → <img>
swap with the appropriate assets/ relative path.
- site-hermes-x/assets/mark{,-wings-both,-variant}.webp: sibling of the
existing favicon.svg and mark SVGs (kept for backward refs that still
point at them).
Legacy mark.svg + mark-stroke.svg + favicon.svg stay in place for any
external references; nothing in-repo points at them for the primary icon
slots anymore. favicons still point at the SVG files — safe to leave;
flipping those to webp is a one-liner if you want it.
2026-10-21 21:32:14 +03:00
|
|
|
{
|
|
|
|
|
"id": "main",
|
|
|
|
|
"title": "Hermes",
|
|
|
|
|
"icon": "data:image/webp;base64,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
|
|
|
|
|
"page": "panel.html",
|
|
|
|
|
"side": "left"
|
|
|
|
|
}
|
Hermes: Ermis shortcut (Ctrl+Shift+E), sidebar add-on, vCard import, brand kit
Shortcut: Ctrl+Shift+M -> Ctrl+Shift+E. Chrome owns Ctrl+Shift+M as
'switch profile' and E matches the Greek spelling (Ermis).
Sidebar discoverability: new bundled add-on at bundled-addons/hermes/
registers a left-strip icon + launcher panel. The panel is a thin chrome
(mark + 'Open Messages' + shortcut hint) that forwards clicks through
api.onMessage -> ipcMain.emit('hermes-open-request') -> openHermesWindow.
All real messaging code stays in main.js — add-on is purely for discovery.
Address book: opt-in vCard (.vcf) import. Dialog in the Add Contact modal
lets the user pick a file; main.js parses BEGIN:VCARD blocks for X-BNS-NAME
/ X-NOSTR-NPUB / X-NOSTR-PUBKEY plus .bch names and npubs mentioned in
NOTE fields. Candidates are previewed per-contact with checkboxes; nothing
is added until the user confirms. Non-matching vCards are returned too (so
the user can still add manually) rather than silently dropped. Nothing is
uploaded; parsing is local.
site/hermes: status badge flipped from 'designed - not yet built' to
'MVP - desktop'. New 'What ships today' grid covers threaded chat, send by
name, address book, local history (all live) and mobile + Tor (next /
planned). Hero carries the new Ctrl+Shift+E shortcut and a link to
/hermes/branding.
site/hermes/branding: new page. Mark SVG (winged envelope, two variants
for 16-20px and 24-160px display sizes), palette (reuses Silent Mode
tokens + an amber accent that's distinctly warm-yellow, not Hermes-orange
— so it never collides with Hermès the fashion house), name explanation
(English Hermes / Greek Ermis), voice notes, do/don't table, MPL-2.0
attribution.
Hermes/MOBILE-RECOMMENDATION.md: analysis of three mobile paths (inside
Ariadne / standalone / hybrid). Recommendation is Option 1: ship as a
screen inside Ariadne. Reuses the wallet seed, aligns with the design
doc's 'one seed many purposes' architecture, lowest total cost.
2026-10-21 00:45:25 +03:00
|
|
|
],
|
hermes: use the user's own mark.webp as the icon, drop the SVG attempts
User-authored artwork wins. mark.webp is the main icon; two sibling variants
(mark-wings-both.webp, mark-variant.webp) ship alongside for brand uses.
- bundled-addons/hermes/addon.json: version 0.2.2, icon/panels[0].icon are
now data:image/webp;base64,... from the main mark.
- bundled-addons/hermes/assets/mark.webp: served by the host via the panel
page's relative path (seedBundledAddons' fs.cpSync recursive carries it).
- bundled-addons/hermes/panel.html: both top-bar and signin inline SVGs
become <img src="assets/mark.webp"> at 24 and 72 px.
- site/hermes/index.html: hero SVG → <img> at 120 px.
- site/hermes/branding/{index.html,mark.webp,mark-wings-both.webp,mark-variant.webp}:
branding kit now carries the three webp files; the inline hero SVG uses
the main one.
- site-hermes-x/{index,branding,messenger}/index.html: same SVG → <img>
swap with the appropriate assets/ relative path.
- site-hermes-x/assets/mark{,-wings-both,-variant}.webp: sibling of the
existing favicon.svg and mark SVGs (kept for backward refs that still
point at them).
Legacy mark.svg + mark-stroke.svg + favicon.svg stay in place for any
external references; nothing in-repo points at them for the primary icon
slots anymore. favicons still point at the SVG files — safe to leave;
flipping those to webp is a one-liner if you want it.
2026-10-21 21:32:14 +03:00
|
|
|
"capabilities": [
|
|
|
|
|
"sidebar-panel"
|
|
|
|
|
]
|
Hermes: Ermis shortcut (Ctrl+Shift+E), sidebar add-on, vCard import, brand kit
Shortcut: Ctrl+Shift+M -> Ctrl+Shift+E. Chrome owns Ctrl+Shift+M as
'switch profile' and E matches the Greek spelling (Ermis).
Sidebar discoverability: new bundled add-on at bundled-addons/hermes/
registers a left-strip icon + launcher panel. The panel is a thin chrome
(mark + 'Open Messages' + shortcut hint) that forwards clicks through
api.onMessage -> ipcMain.emit('hermes-open-request') -> openHermesWindow.
All real messaging code stays in main.js — add-on is purely for discovery.
Address book: opt-in vCard (.vcf) import. Dialog in the Add Contact modal
lets the user pick a file; main.js parses BEGIN:VCARD blocks for X-BNS-NAME
/ X-NOSTR-NPUB / X-NOSTR-PUBKEY plus .bch names and npubs mentioned in
NOTE fields. Candidates are previewed per-contact with checkboxes; nothing
is added until the user confirms. Non-matching vCards are returned too (so
the user can still add manually) rather than silently dropped. Nothing is
uploaded; parsing is local.
site/hermes: status badge flipped from 'designed - not yet built' to
'MVP - desktop'. New 'What ships today' grid covers threaded chat, send by
name, address book, local history (all live) and mobile + Tor (next /
planned). Hero carries the new Ctrl+Shift+E shortcut and a link to
/hermes/branding.
site/hermes/branding: new page. Mark SVG (winged envelope, two variants
for 16-20px and 24-160px display sizes), palette (reuses Silent Mode
tokens + an amber accent that's distinctly warm-yellow, not Hermes-orange
— so it never collides with Hermès the fashion house), name explanation
(English Hermes / Greek Ermis), voice notes, do/don't table, MPL-2.0
attribution.
Hermes/MOBILE-RECOMMENDATION.md: analysis of three mobile paths (inside
Ariadne / standalone / hybrid). Recommendation is Option 1: ship as a
screen inside Ariadne. Reuses the wallet seed, aligns with the design
doc's 'one seed many purposes' architecture, lowest total cost.
2026-10-21 00:45:25 +03:00
|
|
|
}
|