Commit Graph

13401 Commits

Author SHA1 Message Date
davotoula 596fa93fed i18n: translate cast / report-warning-threshold strings into cs, de, pt-BR, sv
Also drop DLNA from the cast description (functionality removed) in English and Polish.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 23:41:12 +02:00
Vitor Pamplona e0335d4340 Merge pull request #2851 from vitorpamplona/claude/fix-nest-profile-shape-dRMiY
Fix avatar oval distortion in narrow grid cells
2026-05-11 16:59:27 -04:00
Claude c75349feb5 fix(nests): avatar circular on narrow grid cells
The stage/audience LazyVerticalGrid uses Adaptive(80dp) cells while
the avatar wants 75dp. Wrapping the avatar in an inner Box with
`Modifier.padding(ringPadding=12dp)` reserved room for the speaking
glow + outer ring, but it also reduced the avatar's max **width** to
56dp on a typical 82dp cell while leaving its height at the requested
75dp — Compose grid items are tight on width and free on height.
Result: a 56×75 ellipse instead of a circle.

Drop the inner padding and size the outer drawBehind Box explicitly
to `avatarSize + ringPadding * 2`. AvatarAndBadges still sizes tight
to the picture (so role/hand/mic/reaction badge corner alignment is
unchanged), but no longer inherits a width-only constraint from the
cell — the 75dp picture stays a circle.
2026-05-11 20:47:23 +00:00
Vitor Pamplona bc00476915 Merge pull request #2848 from vitorpamplona/l10n_crowdin_translations
New Crowdin Translations
2026-05-11 16:36:22 -04:00
Crowdin Bot 83f6ccadf4 New Crowdin translations by GitHub Action 2026-05-11 19:49:27 +00:00
Vitor Pamplona e82cd0f6f8 Merge pull request #2845 from davotoula/docs/contributing-guide
Add CONTRIBUTING-WITH-AI.md companion guide
2026-05-11 15:47:35 -04:00
davotoula fd02b47d9a docs(contributing): add automated tests and code review sections
Two additional gates on top of the AI-companion guide:

  - Automated tests for new logic — quartz/ and commons/ get unit
    tests; bug fixes get a regression test; UI-only stays exempt
    from automated UI tests but keeps the manual on-device test
    plan + screenshots. Pointer into CONTRIBUTING.md § Interop tests.
  - Code review pass before opening the PR — run a second-agent
    review with a different model or skill (/simplify, /kotlin-review,
    /security-review, /code-review), then re-run tests and manual
    test plan to catch fix-introduced regressions.

CONTRIBUTING.md pointer paragraph updated to enumerate the two new
gates.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 21:18:40 +02:00
davotoula 3ba2049566 docs(contributing): add CONTRIBUTING-WITH-AI.md companion guide
Companion to CONTRIBUTING.md targeting external PRs whose diff was
substantially authored by an AI coding assistant. Adds five gates the
existing doc does not cover:

  - Research before code (issue still valid, decentralisation fit)
  - Build and install both flavours (Play + F-Droid)
  - Performance and resource hygiene (main-thread, coroutines,
    LocalCache reuse, relay subscriptions, KMP source sets, lambda Log)
  - Regression test plan alongside feature test plan
  - Don't-touch list (signer/KeyStore, release pipeline, NIP direction)

Filename deliberately avoids AGENTS.md to keep internal dev-team
agents unaffected by auto-load conventions. CONTRIBUTING.md and the
PR template each gain a one-line pointer.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 20:24:47 +02:00
Vitor Pamplona 4b195ad6df Merge pull request #2843 from vitorpamplona/l10n_crowdin_translations
New Crowdin Translations
2026-05-11 12:05:22 -04:00
Crowdin Bot ab9f660bf9 New Crowdin translations by GitHub Action 2026-05-11 16:02:03 +00:00
Vitor Pamplona 6f9f3d8ef3 Merge pull request #2844 from vitorpamplona/claude/add-contributing-guidelines-dgPV3
docs: add CONTRIBUTING.md and PR template
2026-05-11 11:59:51 -04:00
Claude fc29147c4a docs(contributing): tighten and fix consistency bugs
- Add missing `## Commits` header so the ToC anchor resolves.
- Drop "Modules touched" and "Risk / rollback" from the PR description
  checklist so CONTRIBUTING matches the PR template (PR template lost
  those sections in 8ea7d1e).
- Fold "Human and AI contributions" into "Proof of testing" — the two
  sections restated the same author-of-record rule.
- Remove duplicate "Sending issues over Nostr" subsection (already
  covered under "Ways to contribute").
- Compress "Project layout" ascii tree into a bullet list and merge
  with "Where code belongs".
- Tighten "Coding standards" (drop bullets that restated generic
  don't-over-engineer guidance) and "Bounties" (single paragraph
  instead of a quote block plus six bullets).
- Trim the interop "Running them" subsection to the non-obvious bits
  (opt-in flags, run-matrix.sh not concurrency-safe) instead of
  repeating paths from the table.

Net: 406 → 316 lines, no information lost.
2026-05-11 15:56:12 +00:00
Vitor Pamplona 6c6d1c4f47 Merge pull request #2842 from davotoula/add-video-casting-feature
Add LAN video casting via Chromecast (Google Play flavour only)
2026-05-11 11:52:35 -04:00
davotoula 9d2f106466 Lambda-convert eager Log.w + drop redundant ${t.message} 2026-05-11 16:35:47 +02:00
davotoula 91aa72ae1e Rip DLNA code paths, collapse to Chromecast-only
- chore(cast): drop protocol-toggle settings, strings, perms, deps
- gate cast on play flavor via BuildConfig.IS_CASTING_AVAILABLE
- fix(cast): keep local player paused across recompose; disable transport while casting
2026-05-11 16:35:47 +02:00
davotoula 725de43c0a Stop-from-phone button + pause local player while casting
fix(cast): explicit RemoteMediaClient.stop() and receiver-status diagnostics
fix(cast): keep SessionManagerListener for caster lifetime + await stop() ack
refactor(cast): kotlin-review fixes — cancellation, valueOf safety, recomp
refactor(cast): tighten types, fix HLS query-string mime, parallelize stop
2026-05-11 16:35:47 +02:00
Claude 5df0e2a37a Add LAN video casting (Chromecast on play, DLNA on both flavors) v1
fix(cast): handle every Chromecast session terminal state and HLS mime hint
fix(cast): repair DLNA Res ctor and add play-only protocol toggle
fix(cast): backfill Cast button for accounts with pre-existing video settings
fix(cast): include cast glyphs in symbol font subset and add diagnostic logs
fix(cast): wire jUPnP's required Jetty deps and survive dialog dismissal
fix(cast): add jetty-client so jUPnP can issue UPnP control requests
2026-05-11 16:35:47 +02:00
Claude 8056eb899f docs(contributing): scope proof-of-testing to non-regular contributors 2026-05-11 14:23:37 +00:00
Claude 8ea7d1ee81 docs(pr-template): drop modules-touched and risk/rollback sections 2026-05-11 14:11:59 +00:00
Claude cfa6899c65 docs: cross-link CONTRIBUTING.md from README and add PR template 2026-05-11 13:42:22 +00:00
Claude ee20ab6ca4 docs(contributing): document interop suites and issue-template practice 2026-05-11 13:25:13 +00:00
Claude 9c39af718b docs: add CONTRIBUTING.md with proof-of-testing rule for new contributors 2026-05-11 13:06:35 +00:00
Vitor Pamplona 89c711ca9f lint 2026-05-11 08:50:05 -04:00
Vitor Pamplona 1ff4f98fff docs(quic-interop): add quinn to the default peer set
quinn is now treated as a flawless-required interop target alongside
aioquic, picoquic, and quic-go. Most Rust-based Nostr/MoQ relays our
users run their servers on are built on quinn, so an interop regression
there is a user-visible regression.

Validated by a 3-round flakiness sweep (1 full matrix + 2 audio-critical
subsets) — zero result flakiness across 528 test executions across all
four peers, with two environmental docker-compose stall classes documented
separately.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 08:44:15 -04:00
Vitor Pamplona 2ddf59fc5f Merge pull request #2838 from vitorpamplona/l10n_crowdin_translations
New Crowdin Translations
2026-05-11 08:39:59 -04:00
Crowdin Bot a8aaf48c8b New Crowdin translations by GitHub Action 2026-05-11 12:32:31 +00:00
Vitor Pamplona 850345a1f2 Merge pull request #2831 from skotchdopolepet/codex/two-stage-zap-progress
Show two-stage zap progress
2026-05-11 08:30:21 -04:00
Vitor Pamplona 94125d6001 Merge pull request #2830 from skotchdopolepet/codex/report-warning-threshold
Configure report warning threshold
2026-05-11 08:27:13 -04:00
Vitor Pamplona 57807e393b Merge pull request #2828 from skotchdopolepet/codex/fix-hidden-dm-unread-dot
Fix hidden DM unread badge after blocking users
2026-05-11 08:23:07 -04:00
Vitor Pamplona f184f715b1 Merge pull request #2834 from coreymull/gif-keyboard-chat-upload
Add GIF keyboard uploads to chat composers
2026-05-11 08:19:54 -04:00
Vitor Pamplona d6b7cd456a Merge pull request #2841 from nrobi144/feat/desktop-embedded-local-relay
feat(desktop): embedded local relay with SQLite event persistence
2026-05-11 08:16:17 -04:00
nrobi144 2b96e83264 feat(desktop): add embedded local relay with SQLite event persistence
Add an in-process local relay to Amethyst Desktop that persists all
received events to a per-account SQLite database using quartz's existing
EventStore infrastructure. On startup, the local store hydrates
DesktopLocalCache for instant feed rendering before remote relays connect.

- LocalRelayStore: manages per-account EventStore lifecycle, batched
  write-through via BasicBundledInsert (250ms window), startup hydration
  (contact list -> metadata -> recent content events)
- LocalRelayMaintenance: periodic cleanup (NIP-40 expiration, 30-day
  prune, weekly VACUUM), disk space monitoring
- Settings UI: integrated into RelaySettingsScreen with statistics,
  storage management (prune/vacuum/clear), JSONL export/import, and
  error display
- OfflineBanner: animated banner in both SinglePaneLayout and
  DeckColumnContainer showing offline status with local cache indicator
- Thread-safe store access via @Volatile + synchronized lock
- Skips re-enqueue during hydration (checks LOCAL_RELAY_URL)
- DB stored at ~/.amethyst/accounts/<pubkey8>/events.db
- Corrupt DB auto-detected and recreated on open

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-11 11:35:39 +03:00
David Kaspar 17b6bba9fb Merge pull request #2824 from vitorpamplona/l10n_crowdin_translations
New Crowdin Translations
2026-05-11 08:10:02 +02:00
Corey Mull e38902fb66 Wire keyboard image input into chat uploads 2026-05-11 00:26:05 -04:00
skotchdopolepet 6b9b5cfe9b feat: show two-stage zap progress 2026-05-11 04:38:26 +02:00
skotchdopolepet ece6a4acf6 feat: configure report warning threshold 2026-05-11 04:32:28 +02:00
skotchdopolepet 2a4ecade39 fix: ignore hidden DMs for unread message badge 2026-05-11 04:18:49 +02:00
Crowdin Bot b3424a01ad New Crowdin translations by GitHub Action 2026-05-10 20:14:59 +00:00
davotoula ac08c27531 i18n: translate favorite DVMs empty state into cs-rCZ, pt-rBR, sv-rSE, de-rDE
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 22:12:31 +02:00
Vitor Pamplona 40dcfa2004 Merge pull request #2820 from davotoula/fix/bottom-nav-favourite-feeds-icon
Align favourites icon, add to default bar, redesign empty state
2026-05-10 15:56:14 -04:00
Vitor Pamplona 70188c1c22 Merge pull request #2822 from davotoula/feat/update-translations-and-find-missing-translations-skill
Update translations and the find missing translations skill
2026-05-10 15:55:59 -04:00
davotoula 41faf0525e Swap feed icon and notification icon in bottom bar: restore Notification icon is last 2026-05-10 21:30:19 +02:00
David Kaspar 67529e37ca Merge pull request #2823 from vitorpamplona/l10n_crowdin_translations
New Crowdin Translations
2026-05-10 21:14:11 +02:00
Crowdin Bot a1b7d8543c New Crowdin translations by GitHub Action 2026-05-10 18:23:40 +00:00
Vitor Pamplona ace021202e Merge pull request #2821 from davotoula/fix/hls-imeta-blurhash-thumbhash
Rich imeta on every published HLS event + auto-published kind:1 sibling
2026-05-10 14:22:01 -04:00
davotoula 85d768d395 i18n: drop stale %1$s placeholder from translations to fix StringFormatCount 2026-05-10 15:02:06 +02:00
davotoula 9a93b3e789 i18n: translate NIP-9A community rules and Blossom cache strings 2026-05-10 12:17:53 +02:00
davotoula 7f54a2645f docs(skills): update skill to warn on plural-shaped strings in find-missing-translations 2026-05-10 12:17:31 +02:00
davotoula 0a58ca3320 fix(l10n): drop orphaned favorite_dvms_empty key from 10 locale files 2026-05-10 10:46:42 +02:00
davotoula 99e0f2403d chore(translations): remove orphan hls_draft_note_* keys across locales 2026-05-10 10:15:21 +02:00