Skip to content

build(deps): bump actions/setup-java from 5.0.0 to 5.2.0#4

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/github_actions/actions/setup-java-5.2.0
Open

build(deps): bump actions/setup-java from 5.0.0 to 5.2.0#4
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/github_actions/actions/setup-java-5.2.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jan 23, 2026

Copy link
Copy Markdown

Bumps actions/setup-java from 5.0.0 to 5.2.0.

Release notes

Sourced from actions/setup-java's releases.

v5.2.0

What's Changed

Enhancement

Documentation Changes

Dependency Updates

New Contributors

Full Changelog: actions/setup-java@v5...v5.2.0

v5.1.0

What's Changed

New Features

Bug Fixes & Improvements

Documentation changes

Dependency updates

New Contributors

Full Changelog: actions/setup-java@v5...v5.1.0

Commits
  • be666c2 Chore: Version Update and Checkout Update to v6 (#973)
  • f7a6fef Bump actions/checkout from 5 to 6 (#961)
  • d81c4e4 Upgrade @​actions/cache to v5 (#968)
  • 1b1bbe1 readme update (#972)
  • 5d7b214 Retry on HTTP 522 Connection timed out (#964)
  • f2beeb2 Bump actions/publish-action from 0.3.0 to 0.4.0 (#912)
  • 4e7e684 feat: Add support for .sdkmanrc file in java-version-file parameter (#736)
  • 46c56d6 Add GitHub Token Support for GraalVM and Refactor Code (#849)
  • 66b9457 Update SapMachine URLs (#955)
  • 6ba5449 Enhance error logging for network failures to include endpoint/IP details, ad...
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [actions/setup-java](https://github.com/actions/setup-java) from 5.0.0 to 5.2.0.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](actions/setup-java@dded088...be666c2)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-version: 5.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code labels Jan 23, 2026
decentrathai pushed a commit that referenced this pull request Jul 4, 2026
… avatars, share-sheet

Group send (#10/#11): surface no-recipient/invite failures (was a silent Log.w) via a
GroupSendResult banner; rethrow CancellationException in invite/memo retry (invites no
longer vanish on back-nav); check SubmitResult so a rejected tx isn't reported "sent"
(also fixes 1:1 sends); preserve composer text on failure; per-member invite status +
Resend action in group settings.

AI top-up: skip ai-topup: memos in convertToConversations so top-ups don't appear as
chat conversations (#9); reorder top-up sheet — Pay-with-wallet first, copy-address
prominent, QR last (#5); new top-up history view.

Conversation mode (#1): ZMODE authenticated control message (cloned from the ZEXP/B17
pattern) — in-chat pill both sides + safe auto-adopt (free modes only, pubkey known,
mode not explicitly set; never VAULT); explicit-VAULT stays sticky against rotation ZBOOTs.

Avatars (#12): AvatarStore + one ZchatAvatar composable across all render sites; editable
self / contact-override / admin-only-group photos (local, Phase 1); wired into wallet wipe.

Share (#3/#4): ACTION_SEND / SEND_MULTIPLE intent-filters (ZCHAT is now a system share
target); in-app SharePicker; "Send via ZCHAT" primary button on AI images; enlarged
generic share button; Forward re-pointed at the in-app picker.

Backend (deployed separately on moltbot): tiered fast-credit (1-conf <=$50, 3 above),
wider watcher lookback, Telegram top-up notify.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
decentrathai pushed a commit that referenced this pull request Jul 9, 2026
…nonicalization, log redaction

From the deep multi-agent audit (each finding adversarially verified; the KEX fix
had its own 3-agent review — ship-with-nits, all legit flows verified unaffected).

#3 (HIGH) KEX/KEXACK key substitution. The KEX signature is verified against the
   payload's OWN pubkey (a self-signature), so it does NOT authenticate the sender
   as an established peer — an attacker who can attribute a KEX/KEXACK to a
   conversation could self-sign a SUBSTITUTE E2E key, which the code then flagged
   AND overwrote (real peer can't decrypt = DoS; MITM if the banner is dismissed).
   Fix: mirror the legacy E2E_INIT guard — refuse to auto-overwrite an established
   key (flag + keep the old key + return; no root/KEXACK/marker changes). First
   contact and same-key re-exchange still store; a genuine reinstall re-establishes
   via user-initiated Reset Encryption (which clears the key). Also gate the KEX
   first-contact convId REMAP on an unestablished peer so a self-signed KEX can't
   repoint our outbound convId for an established contact.

#4/#7 (HIGH/LOW) decrypted plaintext at rest. groupMsgPrefs (decrypted GROUP
   message text) and pendingMsgPrefs (decrypted NOSTR message text + peer
   addresses) were UNENCRYPTED SharedPreferences. Switched both to AES256-GCM
   EncryptedSharedPreferences (distinct _encrypted files) with a one-time migration
   that moves existing entries into the encrypted store and CLEARS the old plain
   files so nothing decrypted lingers at rest.

#5 (MEDIUM) kick/leave roster canonicalization. GROUP_KICK/GROUP_LEAVE matched the
   roster by exact address while every other op canonicalizes (resolvePeerAddress),
   so under UA-representation drift a kicked/left member was never marked LEFT
   locally — left ACTIVE, still able to inject old-epoch messages / inflate the
   count. Fix: match on resolvePeerAddress both sides; insert a LEFT tombstone when
   the kicked member isn't in the local roster.

#9 (LOW) log redaction. parseMemo logged memo content (plaintext/ciphertext) and a
   raw convId; E2EEncryption.decrypt logged a ciphertext prefix. Removed the content
   and redacted the convId (don't rely on release-only stripping — debug never strips).

Deferred follow-ups (pre-existing / LOW): #6 per-author GROUP_MSG signature
(protocol change); #8 no-collector inbound stranding (self-heals on foreground
resume; a periodic recovery has a decrypt-churn tradeoff); the KEXACK-side convId
remap (entangled with the legitimate #205 payload-address fallback); the history
re-scan false key-changed banner (no message loss — the guard keeps the current key).

Validation: -Werror clean; ui-lib unit suite 458/458 green.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LeV8KiSJk23B9wamRBdzmp
decentrathai pushed a commit that referenced this pull request Jul 11, 2026
#4)

New ZPROF ZMSG type propagates the user's self-avatar to ESTABLISHED contacts so it
renders as their default contact avatar (a local override still wins). MONEY-SAFE:
avatar bytes ride NostrChatBridge.publish (free NIP-17 gift-wrap) ONLY — there is NO
on-chain / VAULT / Zcash-transaction path, so it can never spend ZEC; targets are gated
on getPeerNostrPubkey(peer) != null (unknown-pubkey peers are silently skipped), and the
on-chain scan explicitly skips ZPROF so an avatar is never adopted from a chain memo.

Wire format `ZPROF|v1|<xferId>|<idx>/<total>|<sha16>|<b64chunk>`: the 256x256 JPEG
(<=50KB) is Base64'd and sliced into 16KB chunks (relay-safe under NIP-17 double-seal),
reassembled by a bounded, thread-safe Reassembler (<=8 in-flight, <=32 chunks, <=256KB,
5-min stale eviction, idempotent to relay replays, SHA-256 integrity check before save).
No third-party media host (unlike ZFILE) — stays inside the encrypted DM. Send is
triggered after the user sets/changes their self photo (ChatListView picker ->
onSelfAvatarChanged -> broadcastSelfAvatarToContacts, NonCancellable). Receive is a new
ZPROF branch in observeNostrInbound, TOFU-guarded (#187) like ZMODE.

Also (bug-a): the self-avatar previously rendered only as a 32dp chat-list circle; it now
also renders at 72dp on the "My Address" (ZchatReceive) screen so the owner sees their
own photo. ChatViewModel gains an avatarStore ctor param (Koin auto-wired via viewModelOf
+ singleOf(::AvatarStore)); verified: app launches with no DI crash.

Verified: ui-lib compiles (-Werror) + adversarial money-safety audit PASS (NOSTR-only,
established contacts only). Full live 2-device propagation is env-gated (clean re-pair).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: d9c3ab19-007f-4ea9-a804-685017ee234f
decentrathai pushed a commit that referenced this pull request Jul 12, 2026
…trip on-device

Round-trip PROVEN on 2 devices (both on this build): Honor set photo → "delivered to 1
established contact" → NOSTR relay → Seeker rewrote the peer's contact-avatar file
(size+mtime changed the instant the broadcast landed). The earlier "broadcast never
fires" was a mis-diagnosis: an `adb logcat -s ZCHAT_PROF:D` tag filter hid the send
lines, and the receiver test device had been left on the pre-#4 build.

v2.12.1's version-flow observer works, but relied solely on it. This restores the DIRECT
picker trigger (onSelfAvatarChanged → broadcast) so the send fires immediately on the
picker return — before Honor/Huawei can kill the app — while the version-flow observer
still handles the launch-retry (process-death) + new-contact cases. An AtomicBoolean
in-flight guard dedupes the two triggers so one set = one broadcast. Adds concise
ZCHAT_PROF trace logging (version tick, broadcast enter, peers/established/delivered).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: d9c3ab19-007f-4ea9-a804-685017ee234f
decentrathai pushed a commit that referenced this pull request Jul 12, 2026
…, See-all, wallet text, 0-ZEC/error audit

Seven user-reported issues, root-caused + fixed (all adversarially verified money-safe,
:ui-lib compiles -Werror):

#7 TUNNEL first message broken receiver-side — the on-chain ZBOOT carries only a convId
(no Zcash sender), so an unmapped convId stranded the message on a phantom "Unknown sender /
not sent via ZCHAT" chat (reply disabled) and left the mode "shielded". Fix: attributeBoot()
gives the on-chain ZBOOT the same signature-attribution the NOSTR path has (routeIncomingBoot
stays the sole trust gate) → row re-keys to the real peer → banner gone, reply enabled, mode
converges to Tunnel; + a synchronous first-contact convId→peer map write closes the catch-up
sync race. No new spend (reply free-NOSTR-first, bounded).

#1 OPEN (free) mode unavailable on a scanned invite — the My-Address AND Invite-Friend QRs
encoded only the bare Zcash address, not the NOSTR contact code. Both now show a second QR
carrying the zchat contact code, so a scan enables free OPEN (money-positive: no on-chain ZBOOT).

#4 avatar REMOVE not propagating — added a ZPROF REMOVE tombstone (free NOSTR, established-only,
dedup-tracked); removing your photo now clears it on peers via removeContactAvatar.

#2 wallet Send-all missing — was gated on spendable-shielded>0; now gated on total-shielded,
click still clamps to spendable (never over-spends).

#3 See-all missing — un-gated the activity-widget header button (was hidden at <=5 txns).

#5 wallet payment showed chat wording — InsufficientFunds sheet is now context-aware
(PAYMENT/MESSAGE/SWAP).

#6 0-ZEC raw exception (AmountTooSmall / co.electriccoin… leaked to UI) — 0-amount coerced to
dust for on-chain (display==charge; Send-all excluded), "Free" dropped for on-chain modes
(true free = OPEN/NOSTR), + a single Throwable.toZchatUserMessage mapper replaces every raw
exception/FQCN leak with ZCHAT-voiced copy; ProposalDataSource double-wrap fixed.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: d9c3ab19-007f-4ea9-a804-685017ee234f
@decentrathai
decentrathai force-pushed the dependabot/github_actions/actions/setup-java-5.2.0 branch from c2c83af to 97a7d73 Compare July 18, 2026 07:42
decentrathai pushed a commit that referenced this pull request Jul 18, 2026
… avatars, share-sheet

Group send (#10/#11): surface no-recipient/invite failures (was a silent Log.w) via a
GroupSendResult banner; rethrow CancellationException in invite/memo retry (invites no
longer vanish on back-nav); check SubmitResult so a rejected tx isn't reported "sent"
(also fixes 1:1 sends); preserve composer text on failure; per-member invite status +
Resend action in group settings.

AI top-up: skip ai-topup: memos in convertToConversations so top-ups don't appear as
chat conversations (#9); reorder top-up sheet — Pay-with-wallet first, copy-address
prominent, QR last (#5); new top-up history view.

Conversation mode (#1): ZMODE authenticated control message (cloned from the ZEXP/B17
pattern) — in-chat pill both sides + safe auto-adopt (free modes only, pubkey known,
mode not explicitly set; never VAULT); explicit-VAULT stays sticky against rotation ZBOOTs.

Avatars (#12): AvatarStore + one ZchatAvatar composable across all render sites; editable
self / contact-override / admin-only-group photos (local, Phase 1); wired into wallet wipe.

Share (#3/#4): ACTION_SEND / SEND_MULTIPLE intent-filters (ZCHAT is now a system share
target); in-app SharePicker; "Send via ZCHAT" primary button on AI images; enlarged
generic share button; Forward re-pointed at the in-app picker.

Backend (deployed separately on moltbot): tiered fast-credit (1-conf <=$50, 3 above),
wider watcher lookback, Telegram top-up notify.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
decentrathai pushed a commit that referenced this pull request Jul 18, 2026
…nonicalization, log redaction

From the deep multi-agent audit (each finding adversarially verified; the KEX fix
had its own 3-agent review — ship-with-nits, all legit flows verified unaffected).

#3 (HIGH) KEX/KEXACK key substitution. The KEX signature is verified against the
   payload's OWN pubkey (a self-signature), so it does NOT authenticate the sender
   as an established peer — an attacker who can attribute a KEX/KEXACK to a
   conversation could self-sign a SUBSTITUTE E2E key, which the code then flagged
   AND overwrote (real peer can't decrypt = DoS; MITM if the banner is dismissed).
   Fix: mirror the legacy E2E_INIT guard — refuse to auto-overwrite an established
   key (flag + keep the old key + return; no root/KEXACK/marker changes). First
   contact and same-key re-exchange still store; a genuine reinstall re-establishes
   via user-initiated Reset Encryption (which clears the key). Also gate the KEX
   first-contact convId REMAP on an unestablished peer so a self-signed KEX can't
   repoint our outbound convId for an established contact.

#4/#7 (HIGH/LOW) decrypted plaintext at rest. groupMsgPrefs (decrypted GROUP
   message text) and pendingMsgPrefs (decrypted NOSTR message text + peer
   addresses) were UNENCRYPTED SharedPreferences. Switched both to AES256-GCM
   EncryptedSharedPreferences (distinct _encrypted files) with a one-time migration
   that moves existing entries into the encrypted store and CLEARS the old plain
   files so nothing decrypted lingers at rest.

#5 (MEDIUM) kick/leave roster canonicalization. GROUP_KICK/GROUP_LEAVE matched the
   roster by exact address while every other op canonicalizes (resolvePeerAddress),
   so under UA-representation drift a kicked/left member was never marked LEFT
   locally — left ACTIVE, still able to inject old-epoch messages / inflate the
   count. Fix: match on resolvePeerAddress both sides; insert a LEFT tombstone when
   the kicked member isn't in the local roster.

#9 (LOW) log redaction. parseMemo logged memo content (plaintext/ciphertext) and a
   raw convId; E2EEncryption.decrypt logged a ciphertext prefix. Removed the content
   and redacted the convId (don't rely on release-only stripping — debug never strips).

Deferred follow-ups (pre-existing / LOW): #6 per-author GROUP_MSG signature
(protocol change); #8 no-collector inbound stranding (self-heals on foreground
resume; a periodic recovery has a decrypt-churn tradeoff); the KEXACK-side convId
remap (entangled with the legitimate #205 payload-address fallback); the history
re-scan false key-changed banner (no message loss — the guard keeps the current key).

Validation: -Werror clean; ui-lib unit suite 458/458 green.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LeV8KiSJk23B9wamRBdzmp
decentrathai pushed a commit that referenced this pull request Jul 18, 2026
#4)

New ZPROF ZMSG type propagates the user's self-avatar to ESTABLISHED contacts so it
renders as their default contact avatar (a local override still wins). MONEY-SAFE:
avatar bytes ride NostrChatBridge.publish (free NIP-17 gift-wrap) ONLY — there is NO
on-chain / VAULT / Zcash-transaction path, so it can never spend ZEC; targets are gated
on getPeerNostrPubkey(peer) != null (unknown-pubkey peers are silently skipped), and the
on-chain scan explicitly skips ZPROF so an avatar is never adopted from a chain memo.

Wire format `ZPROF|v1|<xferId>|<idx>/<total>|<sha16>|<b64chunk>`: the 256x256 JPEG
(<=50KB) is Base64'd and sliced into 16KB chunks (relay-safe under NIP-17 double-seal),
reassembled by a bounded, thread-safe Reassembler (<=8 in-flight, <=32 chunks, <=256KB,
5-min stale eviction, idempotent to relay replays, SHA-256 integrity check before save).
No third-party media host (unlike ZFILE) — stays inside the encrypted DM. Send is
triggered after the user sets/changes their self photo (ChatListView picker ->
onSelfAvatarChanged -> broadcastSelfAvatarToContacts, NonCancellable). Receive is a new
ZPROF branch in observeNostrInbound, TOFU-guarded (#187) like ZMODE.

Also (bug-a): the self-avatar previously rendered only as a 32dp chat-list circle; it now
also renders at 72dp on the "My Address" (ZchatReceive) screen so the owner sees their
own photo. ChatViewModel gains an avatarStore ctor param (Koin auto-wired via viewModelOf
+ singleOf(::AvatarStore)); verified: app launches with no DI crash.

Verified: ui-lib compiles (-Werror) + adversarial money-safety audit PASS (NOSTR-only,
established contacts only). Full live 2-device propagation is env-gated (clean re-pair).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: d9c3ab19-007f-4ea9-a804-685017ee234f
decentrathai pushed a commit that referenced this pull request Jul 18, 2026
…trip on-device

Round-trip PROVEN on 2 devices (both on this build): Honor set photo → "delivered to 1
established contact" → NOSTR relay → Seeker rewrote the peer's contact-avatar file
(size+mtime changed the instant the broadcast landed). The earlier "broadcast never
fires" was a mis-diagnosis: an `adb logcat -s ZCHAT_PROF:D` tag filter hid the send
lines, and the receiver test device had been left on the pre-#4 build.

v2.12.1's version-flow observer works, but relied solely on it. This restores the DIRECT
picker trigger (onSelfAvatarChanged → broadcast) so the send fires immediately on the
picker return — before Honor/Huawei can kill the app — while the version-flow observer
still handles the launch-retry (process-death) + new-contact cases. An AtomicBoolean
in-flight guard dedupes the two triggers so one set = one broadcast. Adds concise
ZCHAT_PROF trace logging (version tick, broadcast enter, peers/established/delivered).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: d9c3ab19-007f-4ea9-a804-685017ee234f
decentrathai pushed a commit that referenced this pull request Jul 18, 2026
…, See-all, wallet text, 0-ZEC/error audit

Seven user-reported issues, root-caused + fixed (all adversarially verified money-safe,
:ui-lib compiles -Werror):

#7 TUNNEL first message broken receiver-side — the on-chain ZBOOT carries only a convId
(no Zcash sender), so an unmapped convId stranded the message on a phantom "Unknown sender /
not sent via ZCHAT" chat (reply disabled) and left the mode "shielded". Fix: attributeBoot()
gives the on-chain ZBOOT the same signature-attribution the NOSTR path has (routeIncomingBoot
stays the sole trust gate) → row re-keys to the real peer → banner gone, reply enabled, mode
converges to Tunnel; + a synchronous first-contact convId→peer map write closes the catch-up
sync race. No new spend (reply free-NOSTR-first, bounded).

#1 OPEN (free) mode unavailable on a scanned invite — the My-Address AND Invite-Friend QRs
encoded only the bare Zcash address, not the NOSTR contact code. Both now show a second QR
carrying the zchat contact code, so a scan enables free OPEN (money-positive: no on-chain ZBOOT).

#4 avatar REMOVE not propagating — added a ZPROF REMOVE tombstone (free NOSTR, established-only,
dedup-tracked); removing your photo now clears it on peers via removeContactAvatar.

#2 wallet Send-all missing — was gated on spendable-shielded>0; now gated on total-shielded,
click still clamps to spendable (never over-spends).

#3 See-all missing — un-gated the activity-widget header button (was hidden at <=5 txns).

#5 wallet payment showed chat wording — InsufficientFunds sheet is now context-aware
(PAYMENT/MESSAGE/SWAP).

#6 0-ZEC raw exception (AmountTooSmall / co.electriccoin… leaked to UI) — 0-amount coerced to
dust for on-chain (display==charge; Send-all excluded), "Free" dropped for on-chain modes
(true free = OPEN/NOSTR), + a single Throwable.toZchatUserMessage mapper replaces every raw
exception/FQCN leak with ZCHAT-voiced copy; ProposalDataSource double-wrap fixed.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: d9c3ab19-007f-4ea9-a804-685017ee234f
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants