Commit Graph
1823 Commits
Author SHA1 Message Date
multipleof4andClaude Opus 5.5 bc3e2a877e Let revealed API keys be copied on Android
Chrome keeps treating an input that was ever type=password as a password
field, so after tapping the eye the selection menu still hid Copy. Key
fields are now plain text inputs masked with -webkit-text-security, and
the eye toggles the mask instead of the type.

Also fixes the eye icon never switching: lucide swaps <i> for <svg>, so
querySelector('i') was null and the handler threw.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 14:29:35 +00:00
multipleof4andClaude Opus 5.5 1ea7b9b5c7 Rename the claude provider to anthropic with an ant: prefix
The provider is Anthropic; Claude is its model family. Models now take
the ant: prefix (e.g. ant:claude-opus-5-5), the provider value sent to
the proxy is "anthropic", and the key lives in anthropic_api_key /
USER.apiKeyAnthropic. No fallback for the old names.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 14:29:35 +00:00
github-actions[bot] 601336e9bd This build was committed by a bot. 2026-10-21 00:31:26 +00:00
multipleof4andClaude Opus 5.5 8f0a0e2780 Pin unversioned third-party scripts to their current latest
Every page load fetched whatever these resolved to, so a bad or
compromised release would ship to all users with access to their keys.
Each pin serves byte-identical content to what the unpinned URL served.

- lucide@latest -> lucide@1.60.0
- cdn.tailwindcss.com -> 3.4.17
- cash-dom -> 8.1.5
- alpinejs -> 3.17.5
- markdown-it-mathjax3 (esm.sh) -> 5.2.0
- medv.io/codejar -> codejar@4.3.0 on jsDelivr (same file)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 00:23:28 +00:00
github-actions[bot] 44b34d332a This build was committed by a bot. 2026-10-20 13:41:03 +00:00
multipleof4andClaude Opus 5.5 9791b29ace Open a popover from the thread Sync button instead of a confirm prompt
Thread Sync now shows Upload to GitHub / Download from GitHub in a popover,
like sunes sync, so it can be dismissed instead of forcing a choice. It
closes on an outside click, resize, the sidebar overlay, or picking an
option. The push and pull code is unchanged, and the readme's sync steps
now name the popover options.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 13:40:46 +00:00
github-actions[bot] 54145604be This build was committed by a bot. 2026-10-20 13:18:11 +00:00
multipleof4andClaude Opus 5.5 bc7688b62a Move reply time into a ts field and make reply ids base64url
Assistant messages now carry ts, a plain ms timestamp, instead of the time
riding at the start of the id. Reply ids, which double as the proxy's run
id, are just 128 random bits as unpadded base64url (22 chars). SECURITY.md
now says ntfy pings carry a short hash of the run id.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 13:17:57 +00:00
github-actions[bot] f9b27023fe This build was committed by a bot. 2026-10-20 03:56:27 +00:00
multipleof4andClaude Opus 5.5 bd91949698 Make reply ids unguessable and keep them out of the socket URL
Reply ids, which double as the proxy's run id, are now the same base36 ms
timestamp followed by a dash and 128 random bits from crypto.getRandomValues,
so a run can't be found by guessing. Saved replies keep their fields and the
timestamp prefix. The id is sent inside begin, resume and stop instead of the
URL, and SECURITY.md now says ntfy pings carry only the timestamp half.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 03:56:12 +00:00
multipleof4andClaude Opus 5.5 ba32afa631 Update proxy retention note: prompts aren't kept, replies stay 90 minutes
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 03:22:28 +00:00
github-actions[bot] 7fc2f80d19 This build was committed by a bot. 2026-10-20 03:04:15 +00:00
multipleof4andClaude Opus 5.5 5c75408188 Keep retrying a lost reply for up to 105 minutes to match the proxy's 90-minute window
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 03:04:01 +00:00
github-actions[bot] 32d7bd6bd2 This build was committed by a bot. 2026-10-20 03:00:08 +00:00
multipleof4andClaude Opus 5.5 b4bae470c1 Rewrite reply streaming: background replies, reliable stop and resume
Each reply owns its socket and keeps streaming and saving into its own
thread when you switch threads or sunes, so other threads aren't blocked.
Drops reconnect with backoff and resume from the last chunk; a socket that
stays open but goes silent is caught by a ping when the app returns to the
foreground (and every 20s while visible). Streaming messages carry
stream:{seq}, and replies in flight are listed in localStorage so a reload
picks them up even before their thread is opened. This replaces the 1.5s
HTTP polling, the threads_cache store and the DOM-based last-message lookup.

Stop now always reaches the proxy: after a reload, after switching apps and
while the socket is still connecting. Deleting a streaming message or its
thread stops the run. Also fixes:
- the send lock is taken before any await, so a double tap can't send twice
- a tap on the button right after it flips from Stop to Send is ignored
- Stop no longer swallows the next manual empty-composer send
- a thread opened while another was still loading can't take its messages
- deleting a local thread now removes it from the list

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 02:59:52 +00:00
github-actions[bot] a89a25890a This build was committed by a bot. 2026-10-14 18:14:49 +00:00
multipleof4andClaude Opus 5.5 3ee881427c Accept AVIF and JXL image attachments
Both are converted to WebP in the browser like other non-WebP images, so
providers never see them. Browsers that can't decode JXL now get a readable
error instead of [object Event].

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 18:14:28 +00:00
github-actions[bot] da2b390bdd This build was committed by a bot. 2026-10-14 18:10:52 +00:00
multipleof4andClaude Opus 5.5 270fbe3615 Send WebP attachments untouched unless over 2048px
Oversized WebPs are now scaled to a 2048px longest edge at 0.94 quality
instead of being sent at full size.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 18:10:33 +00:00
github-actions[bot] 9cf42f8565 This build was committed by a bot. 2026-10-13 16:32:19 +00:00
multipleof4andClaude Opus 5.5 ca56487f91 Compress attached videos to 3 fps to match the proxy's Gemini sampling rate
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 09:32:00 -07:00
github-actions[bot] de59761b35 This build was committed by a bot. 2026-10-12 18:58:06 +00:00
multipleof4andClaude Opus 5.5 e027cf96f0 Add video attachments with in-browser compression and playback
Videos are compressed with Mediabunny to 360p at 4 fps (HEVC when the
device can encode it, H.264 otherwise) with mono 32 kbps AAC, then
stored as video_url data URLs. Frames are resized after the frame-rate
drop, and rotation is baked in during that same step, so phone videos
stay on the fast path.

The attach badge shows compression progress, sending waits for pending
compressions, and "Clear all attachments" cancels them. Messages show
video thumbnails that open a fullscreen player.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 18:57:48 +00:00
multipleof4andClaude Opus 5.5 3c26bda123 Document sune settings now included in proxy ntfy pings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 18:45:19 +00:00
github-actions[bot] 6975877b20 This build was committed by a bot. 2026-10-12 16:16:03 +00:00
multipleof4andClaude Opus 5.5 906333eae9 Keep existing attachments when adding more; clear via hold or right-click
Clicking the attach button or pasting files now appends instead of
resetting. Long-press (touch) or right-click opens a popover with
"Clear all attachments".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 16:15:48 +00:00
multipleof4 c31d01520e Change Android package name to chat.sune.app v1.0.0 2026-10-01 21:37:07 +00:00
github-actions[bot] d3a206a70f This build was committed by a bot. 2026-10-01 19:44:25 +00:00
multipleof4andClaude Sonnet 5.5 3d308bdbaf Make web manifest URLs relative so sune.chat and sune.planetrenox.com both work
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 12:44:11 -07:00
multipleof4andClaude Sonnet 5.5 50219444f4 Use bare host for additionalTrustedOrigins
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 12:32:43 -07:00
multipleof4andClaude Sonnet 5.5 12cd60829f Point Gradle at the SDK Bubblewrap uses
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 12:27:57 -07:00
multipleof4andClaude Sonnet 5.5 ae05a6fd37 Add Android APK release workflow
Bubblewrap TWA config for chat.sune, plus a manually dispatched workflow
that builds, signs, verifies against assetlinks.json, attests provenance
and publishes the release for the tag given as input.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 12:25:57 -07:00
github-actions[bot] c321396ac4 This build was committed by a bot. 2026-10-01 18:11:39 +00:00
multipleof4andClaude Opus 5.5 be148beed9 Add chat.sune signing key to assetlinks
Keep the legacy com.planetrenox.sune entry so the old app stays
fullscreen, and add the new chat.sune package with its new key.
Ignore keystore files so signing keys can never be committed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 11:11:19 -07:00
multipleof4andClaude Opus 5.5 3bca5eb74e Add third-party notices for bundled dist code
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 17:52:57 +00:00
github-actions[bot] 72d36a63fe This build was committed by a bot. 2026-09-28 17:43:32 +00:00
multipleof4andClaude Opus 5.5 2cb952a7e3 Remove Cloudflare inference provider branches, keep key for custom sunes
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 17:43:15 +00:00
github-actions[bot] 609f84017f This build was committed by a bot. 2026-09-28 17:41:08 +00:00
multipleof4andClaude Opus 5.5 b697398096 Drop unsupported cf: model prefix, fit account settings on small screens
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 17:40:14 +00:00
github-actions[bot] 15ee08a3f7 This build was committed by a bot. 2026-09-28 17:35:56 +00:00
multipleof4andClaude Opus 5.5 61d7fca337 Fit sune settings modal on small screens, trim Claude help note
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 17:35:38 +00:00
github-actions[bot] ed4999598b This build was committed by a bot. 2026-09-28 17:30:51 +00:00
multipleof4andClaude Opus 5.5 360e20bbad Add model name help popup to sune settings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 17:30:30 +00:00
github-actions[bot] 8d8dd84240 This build was committed by a bot. 2026-09-20 17:07:21 +00:00
multipleof4 35c2537f42 Increase max_tokens from 6 to 7 2026-09-20 10:07:08 -07:00
github-actions[bot] d3e56d2b88 This build was committed by a bot. 2026-09-18 18:52:27 +00:00
multipleof4 081074a2df Invalidate stale GitHub thread caches on pull 2026-09-18 11:52:04 -07:00
github-actions[bot] 25b4b982ac This build was committed by a bot. 2026-09-17 03:56:13 +00:00
multipleof4 916f41606c Submit composer with Enter on desktop 2026-09-16 20:55:57 -07:00
multipleof4 a1fd2d5a05 Add license agreement for software usage and reuse
Added a comprehensive license agreement outlining usage, ownership, and reuse conditions for the software.
2026-09-14 21:15:24 -07:00