Peter Steinberger
d44f70eb4b
feat(pairing): one-paste device pairing via oc-pair setup links ( #120768 )
...
* feat(pairing): one-paste device pairing via oc-pair setup links
Implements milestone 3 from docs/plan/runners.md.
* fix(pairing): sign bootstrap handshake, keep URL candidates, wire pairing countdown
* test(gateway): update client callsite guard
* fix(pairing): preserve setup URL context paths
* fix(ui): keep pairing help aligned with setup mode
* fix(pairing): isolate bootstrap credentials
* perf(ui): keep one-paste pairing within bundle budget
* refactor(pairing): isolate native pair URL prefix parsing
* fix(pairing): preserve candidate lifecycle state
* fix(pairing): retire shared credentials after bootstrap
* fix(pairing): apply rotated manifest through client owner
* test(pairing): prove bootstrap retirement across reconnect
* fix(pairing): preserve native gateway context paths
* fix(pairing): carry native context paths through reconnect
* fix(ios): preserve encoded gateway context path
* chore(plugin-sdk): refresh pairing API baselines
2026-08-12 02:01:33 -07:00
Peter Steinberger
0de17482ae
feat(gateway,ui): quiet Where picker, placement chip, and projects read model ( #120804 )
...
* feat(gateway): projects.list groups known checkouts by repo identity
Implements docs/plan/runners.md milestone 4 derived projects read model.
* feat(ui): regroup the Where picker by gateway, devices, and cloud
* feat(ui): placement chip shows where a session runs with reclaim
Implements docs/plan/runners.md milestone 4 placement display and reclaim.
2026-08-12 00:21:23 -07:00
openclaw-mantis[bot]
4bd56a316b
chore(i18n): refresh native locales ( #122355 )
...
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-11 20:00:14 -07:00
Peter Steinberger
8876528f7c
feat: clone GitHub projects from session picker ( #121818 )
...
* feat(projects): add managed GitHub clones
* feat(ui): clone GitHub projects from session picker
* fix(projects): integrate current gateway owners
* fix(protocol): derive Swift error detail accessors
* fix(ui): gate project cloning by scope
* test(gateway): isolate session prewarm probes
* revert: drop duplicate session prewarm repair
2026-08-11 18:49:16 -07:00
Peter Steinberger
cd0a1235a3
feat: sync new-session preferences and recents by identity ( #121816 )
...
* feat(gateway): add identity preferences and project recents
* feat(ui): sync new-session identity state
* docs: explain identity-scoped session state
* test: track preference temp directories
* fix(gateway): preserve identity preference boundaries
* chore(protocol): refresh identity preference bindings
* test: refresh historical schema hashes
* style(gateway): format method order assertion
* fix(protocol): emit project recent Swift models
* test(gateway): track preference RPC release train
* fix(gateway): harden identity preference state
* fix(state): keep preference errors internal
* chore: refresh split plugin SDK baseline
* fix(gateway): use core session store loader
* refactor(state): fold additive migration checks
* chore: regenerate plugin SDK baseline
* chore: regenerate plugin SDK baseline
* chore: regenerate plugin SDK baseline
* chore: regenerate plugin SDK baseline
* chore: regenerate plugin SDK baseline
* chore: regenerate plugin SDK baseline
* chore: regenerate plugin SDK baseline
* test(ui): relocate identity recents e2e
* chore: regenerate plugin SDK baseline
* chore: regenerate plugin SDK baseline
* chore: regenerate plugin SDK baseline
* chore: regenerate plugin SDK baseline
* chore: regenerate plugin SDK baseline
2026-08-11 16:52:59 -07:00
Peter Steinberger
db9bdb4a11
fix(gateway): preserve session identity through archive transitions ( #121169 )
...
* fix(sessions): fence lifecycle mutations by identity
* fix(sessions): finalize lifecycle identity fences
2026-08-11 16:43:10 -07:00
Peter Steinberger
896e3fb0ac
fix(android): keep completed subagent activity visible for sixty seconds ( #122089 )
...
* fix(android): retain terminal subagent activity locally
* chore(android): preserve native i18n inventory
2026-08-11 15:19:57 -07:00
Peter Steinberger
01804a7531
feat(apps): Android chat adopts the system-notice family ( #122268 )
...
* feat(apps): Android chat adopts the system-notice family
Decode internal_system provenance and __openclaw markers in parseHistory,
classify into SystemNotice/SystemDivider timeline variants with web-parity
kinds, render minimal Compose rows, round-trip metadata through the
transcript cache textPartsJson envelope (no Room change), and extend the
deterministic screenshot fixture.
* fix(apps): keep generated locale artifacts out of the source PR
The native locale refresh workflow owns NativeStringResources.kt and
values-*/strings.xml; ship source strings plus the regenerated
apps/.i18n/native-source.json inventory only.
2026-08-11 15:03:15 -07:00
Peter Steinberger
73ae583263
refactor(tasks): simplify subagent activity tracking ( #122198 )
...
* refactor(tasks): simplify subagent activity tracking
* fix(android): single-source subagent activity expiry clock
* chore(i18n): refresh native source baseline
2026-08-11 12:30:49 -07:00
openclaw-mantis[bot]
6e9e569243
chore(i18n): refresh native locales ( #121939 )
...
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-11 09:10:15 -07:00
Peter Steinberger
ea06d72e85
feat(secrets): manage team secrets in Control UI ( #121724 )
...
* feat(secrets): add gateway store settings
* perf(control-ui): trim secrets startup copy
* perf(control-ui): reduce secrets startup payload
* fix(secrets): harden store mutation refresh
* perf(control-ui): meet secrets startup budget
* test(control-ui): update secrets navigation copy
* fix(ui): pluralize secret-detection count and drop duplicated dialog hint
* chore(protocol): regenerate gateway clients and SDK baseline after rebase
* fix(gateway): merge secrets store methods after project RPCs in advertised order
* chore: leave changelog to release generation
* test(gateway): retain desktop launch train coverage
2026-08-11 07:20:38 +00:00
Peter Steinberger
8c3c8a2ab0
feat(android): show live subagent activity in chat ( #121813 )
...
* feat(android): show live subagent activity
* chore(android): mark task event handled
* fix(android): localize activity diff chips
* fix(android): reconcile dropped task activity
2026-08-10 21:08:44 -07:00
Peter Steinberger
b5d5ec340f
feat(cloud-workers): add desktop apps and browser autonomy ( #121475 )
...
* feat(cloud-workers): add desktop apps and browser autonomy
provider-attested Browser/Terminal launchers, shared visible loopback CDP Browser tool, no MCP/cookies/generic command.
* feat(ui): add cloud desktop app launcher
* docs(gateway): document cloud desktop apps and browser autonomy
* perf(ui): trim desktop launcher startup copy
* refactor(ui): simplify desktop launch feedback
* perf(ui): reuse desktop app labels
* fix(ui): keep desktop launch failures actionable
* fix(crabbox): allow browser bootstrap to finish
* fix(cloud-workers): honor provider provision budgets
* fix(cloud-workers): persist browser screenshot receipts
* fix(cloud-workers): bound browser screenshot lifecycle
* fix(cloud-workers): avoid replaying desktop launches
* test(cloud-workers): isolate browser runtime integration
* refactor(cloud-workers): tighten desktop runtime boundaries
* test(cloud-workers): keep browser runtime mock synchronous
* fix(cloud-workers): break gateway type import cycle
* fix(ci): settle admitted setup sessions in tests
* build(plugin-sdk): refresh desktop app contract
* ci: refresh merge-tree validation
* build(plugin-sdk): regenerate desktop app baseline
* style(gateway): format merged method order test
2026-08-10 20:31:07 -07:00
Peter Steinberger
32894a3ba5
feat: start sessions from registered projects ( #121465 )
...
* feat(gateway): add project registry sessions
* fix(gateway): authorize project branch discovery
* test(gateway): reuse worktree test imports
* fix(protocol): register projects schema owner
* fix(gateway): gate project paths by write scope
* feat(control-ui): register projects from folder browser
* refactor(gateway): extract session diff baseline preparation
* fix(gateway): honor admin scope in project listings
2026-08-10 17:56:12 -07:00
Peter Steinberger
96b0cf95ef
fix(gateway): restore restart preflight compatibility ( #121757 )
...
* fix(gateway): restore restart preflight compatibility
* ci(protocol): preserve restored method vintages
* chore: defer compatibility note to release
2026-08-10 16:43:27 -07:00
openclaw-mantis[bot]
680fe7fc8d
chore(i18n): refresh native locales ( #121561 )
...
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-10 07:17:40 -07:00
Peter Steinberger
bab4546b41
refactor(gateway): remove dead rpc surfaces ( #121387 )
2026-08-10 02:41:57 -07:00
Peter Steinberger
d4fd9cc96a
fix(ui): restore settings search, media previews, clipboard, and native chat ( #116654 )
...
* fix(ui): restore search media and native text
* fix(native): unify visible chat text projection
* fix(ui): search composed array schemas
* fix(ui): keep config search off startup constraints
* fix(ui): honor schema and media path boundaries
2026-08-09 22:07:28 -07:00
Peter Steinberger
c3a0d3e58a
test(android): enforce shared talk config contract ( #121333 )
2026-08-09 18:55:04 -07:00
Peter Steinberger
0ef798d28d
fix(gateway): keep hello authorization aligned with RPC access ( #120888 )
...
* fix(gateway): separate socket and device token scopes
* chore(i18n): refresh native source baseline
* style(ios): keep gateway channel within lint limit
* refactor(gateway): simplify scope metadata decoding
* ci(ui): isolate real-gateway e2e suites
* docs(ci): align runner table formatting
* chore(plugin-sdk): refresh api baseline
* ci(ui): route real-gateway retries to hosted runners
* chore(plugin-sdk): repair generated api baseline
* test(ui): select Labs toggles by title
* fix(gateway): preserve stored scopes without wire metadata
2026-08-09 14:50:07 -07:00
Peter Steinberger
8fdf7570a1
feat(gateway): live Desktop observer for cloud workers (Labs) ( #120727 )
...
* feat(gateway): live desktop observer for cloud workers
Adds live observation for cloud worker desktops through the gateway and Crabbox plugin, including desktop provisioning, persisted desktop metadata, tunneled WebSocket proxying, and the worker.desktop.observe protocol method.
The gateway, Crabbox plugin, and gateway protocol surfaces remain off by default behind the cloudWorkers.desktop Labs flag.
* feat(ui): Desktop panel for cloud worker observation
* docs(gateway): document cloud worker desktop lab
* fix(ci): regenerate contract baselines after rebase
* fix(protocol): regenerate Android gateway methods
* fix(ci): align rebased SDK and lint baselines
* fix(gateway): enforce view-only RFB boundary and fence desktop teardown
* fix(gateway): tighten RFB filter surface
* fix(state): keep pre-desktop databases readable and harden view-only RFB
* fix(gateway): fence desktop observer upgrades behind work admission
* fix(gateway): bind desktop observer tokens to their owner epoch
* fix(ci): regenerate config and SDK baselines after rebase
* fix(ci): regenerate native protocol and SDK baselines
* fix(ci): regenerate contracts after main rebase
* fix(state): register desktop metadata as lazy additive
* fix(ci): regenerate SDK baseline after final direct-merge rebase
2026-08-09 09:37:01 -07:00
WhatsSkiLL
d506f604d6
feat(android): add conversation reply notifications ( #120389 )
...
* feat(android): add conversation reply notifications
* fix(android): refresh native i18n inventory
* fix(android): harden conversation notification replies
* fix:android-conversation-notification-intent-hardening
* chore:i18n-refresh-native-source-inventory
* fix(android): notify completed background sessions
* fix/android-notification-reply-gateway-readiness
---------
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com >
2026-08-09 11:37:16 -04:00
Peter Steinberger
9a96375e60
feat(gateway): session-catalog terminal start plans behind cliAgents gate ( #121020 )
...
* feat(gateway): add session-catalog terminal start plans
* refactor(gateway): split catalog terminal start handler
* fix(gateway): enforce catalog terminal start eligibility
* test(gateway): split session catalog snapshot coverage
2026-08-09 08:13:39 -07:00
Peter Steinberger
c70aee247e
refactor(scripts): migrate JavaScript tools to TypeScript ( #121005 )
...
* refactor(scripts): migrate JavaScript tools to TypeScript
* fix(ci): keep changed-scope preflight zero-install
* fix(ci): preserve zero-install script owners
* fix(ci): complete script migration follow-through
* fix(release): keep stable closeout zero-install
* fix(scripts): preserve standalone execution boundaries
* fix(scripts): repair standalone loader boundaries
* fix(scripts): normalize gateway observation ids
* fix(scripts): keep Docker packager standalone
* test(scripts): preserve rebase cleanup helpers
* test(sessions): use tracked temp directory
2026-08-09 07:21:35 -07:00
openclaw-mantis[bot]
900e37b31d
chore(i18n): refresh native locales ( #121000 )
...
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-09 20:38:32 +08:00
Peter Steinberger
a74738c16e
feat(chat): add four rare working-claw stances and raise surprise odds ( #120826 )
...
* feat(chat): add four rare working-claw stances and raise surprise odds
* test(ui): assert claw surprises against the exported allowlist
* fix(ci): refresh native i18n inventory and drop test-only surprise export
2026-08-08 19:56:31 -07:00
Peter Steinberger
51944498eb
refactor(gateway): generalize bulk session patches ( #120629 )
...
* refactor(gateway): generalize bulk session patches
* fix(gateway): normalize bulk session fences
* refactor(gateway): simplify normalized target fence
* test(ui): align disconnected session wording
2026-08-08 15:00:09 -07:00
Peter Steinberger
e3de98a451
feat(update): scheduled update campaigns with countdown, dev-channel auto-update, and Updates settings page ( #120506 )
...
* feat(update): scheduled update campaigns with countdown, dev-channel auto-update, and Updates settings page
* fix(ui): satisfy update campaign deadcode checks
* feat(update): extend scheduled update campaigns
* test(ui): include Updates page in settings sidebar search expectations
* fix(update): end campaigns when apply fails
* fix(update): pin dev campaign applies to the announced commit
* test(ui): align update e2e fixtures
* fix(update): pin adopted dev updates to the announced commit
* docs(update): document automatic dev update campaigns
* fix(ui): gate automatic dev updates on git installs
* fix(gateway): scope detailed update metadata to read-capable clients
* fix(gateway): break post-attach madge cycle with a leaf client-lookup type
* chore(protocol): regenerate clients after rebase
* test(gateway): update method tail after rebase
* fix(update): preserve campaign target and hold state
* test(update): align adoption mocks and split handoff suite
* test(update): route split handoff suites on Windows
2026-08-08 11:19:53 -07:00
openclaw-mantis[bot]
6cdb8187ab
chore(i18n): refresh native locales ( #120614 )
...
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-09 02:14:06 +08:00
Peter Steinberger
876a3f0d8f
fix(ui): bulk session archive no longer stalls per thread ( #120493 )
...
* perf(ui): batch session archive requests
* fix(ci): sync bulk archive protocol surfaces
* fix(plugins): validate bulk archive ownership
* fix(ci): restore current main quality gates
* fix(ui): bound bulk archive dispatch
* fix(ui): bound bulk archive dispatch
* fix(ui): preserve bulk archive compatibility
* fix(ui): recover metadata-less archive fallback
2026-08-08 07:53:43 -07:00
openclaw-mantis[bot]
a8f314d587
chore(i18n): refresh native locales ( #120352 )
...
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-08 07:42:35 +08:00
joshavant
026f4045b7
Revert "fix(protocol): preserve gateway session attribution across node runs"
...
This reverts commit 735f176b01 .
2026-08-07 18:40:17 -05:00
WhatsSkiLL
62937ea6fc
fix(android): keep Wear chat on the latest reply ( #120307 )
...
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com >
2026-08-07 16:32:30 -04:00
WhatsSkiLL
a23444fc74
fix(android): gate Wear model controls by operator scope ( #120016 )
...
* fix(android): gate Wear model controls by operator scope
* chore(android): refresh native i18n inventory
---------
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com >
Co-authored-by: Colin Johnson <colin@solvely.net >
2026-08-07 11:00:41 -04:00
Dallin Romney
2a0bbd23f5
feat: expose session classification facts ( #106832 )
...
* feat: expose session presentation metadata
* fix: restrict session titles to safe display metadata
* fix: preserve saved session display names
* fix(protocol): tolerate future session presentation values
* fix(gateway): keep direct peer names out of presentation
* fix(protocol): connect session presentation to native rows
* fix(gateway): canonicalize session presentation metadata
* fix(gateway): satisfy session presentation CI checks
* feat(gateway): flatten session classification facts
* fix: repair session classification generated models
* fix(gateway): canonicalize session classification keys
* fix(gateway): classify spawned delivery sessions
* fix(android): retain session classification facts
* test(android): make scripted gateway calls concurrency-safe
* test(live-updater): isolate fixture git commands
2026-08-07 14:56:56 +08:00
Vincent Koc
735f176b01
fix(protocol): preserve gateway session attribution across node runs
2026-08-07 08:06:01 +08:00
openclaw-mantis[bot]
d5668d83c0
chore(i18n): refresh native locales ( #119669 )
...
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-06 20:08:30 +08:00
WhatsSkiLL
238c8bfc23
fix(android): show active session status in sidebar ( #118624 )
2026-08-05 11:55:10 -04:00
Peter Steinberger
4511c9b71f
refactor(android): remove obsolete chat rendering paths ( #119615 )
2026-08-05 08:17:04 -07:00
Josh Avant
618fba92bf
feat(audit): add execution identity inspection ( #117034 )
...
* feat(audit): add opt-in execution identity inspection
* fix(audit): gate recovery identity retention
* fix(audit): keep recovery identity type private
* test(audit): type internal recovery fixture
* test(audit): split recovery identity coverage
* docs(audit): define operator read trust boundary
* test(qa): register identity scenario child
* fix(audit): enforce shared identity retention bounds
* fix(audit): seal public ingress identity boundary
* fix(audit): keep ingress guard lint-clean
* fix(gateway): preserve advertised method order
* chore(protocol): sync advertised method order
* fix(protocol): encode audit selector invariants
* test(audit): prove exact execution guard
* fix(audit): keep identity storage lazy
2026-08-04 20:05:15 -05:00
openclaw-mantis[bot]
7f9994d4f9
chore(i18n): refresh native locales ( #118883 )
...
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-04 05:07:27 +08:00
joshavant
1f78c39bd8
fix: adapt completion delivery to current main
2026-08-03 02:48:34 -05:00
Peter Steinberger
c49b68328e
test(android): consolidate Wear bridge fixtures ( #118559 )
2026-08-03 00:42:43 -07:00
Peter Steinberger
4b3d0b37be
test(android): consolidate connection TLS fixtures ( #118532 )
2026-08-02 23:29:37 -07:00
Peter Steinberger
d2ff210679
test(android): compact chat persistence fixtures ( #118456 )
2026-08-02 21:51:33 -07:00
Peter Steinberger
39c506bbf2
test(android): compact onboarding gateway fixtures ( #118383 )
2026-08-02 20:09:31 -07:00
Peter Steinberger
1d2fc98bf4
test(android): reduce voice fixture duplication ( #118270 )
2026-08-02 19:27:55 -07:00
Peter Steinberger
c43ba8e3fc
fix(cli): speed up hook status reads through the Gateway ( #118288 )
...
* perf(cli): reuse gateway hook status (#118222 )
* chore(protocol): register hooks.status schema module in generated surfaces
2026-08-02 17:21:28 -07:00
WhatsSkiLL
4c136a7dea
fix-android-sidebar-search-results ( #117981 )
...
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com >
2026-08-02 17:13:16 -07:00
Peter Steinberger
3ebb0ca3b6
chore(lint): resolve the 40 reserved baseline findings to a zero-noise lint:all ( #118256 )
...
* fix(lint): resolve reserved runtime findings
* chore(lint): scope intentional contract findings
* fix(android): preserve WebMessageListener bridge contract
2026-08-02 16:08:57 -07:00