Jesse Merhi
c9707ab635
fix(exec): rebuild command authorization on the Tree-sitter command planner
...
Replace the exec approval parser/planner path with Tree-sitter-backed authorization planning, carrying planner decisions through node and gateway execution.
This keeps unpersistable shell shapes one-shot, adds typed `unavailableDecisions` for approval prompts, and refreshes coverage for allowlist matching, command rendering, durable allow-always persistence, and host approval paths.
Verification:
- GitHub PR checks for ce2381192d : CLEAN, 142 success, 32 skipped, 0 failed, 0 pending.
- /Users/jmerhi/.nvm/versions/node/v24.12.0/bin/node scripts/plugin-sdk-surface-report.mjs --check
- /Users/jmerhi/.nvm/versions/node/v24.12.0/bin/node scripts/run-vitest.mjs test/scripts/plugin-sdk-surface-report.test.ts --reporter=verbose
- Focused exec approval suite: 13 files, 467 tests.
2026-06-18 10:12:48 +10:00
Vincent Koc
abb6f04e0c
ci(release): harden release controls
...
One-time maintainer-authorized bootstrap merge for the release-gate verifier policy. Exact hosted CI and all supporting workflow gates passed on 66133de419 .
2026-06-18 03:11:20 +08:00
joshavant
22ddf87d2c
docs: explain Android signing sync
2026-06-17 12:37:29 +02:00
joshavant
2147312aa2
android: add release signing sync
2026-06-17 12:37:29 +02:00
joshavant
5372c7146b
android: add release preflight lane
2026-06-17 11:05:53 +02:00
joshavant
529150868c
android: derive release notes from changelog
2026-06-17 11:05:53 +02:00
Vincent Koc
a73f026c2d
fix(macos): preserve approvals migration data ( #93880 )
...
Merged via squash.
Prepared head SHA: a8a0dd0cbb
Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com >
Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com >
Reviewed-by: @vincentkoc
2026-06-17 11:57:32 +08:00
Colin Johnson
8e77d5e144
fix(android): wait for node capability approval before onboarding ( #93792 )
...
* fix android node approval wait state
* docs: add android approval wait proof
* fix(android): address approval state review cleanup
* docs: move PR proof images out of repo
* test: trim android node approval proof
* fix(android): wait for node approval before onboarding
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-06-17 09:38:33 +08:00
Sash Zats
c5b79e3b7a
fix(ios): fix quick setup sheet layout design ( #93751 )
...
* fix(ios): simplify quick setup sheet layout
* fix(ios): restore quick setup card chrome
2026-06-17 04:45:24 +08:00
Marko Milosevic
b9e193ce22
test(macos): cover root command dispatch ( #93705 )
...
* test(macos): cover root command dispatch
* chore(macos): format root command coverage
---------
Co-authored-by: markoub <2418548+markoub@users.noreply.github.com >
Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com >
2026-06-17 02:36:33 +08:00
joshavant
f78235d346
android: include changelog in metadata upload
2026-06-16 19:13:44 +02:00
joshavant
d42e557a66
android: combine play release upload
2026-06-16 19:13:44 +02:00
joshavant
2971775ead
android: upload changelog with play build
2026-06-16 19:13:44 +02:00
joshavant
c9a854c217
android: fix release screenshot review blockers
2026-06-16 19:13:44 +02:00
joshavant
f3ab59db58
android: generate release screenshots
2026-06-16 19:13:44 +02:00
joshavant
91fb5d3823
android: add play release upload lane
2026-06-16 19:13:44 +02:00
joshavant
91220cbd31
android: archive release artifacts from pinned version
2026-06-16 19:13:44 +02:00
joshavant
40eec48caf
android: add pinned release versioning
2026-06-16 19:13:44 +02:00
Vincent Koc
1fc04ac6e3
fix(ios): satisfy watch screenshot SwiftFormat
2026-06-16 16:24:32 +02:00
joshavant
6b3e23aba7
chore(ios): capture watch now face screenshot
2026-06-16 15:59:02 +02:00
joshavant
4542d3914c
chore(ios): remove review information metadata
2026-06-16 15:59:02 +02:00
joshavant
d24a589f1c
chore(ios): rename signing repository reference
2026-06-16 15:59:02 +02:00
joshavant
0af07bb378
chore(ios): migrate release signing to fastlane match
2026-06-16 15:59:02 +02:00
Colin Johnson
c45c87acca
feat(ios): add watch action surface ( #93387 )
...
* feat(ios): add watch action surface
* fix: harden watch action surface
* fix: clean watch codegen lint
* fix(ios): scope watch chat commands to gateway
---------
Co-authored-by: joshavant <830519+joshavant@users.noreply.github.com >
2026-06-16 15:22:16 +02:00
Stellar鱼
ca1a53aca4
feat(cron): add compact list responses ( #93395 )
...
Merged via squash.
Prepared head SHA: 4965e7e630
Co-authored-by: yu-xin-c <175149126+yu-xin-c@users.noreply.github.com >
Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com >
Reviewed-by: @vincentkoc
2026-06-16 14:40:00 +08:00
zengLingbiao
4c9e7f6c61
fix(nodes): return screen snapshots as media ( #93499 )
...
Merged via squash.
Prepared head SHA: 6a69c5cdcc
Co-authored-by: zenglingbiao <290951975+zenglingbiao@users.noreply.github.com >
Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com >
Reviewed-by: @vincentkoc
2026-06-16 14:35:58 +08:00
joshavant
21e3cfa5e9
Add Apple Watch screenshot pipeline
2026-06-16 00:40:40 +02:00
joshavant
9092578d8d
feat: configure ios app store release upload
2026-06-15 19:27:55 +02:00
joshavant
a23de348b2
feat: configure ios app store release signing
2026-06-15 19:27:55 +02:00
joshavant
7650397a22
fix: align ios agent rows
2026-06-15 19:27:55 +02:00
joshavant
5a2641fc41
test: add ios screenshot automation
2026-06-15 19:27:55 +02:00
joshavant
377f6181a9
feat: add ios screenshot fixture mode
2026-06-15 19:27:55 +02:00
joshavant
b896e22e10
fix: stabilize ios screenshot status bar
2026-06-15 19:27:55 +02:00
joshavant
1ffda5d3ca
fix: migrate ios identifiers to openclawfoundation
2026-06-15 19:27:55 +02:00
joshavant
379de52b59
fix: use canonical ios bundle identifiers
2026-06-15 19:27:55 +02:00
joshavant
0944045b75
chore: prefer canonical ios signing team
2026-06-15 19:27:55 +02:00
joshavant
c932bf377b
chore: update ios configuration
2026-06-15 19:27:54 +02:00
Sash Zats
1e2363b687
fix(ios): refresh permission rows after grants ( #91776 )
2026-06-16 00:26:54 +08:00
Sash Zats
a3070e3ddf
fix(ios): respect chat header safe area ( #91768 )
2026-06-16 00:22:59 +08:00
Ayaan Zaidi
c1219d161d
fix(android): preserve history context usage ( #92837 ) (thanks @Tosko4)
2026-06-15 19:55:17 +05:30
Ayaan Zaidi
636aab6891
refactor(android): distill session event refresh
2026-06-15 19:55:17 +05:30
Tosko4
8f9493c213
fix(android): clear stale context usage snapshots
2026-06-15 19:55:17 +05:30
Tosko4
826ea2bf85
fix(android): show live chat context usage
2026-06-15 19:55:17 +05:30
Peter Steinberger
66079161d7
fix(macos): route Peekaboo through app bridge
2026-06-15 09:14:16 -04:00
Sash Zats
233b48daaa
refactor: prune unused iOS code ( #91996 )
...
Prune unused iOS surfaces and regenerate the Xcode project. Add a scoped Periphery PR gate with hardened artifact handling and stale-status cleanup.
Co-authored-by: Sash Zats <sash@zats.io >
2026-06-15 02:07:15 -07:00
Peter Steinberger
7a7165ad22
fix(protocol): emit Swift enums for literal unions
2026-06-15 03:20:42 -04:00
liuhao1024
7e0128ae65
fix(agents): preserve literal current session resolution ( #93138 )
...
* fix(agents): resolve "current" session alias locally without gateway round-trip
The system prompt tells agents to use sessionKey="current" to refer to
their own session. Previously, resolveSessionReference sent the literal
string "current" to the gateway sessions.resolve action, which rejected
it with INVALID_REQUEST and logged a noisy error line on every tool call.
The wrapper fell back to requesterInternalKey and succeeded, so the tool
worked — but the gateway error was spurious.
Add "current" to the well-known client alias check in
resolveCurrentSessionClientAlias so it is resolved locally to the
requester's session key, matching how TUI/CLI/WebChat client labels are
handled. This eliminates the unnecessary gateway round-trip and the
error log line.
Fixes #78424
* test: update session_status tests for local current-key resolution
* test: update session_status tests for local current-key resolution
* Revert "test: update session_status tests for local current-key resolution"
This reverts commit d9f6c8b5248921c99f43dc222667ffa429b34401.
* Revert "test: update session_status tests for local current-key resolution"
This reverts commit 40bf77d06711833c1beaeedf562b60a765a559d6.
* Revert "fix(agents): resolve "current" session alias locally without gateway round-trip"
This reverts commit d92bc9b91e0840ea5823cd44223c139e434c5ec4.
* fix(agents): preserve literal current session resolution
---------
Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com >
2026-06-15 12:32:15 +08:00
Colin Johnson
fd855c831f
feat(webui): add session workspace rail ( #92856 )
...
* feat(webui): add session workspace rail
* fix(webui): address session workspace review
* fix(webui): secure session workspace previews
* fix(webui): handle nested session workspace paths
* fix(webui): update session file protocol models
* fix(webui): clear session rail lint
2026-06-14 22:39:51 +08:00
liuhao1024
fd4f5b3f59
fix(macos): defer isOverflowing mutation to break SwiftUI render loop ( fixes #43480 ) ( #92778 )
...
* fix(macos): defer isOverflowing mutation to break SwiftUI render loop
measuredHeight() mutated model.isOverflowing synchronously during a SwiftUI
view update cycle. The onChange(of: attributed) handler triggered
updateWindowFrame → targetFrame → measuredHeight, which set isOverflowing,
invalidating the view and re-triggering onChange — an infinite render loop
causing 100% CPU pinwheel.
Fix: defer the isOverflowing mutation via DispatchQueue.main.async with an
equality guard to prevent redundant updates. The frame calculation itself
remains synchronous so the window size is correct immediately.
Fixes #43480
* fix(macos): preserve latest overflow measurement
---------
Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com >
2026-06-14 08:56:25 +08:00
Vincent Koc
894f521aa5
test(macos): avoid real approvals migration in tests
2026-06-14 07:08:26 +08:00