theseus/bundled-addons/nostr/addon.json

33 lines
1.4 KiB
JSON
Raw Permalink Normal View History

Theseus 0.3.131: Mail promoted to Sidebar quicklink, Nostr signer ships, panels free RAM when idle, Game.X in SM cards Silent Mode Mail is no longer an extension. The 0.1.0 panel was a black screen (iframe to mail.silentmode.st which sends X-Frame-Options: DENY; the browser rendered the block page and still fired the iframe's load event, so the 5-second "did it embed?" watchdog saw it as loaded and the fallback never swapped in). The whole extension existed to put one "Open Mail" button in a panel — that is exactly what a sidebar quicklink does, without taking a panel slot or an Extensions row. So: - settings.quickLinks default list gains silentmail at the top (Silent Mode Mail → https://mail.silentmode.st/). - migrateAegisRename grew a mail retirement block: any existing extensions/mail/ folder on the user's box moves to addons-backups/mail-migrated-<stamp>/ on first boot of this Theseus, so the old extension vanishes from Settings instead of sitting there with a broken panel. - "mail" added to the first-party reserved-ids list so no community add-on can claim the id after retirement. Nostr NIP-07 signer finally ships. The bundled-addons/nostr/ folder was sitting untracked in the main checkout, so the detached-HEAD build worktree 0.3.130 used never saw it (same reason build/, tor/, snapshots/ have to be hand-copied into the worktree). This build committed the folder and copied it in. Puts window.nostr on https + localhost pages; identity is Hermes's key (one npub for DMs and public notes). Per-origin read/sign grants; kinds 0/3/5/10002 re-prompt every time with no remember option. Sidebar panel apps free their render tree after idle. closeLeftPanel used to keep the loaded page warm forever — great for fast reopen, bad for RAM when the user docks a heavy panel (Hermes, Pithos, Aegis) once and never comes back. A 2-minute idle timer now blanks the panel to about:blank after close; reopen within the window still reuses the loaded page (cancelLeftPanelIdleUnload on open), reopen after the window reloads fresh. LEFT_PANEL_IDLE_MS = 2 * 60 * 1000. Right-side sidebar view (webapp tabs — Telegram, X, WhatsApp, AI chat) is longer- lived by design and untouched here. Startpage layout: - Game.X takes SilentMode.X's slot in the Silent Mode cards (stub description + a built-in gamepad brand mark until game.x goes live). SilentMode.X moves to the quick-links strip as the 5th slot. Still TODO: push the swap into the remote home-cards.json for existing profiles. - Light-theme palette flip under body.light. The @media (prefers-color-scheme: light) block only triggered on OS-level light preference; picking the "light" background preset left --ink white against a white page, so hero titles, card titles, slot labels and the ".bch" extension read as pale ghosts. Added a full body.light { --ink; --mut; --card; --line; ... } block plus overrides for the hero + card translucent panels (dark-glass → light-glass on light theme) and the ctx-menu / modal. Dark theme untouched.
2026-10-30 00:38:08 +02:00
{
"id": "nostr",
"name": "Nostr",
Theseus 0.3.132: layout revert, Nostr per-site identities, Mail as sidebar quicklink, connector token stays persistent Startpage layout reverted to the pre-0.3.131 shape. 0.3.131's full-page- height sidebar was a mistake — slots in a short strip under a hero at the top, cards and slots sharing one row of panels at the same height, is what matches the design. .page/.main-col/.sidebar structure dropped, hero back as a body sibling of .homepage, slots-list back to repeat(3, 72px) with minSlots=9. Two of the user's own tweaks baked into the defaults: .section.chromeless on the left column so slot icons float on the page background instead of sitting in a boxed panel, and defaultState().iconSize = "large" (60 px tiles). Game.X in the SM cards (replaces SilentMode.X in its slot, stub description + a built-in gamepad brand mark until game.x goes live). SilentMode.X moved to the quick-links strip as the 5th slot. moveItem now strips the pinned-slot anchor when a q item moves to sm — a link dragged onto the cards used to flip back on the next render because its slot number was still set. Nostr NIP-07 signer grows per-site identities (0.1.0 → 0.1.1). First approval modal picks between the Hermes identity (one npub for DMs and public notes, the one published as the np record on your BNS name) and a site-specific HKDF-derived npub (unique per origin, so Nostr clients can't cross-correlate your activity). The chooser shows both npubs so the user sees what each button reveals. Grants without a stored profileId (migrated from 0.3.131) default to the Hermes identity so existing approvals keep behaving the same. lib/hermes.js:nostrKeyFromRootForOrigin HKDFs with info silentmode/nostr-origin/v1/<origin> over the existing 32-byte messengerRoot. main.js _nostrAPI methods take {profileId, origin}; signer cache per profile. Silent Mode Mail retired as an extension — now a Sidebar quicklink (id: silentmail). Its 0.1.0 panel iframed mail.silentmode.st, which sends X-Frame-Options: DENY; the browser rendered the block page and STILL fired the iframe's load event, so the 5 s "did it embed?" watchdog saw it as loaded and the panel stayed black. The whole extension was just a landing page with an Open Mail button — exactly what a sidebar quicklink does, without taking a panel slot or an Extensions row. migrateAegisRename auto-retires any existing extensions/mail/ to addons-backups/mail-migrated-<stamp>/ on first boot of this Theseus; "mail" added to the first-party reserved-ids list so a community add-on can't claim the id. Claude connector 0.2.1 → 0.2.2: the bearer token no longer rotates on every server stop. The old stop() generated a fresh token every time Theseus quit, the panel toggled off, or a 0.3.X install replaced the app — the Connect button wrote the new token to ~/.claude.json but any already-running Claude Code or Claude Desktop process held the previous token in memory and only re-reads config on launch, so /mcp reconnect kept sending the stale bearer and the server rejected it forever. Infinite loop: install Theseus upgrade, click Connect, MCP still 401, close Claude, open Claude, install another upgrade a day later, repeat. The explicit Revoke token button still rotates for users who want fresh keys; everything else is persistent. Sidebar panel apps blank to about:blank after 2 min of being closed to free their render tree (iframes, media, listeners). Fast reopen within the window still reuses the loaded page. Light theme palette flip under body.light — the full set of --ink / --mut / --card / --line tokens flip plus hero + card translucent panels switch to light-glass, so hero titles, SM card text, slot labels and the ".bch" tld read correctly on the light background preset instead of as pale ghosts.
2026-10-30 03:45:32 +02:00
"version": "0.1.1",
Theseus 0.3.131: Mail promoted to Sidebar quicklink, Nostr signer ships, panels free RAM when idle, Game.X in SM cards Silent Mode Mail is no longer an extension. The 0.1.0 panel was a black screen (iframe to mail.silentmode.st which sends X-Frame-Options: DENY; the browser rendered the block page and still fired the iframe's load event, so the 5-second "did it embed?" watchdog saw it as loaded and the fallback never swapped in). The whole extension existed to put one "Open Mail" button in a panel — that is exactly what a sidebar quicklink does, without taking a panel slot or an Extensions row. So: - settings.quickLinks default list gains silentmail at the top (Silent Mode Mail → https://mail.silentmode.st/). - migrateAegisRename grew a mail retirement block: any existing extensions/mail/ folder on the user's box moves to addons-backups/mail-migrated-<stamp>/ on first boot of this Theseus, so the old extension vanishes from Settings instead of sitting there with a broken panel. - "mail" added to the first-party reserved-ids list so no community add-on can claim the id after retirement. Nostr NIP-07 signer finally ships. The bundled-addons/nostr/ folder was sitting untracked in the main checkout, so the detached-HEAD build worktree 0.3.130 used never saw it (same reason build/, tor/, snapshots/ have to be hand-copied into the worktree). This build committed the folder and copied it in. Puts window.nostr on https + localhost pages; identity is Hermes's key (one npub for DMs and public notes). Per-origin read/sign grants; kinds 0/3/5/10002 re-prompt every time with no remember option. Sidebar panel apps free their render tree after idle. closeLeftPanel used to keep the loaded page warm forever — great for fast reopen, bad for RAM when the user docks a heavy panel (Hermes, Pithos, Aegis) once and never comes back. A 2-minute idle timer now blanks the panel to about:blank after close; reopen within the window still reuses the loaded page (cancelLeftPanelIdleUnload on open), reopen after the window reloads fresh. LEFT_PANEL_IDLE_MS = 2 * 60 * 1000. Right-side sidebar view (webapp tabs — Telegram, X, WhatsApp, AI chat) is longer- lived by design and untouched here. Startpage layout: - Game.X takes SilentMode.X's slot in the Silent Mode cards (stub description + a built-in gamepad brand mark until game.x goes live). SilentMode.X moves to the quick-links strip as the 5th slot. Still TODO: push the swap into the remote home-cards.json for existing profiles. - Light-theme palette flip under body.light. The @media (prefers-color-scheme: light) block only triggered on OS-level light preference; picking the "light" background preset left --ink white against a white page, so hero titles, card titles, slot labels and the ".bch" extension read as pale ghosts. Added a full body.light { --ink; --mut; --card; --line; ... } block plus overrides for the hero + card translucent panels (dark-glass → light-glass on light theme) and the ctx-menu / modal. Dark theme untouched.
2026-10-30 00:38:08 +02:00
"description": "Sign in to Nostr apps with the identity Theseus already holds. Adds window.nostr (NIP-07): sites can ask who you are and ask you to sign, one approval at a time, and your key never leaves the browser.",
"author": "Silent Mode",
"icon": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij4gPHJlY3QgeD0iMSIgeT0iMSIgd2lkdGg9IjIyIiBoZWlnaHQ9IjIyIiByeD0iNS41IiBmaWxsPSIjOGU1Y2Y3Ii8+IDxjaXJjbGUgY3g9IjkuMyIgY3k9IjkuMyIgcj0iMy42IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmZmZmYiIHN0cm9rZS13aWR0aD0iMi40Ii8+IDxwYXRoIGQ9Ik0xMS45IDExLjkgMTkgMTkiIHN0cm9rZT0iI2ZmZmZmZiIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPiA8cGF0aCBkPSJNMTYuMiAxNi4ybC0xLjkgMS45IiBzdHJva2U9IiNmZmZmZmYiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4gPC9zdmc+",
"main": "index.js",
"activation": "on-demand",
"panels": [
{
"id": "main",
"title": "Nostr",
"page": "panel.html"
}
],
"capabilities": [
"sidebar-panel",
"page-inject",
"approval-modal"
],
"page-inject": {
"preload": "nostr-inject.js",
"origins": [
"https://*/*",
"http://localhost/*",
"http://127.0.0.1/*",
"http://[::1]/*"
]
},
"updateURL": "https://navigate.st/bns/theseus.x/extensions/nostr/updates.json"
}