If a user was running the nostr-article-capture userscript (v1.8.0 same schema), they've got publications / people / organizations / keypair registry / preferences stored in their user-script manager's GM_setValue area. The extension can't read that directly (different storage scope), but we can offer a frictionless way to export-from-userscript then import-into-extension.
Plan
- In the userscript, add an "Export all data for X-Ray" menu command that writes a single combined JSON blob to the clipboard (or downloads a file):
{ publications, people, organizations, keypair_registry, preferences }.
- In the options page, add an "Import from userscript" flow that accepts that blob and merges each section into
chrome.storage.local (preserving existing extension data).
Notes
- Keypair export already has a single-section path (
Keypair Registry → Import JSON). This is the broader version for everything-at-once.
- Warn clearly that the blob contains private keys; treat it the same as the existing keypair export.
- Doesn't need to be symmetric — we only need userscript → extension, not the reverse.
If a user was running the
nostr-article-captureuserscript (v1.8.0 same schema), they've got publications / people / organizations / keypair registry / preferences stored in their user-script manager'sGM_setValuearea. The extension can't read that directly (different storage scope), but we can offer a frictionless way to export-from-userscript then import-into-extension.Plan
{ publications, people, organizations, keypair_registry, preferences }.chrome.storage.local(preserving existing extension data).Notes
Keypair Registry → Import JSON). This is the broader version for everything-at-once.