Claude
d586a0dc25
feat: replace libsodium with pure Kotlin ChaCha20/Poly1305 implementation
...
Remove LazySodium/JNA/libsodium native dependencies and replace with
pure Kotlin implementations of ChaCha20, HChaCha20, XChaCha20,
Poly1305 MAC, and XChaCha20-Poly1305 AEAD. This eliminates platform-
specific native binaries while maintaining full NIP-44 compatibility.
- Add ChaCha20Core with RFC 8439 block function, IETF stream XOR,
HChaCha20, and XChaCha20
- Add Poly1305 MAC (RFC 8439 §2.5)
- Add XChaCha20Poly1305 AEAD encrypt/decrypt
- Convert LibSodiumInstance from expect/actual to commonMain object
- Delete platform-specific LibSodiumInstance actuals (android/jvm/ios)
- Remove iOS native interop (cinterop, linker opts, .a libraries)
- Remove lazysodium-java, lazysodium-android, JNA from build deps
- Clean up ProGuard rules (remove JNA/LazySodium keep rules)
- Add RFC 8439 + libsodium test vectors for ChaCha20 and XChaCha20
- Update benchmark to use simplified ChaCha20 API
https://claude.ai/code/session_01YHBwqnb3Z7Q7PX31tJ2G3i
2026-03-23 17:40:29 +00:00
Vitor Pamplona
bbb75afed9
Merge pull request #1904 from vitorpamplona/l10n_crowdin_translations
...
New Crowdin Translations
2026-03-23 08:27:58 -04:00
Crowdin Bot
2eb3ebd365
New Crowdin translations by GitHub Action
2026-03-23 12:25:24 +00:00
Vitor Pamplona
c75881d928
Merge pull request #1903 from nrobi144/fix/chess-interop
...
fix(chess): normalize SAN for cross-client Jester interop
2026-03-23 08:23:51 -04:00
nrobi144
9d8d0e249d
fix(chess): encode required fields in Jester content JSON
...
JesterContent fields version, fen, and history were omitted from
serialized JSON because kotlinx.serialization skips default values.
Jester's isStartGameEvent checks arrayEquals(json.history, []) which
fails when the field is absent (undefined !== []).
Added @EncodeDefault to version, fen, and history so they are always
included in the JSON output regardless of value.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-23 09:08:28 +02:00
nrobi144
677bc6c34a
fix(chess): add offchain.pub relay for jester interop
...
jester.nyo.dev uses offchain.pub as one of its relays. Adding it gives
us 2 shared relays (relay.damus.io + offchain.pub) instead of 1,
improving challenge visibility between Amethyst and Jester clients.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-23 08:26:09 +02:00
nrobi144
3eaf3d38a5
fix(chess): normalize SAN for cross-client interop
...
ChessEngine.makeMove() now normalizes SAN notation before passing to
chesslib, fixing games against jester.nyo.dev and other clients that
use different notation:
- Castling: 0-0 → O-O, 0-0-0 → O-O-O (zeros to letters)
- Annotations: strips !, ?, !!, ??, !?, ?! suffixes
Previously, chesslib rejected 0-0/0-0-0 causing ChessStateReconstructor
to mark games as desynced and skip remaining moves. Games appeared
permanently stuck, even after app restart.
Also fixes discoverUserGames() silently dropping games classified as
spectator — now adds them to spectatingGames instead.
23 new interop tests covering SAN variants, reconstruction, spectator
detection, and missing start event handling.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-23 07:21:17 +02:00
Vitor Pamplona
d4fd8088f1
lint 2
2026-03-22 21:04:11 -04:00
Vitor Pamplona
3e7633ea6b
lint
2026-03-22 20:02:13 -04:00
Vitor Pamplona
11ed878111
Removing unnecessary XML loading.
2026-03-22 19:43:00 -04:00
Vitor Pamplona
76df43b031
Removes logs from blossom fetcher
2026-03-22 19:07:18 -04:00
Vitor Pamplona
41b0abc8e9
Moves expiration process to IO
2026-03-22 19:06:37 -04:00
Vitor Pamplona
f70fd9ad2b
more change log improvements.
2026-03-22 15:47:00 -04:00
Vitor Pamplona
9eba27e9b2
Additional updates to the change log
2026-03-22 15:28:08 -04:00
Vitor Pamplona
37f6a7b133
Makes sure subscriptions are closed on the NostrClient utility methods
2026-03-22 15:18:48 -04:00
Vitor Pamplona
439b392aa0
Moves EmptyNostrClient to a class to avoid auto-import issues
2026-03-22 15:14:49 -04:00
Vitor Pamplona
2e1066a609
Merge pull request #1902 from vitorpamplona/l10n_crowdin_translations
...
New Crowdin Translations
2026-03-22 14:55:48 -04:00
Crowdin Bot
0905b05388
New Crowdin translations by GitHub Action
2026-03-22 18:50:38 +00:00
Vitor Pamplona
b2f7c3296f
Activate edits for Articles.
2026-03-22 14:47:27 -04:00
Vitor Pamplona
9c30e2d0f6
Adds draft editing to long form posting
2026-03-22 14:38:44 -04:00
Vitor Pamplona
570639c1df
Fixes build
2026-03-22 12:50:26 -04:00
Vitor Pamplona
65ae09e201
Adding file uploads and metadata stripping to the Longform screen
2026-03-22 12:46:25 -04:00
Vitor Pamplona
93b1392080
Merge pull request #1901 from vitorpamplona/claude/add-markdown-post-screen-Xma8x
...
Add NIP-23 Long-Form Content (Markdown Articles) Support
2026-03-22 12:38:14 -04:00
Vitor Pamplona
3e93472dce
Merge branch 'main' into claude/add-markdown-post-screen-Xma8x
2026-03-22 12:38:04 -04:00
Vitor Pamplona
26a3dcbd85
Adds upload cover url
2026-03-22 12:35:19 -04:00
Vitor Pamplona
ffa60c5fd3
Final touches on new Markdown Screen
2026-03-22 12:25:49 -04:00
Vitor Pamplona
cd3282b342
Merge pull request #1900 from vitorpamplona/l10n_crowdin_translations
...
New Crowdin Translations
2026-03-22 11:25:05 -04:00
Crowdin Bot
41539c1b7a
New Crowdin translations by GitHub Action
2026-03-22 15:21:49 +00:00
Vitor Pamplona
40c45fb3a1
Adds a RelaySync filter by since/until dates.
2026-03-22 11:18:28 -04:00
Vitor Pamplona
b6b4856fe4
Fixes a closing bug when the coroutine crashes
...
Fixes an index bug on matching subscriptions
Requires the relay to send events that match the sub in order to move forward with the paging
2026-03-22 11:18:12 -04:00
Vitor Pamplona
adb3a0e0fc
Better transitions to a Nostrclient that is autocloseable, destroying all links to everything else when closing
2026-03-22 11:16:54 -04:00
Vitor Pamplona
459f69ff2c
Moves open polls view to a state flow in thew viewmodel
2026-03-21 16:20:15 -04:00
Vitor Pamplona
90cced23d2
Fixes search by noteID returning a version of the note instead of the address
2026-03-21 15:49:19 -04:00
David Kaspar
0dec0164ad
Merge pull request #1899 from vitorpamplona/l10n_crowdin_translations
...
New Crowdin Translations
2026-03-21 18:47:46 +01:00
Crowdin Bot
5af0cc7eac
New Crowdin translations by GitHub Action
2026-03-21 17:38:51 +00:00
Vitor Pamplona
ef5508b60b
Merge pull request #1896 from vitorpamplona/l10n_crowdin_translations
...
New Crowdin Translations
2026-03-21 13:38:47 -04:00
Vitor Pamplona
fd79da0b09
Merge pull request #1898 from vitorpamplona/claude/nip42-relay-auth-P878m
...
Implement pluggable relay policies for NIP-42 authentication
2026-03-21 13:37:36 -04:00
Vitor Pamplona
15ff3040b5
Merge branch 'main' into claude/nip42-relay-auth-P878m
2026-03-21 13:37:21 -04:00
Crowdin Bot
a86b9ab2e1
New Crowdin translations by GitHub Action
2026-03-21 17:35:12 +00:00
Vitor Pamplona
862aa0cb78
Update CHANGELOG for release v1.06.0
...
Updated CHANGELOG for release v1.06.0, detailing new features, improvements, and removals including support for NIP-85 Polls, custom NIP-40 Expirations, and various UI enhancements.
2026-03-21 13:33:51 -04:00
Vitor Pamplona
cfead47d71
Improves design of the policy
2026-03-21 13:21:21 -04:00
davotoula
32c0efb291
update translations: CZ, DE, PT, SE
2026-03-21 16:04:16 +01:00
Vitor Pamplona
b2ad97bb6b
merge
2026-03-20 21:19:49 -04:00
Vitor Pamplona
df6dc17047
Final touches on the Attestation cards
2026-03-20 21:16:59 -04:00
David Kaspar
81308a2368
Merge pull request #1894 from vitorpamplona/l10n_crowdin_translations
...
New Crowdin Translations
2026-03-21 00:16:29 +01:00
Crowdin Bot
24d2928881
New Crowdin translations by GitHub Action
2026-03-20 23:08:05 +00:00
Vitor Pamplona
2ef634ca01
Fixes showing attestations in the NoteMaster
2026-03-20 19:05:07 -04:00
Vitor Pamplona
aca62ec81f
Improves layout of the open poll cards
2026-03-20 18:41:11 -04:00
Claude
b0a8cae194
refactor: extract AuthPolicy interface from requireAuth boolean
...
Replace the requireAuth: Boolean parameter in NostrServer with a
pluggable AuthPolicy interface. Each policy has trigger points for
EVENT (acceptEvent), REQ (acceptReq with filter rewriting), COUNT
(acceptCount), and live event delivery (canSendToSession).
Built-in policies: OpenPolicy (allow all) and RequireAuthPolicy
(require auth for all commands, matching the previous behavior).
https://claude.ai/code/session_017vdjbdxdYK1oJMH66koVZE
2026-03-20 22:40:18 +00:00
Vitor Pamplona
f2e60986d6
Merge pull request #1895 from vitorpamplona/claude/show-open-polls-notifications-1ZDVi
...
Add Open Polls section to notifications feed
2026-03-20 18:30:07 -04:00