Peter Steinberger
f60d9591ef
docs(changelog): add macOS auth fix note for setup-token path
2026-02-26 00:23:24 +01:00
Peter Steinberger
d512163d68
fix(security): harden nextcloud-talk webhook replay handling
2026-02-26 00:18:38 +01:00
Peter Steinberger
8f3310000a
refactor(macos): remove anthropic oauth onboarding flow
2026-02-26 00:17:03 +01:00
Bill Wang
a898acbd55
feature/OPENCLAW_IMAGE
2026-02-25 10:55:17 -08:00
Bill Wang
98292331d5
Update docker-setup.sh
...
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-02-25 10:55:17 -08:00
Bill Wang
c7f88e85b7
feature/OPENCLAW_IMAGE
2026-02-25 10:55:17 -08:00
Bill Wang
15240bdbfe
feature/OPENCLAW_IMAGE
2026-02-25 10:55:17 -08:00
Shadow
975c9f4b54
Agents: emphasize config.schema usage
2026-02-25 09:45:39 -06:00
Ayaan Zaidi
b12216af93
fix(android): refresh settings permissions on resume
2026-02-25 18:23:50 +05:30
Ayaan Zaidi
2b7db53d06
fix(android): recover stuck voice sends after missing finals
2026-02-25 18:23:50 +05:30
Ayaan Zaidi
285a0f48e5
fix(android): sync mic manager on toggle
2026-02-25 18:23:50 +05:30
Ayaan Zaidi
f729cc7b07
fix(android): stop auto canvas rehydrate on node connect
2026-02-25 18:23:50 +05:30
Ayaan Zaidi
10a1593e0c
feat(android): redesign voice mode layout for full-height conversation
2026-02-25 18:23:50 +05:30
Ayaan Zaidi
f9c3fdba45
refactor(android): expose voice conversation state to viewmodel
2026-02-25 18:23:50 +05:30
Ayaan Zaidi
434dc46531
feat(android): stream voice turns from mic manager events
2026-02-25 18:23:50 +05:30
Ayaan Zaidi
73677f2707
refactor(android): remove legacy voice wake controls from settings
2026-02-25 18:23:50 +05:30
Ayaan Zaidi
6798330c24
feat(android): replace voice placeholder with mic transcript UI
2026-02-25 18:23:50 +05:30
Ayaan Zaidi
3d29233bab
feat(android): add single-path mic capture runtime manager
2026-02-25 18:23:50 +05:30
Ayaan Zaidi
90ddb3f271
fix(android): stabilize gateway operator reconnect
2026-02-25 18:23:50 +05:30
Nimrod Gutman
3607b733cb
fix(changelog): add typing firestart guard note ( #26325 ) (thanks @win4r)
2026-02-25 14:49:21 +02:00
Ubuntu
a182afcf97
style: expand curly braces per oxfmt
2026-02-25 14:49:21 +02:00
Ubuntu
ae658aa84c
style: add curly braces to satisfy eslint(curly)
2026-02-25 14:49:21 +02:00
Ubuntu
97eb5542e8
fix(typing): guard fireStart against post-close invocation
...
The existing `closed` flag in `createTypingCallbacks` guards
`onReplyStart` but not `fireStart` itself. If a keepalive tick is
already in-flight when `fireStop` sets `closed = true` and calls
`keepaliveLoop.stop()`, the running `onTick → fireStart` callback
still completes and sends a stale `sendChatAction('typing')` after
the reply message has been delivered.
On Telegram (which has no cancel-typing API), this causes the typing
indicator to linger ~5 seconds after the bot's message appears.
Add a `closed` early-return in `fireStart` as defense-in-depth so
that even an in-flight tick is suppressed once cleanup has started.
2026-02-25 14:49:21 +02:00
Nimrod Gutman
b3f46f0e28
fix(test): stabilize low-mem parallel runner and cron session mock ( #26324 )
...
* fix(test): stabilize low-mem parallel lane and cron session mock
* feat(android): make QR scanning first-class onboarding
* docs(android): update README for native Android workflow
* fix(android): stabilize chat composer ime and tab layout
* fix(android): stabilize chat ime insets and tab bar
* fix(android): remove tab bar gap above system nav
* fix(android): harden scanned setup code parsing
* test(android): cover non-string setupCode QR payload
* fix(test): add changelog note for low-mem test runner (#26324 ) (thanks @ngutman)
---------
Co-authored-by: Ayaan Zaidi <zaidi@uplause.io >
2026-02-25 12:16:17 +02:00
Ayaan Zaidi
ed34129637
test(android): cover non-string setupCode QR payload
2026-02-25 14:05:56 +05:30
Ayaan Zaidi
036e3e633e
fix(android): harden scanned setup code parsing
2026-02-25 14:05:56 +05:30
Ayaan Zaidi
9c1c083d98
fix(android): remove tab bar gap above system nav
2026-02-25 14:05:56 +05:30
Ayaan Zaidi
7725c0b9b3
fix(android): stabilize chat ime insets and tab bar
2026-02-25 14:05:56 +05:30
Ayaan Zaidi
959cbafcdb
fix(android): stabilize chat composer ime and tab layout
2026-02-25 14:05:56 +05:30
Ayaan Zaidi
f894c23e64
docs(android): update README for native Android workflow
2026-02-25 14:05:56 +05:30
Ayaan Zaidi
2e3c05d9da
feat(android): make QR scanning first-class onboarding
2026-02-25 14:05:56 +05:30
Nimrod Gutman
56b8c69487
docs(changelog): add discord typing fix entry ( #26295 ) (thanks @ngutman)
2026-02-25 10:21:52 +02:00
Nimrod Gutman
a0fa283839
fix(discord): prevent stuck typing indicator
2026-02-25 10:21:52 +02:00
Ayaan Zaidi
fb76e316fb
fix(test): use valid brave ui_lang locale
2026-02-25 11:58:52 +05:30
Brian Mendonca
6bc7544a6a
fix(telegram): fail closed on empty group allowFrom override
2026-02-25 11:54:27 +05:30
Ayaan Zaidi
81752564e9
refactor(android): return sendNodeEvent status to callers
2026-02-25 11:43:35 +05:30
Ayaan Zaidi
b065265b73
fix(android): gate canvas restore on node connectivity
2026-02-25 11:43:35 +05:30
Ayaan Zaidi
41870fac16
fix(android): preserve scoped canvas URL suffix on TLS rewrite
2026-02-25 11:43:35 +05:30
Ayaan Zaidi
f701224a69
feat(canvas): add narrow-screen A2UI layout overrides
2026-02-25 11:43:35 +05:30
Ayaan Zaidi
35a4641bb6
fix(android): use mobile viewport settings for canvas webview
2026-02-25 11:43:35 +05:30
Ayaan Zaidi
1c0c58e30d
feat(android): add screen-tab canvas restore flow
2026-02-25 11:43:35 +05:30
Ayaan Zaidi
e5399835b2
fix(android): normalize canvas host URLs for TLS gateways
2026-02-25 11:43:35 +05:30
Peter Steinberger
b247cd6d65
fix: harden Slack file-only fallback placeholder ( #25181 ) (thanks @justinhuangcode)
2026-02-25 05:36:49 +00:00
justinhuangcode
a6337be3d1
refactor: use MAX_SLACK_MEDIA_FILES constant for file-only fallback
...
Replace the hardcoded limit of 5 with the existing
MAX_SLACK_MEDIA_FILES constant (8) from media.ts for consistency.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-25 05:36:49 +00:00
justinhuangcode
def28a87b2
fix(slack): deliver file-only messages when all media downloads fail
...
When a Slack message contains only files/audio (no text) and every file
download fails, `resolveSlackMedia` returns null and `rawBody` becomes
empty, causing `prepareSlackMessage` to silently drop the message.
Build a fallback placeholder from the original file names so the agent
still receives the message, matching the pattern already used in
`resolveSlackThreadHistory` for file-only thread entries.
Closes #25064
2026-02-25 05:36:49 +00:00
byungsker
177386ed73
fix(tui): resolve wrong provider prefix when session has model without modelProvider ( #25874 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: f0953a72845fb3f9e8745cb6ab476cea7a5cd98b
Co-authored-by: lbo728 <72309817+lbo728@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-02-25 00:36:27 -05:00
Peter Steinberger
8f5f599a34
docs(security): note narrow filesystem roots for tool access
2026-02-25 05:10:10 +00:00
Peter Steinberger
52d933b3a9
refactor: replace bot.molt identifiers with ai.openclaw
2026-02-25 05:03:24 +00:00
Glucksberg
6e97470515
fix(brave-search): clarify ui_lang and search_lang format requirements ( #25130 )
...
* fix(brave-search): swap ui_lang and search_lang formats (#23826 )
* fix(web-search): normalize Brave ui_lang/search_lang params
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-02-25 04:59:38 +00:00
Peter Steinberger
b564b72dc9
docs(changelog): add missing security PR entries ( #26118 #26116 #26112 #26111 #26095 )
2026-02-25 04:59:10 +00:00