Nimrod Gutman
185c393459
fix(ios): remove talk voice directive hint
2026-02-26 15:19:07 +02:00
Peter Steinberger
490cb5174d
fix(apps): sign gateway device auth with v3 payload
2026-02-26 14:16:49 +01:00
Harold Hunt
f53e4e9ffb
chore: Fix broken build protocol:check
2026-02-26 18:22:38 +05:30
Peter Steinberger
caace61ba1
chore: bump versions to 2026.2.26
2026-02-26 12:11:02 +01:00
Ayaan Zaidi
05817187fe
refactor(android): unify notifications.list status flow
2026-02-26 14:33:14 +05:30
Ayaan Zaidi
cf4fe41957
feat(android): add notifications.list node command
2026-02-26 14:33:14 +05:30
Ayaan Zaidi
ac6539ed03
refactor(android): unify invoke availability gating
2026-02-26 12:17:32 +05:30
Ayaan Zaidi
a87d961ebc
fix(android): require gateway device auth store
2026-02-26 12:17:32 +05:30
Ayaan Zaidi
f7865527af
fix(android): omit websocket Origin for native gateway connect
2026-02-26 12:17:32 +05:30
Ayaan Zaidi
c3f54fcddd
refactor(android): unify invoke error parsing
2026-02-26 12:17:32 +05:30
Ayaan Zaidi
39d362aeff
refactor(android): distill invoke dispatcher command flow
2026-02-26 12:17:32 +05:30
Ayaan Zaidi
18fc4c113b
refactor(android): centralize invoke command registry
2026-02-26 12:17:32 +05:30
Ayaan Zaidi
d4ae8a8d34
test(android): cover invoke paramsJSON and error mapping
2026-02-26 12:17:32 +05:30
Ayaan Zaidi
8117a13dd6
fix(nodes): default camera snap to front high-quality image
2026-02-26 12:17:32 +05:30
Ayaan Zaidi
bee0c564cf
test(android): add GatewaySession invoke roundtrip test
2026-02-26 12:17:32 +05:30
Peter Steinberger
5500000492
chore(protocol): regenerate Swift gateway models
2026-02-26 04:43:27 +01:00
Ayaan Zaidi
410ba918fb
fix(android): hydrate gateway token state on init
2026-02-26 07:50:09 +05:30
Ayaan Zaidi
3175640ea2
docs(android): add perf CLI workflow docs
2026-02-26 07:50:09 +05:30
Ayaan Zaidi
b49c2cbdd9
perf(android): tighten startup path and add perf tooling
2026-02-26 07:50:09 +05:30
Ayaan Zaidi
4a07c89816
perf(android): make gateway token writes async
2026-02-26 07:50:09 +05:30
Ayaan Zaidi
8d68199793
perf(android): cache device identity and speed hex encoding
2026-02-26 07:50:09 +05:30
Ayaan Zaidi
00fc1f56f1
perf(android): remove startup bc provider registration
2026-02-26 07:50:09 +05:30
Peter Steinberger
2011edc9e5
fix(gateway): preserve agentId through gateway send path
...
Landed from #23249 by @Sid-Qin.
Includes extra regression tests for agentId precedence + blank fallback.
Co-authored-by: Sid <201593046+Sid-Qin@users.noreply.github.com>
2026-02-25 23:31:35 +00:00
Peter Steinberger
8f3310000a
refactor(macos): remove anthropic oauth onboarding flow
2026-02-26 00:17:03 +01: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
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
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
52d933b3a9
refactor: replace bot.molt identifiers with ai.openclaw
2026-02-25 05:03:24 +00:00
Ayaan Zaidi
1edd9f8bf5
build(android): migrate to AGP 9 new DSL kotlin setup
2026-02-25 09:32:07 +05:30
Ayaan Zaidi
797843c39a
build(android): bump stable dependencies
2026-02-25 09:32:07 +05:30
Ayaan Zaidi
ff4dc050cc
feat(android): add gfm chat markdown renderer
2026-02-25 09:32:07 +05:30
Ayaan Zaidi
6969027025
fix(android): restore chat text streaming
2026-02-25 09:32:07 +05:30
Peter Steinberger
480cc4b85c
chore: roll to 2026.2.25 unreleased
2026-02-25 03:35:33 +00:00
Peter Steinberger
3c95f89662
refactor(exec): split system.run phases and align ts/swift validator contracts
2026-02-25 00:35:06 +00:00
Peter Steinberger
ce1dbeb986
fix(macos): clean warnings and harden gateway/talk config parsing
2026-02-25 00:27:36 +00:00
Peter Steinberger
16b228e4a6
fix(macos): resolve webchat panel corner clipping ( #22458 )
...
Co-authored-by: apethree <3081182+apethree@users.noreply.github.com>
Co-authored-by: agisilaos <3073709+agisilaos@users.noreply.github.com>
2026-02-25 00:14:56 +00:00
Peter Steinberger
1970a1e9e5
fix(macos): keep Return for IME marked text commit ( #25178 )
...
Co-authored-by: jft0m <9837901+bottotl@users.noreply.github.com>
2026-02-25 00:14:00 +00:00
Peter Steinberger
11a0495d5f
fix(macos): default voice wake forwarding to webchat ( #25440 )
...
Co-authored-by: Peter Machona <7957943+chilu18@users.noreply.github.com>
2026-02-25 00:12:44 +00:00
Peter Steinberger
31e6d18538
fix(macos): prefer openclaw binary while keeping pnpm fallback ( #25512 )
...
Co-authored-by: Peter Machona <7957943+chilu18@users.noreply.github.com>
2026-02-25 00:11:53 +00:00
Peter Steinberger
236b22b6a2
fix(macos): guard voice audio paths with no input device ( #25817 )
...
Co-authored-by: Stefan Förster <103369858+sfo2001@users.noreply.github.com>
2026-02-25 00:10:14 +00:00
Peter Steinberger
55cf92578d
fix(security): harden system.run companion command binding
2026-02-25 00:02:03 +00:00
Peter Steinberger
f4e6f87303
refactor(ios): drop legacy talk payload and keychain fallbacks
2026-02-24 22:39:37 +00:00
Ayaan Zaidi
8892a1cd45
refactor(android-ui): unify gateway config resolution paths
2026-02-24 22:13:49 +05:30
Ayaan Zaidi
7a74cf34ba
fix(android-security): remove token-derived logging from prefs
2026-02-24 22:13:49 +05:30
Ayaan Zaidi
8b24830e07
fix(android-gateway): avoid token clear on transient connect failure
2026-02-24 22:13:49 +05:30
Ayaan Zaidi
e11e329238
refactor(android-chat): move thread selector above composer
2026-02-24 22:13:49 +05:30
Ayaan Zaidi
75f145ebcc
docs(android): document alpha rebuild status and feature checklist
2026-02-24 22:13:49 +05:30
Ayaan Zaidi
baf98a87f6
refactor(android-settings): remove gateway controls duplicated in connect
2026-02-24 22:13:49 +05:30
Ayaan Zaidi
bb27884474
feat(android-tabs): add coming-soon voice and screen tabs
2026-02-24 22:13:49 +05:30
Ayaan Zaidi
94f426b29e
fix(android-nav): hide tab bar while keyboard is open
2026-02-24 22:13:49 +05:30
Ayaan Zaidi
577c554150
style(android-chat): redesign composer controls and actions
2026-02-24 22:13:49 +05:30
Ayaan Zaidi
81ff074a51
style(android-chat): align bubbles and markdown with RN
2026-02-24 22:13:49 +05:30
Ayaan Zaidi
b658000bf7
style(android-chat): refine thread shell and empty states
2026-02-24 22:13:49 +05:30
Ayaan Zaidi
02e3fbef77
style(android): align settings screen with RN visual system
2026-02-24 22:13:49 +05:30
Ayaan Zaidi
cf031d6ad4
chore(android): remove unused legacy ui components
2026-02-24 22:13:49 +05:30
Ayaan Zaidi
439d8e609e
fix(android): use native client id for operator session
2026-02-24 22:13:49 +05:30
Ayaan Zaidi
14f5217e22
fix(android): retry with shared token after device-token failure
2026-02-24 22:13:49 +05:30
Ayaan Zaidi
4b188dcf97
fix(android): persist gateway auth state across onboarding
2026-02-24 22:13:49 +05:30
Ayaan Zaidi
f853622eca
feat(android): switch post-onboarding app to five-tab shell
2026-02-24 22:13:49 +05:30
Ayaan Zaidi
c015382a77
feat(android): add connect tab screen with setup and manual modes
2026-02-24 22:13:49 +05:30
Ayaan Zaidi
757a4dc9fa
docs(android): generalize style guide from onboarding baseline
2026-02-24 22:13:49 +05:30
Ayaan Zaidi
5d88e77420
docs(android): add native UI style guide
2026-02-24 22:13:49 +05:30
Ayaan Zaidi
d6bbe93d4c
feat(android): add settings action to rerun onboarding
2026-02-24 22:13:49 +05:30
Ayaan Zaidi
b9cc2599f1
feat(android): add native four-step onboarding flow
2026-02-24 22:13:49 +05:30
Ayaan Zaidi
3e2e010952
feat(android): add onboarding and gateway auth state plumbing
2026-02-24 22:13:49 +05:30
Ayaan Zaidi
36c352453f
build(android): bump AGP and update gradle defaults
2026-02-24 22:13:49 +05:30
Peter Steinberger
80daaeba38
fix(ios): split watch notify normalization helpers
...
Co-authored-by: Mariano Belinky <mbelinky@gmail.com>
2026-02-24 15:16:11 +00:00
Mariano Belinky
d06d8701fd
iOS: normalize watch quick actions and fix test signing
2026-02-24 15:16:11 +00:00
Nimrod Gutman
d58f71571a
feat(talk): add provider-agnostic config with legacy compatibility
2026-02-24 15:02:52 +00:00
DoncicX
32d7756d8c
iOS: extract device/platform info into DeviceInfoHelper, keep Settings platform string as iOS X.Y.Z
2026-02-24 13:56:43 +00:00
Peter Steinberger
7c99a733a9
fix: harden macOS usage cost submenu recursion guard ( #25341 ) (thanks @yingchunbai)
2026-02-24 13:48:59 +00:00
yingchunbai
96b21f4823
fix(macos): remove self-delegate on cost usage submenu to prevent recursive dropdown
...
The cost usage submenu set `menu.delegate = self` (the MenuSessionsInjector),
which caused `menuWillOpen(_:)` to call `inject(into:)` on the submenu when
it opened. This re-inserted the "Usage cost (30 days)" item into the submenu,
creating an infinite recursive dropdown.
Fix: remove the delegate assignment from the submenu — it does not need
the injector's delegate behavior since it only contains a static chart view.
Closes #25167
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 13:48:59 +00:00
Peter Steinberger
2bad30b4d3
chore(release): bump version to 2026.2.24
2026-02-24 13:42:43 +00:00
Peter Steinberger
19d0ddc679
fix: regenerate protocol swift models for nodeId ( #24991 ) (thanks @stakeswky)
2026-02-24 04:34:49 +00:00
Peter Steinberger
ff4e6ca0d9
fix(ios): gate agent deep links with local confirmation
2026-02-24 02:51:58 +00:00
Ayaan Zaidi
61db3d4a16
fix(protocol): regenerate swift gateway models
2026-02-23 11:52:42 +05:30
Tak Hoffman
9e1a13bf4c
Gateway/UI: data-driven agents tools catalog with provenance (openclaw#24199) thanks @Takhoffman
...
Verified:
- pnpm install --frozen-lockfile
- pnpm build
- gh pr checks 24199 --watch --fail-fast
Co-authored-by: Takhoffman <781889+Takhoffman@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
2026-02-22 23:55:59 -06:00
Peter Steinberger
558a0137bb
chore(release): bump versions to 2026.2.23
2026-02-23 05:13:46 +01:00
Tak Hoffman
f8171ffcdc
Config UI: tag filters and complete schema help/labels coverage ( #23796 )
...
* Config UI: add tag filters and complete schema help/labels
* Config UI: finalize tags/help polish and unblock test suite
* Protocol: regenerate Swift gateway models
2026-02-22 15:17:07 -06:00
Peter Steinberger
e80c803fa8
fix(security): block shell env allowlist bypass in system.run
2026-02-22 12:47:05 +01:00
Yuzuru Suzuki
6f7e5f92c3
fix: add operator.read and operator.write to default CLI scopes ( #22582 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 8569fc88c9
Co-authored-by: YuzuruS <1485195+YuzuruS@users.noreply.github.com>
Co-authored-by: obviyus <22031114+obviyus@users.noreply.github.com>
Reviewed-by: @obviyus
2026-02-22 16:36:18 +05:30
Peter Steinberger
a96d89f343
refactor: unify exec wrapper resolution and parity fixtures
2026-02-22 10:26:44 +01:00
Peter Steinberger
2b63592be5
fix: harden exec allowlist wrapper resolution
2026-02-22 09:52:02 +01:00
Peter Steinberger
c2c7114ed3
fix(security): block HOME and ZDOTDIR env override injection
2026-02-22 09:42:55 +01:00
Peter Steinberger
8887f41d7d
refactor(gateway)!: remove legacy v1 device-auth handshake
2026-02-22 09:27:03 +01:00
Peter Steinberger
bfe016fa29
fix: clear stale remote discovery endpoints ( #21618 ) (thanks @bmendonca3)
2026-02-22 00:04:36 +01:00
Brian Mendonca
617e38cec0
Security/macos: enforce wss for non-loopback direct gateway
2026-02-21 23:57:34 +01:00
Brian Mendonca
8942ac04a8
fix(security): fail closed on unauthenticated discovery routing
2026-02-21 23:57:34 +01:00
Peter Steinberger
1bc5c2a7e9
refactor: unify exec shell parser parity and gateway websocket test helpers
2026-02-21 23:17:12 +01:00
Peter Steinberger
2028ca4428
fix(macos): unify exec allowlist validation pipeline
2026-02-21 23:09:07 +01:00
Peter Steinberger
dd41fadcaf
fix(macos): enforce path-only exec allowlist patterns
2026-02-21 22:58:40 +01:00
Peter Steinberger
90a378ca3a
fix(macos): block quoted shell substitution in allowlist checks
2026-02-21 22:57:53 +01:00
Peter Steinberger
25e89cc863
fix(security): harden shell env fallback
2026-02-21 20:01:08 +01:00
Nimrod Gutman
d6353cc54b
fix(ios): suppress expected speech cancellation errors
2026-02-21 20:52:05 +02:00
Nimrod Gutman
8a661e30c9
fix(ios): prefetch talk tts segments
2026-02-21 20:52:05 +02:00
Peter Steinberger
e371da38aa
fix(macos): consolidate exec approval evaluation
2026-02-21 19:30:35 +01:00
Peter Steinberger
fa89ae8e9e
fix: stabilize swift protocol generation and flaky tests
2026-02-21 16:53:46 +01:00
Peter Steinberger
5da03e6221
fix(macos): harden exec allowlist shell-chain checks
2026-02-21 16:27:18 +01:00
Onur
8178ea472d
feat: thread-bound subagents on Discord ( #21805 )
...
* docs: thread-bound subagents plan
* docs: add exact thread-bound subagent implementation touchpoints
* Docs: prioritize auto thread-bound subagent flow
* Docs: add ACP harness thread-binding extensions
* Discord: add thread-bound session routing and auto-bind spawn flow
* Subagents: add focus commands and ACP/session binding lifecycle hooks
* Tests: cover thread bindings, focus commands, and ACP unbind hooks
* Docs: add plugin-hook appendix for thread-bound subagents
* Plugins: add subagent lifecycle hook events
* Core: emit subagent lifecycle hooks and decouple Discord bindings
* Discord: handle subagent bind lifecycle via plugin hooks
* Subagents: unify completion finalizer and split registry modules
* Add subagent lifecycle events module
* Hooks: fix subagent ended context key
* Discord: share thread bindings across ESM and Jiti
* Subagents: add persistent sessions_spawn mode for thread-bound sessions
* Subagents: clarify thread intro and persistent completion copy
* test(subagents): stabilize sessions_spawn lifecycle cleanup assertions
* Discord: add thread-bound session TTL with auto-unfocus
* Subagents: fail session spawns when thread bind fails
* Subagents: cover thread session failure cleanup paths
* Session: add thread binding TTL config and /session ttl controls
* Tests: align discord reaction expectations
* Agent: persist sessionFile for keyed subagent sessions
* Discord: normalize imports after conflict resolution
* Sessions: centralize sessionFile resolve/persist helper
* Discord: harden thread-bound subagent session routing
* Rebase: resolve upstream/main conflicts
* Subagents: move thread binding into hooks and split bindings modules
* Docs: add channel-agnostic subagent routing hook plan
* Agents: decouple subagent routing from Discord
* Discord: refactor thread-bound subagent flows
* Subagents: prevent duplicate end hooks and orphaned failed sessions
* Refactor: split subagent command and provider phases
* Subagents: honor hook delivery target overrides
* Discord: add thread binding kill switches and refresh plan doc
* Discord: fix thread bind channel resolution
* Routing: centralize account id normalization
* Discord: clean up thread bindings on startup failures
* Discord: add startup cleanup regression tests
* Docs: add long-term thread-bound subagent architecture
* Docs: split session binding plan and dedupe thread-bound doc
* Subagents: add channel-agnostic session binding routing
* Subagents: stabilize announce completion routing tests
* Subagents: cover multi-bound completion routing
* Subagents: suppress lifecycle hooks on failed thread bind
* tests: fix discord provider mock typing regressions
* docs/protocol: sync slash command aliases and delete param models
* fix: add changelog entry for Discord thread-bound subagents (#21805 ) (thanks @onutc)
---------
Co-authored-by: Shadow <hi@shadowing.dev>
2026-02-21 16:14:55 +01:00
Peter Steinberger
f202e73077
refactor(security): centralize host env policy and harden env ingestion
2026-02-21 13:04:39 +01:00
Peter Steinberger
2cdbadee1f
fix(security): block startup-file env injection across host execution paths
2026-02-21 11:44:20 +01:00
Peter Steinberger
9231d7d30f
chore: bump version to 2026.2.21
2026-02-21 11:02:30 +01:00
Nimrod Gutman
78caf9ec3d
feat(ios): surface gateway talk defaults and refresh icon assets ( #22530 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 54f3a40e22
Co-authored-by: ngutman <1540134+ngutman@users.noreply.github.com>
Co-authored-by: ngutman <1540134+ngutman@users.noreply.github.com>
Reviewed-by: @ngutman
2026-02-21 10:34:20 +02:00
Vincent Koc
f4a59eb5d8
Chore: harden A2UI bundle dependency resolution ( #22507 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: d84c5bde51
Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com>
Co-authored-by: obviyus <22031114+obviyus@users.noreply.github.com>
Reviewed-by: @obviyus
2026-02-21 13:16:31 +05:30
Vincent Koc
55eab106ac
chore: remove root long and rolldown deps ( #22481 )
...
* chore(deadcode): add deadcode scanning and remove unused lockfile deps
* chore(changelog): mention deadcode CI scan pass
* ci: disable deadcode job temporarily
* docs(changelog): add PR ref and thanks for deadcode scan entry
* ci: comment out deadcode job condition while keeping it disabled
* Deps: remove dead root dependency from package manifest
* Changelog: reference PR for deadcode dependency cleanup
* Deps: remove unused root signal-utils
* Chore: remove unused lit context deps
* Chore: remove unused root lit dependency
* Chore: remove root long and rolldown deps
* Chore: add changelog for root long/rolldown removal
* Chore: fix a2ui bundling after root lit dependency removal
* Chore: simplify a2ui bundle script dependencies
2026-02-21 02:05:41 -05:00
Harold Hunt
844d84a7f5
Issue 17774 - Usage - Local - Show data from midnight to midnight of selected dates for browser time zone (AI assisted) (openclaw#19357) thanks @huntharo
...
Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check
- pnpm test:macmini (override approved by Tak for this run; local baseline failures outside PR scope)
Co-authored-by: huntharo <5617868+huntharo@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
2026-02-20 20:09:03 -06:00
Mars
a4e7e952e1
fix(ui): strip injected inbound metadata from user messages in history ( #22142 )
...
* fix(ui): strip injected inbound metadata from user messages in history
Fixes #21106
Fixes #21109
Fixes #22116
OpenClaw prepends structured metadata blocks ("Conversation info",
"Sender:", reply-context) to user messages before sending them to the
LLM. These blocks are intentionally AI-context-only and must never reach
the chat history that users see.
Root cause:
`buildInboundUserContextPrefix` in `inbound-meta.ts` prepends the
blocks directly to the stored user message content string, so they are
persisted verbatim and later shown in webchat, TUI, and every other
rendering surface.
Fix:
• `src/auto-reply/reply/strip-inbound-meta.ts` — new utility with a
6-sentinel fast-path strip (zero-alloc on miss) + 9-test suite.
• `src/tui/tui-session-actions.ts` — wraps `chatLog.addUser(...)` with
`stripInboundMetadata()` so the TUI never stores the prefix.
• `ui/src/ui/chat/message-normalizer.ts` — strips user-role text content
items during normalisation so webchat renders clean messages.
* fix(ui): strip inbound metadata for user messages in display path
* test: fix discord component send test spread typing
* fix: strip inbound metadata from mac chat history decode
* fix: align Swift metadata stripping parser with TS implementation
* fix: normalize line endings in inbound metadata stripper
* chore: document Swift/TS metadata-sentinel ownership
* chore: update changelog for inbound metadata strip fix
* changelog: credit Mellowambience for 22142
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-02-20 17:35:13 -08:00
Shadow
4ab946eebf
Discord VC: voice channels, transcription, and TTS ( #18774 )
2026-02-20 16:06:07 -06:00
Mariano
67edc7790f
iOS: gate capabilities by permissions and add settings controls ( #22135 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 92c2660d08
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Reviewed-by: @mbelinky
2026-02-20 19:26:30 +00:00
Mariano
f52476f18c
iOS Watch: bridge mirrored notification actions into quick replies ( #22123 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 401fbe8a7a
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Reviewed-by: @mbelinky
2026-02-20 19:04:58 +00:00
Mariano
9476dda9f6
iOS Chat: clean UI noise and format tool outputs ( #22122 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 34dd87b0c0
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Reviewed-by: @mbelinky
2026-02-20 19:01:03 +00:00
Mariano
5828708343
iOS/Gateway: harden pairing resolution and settings-driven capability refresh ( #22120 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 55b8a93a99
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Reviewed-by: @mbelinky
2026-02-20 18:57:04 +00:00
Mariano
fe3215092c
test(ios): cover IPv4-mapped IPv6 loopback in manual TLS policy ( #22045 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: ec952f0a80
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Reviewed-by: @mbelinky
2026-02-20 17:23:33 +00:00
Mariano
fd8c6d1f77
iOS: refresh phone/watch app icons with lobster assets ( #21997 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: d41caeff38
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Reviewed-by: @mbelinky
2026-02-20 16:41:41 +00:00
Mariano
738b011624
iOS/watch: add actionable watch approvals and quick replies ( #21996 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 3c2a01f903
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Reviewed-by: @mbelinky
2026-02-20 16:39:13 +00:00
Mariano
774d73b458
fix(macos): reject insecure non-loopback ws remote gateway urls ( #21971 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 9e8cdbf095
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Reviewed-by: @mbelinky
2026-02-20 16:34:00 +00:00
Mariano
ebae6f918e
fix(shared): reject insecure non-loopback gateway deep links ( #21970 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 279173c7db
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Reviewed-by: @mbelinky
2026-02-20 16:31:40 +00:00
Mariano
8fa46d709a
fix(ios): force tls for non-loopback manual gateway hosts ( #21969 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 9fb39f566e
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Reviewed-by: @mbelinky
2026-02-20 16:28:47 +00:00
Nimrod Gutman
ac0c1c26b1
fix: preserve ios bg refresh plist key and handle web login retry failures
2026-02-20 14:47:20 +02:00
Nimrod Gutman
8775d34fba
fix(pairing): simplify pending merge and harden mixed-role onboarding
2026-02-20 14:47:20 +02:00
Nimrod Gutman
1da23be302
fix(pairing): preserve operator scopes for ios onboarding
2026-02-20 14:47:20 +02:00
Peter Steinberger
f66b23de75
chore(release): bump versions to 2026.2.20
2026-02-20 00:02:53 +01:00
Mariano
e98ccc8e17
iOS/Gateway: stabilize background wake and reconnect behavior ( #21226 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 7705a7741e
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Reviewed-by: @mbelinky
2026-02-19 20:20:28 +00:00
Mariano
a1d5dce7ab
iOS: use dedicated session key for chat sheet ( #21139 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 31a27b0c5b
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Reviewed-by: @mbelinky
2026-02-19 18:42:56 +00:00
Mariano
42d11a3ec5
iOS: auto-resync chat after reconnect gaps ( #21135 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 1beca3a76d
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Reviewed-by: @mbelinky
2026-02-19 18:37:13 +00:00
Peter Steinberger
b0e55283d5
chore: bump release metadata to 2026.2.19
2026-02-19 16:17:34 +01:00
Peter Steinberger
4344699574
build: regenerate swift protocol models for updateAvailable
2026-02-19 08:54:30 +00:00
Nimrod Gutman
dd28a77df0
fix(ios): refactor screen webview lifecycle handling ( #20366 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 7beb794a06
Co-authored-by: ngutman <1540134+ngutman@users.noreply.github.com>
Co-authored-by: ngutman <1540134+ngutman@users.noreply.github.com>
Reviewed-by: @ngutman
2026-02-19 05:05:40 +08:00