Commit graph

2522 commits

Author SHA1 Message Date
Peter Steinberger
3b5463591b
chore: bump version to 2026.4.26 2026-04-26 09:28:52 +01:00
Peter Steinberger
57c1c7d886
fix(protocol): refresh generated swift models 2026-04-26 07:07:28 +01:00
Peter Steinberger
eb5bb67e04 style(macos): satisfy swiftformat 2026-04-26 06:19:35 +01:00
Peter Steinberger
113794f277 fix(voicewake): harden trigger routing rebase 2026-04-26 06:19:35 +01:00
Longbiao CHEN
cbcc1227d3 fix(voicewake): require token boundaries for filler-prefix matches 2026-04-26 06:19:35 +01:00
Longbiao CHEN
afe1abc297 feat(voicewake): refresh trigger routing on main 2026-04-26 06:19:35 +01:00
Peter Steinberger
ae45eebef1
fix: route remote mac browser through node host 2026-04-26 05:25:59 +01:00
Peter Steinberger
b277eac656
fix: pin macos ssh remote url to loopback 2026-04-26 05:01:25 +01:00
Peter Steinberger
c9e7bfd1fc
fix(mac): implement swift-log event handler 2026-04-26 04:48:43 +01:00
Seungwoo hong
63fac653ed
fix(talk): Talk Mode TTS improvements for CJK languages (#53553)
* feat(talk): add distinct system sounds for each Talk Mode phase

Play a short system sound on phase transitions to give the user
audible feedback:
- thinking: Tink
- speaking: Pop
- listening (after speech interrupted): Bottle
- listening (after thinking): Submarine

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(talk): add right Shift key to interrupt Talk Mode speech

Add TalkSpeechInterruptMonitor — a dedicated global key monitor that
listens for right Shift (keyCode 60) to interrupt Talk Mode speech.
Independent of Push-to-Talk, so it works even when PTT is disabled.

Stops only the current response; the next conversation cycle
continues normally via sendAndSpeak's resumeListeningIfNeeded flow.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(talk): increase silence detection timeout for CJK locales

Korean, Japanese, and Chinese speakers need longer pauses between
phrases. When the app locale is CJK, enforce a minimum 2000ms
silence window (vs the default 1500ms) to avoid premature
transcript submission.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(talk): remove force-unwraps and log CJK silence clamp in reloadConfig

Replace non-idiomatic force-unwraps (cfg.voiceId!, cfg.modelId!) with
safe flatMap unwrapping, and add an info log when CJK locale clamps the
silence timeout so the override is observable in diagnostics.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(talk): add settings toggle to mute phase-transition sounds

Add a "Play phase-transition sounds" checkbox to Voice Wake settings.
When disabled, Talk Mode phase transitions (Tink/Pop/Bottle/Submarine)
are silent. Defaults to enabled to preserve existing behavior.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(talk): add toggle for Right Option speech interrupt

Add a "Press Right Option to stop speech" checkbox to Voice Wake
settings. Also change the interrupt key from right Shift to right
Option (keyCode 61) to avoid conflicts with typing.
Defaults to enabled to preserve existing behavior.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(talk): disable Push-to-Talk while Talk Mode is active

Talk Mode and Push-to-Talk both use the right Option key (keyCode 61).
Disable PTT when Talk Mode is enabled to prevent conflicting handlers,
and restore PTT when Talk Mode is disabled.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(talk): show info when PTT is paused during Talk Mode

Display a footnote under the Push-to-Talk toggle when both PTT and
Talk Mode are enabled, explaining that PTT is paused while Talk Mode
is active and resumes when Talk Mode is turned off.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fixup: SwiftFormat lint on TalkModeController phase sound switch

Resolves macos-swift CI lint failures introduced by Korean
comment formatting in 'feat(talk): add distinct system sounds for each Talk Mode phase'.
- Collapse consecutive spaces between sound name and comment
- Move floating comments above the listening case expression so
  they're at the correct indent level

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: hongsw <hongsw@hongswui-Macmini.local>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Fabian Williams <fabian@adotob.com>
2026-04-25 17:05:51 -04:00
Fabian Williams
d6a179bcd9
fix(macos): SwiftFormat wrapMultilineStatementBraces on 2 main files (#71763)
Pre-existing lint errors blocking the macos-swift CI check on every
PR that touches Swift code. Apply the wrapMultilineStatementBraces
rule by moving the opening brace of the multi-line if/else if to its
own line.

- apps/macos/Sources/OpenClaw/ExecAllowlistMatcher.swift:17
- apps/macos/Sources/OpenClaw/ExecApprovals.swift:621

Pure formatting change; no behavioral effect.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 17:02:13 -04:00
Peter Steinberger
02f3e9cfa2
fix(talk): honor configured speech locale 2026-04-25 21:05:24 +01:00
Peter Steinberger
fb7b798f96
fix(android): prevent duplicate talk playback 2026-04-25 20:43:25 +01:00
Peter Steinberger
86d897cfaa
feat(android): expose talk mode
Co-authored-by: alex-latitude <213670856+alex-latitude@users.noreply.github.com>
2026-04-25 20:12:38 +01:00
Val Alexander
fc5920fb51
fix(ui): polish assistant identity settings
Polishes the basic config identity layout, aligns assistant avatar rendering with chat, and adds a Control UI assistant avatar override with IDENTITY.md fallback.
2026-04-25 06:27:22 -05:00
Peter Steinberger
7fcefd56b7
chore: bump version to 2026.4.25 2026-04-25 10:31:52 +01:00
Peter Steinberger
5699209d00
fix: match bare exec allowlist commands
Co-authored-by: Kengwei Lu <kengwei@kvvlu.com>
Co-authored-by: ZC <chenzhangcode@163.com>
Co-authored-by: dengluozhang <275862143+dengluozhang@users.noreply.github.com>
2026-04-25 04:18:24 +01:00
Peter Steinberger
3731a7c8f2
fix(macos): retry talk tts via gateway 2026-04-25 04:09:43 +01:00
Val Alexander
245451b6a9
fix(whatsapp): keep QR login state in sync
Keep WhatsApp QR login state synced across gateway, macOS, and UI wait flows.

- Preserve the latest QR data URL/version while login polling rotates codes.
- Keep the wait-result protocol bounded to current QR metadata.
- Stabilize QR rendering and media fixture coverage after rebasing on main.

Validation:
- pnpm test extensions/whatsapp/src/login-qr.test.ts extensions/whatsapp/src/media.test.ts extensions/whatsapp/src/agent-tools-login.test.ts src/gateway/protocol/channels.schema.test.ts src/gateway/server-methods/web.start.test.ts ui/src/ui/controllers/channels.test.ts
- pnpm test:extension whatsapp
- cd apps/macos && swift test --filter ChannelsSettingsSmokeTests
- GitHub PR checks: 62 success, 5 skipped
2026-04-24 15:37:16 -05:00
Peter Steinberger
960f3b07b1
fix: refresh protocol models and cron test lint 2026-04-24 05:54:13 +01:00
Peter Steinberger
85a2d1d05e
fix: update realtime protocol swift models 2026-04-24 03:44:52 +01:00
Peter Steinberger
e0072ef91a
chore: bump version to 2026.4.24 2026-04-24 02:13:50 +01:00
Vincent Koc
b122a325cd
fix(android): require loopback cleartext gateways 2026-04-23 11:59:17 -07:00
Vincent Koc
cad102c3ca
fix(android): require private IP cleartext pairing 2026-04-23 11:56:47 -07:00
Vincent Koc
5b3e73e099
fix(android): disable auto-send for ASK_OPENCLAW 2026-04-23 11:26:10 -07:00
Peter Steinberger
b75a80f6d1
chore(release): prepare 2026.4.23 2026-04-23 16:56:44 +01:00
Marcus Castro
f5f0235bb1
feat(whatsapp): adopt replyToMode quoting (#62305)
* fix(core): align auto-reply threading behavior

* fix(core): propagate reply threading through outbound and gateway

* fix(whatsapp): use cached metadata for native quoted replies

* feat(whatsapp): add configurable native reply quoting
2026-04-23 01:19:47 -03:00
Peter Steinberger
e3e2626583
fix: update generated protocol models 2026-04-23 02:49:50 +01:00
dangoZhang
13882581b6 fix(agents): clean up sessions_list forwarding 2026-04-23 02:33:55 +01:00
Peter Steinberger
344a88f931
refactor: remove plugin tool display overrides from core 2026-04-22 06:43:48 +01:00
Peter Steinberger
d94a981a33
refactor: keep plugin login policy out of core 2026-04-22 06:39:48 +01:00
dependabot[bot]
38f8bc5592
chore(deps): bump the android-deps group across 1 directory with 17 updates (#67592)
* build(deps): bump the android-deps group across 1 directory with 17 updates

Bumps the android-deps group with 12 updates in the /apps/android directory:

| Package | From | To |
| --- | --- | --- |
| org.jlleitschuh.gradle.ktlint | `14.0.1` | `14.2.0` |
| [org.jetbrains.kotlin.plugin.compose](https://github.com/JetBrains/kotlin) | `2.2.21` | `2.3.20` |
| [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) | `2.2.21` | `2.3.20` |
| androidx.compose:compose-bom | `2026.02.00` | `2026.03.01` |
| androidx.activity:activity-compose | `1.12.2` | `1.13.0` |
| [org.jetbrains.kotlinx:kotlinx-serialization-json](https://github.com/Kotlin/kotlinx.serialization) | `1.10.0` | `1.11.0` |
| [org.bouncycastle:bcprov-jdk18on](https://github.com/bcgit/bc-java) | `1.83` | `1.84` |
| [org.commonmark:commonmark](https://github.com/commonmark/commonmark-java) | `0.27.1` | `0.28.0` |
| [io.kotest:kotest-runner-junit5-jvm](https://github.com/kotest/kotest) | `6.1.3` | `6.1.11` |
| [org.junit.vintage:junit-vintage-engine](https://github.com/junit-team/junit-framework) | `6.0.2` | `6.0.3` |
| androidx.test.ext:junit | `1.2.1` | `1.3.0` |
| [gradle-wrapper](https://github.com/gradle/gradle) | `9.3.1` | `9.4.1` |

Updates `org.jlleitschuh.gradle.ktlint` from 14.0.1 to 14.2.0

Updates `org.jetbrains.kotlin.plugin.compose` from 2.2.21 to 2.3.20
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v2.2.21...v2.3.20)

Updates `org.jetbrains.kotlin.plugin.serialization` from 2.2.21 to 2.3.20
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v2.2.21...v2.3.20)

Updates `androidx.compose:compose-bom` from 2026.02.00 to 2026.03.01

Updates `androidx.activity:activity-compose` from 1.12.2 to 1.13.0

Updates `org.jetbrains.kotlinx:kotlinx-serialization-json` from 1.10.0 to 1.11.0
- [Release notes](https://github.com/Kotlin/kotlinx.serialization/releases)
- [Changelog](https://github.com/Kotlin/kotlinx.serialization/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Kotlin/kotlinx.serialization/compare/v1.10.0...v1.11.0)

Updates `org.bouncycastle:bcprov-jdk18on` from 1.83 to 1.84
- [Changelog](https://github.com/bcgit/bc-java/blob/main/docs/releasenotes.html)
- [Commits](https://github.com/bcgit/bc-java/commits)

Updates `org.commonmark:commonmark` from 0.27.1 to 0.28.0
- [Release notes](https://github.com/commonmark/commonmark-java/releases)
- [Changelog](https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md)
- [Commits](https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.27.1...commonmark-parent-0.28.0)

Updates `org.commonmark:commonmark-ext-autolink` from 0.27.1 to 0.28.0
- [Release notes](https://github.com/commonmark/commonmark-java/releases)
- [Changelog](https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md)
- [Commits](https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.27.1...commonmark-parent-0.28.0)

Updates `org.commonmark:commonmark-ext-gfm-strikethrough` from 0.27.1 to 0.28.0
- [Release notes](https://github.com/commonmark/commonmark-java/releases)
- [Changelog](https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md)
- [Commits](https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.27.1...commonmark-parent-0.28.0)

Updates `org.commonmark:commonmark-ext-gfm-tables` from 0.27.1 to 0.28.0
- [Release notes](https://github.com/commonmark/commonmark-java/releases)
- [Changelog](https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md)
- [Commits](https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.27.1...commonmark-parent-0.28.0)

Updates `org.commonmark:commonmark-ext-task-list-items` from 0.27.1 to 0.28.0
- [Release notes](https://github.com/commonmark/commonmark-java/releases)
- [Changelog](https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md)
- [Commits](https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.27.1...commonmark-parent-0.28.0)

Updates `io.kotest:kotest-runner-junit5-jvm` from 6.1.3 to 6.1.11
- [Release notes](https://github.com/kotest/kotest/releases)
- [Commits](https://github.com/kotest/kotest/compare/6.1.3...6.1.11)

Updates `io.kotest:kotest-assertions-core-jvm` from 6.1.3 to 6.1.11
- [Release notes](https://github.com/kotest/kotest/releases)
- [Commits](https://github.com/kotest/kotest/compare/6.1.3...6.1.11)

Updates `org.junit.vintage:junit-vintage-engine` from 6.0.2 to 6.0.3
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3)

Updates `androidx.test.ext:junit` from 1.2.1 to 1.3.0

Updates `gradle-wrapper` from 9.3.1 to 9.4.1
- [Release notes](https://github.com/gradle/gradle/releases)
- [Commits](https://github.com/gradle/gradle/compare/v9.3.1...v9.4.1)

---
updated-dependencies:
- dependency-name: org.jlleitschuh.gradle.ktlint
  dependency-version: 14.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: android-deps
- dependency-name: org.jetbrains.kotlin.plugin.compose
  dependency-version: 2.3.20
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: android-deps
- dependency-name: org.jetbrains.kotlin.plugin.serialization
  dependency-version: 2.3.20
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: android-deps
- dependency-name: androidx.compose:compose-bom
  dependency-version: 2026.03.01
  dependency-type: direct:production
  dependency-group: android-deps
- dependency-name: androidx.activity:activity-compose
  dependency-version: 1.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: android-deps
- dependency-name: org.jetbrains.kotlinx:kotlinx-serialization-json
  dependency-version: 1.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: android-deps
- dependency-name: org.bouncycastle:bcprov-jdk18on
  dependency-version: '1.84'
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: android-deps
- dependency-name: org.commonmark:commonmark
  dependency-version: 0.28.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: android-deps
- dependency-name: org.commonmark:commonmark-ext-autolink
  dependency-version: 0.28.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: android-deps
- dependency-name: org.commonmark:commonmark-ext-gfm-strikethrough
  dependency-version: 0.28.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: android-deps
- dependency-name: org.commonmark:commonmark-ext-gfm-tables
  dependency-version: 0.28.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: android-deps
- dependency-name: org.commonmark:commonmark-ext-task-list-items
  dependency-version: 0.28.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: android-deps
- dependency-name: io.kotest:kotest-runner-junit5-jvm
  dependency-version: 6.1.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: android-deps
- dependency-name: io.kotest:kotest-assertions-core-jvm
  dependency-version: 6.1.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: android-deps
- dependency-name: org.junit.vintage:junit-vintage-engine
  dependency-version: 6.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: android-deps
- dependency-name: androidx.test.ext:junit
  dependency-version: 1.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: android-deps
- dependency-name: gradle-wrapper
  dependency-version: 9.4.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: android-deps
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix(android): remove Kotlin 2.3 warning failures

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-04-21 22:25:27 -07:00
dependabot[bot]
ba8fb6b2b8
build(deps): bump the swift-deps group across 1 directory with 3 updates (#60168)
* build(deps): bump the swift-deps group across 1 directory with 3 updates

Bumps the swift-deps group with 3 updates in the /apps/macos directory: [github.com/orchetect/menubarextraaccess](https://github.com/orchetect/MenuBarExtraAccess), [github.com/apple/swift-log](https://github.com/apple/swift-log) and [github.com/sparkle-project/sparkle](https://github.com/sparkle-project/Sparkle).


Updates `github.com/orchetect/menubarextraaccess` from 1.2.2 to 1.3.0
- [Release notes](https://github.com/orchetect/MenuBarExtraAccess/releases)
- [Commits](https://github.com/orchetect/MenuBarExtraAccess/compare/1.2.2...1.3.0)

Updates `github.com/apple/swift-log` from 1.10.1 to 1.11.0
- [Release notes](https://github.com/apple/swift-log/releases)
- [Commits](https://github.com/apple/swift-log/compare/1.10.1...1.11.0)

Updates `github.com/sparkle-project/sparkle` from 2.9.0 to 2.9.1
- [Release notes](https://github.com/sparkle-project/Sparkle/releases)
- [Commits](https://github.com/sparkle-project/Sparkle/compare/2.9.0...2.9.1)

---
updated-dependencies:
- dependency-name: github.com/orchetect/menubarextraaccess
  dependency-version: 1.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: swift-deps
- dependency-name: github.com/apple/swift-log
  dependency-version: 1.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: swift-deps
- dependency-name: github.com/sparkle-project/sparkle
  dependency-version: 2.9.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: swift-deps
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix(macos): restore MenuBarExtraAccess ordering

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-04-21 21:30:14 -07:00
dependabot[bot]
16c4a04a69
build(deps): bump androidx.test.uiautomator:uiautomator in /apps/android (#48059)
Bumps androidx.test.uiautomator:uiautomator from 2.4.0-alpha06 to 2.4.0-beta02.

---
updated-dependencies:
- dependency-name: androidx.test.uiautomator:uiautomator
  dependency-version: 2.4.0-beta02
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-21 21:19:51 -07:00
Peter Steinberger
1801b90460
chore: bump version to 2026.4.22 2026-04-22 03:04:53 +01:00
Peter Steinberger
e836b5b6d7
ci: isolate mlx from macos swift checks 2026-04-22 02:12:07 +01:00
Peter Steinberger
0b1a35363e
chore: start 2026.4.21 development 2026-04-21 21:42:15 +01:00
Peter Steinberger
73f4bfadc1
style: fix ios app lint warnings 2026-04-20 14:17:25 +01:00
Peter Steinberger
a290e91b12
style: fix macos app lint warnings 2026-04-20 14:17:25 +01:00
Peter Steinberger
8116e638f3
chore: release 2026.4.20 2026-04-20 13:16:40 +01:00
Marcus Castro
aa76cf43f0
fix(whatsapp): stabilize auth state and reconcile local runtime after CLI login (#67815)
* WhatsApp: harden auth persistence and backup recovery

* WhatsApp: model unstable auth state across runtime and setup

* WhatsApp: recover login and monitor startup from unstable auth

* Channels: surface auth stabilizing in status and health

* Gateway protocol: add channels.start surface

* Gateway: reconcile local channel runtime after CLI login

* Channels UI: reflect recovered login start state

* Changelog: note WhatsApp auth stabilization

* Gateway: fix lint in call test
2026-04-19 14:20:46 -03:00
Peter Steinberger
dc3df91e95
chore: release 2026.4.19-beta.2 2026-04-19 06:53:19 +01:00
Peter Steinberger
ac8f0c9c0d
chore: prepare 2026.4.19-beta.1 release 2026-04-19 02:09:43 +01:00
Peter Steinberger
3f2e73b723
chore(release): bump version to 2026.4.18 2026-04-18 15:46:33 +01:00
Devin Robison
503b748a8e
fix(exec-approvals): escape control characters in display sanitizers (#68198)
* fix(exec-approvals): escape control characters in display sanitizers

* docs(changelog): add exec approval control-char display sanitizer entry

* fix(exec-approvals): redact before escape, cover U+2028/U+2029 in display sanitizers

* fix(exec-approvals): strip invisibles before redaction and align forwarder test

* fix(exec-approvals): cover Zs bypass and preserve multi-line context on obfuscated secrets

* fix(exec-approvals): compare redaction outputs by content, not length

* fix(exec-approvals): suppress raw command on bypass; cover non-ASCII Zs in macOS sanitizer

* fix(exec-approvals): use position-bitmap bypass detection and bound input size

* style(exec-approvals): satisfy oxlint no-new-array-single-argument and SwiftFormat

* fix(exec-approvals): iterate by code point and redact before truncating
2026-04-17 15:59:08 -06:00
Devin Robison
114b87caf2
fix(macos): require trusted SSH host keys (#68199)
* fix(macos): require trusted SSH host keys

* chore(changelog): add macOS SSH strict host-key entry
2026-04-17 11:11:10 -06:00
Val Alexander
f377db1015
feat: add macOS screen snapshots for monitor preview (#67954) thanks @BunsDev
Co-authored-by: Val Alexander <68980965+BunsDev@users.noreply.github.com>
2026-04-17 02:58:21 -05:00
J. Tyler Bittner
00951dc9f9
fix(macOS): enable undo/redo in webchat composer text input (#34962)
* fix(macOS): enable undo/redo in webchat composer text input

Set `allowsUndo = true` on ChatComposerNSTextView in makeNSView().
NSTextView defaults allowsUndo to false, which prevented Cmd+Z and
the Edit menu Undo/Redo items from functioning.

Fixes #34898

* fix(macos): enable webchat composer undo/redo (#34962) (thanks @tylerbittner)

---------

Co-authored-by: Nimrod Gutman <nimrod.gutman@gmail.com>
2026-04-17 10:07:20 +03:00
Peter Steinberger
0dc4c4076c
chore: bump version to 2026.4.16 2026-04-17 00:45:04 +01:00
Peter Steinberger
041266a669
chore: prepare 2026.4.15 release 2026-04-16 22:45:32 +01:00