2c1d444348
Merge pull request 'fix(http): don't let a half-open TLS connection wedge the accept loop' (#16) from fix/iris-tls-handshake-wedge into master
master
Pakobbix2026-09-23 13:10:53 +00:00
2c20b1c8a5
fix(http): don't let a half-open TLS connection wedge the accept loop
ARIA2026-09-23 15:10:16 +02:00
8657e6afc6
fix(http): test acquire_scoped_lock's bool, not the always-truthy tuple
v0.1.3
ARIA2026-08-31 23:17:30 +02:00
5b78e1566f
docs(AGENTS): refresh to match current codebase
ARIA2026-08-29 00:12:37 +02:00
0f5b5a16ab
Fix gateway advertising 'unknown' version in production installs
ARIA2026-08-27 09:33:31 +02:00
9a519e3c5a
Omit null media in history frames (schema-conformant)
ARIA2026-08-21 20:56:16 +02:00
17bf41a0b9
Make thread/channel/message deletion complete (hard delete)
ARIA2026-08-21 19:47:55 +02:00
9286937e2d
Runtime footer: app-controlled model/context/cwd/latency/cost under replies
ARIA2026-08-21 19:32:05 +02:00
678c0344c8
Clean up lint/LSP across gateway, Android, and desktop (alpha -> stable)
ARIA2026-08-21 18:47:03 +02:00
9f3f9842c8
Push notification dedupe: one message = one notification — an offline message was notified twice (FCM push, then again when the app synced the outbox and mirrored the replayed frames). Fix: the gateway records the highest outbox cursor delivered per device via push (devices.last_pushed_cursor, advanced only on successful send) and returns it in hello.ack; sync-replayed frames carry their outbox cursor in the envelope; the app skips system notifications for replayed frames at/below the watermark (live frames never suppressed — that is the case where no push fired). Also: 5s per-chat push coalescing so a cron delivery (notification frame + message frame) pushes once, and the FCM handler no longer posts a redundant notification (skips when WS is connected or FCM already displayed the notification payload; data-only messages are the exception). Docs: frames.schema.json, 04-wire-protocol.md, 08-push.md §8.8
ARIA2026-08-21 17:21:54 +02:00
acd5fb4ad0
Ntfy listener: only run when the paired gateway pushes via ntfy — the foreground service (and its permanent 'Listening for messages' notification) is now started/stopped based on the gateway's push backend from hello.ack server_caps (persisted as pushBackend); FCM gateways no longer keep a persistent listener alive, and switching gateways toggles the service on the next connect
ARIA2026-08-21 17:21:47 +02:00
75d491fd30
Added default backdrops to the chat.
ARIA2026-08-21 15:48:30 +02:00
96b60daf08
Update dependencies to latest + migrate to AGP 9.x
ARIA2026-08-21 12:14:09 +02:00
ec53769325
Chat bubbles: preserve single newlines in agent messages too — the hard-break rule from user bubbles now applies to agent replies as well, so status lines and model-wrapped text render one line per field instead of collapsing into a wall of text; unit tests for preserveNewlinesAsHardBreaks
ARIA2026-08-21 10:26:35 +02:00
10e9565e2e
Channels: default-only threading + automation (read-only) channels — threading (topic switcher, Ctrl+T, auto-threading) is now only active on the default channel, and the gateway ignores auto_thread for other channels; new channel.set_automation frame marks a channel read-only for cron/webhook output (app hides the composer behind a notice, gateway rejects message.send, default channel cannot be marked, flag syncs to all devices via the full-entry channel.renamed response, gear badge in the list); header pill drops the 'Bot' subtitle and shows the chat_id on automation channels (tap to copy for cron delivery targeting); also fixes a pre-existing stray brace that made frames.schema.json invalid JSON
ARIA2026-08-21 09:39:32 +02:00
d7cd59b685
AGENTS.md: document the uiautomator workflow for ADB UI taps — never guess coordinates from a screenshot; dump the hierarchy, find the node by text/content-desc/resource-id, tap the center of its bounds, re-dump after navigation
ARIA2026-08-21 09:02:52 +02:00
6846ab1e19
Settings screen: add 8dp spacing between cards (they were touching, which read as compressed) and move 'Reset appearance' above the 'Font size' card
ARIA2026-08-21 08:59:38 +02:00
abf1374c1e
Font size setting: app-wide text scale (0.8x-1.5x, default 1.0x) via Settings > Appearance slider — applied through LocalDensity.fontScale so all sp text scales while dp layout keeps its proportions; the multiplier stacks on top of the system font scale; persisted per platform (EncryptedSharedPreferences / settings.json) like the other appearance settings
ARIA2026-08-21 08:54:48 +02:00
f79c54fead
README: rewrite for users — what it is, feature list, build-from-source (gateway/Android/desktop/pairing), contributing, Apache-2.0 license; add LICENSE file
ARIA2026-08-21 01:17:23 +02:00
73815b032a
HTML artifacts (Android): enable DOM storage + pin a real base URL so localStorage/sessionStorage work — the library defaults domStorageEnabled off and a null base URL leaves the page on the opaque about:blank origin where the storage APIs throw, so interactive artifacts that persist state appeared broken; basic JS (DOM/event handlers) already ran
ARIA2026-08-21 01:05:31 +02:00
ac4097e9a1
android gateway: raise MAX_MESSAGE_LENGTH to 1M so long replies (and complete HTML artifacts) aren't chunked across fence-reopened messages — the stream consumer defaults to 4096 when the adapter sets no cap, and WS has no message-size limit
ARIA2026-08-21 00:43:42 +02:00
7ba5632a03
HTML artifacts: render agent-sent HTML/CSS/JS code blocks in an in-app WebView (Android platform WebView, desktop JCEF/KCEF) via a full-screen preview; artifact card with Preview button + code toggle, shown only once the message stops streaming; webview-multiplatform 1.9.40 + KCEF deps, detection + unit tests
ARIA2026-08-21 00:43:39 +02:00
a1814d016c
User bubbles: move timestamp + delivery checkmarks to their own bottom-right line (Telegram look, matching agent bubbles) instead of inline at the end of the text
ARIA2026-08-21 00:01:13 +02:00
f8effb4152
Chat bubbles: render markdown (bold/italic/tables/syntax-highlighted code) for agent + user messages; tap-to-copy inline code with flash, code-block copy button; preserve user newlines; removed stale HANDOFF doc
ARIA2026-08-20 23:29:43 +02:00
a8920d8d26
Channel badges: flat Material star (default) + heart (favorite) icons instead of text glyphs, so favorites no longer look like the default channel
ARIA2026-08-20 21:07:52 +02:00
d16b47abdf
Channel context menu: hide Delete for the default channel (it can be renamed but not deleted; server already enforces this)
ARIA2026-08-20 21:00:36 +02:00
49b7a3f577
Channel context menu: long-press/right-click a row → rename, favorite/unfavorite, add/change/remove icon (color or image), delete; removed star/delete row buttons; favorite + icon/color synced across devices
ARIA2026-08-20 20:55:24 +02:00
079ef664a2
Back-to-bottom button: chevron FAB appears when scrolled up, tap glides to latest; new messages no longer yank the view while reading history; lane switch always lands on latest
ARIA2026-08-20 20:15:12 +02:00
1ec705727a
App icon: winged-bubble adaptive icon (Android) + window/jpackage icon (desktop); concept art in app/icons/
ARIA2026-08-20 19:48:57 +02:00
37c13b4d02
Compact single-row header: tappable status bubble (green/yellow-pulsing/red) + search, status toast on tap; removed overflow menu (rename/forget)
ARIA2026-08-20 19:33:45 +02:00
0e8f69a43c
User theme: customizable bubble colors + background (color/image) in Settings → Appearance
ARIA2026-08-20 19:14:35 +02:00
86a4c8ee70
Added official hermes-gateway status messages (new comment category instead of tool calls and messages)
ARIA2026-08-20 18:11:36 +02:00