Vitor Pamplona
d84d146981
Merge branch 'main' into claude/remove-libsodium-dependency-DjtWa
2026-03-25 11:24:55 -04:00
Vitor Pamplona
5d0f9ac866
Cleaning up residue from removing the need for rfc 3986 and smpForKmp
2026-03-24 17:41:20 -04:00
KotlinGeekDev
cfecfe2130
Move uri-reference-kmp to version catalog. Remove swift bridge(was a nice run).
2026-03-23 19:49:24 +01:00
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
9d086df37a
Updating all dependencies
2026-03-23 10:28:33 -04:00
Vitor Pamplona
d431b12f94
Migrates EventStore from Android's SQLLite to KMP
...
Fixes testing of libsodium between java and android
2026-03-20 16:00:17 -04:00
Vitor Pamplona
185fd96802
Merge branch 'main' into claude/strip-file-metadata-sVIEd
2026-03-19 10:06:20 -04:00
Vitor Pamplona
91994a0b74
Merge branch 'main' into claude/strip-file-metadata-sVIEd
2026-03-17 13:25:54 -04:00
nrobi144
212dda40ca
feat(media): Phase 0+1 — Coil3 image loading + inline images in notes
...
- DesktopImageLoaderSetup: Coil3 with explicit memory cache (25% heap,
max 512MB), persistent disk cache (OS-appropriate paths), SVG decoder
- DesktopBlurHashFetcher: blurhash placeholder images via Skia Bitmap
- DesktopBase64Fetcher: base64 data: URI image decoding
- SkiaGifDecoder: GIF first-frame rendering via Skia Codec
- MediaAspectRatioCache: thread-safe LruCache for aspect ratios
- NoteCard: inline AsyncImage for image URLs, stripped from text
- Added coil-compose, coil-okhttp, coil-svg, vlcj, commons-imaging,
androidx-collection deps to desktopApp
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-17 05:44:33 +02:00
Vitor Pamplona
d0297b7e34
Fixes stability plugin for AGP9
2026-03-16 19:44:51 -04:00
Vitor Pamplona
7c22c4e6c5
Migrates to collections 1.6, which deprecates iOS Intel targets.
2026-03-16 13:45:01 -04:00
Vitor Pamplona
81ecaa82ff
Migrates to vico charts 3.0
2026-03-16 12:53:54 -04:00
Vitor Pamplona
714afdc2a8
Update dependencies
2026-03-16 09:35:41 -04:00
Vitor Pamplona
8b4a45cb5b
Removing deprecated library addresses and deprecated apis
2026-03-15 20:52:01 -04:00
Claude
cf922a064b
feat: Strip sensitive metadata from media files before upload
...
Adds a MetadataStripper that removes GPS location, camera info, timestamps,
and other sensitive EXIF/metadata from images, videos, and audio files before
uploading. This protects user privacy by default.
- Creates MetadataStripper using AndroidX ExifInterface for images and
MediaMuxer for video/audio remuxing
- Adds "Strip location metadata" toggle to all upload dialogs (NewMediaView,
ChatFileUploadDialog) so users can disable stripping per upload
- Persists the setting in AccountSettings (stripLocationOnUpload, default true)
- Integrates stripping into UploadOrchestrator before compression
- Covers all upload paths: media posts, DM attachments, channel uploads,
profile pictures, list/channel metadata images
https://claude.ai/code/session_01974zpAMSRD9GeqBt9ax6XD
2026-03-14 03:50:34 +00:00
Vitor Pamplona
f4d401bc56
Switches to our own version of the Url Detector
2026-03-06 10:58:59 -05:00
Vitor Pamplona
1fa93788db
android target seems to be creating some issues between plugin dependencies after adding spm
2026-03-04 12:19:47 -05:00
Vitor Pamplona
67390bb8ec
Updating Coil
2026-03-04 12:18:11 -05:00
KotlinGeekDev
68a262fa88
Merge branch 'main' of https://github.com/vitorpamplona/amethyst into upstream-main
...
# Conflicts:
# gradle/libs.versions.toml
# quartz/build.gradle.kts
# quartz/src/androidHostTest/kotlin/com/vitorpamplona/quartz/TestResourceLoader.android.kt
# quartz/src/iosMain/kotlin/com/vitorpamplona/quartz/utils/GZip.ios.kt
# quartz/src/iosTest/kotlin/com/vitorpamplona/quartz/TestResourceLoader.kt
2026-03-04 00:37:10 +01:00
Vitor Pamplona
edb73b3556
Updates AGP
2026-03-03 11:52:03 -05:00
Vitor Pamplona
5e2a4b2cef
- Migrates Gallery to not play videos and simply display a tumbnail when it is a video
...
- Fixes incorrect aspect ratios of the AutoNonLazyGrid when multiple images exist for a single entry
- Adds Play buttons when the image fails to load so that people click and the post appears.
2026-02-23 19:28:53 -05:00
KotlinGeekDev
3817fb04f0
Merge remote-tracking branch 'origin/kmp-completeness' into kmp-completeness
2026-02-23 20:46:09 +01:00
KotlinGeekDev
265fef0a93
Foundations(iOS Sourceset): Provide implementation for AESGCM. Duplicate AESGCM tests for iOS. Move dependency to 'cryptography-optimal' make use of all iOS crypto providers.
2026-02-23 17:57:54 +01:00
Vitor Pamplona
7bd4698073
Updates Tor
2026-02-17 19:28:53 -05:00
Vitor Pamplona
862ce9e2c2
Move to AGP 9.0.1
2026-02-17 19:01:25 -05:00
Vitor Pamplona
c4e3d99392
moves chess lib to version catalog
2026-02-17 18:45:35 -05:00
KotlinGeekDev
2d2ddda2c5
Merge branch 'vitorpamplona:main' into kmp-completeness
2026-02-13 04:20:01 +01:00
Vitor Pamplona
e84e748959
updating libraries
2026-02-12 15:13:07 -05:00
KotlinGeekDev
3f9614dd8f
Merge branch 'main' of https://github.com/vitorpamplona/amethyst into upstream-main
...
# Conflicts:
# gradle/libs.versions.toml
2026-02-11 13:57:01 +01:00
KotlinGeekDev
dcb10b249a
Foundations(iOS Sourceset): Provide implementation for MacInstance(using external library). Bring some tests into commonTest to make sure it works.
2026-02-09 21:57:54 +01:00
Vitor Pamplona
eb66182211
- Updates several libraries
...
- Reformats code to the newest Klint
- Fixes isEmpty bug on Filters
2026-02-09 14:06:07 -05:00
Vitor Pamplona
6125394354
Migrates to AGP 9
2026-02-08 16:33:39 -05:00
KotlinGeekDev
b965ff1cc6
Merge remote-tracking branch 'origin/kmp-completeness' into kmp-completeness
2026-01-28 15:09:57 +01:00
KotlinGeekDev
3ee600ea28
Merge branch 'vitorpamplona:main' into kmp-completeness
2026-01-28 00:09:19 +01:00
KotlinGeekDev
506996b382
Foundations(iOS Sourceset): Provide implementation for GZip compression/decompression. Some small fixes in URLs.ios.kt .
2026-01-27 20:52:43 +01:00
KotlinGeekDev
4e2f779b54
Foundations(iOS Sourceset): Provide implementation for UrlEncoder.
2026-01-27 16:31:04 +01:00
nrobi144
71e68dc35b
refactor(commons): migrate from Moko to Compose Multiplatform Resources
...
Remove Moko Resources dependency that blocks AGP 9.0 migration.
Migrate to built-in Compose Multiplatform Resources which is compatible
with the new KMP Android plugin.
- Remove moko-resources plugin and libraries from commons module
- Move strings.xml from moko-resources/ to composeResources/values/
- Update imports from SharedRes.strings.* to Res.string.*
- Add compose.components.resources dependency to desktopApp
- Configure resource package as com.vitorpamplona.amethyst.commons.resources
Closes #1675
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-25 13:29:55 +02:00
KotlinGeekDev
f2ac68ccf8
Merge branch 'vitorpamplona:main' into kmp-completeness
2026-01-15 20:53:38 +01:00
Vitor Pamplona
be7865d458
updates keyring and vico
2026-01-13 17:13:03 -05:00
davotoula
bfd0fc01b9
add TarsosDSP dependency for voice anonymization
2026-01-12 23:03:51 +01:00
KotlinGeekDev
a9f6ebde83
Merge branch 'vitorpamplona:main' into kmp-completeness
2026-01-12 15:25:11 +01:00
KotlinGeekDev
f5bb0dbc1d
Move cachemap dependency to version catalog.
2026-01-12 15:06:57 +01:00
Vitor Pamplona
41cb143e0d
Merge branch 'main' into nrobi144/desktop-phase1
2026-01-07 09:23:57 -05:00
nrobi144
a9141763e1
previous PR fixes
2026-01-07 07:12:00 +02:00
nrobi144
4339247815
key storage
2026-01-06 06:49:59 +02:00
Vitor Pamplona
2fc7e505a3
Update stability analiser
2026-01-05 09:36:46 -05:00
Vitor Pamplona
fdc751f9e5
Updates Vico
2026-01-04 16:38:06 -05:00
Vitor Pamplona
31d7e135cb
Updates kotlin, compose, multiplatform, activity, serialization, media3, mockk, secp256, tor, androidxCamera, stdlib
2025-12-29 14:23:48 -05:00
nrobi144
82f8bc62a0
feat: Add Compose Multiplatform Desktop support foundation
...
- Add desktopApp module with JVM entry point and sidebar navigation
- Add Claude specs for AI-assisted development:
- Agent definitions: nostr-protocol, kotlin-multiplatform, compose-ui, kotlin-coroutines
- Skills: quartz-kmp conversion, compose-desktop patterns
- Commands: desktop-run, nip, extract
- Update Gradle configuration with Compose Multiplatform 1.7.1 plugin
- Add coroutines and secp256k1 JVM dependencies to version catalog
Next steps:
- Convert Quartz library to full KMP (expect/actual for crypto)
- Implement relay connections in desktop app
- Share UI components between Android and Desktop
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-26 08:21:02 +02:00
Vitor Pamplona
5c01aaf996
Upgrades AGP
2025-12-12 13:25:29 -05:00