multipleof4 and Claude 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
multipleof4 and Claude 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
multipleof4 and Claude 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
multipleof4 and Claude 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
multipleof4 and Claude 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
multipleof4 and Claude 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
multipleof4 and Claude 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
multipleof4 and Claude 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
multipleof4 and Claude 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
multipleof4 and Claude 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
multipleof4 and Claude 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
2026-10-01 21:37:07 +00:00
multipleof4 and Claude 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
multipleof4 and Claude 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
multipleof4 and Claude 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
multipleof4 and Claude 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
multipleof4 and Claude 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
multipleof4 and Claude 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
multipleof4 and Claude 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
multipleof4 and Claude 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
multipleof4 and Claude 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
multipleof4 and Claude 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
multipleof4
35c2537f42
Increase max_tokens from 6 to 7
2026-09-20 10:07:08 -07:00
multipleof4
081074a2df
Invalidate stale GitHub thread caches on pull
2026-09-18 11:52:04 -07: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
multipleof4
9ce77bd05e
chore: update GitHub Sponsors funding
2026-09-14 18:20:24 -07:00
multipleof4
a73ee38f01
Support clipboard file paste in composer and attaching during stream
2026-09-10 16:57:26 -07:00
multipleof4
599989fbed
Shorten model name placeholder hint
2026-09-09 22:03:58 -07:00
multipleof4
27cbdea778
Support model name placeholder in system prompts
2026-09-09 21:59:49 -07:00
multipleof4 and gemini-3.8-flash
5d27b9904a
Style: Adjust topbar padding to py-2
...
Co-authored-by: gemini-3.8-flash <noreply@google.com >
2026-09-07 21:03:19 -07:00
multipleof4 and gemini-3.8-flash
22f578dbd1
Feat: Update topbar avatar image to h-10 w-10
...
Co-authored-by: gemini-3.8-flash <noreply@google.com >
2026-09-07 21:02:33 -07:00
multipleof4 and gemini-3.8-flash
5c9fe41f1c
Feat: Set topbar Sune avatar to h-10 w-10
...
Co-authored-by: gemini-3.8-flash <noreply@google.com >
2026-09-07 21:02:31 -07:00
multipleof4 and gemini-3.8-flash
567a082fda
Perf: Default avatar resize to 96px and 75q
...
Co-authored-by: gemini-3.8-flash <noreply@google.com >
2026-09-07 20:51:52 -07:00
multipleof4 and gemini-3.8-flash
1a134c82ca
Feat: Update topbar avatar image to h-9 w-9
...
Co-authored-by: gemini-3.8-flash <noreply@google.com >
2026-09-07 20:51:37 -07:00
multipleof4 and gemini-3.8-flash
c362744e39
Feat: Enlarge topbar Sune avatar to h-9 w-9
...
Co-authored-by: gemini-3.8-flash <noreply@google.com >
2026-09-07 20:51:35 -07:00
multipleof4
2e840b4b86
refactor(utils): update imgToWebp defaults to D=96 and q=75
2026-09-07 20:17:35 -07:00
multipleof4
6c4376ca71
Set omitted reasoning_effort to empty string
2026-09-05 20:59:46 -07:00
multipleof4
a4f04d3aac
Replace verbosity setting with max tokens (output)
2026-09-05 18:20:23 -07:00
multipleof4
8b9adc8d64
Update readme.md
2026-09-05 14:34:40 -07:00
multipleof4
8128ce5c63
Merge pull request #23 from sune-org/upgrade_github_sync_logic
...
Upgrade GitHub sync logic
2026-09-04 11:56:45 -07:00
multipleof4
5975a88b31
Fix: Prevent recursive dirty marking on system keys, resolve popover ID collisions, and add activeId fallback on pull
2026-09-04 11:50:43 -07:00
multipleof4
fa745efbab
Merge pull request #22 from sune-org/upgrade_github_sync_logic
...
Upgrade GitHub sync logic
2026-09-04 09:53:30 -07:00
multipleof4
5b410bfe40
Feat: Upgrade GitHub Sune Sync with status indicator, auto-pull, and popover actions
2026-09-04 09:49:53 -07:00
multipleof4
14ff090068
Add .suneignore to exclude public and dist directories
2026-09-03 08:48:06 -07:00
multipleof4 and gemini-3.7-flash
0d7264eb29
Feat: Enable fuzzyLink for markdown-it v15
...
Co-authored-by: gemini-3.7-flash <noreply@google.com >
2026-09-01 20:03:55 -07:00
multipleof4 and gemini-3.7-flash
799baf2079
Fix: Correct markdown-it v15 UMD CDN path
...
Co-authored-by: gemini-3.7-flash <noreply@google.com >
2026-09-01 20:03:48 -07:00
multipleof4
487400d174
upgrade highlightjs to 11.12.0
2026-09-01 19:41:41 -07:00
multipleof4
a0132cd48b
upgrade gh css version
2026-09-01 19:29:54 -07:00
multipleof4 and gemini-3-flash-preview
1acd908afc
Feat: Implement Global Sune Sync logic
...
Co-authored-by: gemini-3-flash-preview <noreply@google.com >
2026-08-31 17:24:57 -07:00
multipleof4 and gemini-3-flash-preview
0b3f97246b
Feat: Add Sune repo sync UI to left sidebar
...
Co-authored-by: gemini-3-flash-preview <noreply@google.com >
2026-08-31 17:24:51 -07:00
multipleof4 and gemini-3-flash-preview
c9663c037b
Feat: Add Sune sync DOM elements
...
Co-authored-by: gemini-3-flash-preview <noreply@google.com >
2026-08-31 17:24:48 -07:00
multipleof4 and gemini-3.7-flash
c727f40d91
Fix: Non-greedy sune ID matching in gcStorage
...
Co-authored-by: gemini-3.7-flash <noreply@google.com >
2026-08-31 15:52:13 -07:00
multipleof4 and gemini-3.7-flash
c8d9d66e7f
Feat: Add Sune storage API and storage GC
...
Co-authored-by: gemini-3.7-flash <noreply@google.com >
2026-08-31 14:41:52 -07:00
multipleof4 and gemini-3.7-flash
a023ad0423
Refactor: Remove storage key from sune
...
Co-authored-by: gemini-3.7-flash <noreply@google.com >
2026-08-31 14:09:41 -07:00
multipleof4 and gemini-3.7-flash
cc8b523816
Fix: Fetch unloaded thread content before GH sync
...
Co-authored-by: gemini-3.7-flash <noreply@google.com >
2026-08-30 11:19:33 -07:00
multipleof4 and gemini-3.7-flash
731b6a2dcc
Fix: Omit attached base64 images on copy
...
Co-authored-by: gemini-3.7-flash <noreply@google.com >
2026-08-29 20:47:34 -07:00
multipleof4 and gemini-3.7-flash
1365e6c4ca
Fix: Resolve latest message and omit base64 on copy
...
Co-authored-by: gemini-3.7-flash <noreply@google.com >
2026-08-29 20:47:26 -07:00
multipleof4 and gemini-3.7-flash
2b9a7b4c25
Fix: Use robust copy fallback in code blocks
...
Co-authored-by: gemini-3.7-flash <noreply@google.com >
2026-08-29 20:47:22 -07:00
multipleof4 and gemini-3.7-flash
66a9921d86
Docs: Update Account & Backup to User in sync guide
...
Co-authored-by: gemini-3.7-flash <noreply@google.com >
2026-08-21 12:02:22 -07:00
multipleof4 and gemini-3.7-flash
2b8fbc5059
Fix: Update demo reply tip to reference User menu
...
Co-authored-by: gemini-3.7-flash <noreply@google.com >
2026-08-21 12:02:06 -07:00
multipleof4 and gemini-3.7-flash
a0b249e718
Feat: Sync User avatar with sidebar and bind upload
...
Co-authored-by: gemini-3.7-flash <noreply@google.com >
2026-08-21 11:55:37 -07:00
multipleof4 and gemini-3.7-flash
9da342601c
Feat: Add userMenuAvatar to DOM map
...
Co-authored-by: gemini-3.7-flash <noreply@google.com >
2026-08-21 11:55:33 -07:00
multipleof4 and gemini-3.7-flash
df8269f01c
Feat: Add GitHub button & user avatar container
...
Co-authored-by: gemini-3.7-flash <noreply@google.com >
2026-08-21 11:55:30 -07:00
multipleof4 and gemini-3.7-flash
53287e518d
Feat: Add GitHub repo button and rename User menu
...
Co-authored-by: gemini-3.7-flash <noreply@google.com >
2026-08-21 11:50:55 -07:00
multipleof4 and gemini-3.7-flash
60fc9d90dd
Refactor: default username to User
...
Co-authored-by: gemini-3.7-flash <noreply@google.com >
2026-08-21 11:21:13 -07:00
multipleof4 and gemini-3.7-flash
59d72da2a9
Fix: Order folders, md files, then chat threads
...
Co-authored-by: gemini-3.7-flash <noreply@google.com >
2026-08-16 19:57:43 -07:00
multipleof4 and gemini-3.6-flash
0d8fd6c931
Feat: Add None option to reasoning effort
...
Co-authored-by: gemini-3.6-flash <noreply@google.com >
2026-07-24 16:12:32 -07:00
multipleof4
0d967919f9
Update readme.md
2026-07-21 16:45:27 -07:00
multipleof4
3f19e1964a
Update main.js
2026-07-16 11:43:21 -07:00
multipleof4
f536e4f325
Remove online suffix from default model string
2026-06-08 17:32:03 -07:00
multipleof4
5d832fd99c
Update default model version to 4.8
2026-06-08 17:31:31 -07:00
multipleof4 and Opus 4.8
e451273ac9
Fix: Load >1MB GH threads via Blobs API fallback
...
Co-authored-by: Opus 4.8 <noreply@anthropic.com >
2026-05-28 21:43:16 -07:00
multipleof4 and Opus 4.8
916c6ec5c8
Fix: Open large remote GH threads on desktop via Blobs API
...
Co-authored-by: Opus 4.8 <noreply@anthropic.com >
2026-05-28 21:43:11 -07:00
multipleof4
0a3d8093cb
Feat: Show chat scrollbar only on desktop devices
2026-05-15 22:24:12 -07:00
multipleof4
cbfb79257b
Fix: Reset busy UI when sync fetch fails
2026-05-15 22:11:40 -07:00
multipleof4
67dc535244
Update default model version to 4.7
2026-04-18 20:45:45 -07:00
multipleof4
53ba91caaf
Docs: Trim SECURITY.md further
2026-04-18 16:18:46 -07:00
multipleof4 and Opus 4.6
160f1a5315
Fix: Use innerText so highlighter preserves newlines
...
Co-authored-by: Opus 4.6 <noreply@anthropic.com >
2026-04-09 20:02:43 -07:00
multipleof4
6da497f8d3
Update highlight.js to version 11.11.1
2026-04-09 19:48:35 -07:00
multipleof4
7e6a271872
Update index.html
2026-04-09 19:45:24 -07:00
multipleof4
8f87fd8259
Fix: Prevent newline vanishing in code editors
2026-04-09 19:39:03 -07:00
multipleof4 and Opus 4.6
44a4905463
Fix: Use CodeJar toString() to preserve newlines in editors
...
Co-authored-by: Opus 4.6 <noreply@anthropic.com >
2026-04-09 19:35:50 -07:00
multipleof4
89455a31c9
Fix: CodeJar newline deletion and saving bugs
2026-04-09 19:14:17 -07:00
multipleof4
e190890af0
Feat: Hook up customKey1 load/save and import/export functionality
2026-04-09 14:38:00 -07:00
multipleof4
38f763a986
Feat: Add Custom Key 1 field to API tab
2026-04-09 14:37:54 -07:00
multipleof4
c554646bb0
Feat: Register set_api_key_custom1 DOM node
2026-04-09 14:37:47 -07:00
multipleof4
f90deaa15f
Feat: Add customKey1 to USER object
2026-04-09 14:37:43 -07:00
multipleof4
4a1f6836dc
Update Sunes image in README
2026-04-02 17:20:19 -07:00
multipleof4
0532a6f030
Add files via upload
2026-04-02 17:19:04 -07:00
multipleof4
7b20d3940b
Fix: Render text accurately on single-shot completions
2026-04-02 17:07:11 -07:00
multipleof4
7b66b186c2
Remove tracking script from head.html
...
Removed tracking script from head.html
2026-03-31 23:12:43 -07:00
multipleof4
76cdf4171f
Refactor: Remove GCP storage item
2026-03-31 18:14:10 -07:00
multipleof4
707d548c5c
Refactor: Remove JSON output payload logic
2026-03-31 18:13:39 -07:00
multipleof4
e2d156fcb3
Refactor: Clean up JSON Schema & GCP SA elements
2026-03-31 18:13:34 -07:00
multipleof4
58e9d576e2
Refactor: Remove JSON output logic and GCP logic
2026-03-31 18:13:29 -07:00
multipleof4
f9b9c3d0d8
Refactor: Remove JSON schema & GCP elements
2026-03-31 18:13:24 -07:00
multipleof4
78f20ef773
Update index.html
2026-03-24 22:51:40 -07:00
multipleof4
54f15149ae
Fix: Bypass Chrome 146 Sanitizer API for suneHTML
2026-03-19 16:22:08 -07:00
multipleof4
91696a34f0
Refactor: Import Sune HTML logic from module
2026-03-19 15:51:38 -07:00