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
Peter Steinberger
a1c2009b91
chore(android): stabilize branch coordination unit tests ( #118210 )
...
* test(android): stabilize branch coordination tests
* test(android): await outbox drain boundary
* test(android): isolate reconciliation drain fixture
2026-08-02 15:25:19 -07:00
Peter Steinberger
7c70571683
chore(lint): clear 172 lint:all baseline violations in five batches ( #118098 )
...
* chore(lint): clean Android-Linux app assets batch
* chore(lint): clean setup-launcher-plugin batch
* chore(lint): clean changelog-updater batch
* chore(lint): clean QA-runtime-helper batch
* chore(lint): clean script-tests batch
* fix(mxc): await sandbox spawn before bridge selection
* fix(test): make fake plutil metacharacter escaping survive the template hop
2026-08-02 14:08:09 -07:00
Peter Steinberger
860b4ee4a7
test(android): share Wear transport fixtures ( #118177 )
2026-08-02 14:01:28 -07:00
Peter Steinberger
1787cbb9de
test(android): compact chat recovery fixtures ( #118166 )
2026-08-02 13:21:29 -07:00
Peter Steinberger
aae0342f7c
test(android): consolidate gateway security fixtures ( #118165 )
2026-08-02 13:17:01 -07:00
Peter Steinberger
4e4959b283
refactor(android): consolidate chat controller test setup ( #117862 )
2026-08-01 23:06:51 -07:00
Vincent Koc
ff770f9a48
fix(i18n): sync pinned native translations ( #117726 )
2026-08-02 09:36:29 +08:00
WhatsSkiLL
2fc32204b4
fix(android): show pinned state in sidebar sessions ( #117063 )
...
* fix(android): show pinned state in sidebar sessions
* fix(ci): leave native locale refresh to workflow
---------
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com >
2026-08-01 16:16:49 -07:00
Peter Steinberger
e49c8339b8
refactor(android): simplify durable outbox test scenarios ( #117667 )
2026-08-01 15:45:02 -07:00
Peter Steinberger
9e43844264
build: generate native Canvas resources on demand ( #117424 )
2026-08-01 08:16:56 -07:00
WhatsSkiLL
f0170ca238
Android: collapse sidebar search behind header action ( #116956 )
...
* feat(android): collapse sidebar search
* test(android): cover sidebar search toggle
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com >
* chore(android): refresh sidebar i18n inventory
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com >
* test(android): restore sidebar test clock
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com >
* test(android): remove stateful sidebar UI test
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com >
---------
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-31 12:10:43 -07:00
Peter Steinberger
349cc33669
test(android): synchronize Wear channel transport close completion ( #116788 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-07-31 04:36:37 -07:00
Vincent Koc
20e68e01df
fix(gateway): sign device proofs with challenge time ( #116679 )
2026-07-31 16:45:53 +08:00
Vincent Koc
9309a4fce9
test(android): remove duplicate setup-code coverage ( #116658 )
2026-07-31 12:12:35 +08:00
Vincent Koc
88876f780b
fix(android): preserve device work across lifecycle changes ( #116593 )
...
* fix(android): use configured SDK for screenshot AVDs
* fix(android): keep chat jump control clear of messages
* fix(wear): ignore stale control completions
* fix(android): advertise node permission changes
* fix(android): select play flavor for benchmarks
* test(android): decouple cron benchmark from copy
* fix(android): install play variant in perf scripts
* fix(wear): clear gateway control busy state
* fix(android): surface voice e2e connection errors
* test(android): cover common live node commands
* fix(android): retain share parsing across recreation
* fix(android): retain permission requests across recreation
* fix(wear): bind realtime audio to talk attempts
* fix(android): track active permission host
* fix(wear): own gateway control busy state
* fix(wear): admit realtime channels by attempt
* fix(android): refresh permissions on top resume
* fix(wear): serialize reconnect retirement with writes
* chore(i18n): refresh native source inventory
* fix(wear): retain pending audio through start RPC
* fix(wear): negotiate realtime channel compatibility
* test(wear): assert reconnect outcome without owner churn
* fix(android): move settings prompt with active host
* fix(wear): reject stale relay starts
* chore(changelog): leave notes to release generation
2026-07-31 09:49:11 +08:00
openclaw-mantis[bot]
8c61044576
chore(i18n): refresh native locales ( #116567 )
...
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-07-31 08:29:26 +08:00
WhatsSkiLL
47f8c1d6b0
Android: add adaptive app navigation sidebar ( #113908 )
...
* feat(android): add adaptive navigation sidebar
* fix(android): satisfy native i18n checks
* fix(android): use adaptive Material navigation
* fix(android): preserve adaptive navigation state
* chore(i18n): refresh native source baseline
* fix(android): keep compact navigation labels on one line
* chore(android): refresh native i18n source lines
* fix(android): preserve sidebar gateway status
* fix(android): satisfy status label checks
---------
Co-authored-by: Colin <colin@solvely.net >
2026-07-30 17:27:45 -04:00
openclaw-mantis[bot]
81d165c612
chore(i18n): refresh native locales ( #116213 )
...
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-30 15:17:38 +08:00
joshavant
e4e7f37d24
chore(android): record 2026.7.4 Play metadata
2026-07-30 01:49:07 -05:00
joshavant
eb263c5104
chore(android): prepare 2026.7.4 Play release
2026-07-30 01:19:40 -05:00
licheer-zte
6288a750ca
fix(android): move Wear capability keep rules to raw keep files to prevent resource shrinking ( #116068 )
...
* fix(android): move Wear capability keep rules to raw keep files
Resource-shrinker keep directives in res/values/*.xml are not honored
by Android's resource shrinker during release builds. Move the
tools:keep declarations into dedicated res/raw/*.keep.xml files as
documented by Android:
https://developer.android.com/topic/performance/app-optimization/customize-which-resources-to-keep
Fixes openclaw/openclaw#116049
* fix(android): rename keep files - use underscores instead of dots
Android resource names must contain only lowercase a-z, 0-9, and underscores.
Dots in file names cause build failure with AAPT2 resource merger.
- ai.openclaw.app.phone.keep.xml -> ai_openclaw_app_phone_keep.xml
- ai.openclaw.app.wear.keep.xml -> ai_openclaw_app_wear_keep.xml
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-07-30 08:55:45 +08:00
Peter Steinberger
e1cc617f86
feat(android): media renditions, MediaSession, video upload ( #116037 )
...
* feat(android): add media rendition and video support
* chore(android): refresh native i18n inventory
* fix(android): opt in to Media3 command API
* chore(android): sync native i18n source locations
2026-07-29 15:44:04 -04:00
Peter Steinberger
ff72f287c3
fix(gateway): declare viewer presence explicitly instead of deriving it from subscriptions ( #116001 )
...
* fix(gateway): declare viewer presence explicitly instead of deriving it from subscriptions
* refactor(ui): isolate viewer presence lifecycle ownership
* chore(protocol): register viewer presence schema owner
* fix(ui): keep viewer presence cleared after detach
* chore: drop changelog edits from this PR
CHANGELOG.md is release-owned; release generation derives entries from merged
PRs. Release-note context stays in the PR body.
2026-07-29 13:56:54 -04:00
Peter Steinberger
80176dab8d
feat(android): inline audio/video players with Media3 ( #115916 )
...
* feat(android): add inline media players
* fix(android): release inactive media players
* fix(android): preserve paused media playback
* test(android): include Media3 license notice
* chore(android): refresh native i18n inventory
2026-07-29 10:26:45 -04:00
Peter Steinberger
68a3d28906
fix: keep content after HTML-backed disclosures visible ( #115877 )
...
* fix(chat): close disclosures in coalesced HTML
Keep model-authored details closers visible to the shared disclosure contract when CommonMark absorbs them into type-6 HTML blocks across the Control UI and native apps.
* refactor(apps): isolate disclosure unfolding
Keep the native disclosure segmenter below its lint complexity and type-size limits, and refresh the source-owned native i18n inventory after the move.
* fix(apps): align disclosure helper visibility
Keep the extracted same-file helper compatible with Swift access control while leaving its implementation types hidden outside the source file.
* fix(apps): align source replacement visibility
Keep the source replacement helper at the same file-private boundary as the extracted disclosure unfolding types.
2026-07-29 10:24:46 -04:00
Peter Steinberger
662abec754
feat(gateway): push session PR indicators to subscribed clients ( #115643 )
...
* feat(gateway): push session PR indicators to subscribed clients
* test(gateway): fix PR indicator drift
* chore(protocol): allowlist PR-indicator event for native apps (Control UI surface)
* test: align PR indicator lifecycle coverage
* fix(ui): scope session PR store listeners to active watchers
2026-07-29 06:30:01 -04:00
Peter Steinberger
4232126bba
chore: update dependencies across workspace ( #115677 )
...
* chore(deps): update dependencies
* fix(deps): restore CI compatibility
2026-07-29 05:16:42 -04:00
Vincent Koc
14940edf15
feat(skills): add Skill Workshop lifecycle hooks ( #115606 )
...
* feat(skills): add lifecycle hook contracts
* feat(plugins): expose skill hook contracts
* feat(plugins): identify skill evaluators
* feat(skills): persist proposal evaluation lifecycle
* feat(skills): add agent evaluation action
* feat(skills): emit committed skill lifecycle changes
* feat(gateway): expose skill proposal evaluation lifecycle
* feat(ui): add Skill Workshop evaluations
* fix(skills): bind lifecycle state to proposal revisions
* fix(skills): preserve lifecycle events without artifacts
* feat(cli): evaluate skill proposals
* fix(ui): bind evaluations to proposal revisions
* docs(skills): document lifecycle hook primitives
* chore(plugin-sdk): refresh skill hook surface
* fix(skills): harden proposal evaluator execution
* fix(plugins): isolate skill evaluator inputs
* fix(cli): align skill lifecycle deadlines
* fix(skills): preserve evaluation replay invariants
* test(ui): capture Skill Workshop evaluation proof
* fix(skills): bind apply to evaluated target tree
* fix(skills): preserve evaluation contract edges
* fix(skills): bound evaluation event storage
* chore(skills): keep lifecycle helpers internal
* refactor(skills): isolate evaluation persistence
* fix(skills): satisfy lifecycle validation gates
* chore(protocol): refresh Skill Workshop clients
* docs: refresh Skill Workshop map
* chore: keep release notes in PR metadata
* docs: refresh merged docs map
* fix(ci): type Code Mode catch errors
* fix(skills): freeze lifecycle observation payloads
* fix(protocol): keep proposal inspect backward-decodable
* fix(skills): enforce final evaluator bundle limits
* fix(skills): preserve lifecycle caller attribution
* chore: drop subsumed Code Mode formatting
* test(plugins): adapt lifecycle hook mocks
2026-07-29 15:49:44 +08:00
Peter Steinberger
138675aeeb
feat(apps): render collapsible details natively ( #115641 )
...
* feat(apps): render collapsible details natively in chat
* fix(apps): preserve reference definitions when folding disclosures
* fix(apps): keep authored details summaries unlocalized
* fix(apps): keep raw-HTML disclosure examples literal
* refactor(apps): isolate summaries and raw HTML contexts
* fix(apps): honor all CommonMark raw HTML contexts in disclosures
* chore(apps): refresh native i18n inventory for disclosure strings
2026-07-29 02:52:54 -04:00
Peter Steinberger
26bfa88bb2
fix: restore native Talk transcripts, fallback, and microphone access ( #115577 )
...
* fix(ios): decode frameless Talk events
* fix(android): keep browser-only Talk models native
* fix(macos): gate dashboard media capture
* docs(talk): clarify native platform fallbacks
* chore(i18n): refresh native source inventory
* fix(android): gate relay entry on provider-level browser-only models too
2026-07-29 01:55:47 -04:00
Peter Steinberger
df9a940872
feat(chat): show live run telemetry across clients ( #113084 )
...
* feat(chat): show live run telemetry across clients
* fix(chat): satisfy native validation gates
* fix(chat): settle advertised terminal runs
* fix(android): clear stale run usage on gaps
* chore(i18n): align native source inventory
* fix(chat): reconcile telemetry with current projections
* refactor(chat): keep run state in owner extensions
* chore(i18n): refresh native source inventory
* test(ui): expect persistent working telemetry through streaming
2026-07-29 01:27:58 -04:00
Vincent Koc
c0a472f0b2
chore(i18n): refresh native locales ( #115532 )
2026-07-29 13:11:40 +08:00
Peter Steinberger
5e3a8e37a3
feat(gateway): add memory.search operator method ( #115346 )
...
* feat(gateway): add memory.search operator method
* fix(gateway): validate memory.search agentId against configured agents
* test(gateway): keep memory.search handler tests core-only
* chore(protocol): regenerate android method registry for memory.search
* test(gateway): type memory.search stub results
2026-07-28 14:40:25 -04:00
NianJiu
1a319f9a78
fix(android): keep welcome action reachable with large text ( #111747 )
...
* fix(android): keep welcome action reachable with large text
* test(android): isolate Compose host theme
* fix(android): keep gateway setup usable with large text
Co-authored-by: NianJiuZst <180004567+NianJiuZst@users.noreply.github.com >
---------
Co-authored-by: NianJiuZst <180004567+NianJiuZst@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-28 14:39:33 -04:00
Yue Fei
1b4a465ea1
feat(gateway): accept WebSocket request trace context ( #113189 )
...
* feat(gateway): accept WebSocket request trace context
* test(gateway): prove WebSocket trace isolation
* test(gateway): simplify traced response match
* ci: allow iOS screenshot validation to finish
* fix(gateway): keep traced request failures scoped
* test(ci): align iOS screenshot timeout contract
* test(ui): reset config route location
* ci: scope iOS screenshots to native changes
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-28 13:15:05 -04:00
Vincent Koc
d92062b970
fix(android): respect locale in compact labels
2026-07-28 23:49:44 +08:00
Bryan Tegomoh, MD, MPH
15866acef5
Refresh macOS skills after node reconnect ( #107660 )
...
* Refresh macOS skills after node reconnect
* fix(macos): queue skills refresh during reconnect
* chore(i18n): refresh native skills inventory
* fix(macos): refresh skills from gateway invalidations
Co-authored-by: Bryan Tegomoh <bryan.tegomoh@gmail.com >
* fix(android): update gateway event catalog
Co-authored-by: Bryan Tegomoh <bryan.tegomoh@gmail.com >
* refactor(skills): keep remote eligibility helper bounded
Co-authored-by: Bryan Tegomoh <bryan.tegomoh@gmail.com >
* ci(test): pin model shard worker budget
Co-authored-by: Bryan Tegomoh <bryan.tegomoh@gmail.com >
* ci(test): isolate network-sensitive agent suites
Co-authored-by: Bryan Tegomoh <bryan.tegomoh@gmail.com >
* test: align isolated prefix routing expectation
Co-authored-by: Bryan Tegomoh <bryan.tegomoh@gmail.com >
* test(macos): isolate gateway process test port
Co-authored-by: Bryan Tegomoh <bryan.tegomoh@gmail.com >
* fix(macos): recover skills after failed refresh
Co-authored-by: Bryan Tegomoh <bryan.tegomoh@gmail.com >
* fix(ci): avoid duplicate agent test routing
Co-authored-by: Bryan Tegomoh <bryan.tegomoh@gmail.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-28 09:10:45 -04:00
Chris M.
37bddc75cc
fix(android): finish Wear OS release readiness [AI-assisted] ( #110425 )
...
* fix(android): harden Wear release quality
* fix(android): use Wear minimum touch targets
Co-authored-by: Chris Mish <chrism@promethean-dynamic.com >
* fix(android): localize Wear accessibility actions
Co-authored-by: Chris Mish <chrism@promethean-dynamic.com >
* fix(android): preserve dictation without live voice
Co-authored-by: Chris Mish <chrism@promethean-dynamic.com >
* fix(android): isolate Wear locale source changes
Co-authored-by: Chris Mish <chrism@promethean-dynamic.com >
* fix(android): keep Wear dictate preview exclusive
Co-authored-by: Chris Mish <chrism@promethean-dynamic.com >
* fix(android): separate large-font Wear hit targets
Co-authored-by: Chris Mish <chrism@promethean-dynamic.com >
* test(pr): isolate review artifact ripgrep fixture
* ci: extend embedded-agent fork watchdog
* refactor(android): clarify Wear voice action availability
* style(android): preserve Wear locale source lines
* chore(i18n): refresh native source inventory
* style(android): restore Wear label indentation
---------
Co-authored-by: Chris Mish <chrism@promethean-dynamic.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-28 05:41:53 -04:00
Vincent Koc
9fbe9abc86
fix(ci): restore Android CodeQL compatibility ( #115095 )
2026-07-28 11:24:22 +02:00
Vincent Koc
f8ed8ecf4f
fix(security): harden CodeQL-reported boundaries ( #115055 )
...
* fix(security): harden CodeQL-reported boundaries
* style(android): fix WebMessage listener indentation
2026-07-28 16:47:12 +08:00