Skip to content

Relay hint was ignored in nevent#99

Open
koteitan wants to merge 48 commits into
akiomik:mainfrom
koteitan:main
Open

Relay hint was ignored in nevent#99
koteitan wants to merge 48 commits into
akiomik:mainfrom
koteitan:main

Conversation

@koteitan

@koteitan koteitan commented Feb 3, 2026

Copy link
Copy Markdown

Issues

showing list

adding note

  • nevent1qvzqqqqqqypzqwyu5j2hjyd3ycyn7s4q4yrcv52mtyc3m3dfg26qf4lpdutjs7pgqyxhwumn8ghj77tpvf6jumt9qys8wumn8ghj7un9d3shjtt2wqhxummnw3ezuamfwfjkgmn9wshx5uqpz9mhxue69uhhytntda4xjunp9e5k7qpql36sphgcnnjv4dcyfjy627gw5fsf5y5n2rrqnh5f8m2hgxavcr0s80yhul was not found at adding notes in edit because the relay hint was ignored and the note didn't exist in the default relays.

Changes

  • replace nip19ToHex into the new function decodeNip19 that returns the noteid and the relay hints.
  • add the relay hints in nevent into the client.
  • preserve relay hints in e tags when saving lists (LongFormContent.toEvent)
  • return nevent format from noteIds() when relay exists (LongFormContent.noteIds)
  • connect to relay hints before fetching notes when opening edit page (noteEditor.ts)
  • add unit test code of decodeNip19

System test

Main

TC-1: [noteEditor.ts:45-60] nevent

  1. Open /li/new to create a new list
  2. Enter nevent1qvzqqqqqqypzqwyu5j2hjyd3ycyn7s4q4yrcv52mtyc3m3dfg26qf4lpdutjs7pgqyxhwumn8ghj77tpvf6jumt9qys8wumn8ghj7un9d3shjtt2wqhxummnw3ezuamfwfjkgmn9wshx5uqpz9mhxue69uhhytntda4xjunp9e5k7qpql36sphgcnnjv4dcyfjy627gw5fsf5y5n2rrqnh5f8m2hgxavcr0s80yhul and add the note
  3. Verify the note is fetched and displayed correctly (this is the main improvement of this change)

Regression Tests

TC-2: [noteEditor.ts:45-51] Add note1 that exists on default relay

  1. Open /li/new to create a new list
  2. Enter note1uqjxxz3a3ay63xyxfvtund280x86lruae7ry7yd0trfxns2cy48qzn0x0w and add the note
  3. Verify the note is fetched and displayed correctly

TC-3: [noteEditor.ts:12-26] Open edit page for existing list containing nevent with relay hints

  1. First, create a list containing the nevent from TC-1:
    • Open /li/new
    • Add nevent1qvzqqqqqqypzqwyu5j2hjyd3ycyn7s4q4yrcv52mtyc3m3dfg26qf4lpdutjs7pgqyxhwumn8ghj77tpvf6jumt9qys8wumn8ghj7un9d3shjtt2wqhxummnw3ezuamfwfjkgmn9wshx5uqpz9mhxue69uhhytntda4xjunp9e5k7qpql36sphgcnnjv4dcyfjy627gw5fsf5y5n2rrqnh5f8m2hgxavcr0s80yhul
    • Save the list
  2. Open the edit page /li/[id]/edit for the saved list
  3. Verify the note (which only exists on non-default relays) is fetched and displayed correctly
    • This tests that relay hints from nevent are used when loading existing lists

TC-4: Enter invalid nip19 string

  1. Open /li/new to create a new list
  2. Enter npub180cvv07tjdrrgpa0j7j7tmnyl2yr6yr7l8j4s3evf6u64th6gkwsyjh6w6
  3. Verify error is handled appropriately (no crash)

- Add decodeNip19 function to extract both event ID and relay hints
- Add relay hints to rx-nostr client before fetching note in appendNote
- Remove nip19ToHex function from NostrClient.ts and its tests
- Replace nip19ToHex calls with decodeNip19 in noteEditor.ts
- Add unit tests for decodeNip19 function
- Preserve relay hints in e tags when saving matome (toEvent)
- Return nevent format with relay hints from noteIds() when relay exists
- Connect to relay hints before fetching notes when opening edit page
@vercel

vercel Bot commented Feb 3, 2026

Copy link
Copy Markdown

@koteitan is attempting to deploy a commit to the Akiomi KAMAKURA's projects Team on Vercel.

A member of the Team first needs to authorize it.

koteitan and others added 26 commits May 7, 2026 23:39
- Update re2 from ^1.18.0 to ^1.24.0 in package.json
- Refresh package-lock.json with new dependency tree
- Restrict LoginForm key input to npub only
- Drop seckey cookie store and its signing path in KeyManager
- Replace isLoggedInWithSecretKey with isWritableLoggedIn in Header
- Update ja/en locales to remove nsec wording and "(推奨)" / "(recommended)"
- save the setting in cookie
… dedupe initNoteIds

- relay source selector with kind:10002, 3 / default fallback
  - Add relay source radio (kind:10002, 3 / default) at the bottom of the relay popover, persisted in cookie
  - Resolve the user's relay list via a temporary rx-nostr instance using BOOTSTRAP_RELAYS, with fallback chain kind:10002 -> kind:3 -> default
  - Share resolved relays through currentRelays store and gate slot rendering on relaysReady to prevent default-relay queries
  - Filter stale relays from relayConnectionsStore by intersecting with client.getRelays() at emit time
  - Switch MatomeForm's NostrClient to read from currentRelays instead of hardcoded defaults
- default dark mode
  - Default darkMode cookie to true
- dedupe initNoteIds
  - Dedupe initNoteIds in noteEditor to avoid Editor keyed-each duplicate keys
- version bump
  - Bump version 0.0.1 -> 0.0.2
- Switch adapter from adapter-auto to adapter-static with SPA fallback (index.html)
- Set kit.paths.base from BASE_PATH env so dev keeps "/" and CI builds with "/nosli"
- Prefix all absolute hrefs / src / goto calls with $app/paths base
- Add static/.nojekyll so GitHub Pages serves the _app directory
- Add .github/workflows/deploy.yml that runs on main push and publishes build/ to Pages
- Bump version 0.0.2 -> 0.0.3
- Switch adapter-static fallback from index.html to 404.html so GitHub Pages serves the SPA on missing paths
- Copy build/404.html to build/index.html in the deploy workflow to keep the root URL responding with 200
- Bump version 0.0.3 -> 0.0.4
- Require window.nostr in isLoggedInWithNip07() so a leftover nip07 cookie no longer marks the user as logged in
- Drop the explicit "Failed to resolve NIP-07" rejection in getPublicKey and fall back to the stored pubkey instead
- Repoint Footer GitHub link from akiomik/nosli to koteitan/nosli
- Bump version 0.0.4 -> 0.0.5
Bumps [flatted](https://github.com/WebReflection/flatted) from 3.2.7 to 3.4.2.
- [Commits](WebReflection/flatted@v3.2.7...v3.4.2)

---
updated-dependencies:
- dependency-name: flatted
  dependency-version: 3.4.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [minimatch](https://github.com/isaacs/minimatch) from 3.1.2 to 3.1.5.
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](isaacs/minimatch@v3.1.2...v3.1.5)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-version: 3.1.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [rollup](https://github.com/rollup/rollup) from 3.29.5 to 3.30.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/v3.30.0/CHANGELOG.md)
- [Commits](rollup/rollup@v3.29.5...v3.30.0)

---
updated-dependencies:
- dependency-name: rollup
  dependency-version: 3.30.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
…eltejs/kit

Removes [undici](https://github.com/nodejs/undici). It's no longer used after updating ancestor dependencies [undici](https://github.com/nodejs/undici), [@sveltejs/adapter-auto](https://github.com/sveltejs/kit/tree/HEAD/packages/adapter-auto), [@sveltejs/adapter-static](https://github.com/sveltejs/kit/tree/HEAD/packages/adapter-static) and [@sveltejs/kit](https://github.com/sveltejs/kit/tree/HEAD/packages/kit). These dependencies need to be updated together.


Removes `undici`

Updates `@sveltejs/adapter-auto` from 2.0.0 to 7.0.1
- [Release notes](https://github.com/sveltejs/kit/releases)
- [Changelog](https://github.com/sveltejs/kit/blob/main/packages/adapter-auto/CHANGELOG.md)
- [Commits](https://github.com/sveltejs/kit/commits/@sveltejs/adapter-auto@7.0.1/packages/adapter-auto)

Updates `@sveltejs/adapter-static` from 2.0.3 to 3.0.10
- [Release notes](https://github.com/sveltejs/kit/releases)
- [Changelog](https://github.com/sveltejs/kit/blob/main/packages/adapter-static/CHANGELOG.md)
- [Commits](https://github.com/sveltejs/kit/commits/@sveltejs/adapter-static@3.0.10/packages/adapter-static)

Updates `@sveltejs/kit` from 1.30.4 to 2.59.1
- [Release notes](https://github.com/sveltejs/kit/releases)
- [Changelog](https://github.com/sveltejs/kit/blob/main/packages/kit/CHANGELOG.md)
- [Commits](https://github.com/sveltejs/kit/commits/@sveltejs/kit@2.59.1/packages/kit)

---
updated-dependencies:
- dependency-name: undici
  dependency-version: 
  dependency-type: indirect
- dependency-name: "@sveltejs/adapter-auto"
  dependency-version: 7.0.1
  dependency-type: direct:development
- dependency-name: "@sveltejs/adapter-static"
  dependency-version: 3.0.10
  dependency-type: direct:development
- dependency-name: "@sveltejs/kit"
  dependency-version: 2.59.1
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
…veltejs/kit

Bumps [devalue](https://github.com/sveltejs/devalue) to 5.8.0 and updates ancestor dependencies [devalue](https://github.com/sveltejs/devalue), [@sveltejs/adapter-auto](https://github.com/sveltejs/kit/tree/HEAD/packages/adapter-auto), [@sveltejs/adapter-static](https://github.com/sveltejs/kit/tree/HEAD/packages/adapter-static) and [@sveltejs/kit](https://github.com/sveltejs/kit/tree/HEAD/packages/kit). These dependencies need to be updated together.


Updates `devalue` from 4.3.2 to 5.8.0
- [Release notes](https://github.com/sveltejs/devalue/releases)
- [Changelog](https://github.com/sveltejs/devalue/blob/main/CHANGELOG.md)
- [Commits](sveltejs/devalue@v4.3.2...v5.8.0)

Updates `@sveltejs/adapter-auto` from 2.0.0 to 7.0.1
- [Release notes](https://github.com/sveltejs/kit/releases)
- [Changelog](https://github.com/sveltejs/kit/blob/main/packages/adapter-auto/CHANGELOG.md)
- [Commits](https://github.com/sveltejs/kit/commits/@sveltejs/adapter-auto@7.0.1/packages/adapter-auto)

Updates `@sveltejs/adapter-static` from 2.0.3 to 3.0.10
- [Release notes](https://github.com/sveltejs/kit/releases)
- [Changelog](https://github.com/sveltejs/kit/blob/main/packages/adapter-static/CHANGELOG.md)
- [Commits](https://github.com/sveltejs/kit/commits/@sveltejs/adapter-static@3.0.10/packages/adapter-static)

Updates `@sveltejs/kit` from 1.30.4 to 2.59.1
- [Release notes](https://github.com/sveltejs/kit/releases)
- [Changelog](https://github.com/sveltejs/kit/blob/main/packages/kit/CHANGELOG.md)
- [Commits](https://github.com/sveltejs/kit/commits/@sveltejs/kit@2.59.1/packages/kit)

---
updated-dependencies:
- dependency-name: devalue
  dependency-version: 5.8.0
  dependency-type: indirect
- dependency-name: "@sveltejs/adapter-auto"
  dependency-version: 7.0.1
  dependency-type: direct:development
- dependency-name: "@sveltejs/adapter-static"
  dependency-version: 3.0.10
  dependency-type: direct:development
- dependency-name: "@sveltejs/kit"
  dependency-version: 2.59.1
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [picomatch](https://github.com/micromatch/picomatch) from 2.3.1 to 2.3.2.
- [Release notes](https://github.com/micromatch/picomatch/releases)
- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
- [Commits](micromatch/picomatch@2.3.1...2.3.2)

---
updated-dependencies:
- dependency-name: picomatch
  dependency-version: 2.3.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
- Add LinkTarget type and persisted store with default 'nostter'
- Implement externalEventUrl / externalProfileUrl / externalHashtagUrl for nostter, lumilumi, snort
- Add Settings.svelte with three radio groups bound to darkMode, relaySource, and linkTarget
- Add SettingsPopover.svelte that wraps Settings in the centered Popover
- Add settings.{title,theme,relay-source,link-target} entries to ja and en locales
- Replace the dark-mode toggle item in Menu with a settings entry that dispatches select 'settings'
- Track showSettings state in Header and forward menu's select event to open SettingsPopover
- Remove the inline relay source radio from RelayConnectionStatusListPopover (now lives in Settings)
- Delete the standalone RelaySourceSelector component since it has no other consumers
…cial

- Switch ProfileLink and NoteList to externalProfileUrl / externalEventUrl based on $linkTarget
- Convert linkifyOpts into makeLinkifyOpts(target) and reroute hashtag / mention / event hrefs through externalLink helpers
- Subscribe to linkTarget in NoteListItem and the matome / profile pages so use:linkify uses the selected target
- Forward the select event from Menu through MenuPopover so Header receives it
- stopPropagation on the settings button so SettingsPopover's clickOutside does not immediately close it on the same click
- Extend LinkTarget union with nos-haiku, nostrudel, astraea, primal, iris, yakihonne
- Add per-client URL builders for event, profile, and hashtag in externalLink.ts
- List all clients in Settings dialog with their canonical display names
- Drop astraea from LinkTarget union and the Settings radio list
- Add coracle with /notes, /people, and /topics paths in externalLink builders
- Insert Coracle entry into the Settings dialog in place of Astraea
koteitan and others added 19 commits May 8, 2026 20:57
…-3.1.5

Bump minimatch from 3.1.2 to 3.1.5
…c77e80c

Bump undici, @sveltejs/adapter-auto, @sveltejs/adapter-static and @sveltejs/kit
…c4d9d7e

Bump devalue, @sveltejs/adapter-auto, @sveltejs/adapter-static and @sveltejs/kit
…-2.3.2

Bump picomatch from 2.3.1 to 2.3.2
- Pin @sveltejs/kit / adapter-auto / adapter-static back to 1.x compatible majors after the dependabot bump broke peer deps with svelte 3
- Regenerate package-lock.json against the restored versions
- Extend .prettierignore with new.json, changelog files, diff.md, README.md, and the deploy workflow so doc and data files stop tripping the formatter
- Reformat existing source files (linkify, NoteList, NostrClient.test, darkmode, relayResolver) with Prettier
- Replace window.nostr! non-null assertions in KeyManager with explicit guards
- Drop the unused index parameter in MatomeForm's nevent map
- Add workflow_dispatch trigger to node-ci.yml so Run workflow button appears once this lands on main
- Switch the matrix to node-version 20.x so npm ci no longer fails on transitive deps requiring Node >=20.17 (abbrev@4.0.0)
- Add directory.yabu.me, purplepag.es, and indexer.coracle.social to BOOTSTRAP_RELAYS
- Reorder the list to indexer.coracle.social, relay.damus.io, directory.yabu.me, purplepag.es, nos.lol
- Subscribe Header to pubkey and nip07 stores and derive loggedIn / writable in $: blocks
- Replace KeyManager.isLoggedIn() / isWritableLoggedIn() function calls in the template with the reactive variables so login and logout swap the create / login / menu buttons immediately
- Move the menu icon out of the loggedIn branch in Header so anonymous visitors can open the dialog
- Hide mypage and logout entries in Menu when not logged in, keep settings always visible
- Hide the relay source section in Settings when not logged in, keep theme and link target sections
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.31 to 8.5.14.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](postcss/postcss@8.4.31...8.5.14)

---
updated-dependencies:
- dependency-name: postcss
  dependency-version: 8.5.14
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
- Drop version prefixes and bugfix verbosity from changelog.md / changelog-ja.md to match the more concise style applied to changelog-ja.md
- Append the recent user-visible entries (settings dialog, header reactivity, menu visible when logged out)
- Append "- 魔改造 edition" to the header text and to all page titles / og:* meta
- Render the home page heading suffix in a smaller, dimmer span so the h1 keeps "Nosli" prominent
- Bump version 0.0.5 -> 0.0.6
…8.5.14

Bump postcss from 8.4.31 to 8.5.14
- Configure weekly npm updates and weekly github-actions updates
- Ignore semver-major bumps for @sveltejs/kit, @sveltejs/adapter-auto, @sveltejs/adapter-static, vite, vitest, and svelte so they stop generating PRs that break against svelte 3
- Convert dependabot.yml double quotes to single quotes per the repo's singleQuote rule
- Wrap the edit page <title> tag onto separate lines so it stays within Prettier's printWidth
- Run npm audit fix to bump transitive lockfile entries and reduce open advisories from 22 to 20
- Leave the remaining 20 advisories untouched because they require major upgrades (svelte / sveltekit / vite / undici) that the dependabot config has marked as ignored
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant