Commit Graph

67562 Commits

Author SHA1 Message Date
Peter Steinberger
4e46f08fed fix(macos): keep CLI path discovery off main actor (#106089) 2026-07-13 00:41:59 -07:00
Peter Steinberger
6df498c3cd refactor: canonicalize binary operation results (#106049)
* refactor(normalization-core): promote shared result type

* refactor(agent-core): reuse canonical error coercion

* refactor: discriminate internal operation results

* docs: establish shared result convention

* fix(agent-core): preserve error coercion facade

* build: derive package entries from exports

* fix(plugins): resolve shared result subpath

* fix(ci): align Result integration guards

* build: refresh plugin SDK API baseline

* fix(agent-core): preserve toError compatibility
2026-07-13 00:39:43 -07:00
Peter Steinberger
2fc91410e8 refactor: consolidate reconnect supervisors (#105987)
* refactor: consolidate reconnect supervisors

* style: satisfy reconnect supervisor lint

* fix: keep reconnect supervisor internal

* refactor: keep retry supervisor lean

* chore: lower gateway client LOC baseline

* style: satisfy large-file LOC guard

* fix: cap long-lived reconnect backoff

* fix: preserve reconnect start failures

* test(sdk): include retry package in install smoke
2026-07-13 00:39:17 -07:00
Peter Steinberger
e168443123 refactor(ui): direct enable/disable and remove actions on plugin cards (#106040)
* refactor(ui): direct enable/disable and remove actions on plugin cards

Replace the state chip + kebab menu on plugin cards, installed rows,
ClawHub results, and MCP server rows with a direct Enable/Disable
button and a trash icon for removable entries. Drop the redundant
'View details' menu item (the whole card opens details) and delete the
now-unused menu machinery, document listeners, and CSS.

* style: oxfmt plugins-page test helper

* chore(i18n): prune removed pluginsPage menu keys from locale bundles
2026-07-13 00:38:35 -07:00
Peter Steinberger
700c87f0f2 refactor(whatsapp): reuse Baileys helpers (#106125)
Refs #106123
2026-07-13 00:36:11 -07:00
Peter Steinberger
92962af779 refactor: prune unsupported OPENCLAW env overrides (#105970)
* refactor: prune unsupported env overrides

* refactor: prune unsupported env overrides

* chore: keep dead export baseline current

* fix: preserve packaged telemetry override
2026-07-13 00:36:02 -07:00
Peter Steinberger
17630226fc improve(ios): make gateway QR pairing prominent in Settings (#106111)
Reorder Settings -> Gateway by intent: pairing (Add Gateway with Scan QR,
setup code, discovered gateways) right below status, nav-bar QR scanner
button on the gateway route, and a Scan QR to Pair status-card hero while
nothing is paired (honoring the shared connect lock). Manual Gateway and
credentials move to the bottom. Fix setup-code Connect busy spinner to
track the whole attempt. New strings ran the full native i18n pipeline.

Closes #106013
2026-07-13 00:35:38 -07:00
Peter Steinberger
d2b382528e feat(ios): guide first launch through pairing explainer and permissions (#106129)
* feat(ios): guide first launch through pairing explainer and permissions

* fix(ios): keep first-run flow resumable and surface limited grants in onboarding

* chore(ios): regenerate native i18n after rebase

* chore(android): project refreshed native translations into strings.xml

* fix(ios): move i18n wrapper contract to shared permission row and sync catalog
2026-07-13 00:35:31 -07:00
Peter Steinberger
da6221d08e test: speed timing-sensitive UI and process suites (#105882)
* test: replace fixed waits with controlled time

* fix(ci): scope LOC ratchet to changed files

* fix(ci): stabilize changed-file ratchets

* test: stabilize sidebar session checks

* test(ui): isolate retained runtime modules

* test(ui): align streaming markdown assertions
2026-07-13 00:35:19 -07:00
Peter Steinberger
a4383306dc fix(plugin-sdk): preserve sandbox create options 2026-07-13 00:35:08 -07:00
Peter Steinberger
f06ec98c90 fix(auto-reply): preserve parsed media fallback 2026-07-13 00:35:08 -07:00
Peter Steinberger
c4e82aceea refactor(agents): internalize env sanitization options 2026-07-13 00:35:08 -07:00
Peter Steinberger
b9fd02c51d test(channels): remove deprecated catalog mocks 2026-07-13 00:35:08 -07:00
Peter Steinberger
2c9850048a fix(plugin-sdk): preserve agent session compatibility method 2026-07-13 00:35:08 -07:00
Peter Steinberger
968d72b589 refactor(agents): remove singular media directive use 2026-07-13 00:35:08 -07:00
Peter Steinberger
6def44a2fe fix(plugin-sdk): preserve allowlist compatibility export 2026-07-13 00:35:08 -07:00
Peter Steinberger
b4122f0c19 refactor(agents): remove dead lifecycle alias 2026-07-13 00:35:08 -07:00
Peter Steinberger
224d02ad71 fix(plugin-sdk): preserve deprecated public exports 2026-07-13 00:35:08 -07:00
Peter Steinberger
2d5d30e047 style: format deprecated sweep changes 2026-07-13 00:35:08 -07:00
Peter Steinberger
9f158ed00b refactor(channels): remove internal compatibility aliases 2026-07-13 00:35:08 -07:00
Peter Steinberger
4638b06454 refactor(runtime): remove deprecated timing aliases 2026-07-13 00:35:08 -07:00
Peter Steinberger
3302c3f5f9 refactor(agents): drop dead compatibility members 2026-07-13 00:35:08 -07:00
Peter Steinberger
45961b357d refactor(infra): remove internal deprecated helpers 2026-07-13 00:35:08 -07:00
Peter Steinberger
29781ab39e feat(android): generate gateway protocol models (#106011)
* feat(android): generate gateway protocol models

* fix(ci): recognize generated Kotlin event constants

* fix(android): normalize generated event catalog

* fix(ci): type Kotlin event coverage exports

* fix(ci): satisfy Kotlin codegen gates
2026-07-13 00:34:57 -07:00
Peter Steinberger
2237196871 refactor(extensions): remove dead QA and utility exports (#105914)
* refactor(extensions): remove dead QA and utility exports

* refactor(extensions): trim Matrix QA internal exports

* chore(deadcode): refresh extension export baseline

* chore(ci): reconcile deadcode and LOC baselines

* chore(deadcode): refresh baseline after main advance

* chore(deadcode): refresh baseline after main advance

* refactor(plugins): keep channel snapshot type private

* fix(ci): align Linux deadcode baseline
2026-07-13 00:34:46 -07:00
Peter Steinberger
afe907f8f5 improve(ui): friendlier panel load error state with reload prompt for stale chunks (#106033) 2026-07-13 00:34:32 -07:00
Peter Steinberger
af7379bceb fix(docs): localize Russian plugin terminology 2026-07-13 03:34:26 -04:00
Peter Steinberger
5d86f9dcaf fix(ui): allow session creation during refresh (#106045) 2026-07-13 00:34:12 -07:00
Peter Steinberger
afdc29c3dd fix(ci): reduce release validation polling load (#106139)
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-13 15:32:27 +08:00
mushuiyu886
4200745a98 fix(matrix): handle event decryption errors during sync (#94416)
Co-authored-by: mushuiyu886 <mushuiyu886@users.noreply.github.com>
2026-07-13 00:32:05 -07:00
Peter Steinberger
73da94f06f improve(ui): move Sessions from the sidebar More menu into Settings (#106032)
Sessions is session management, not a day-to-day workspace destination.
It now lives in Settings under Agents & Tools at /settings/sessions,
with the old /sessions path kept as a route alias; stale pinned-route
prefs drop automatically via normalizeSidebarPinnedRoutes. Also repairs
the sidebar-customization e2e that #105777 broke on main by opening
Settings through the agent-chip menu.
2026-07-13 00:30:20 -07:00
Vincent Koc
90d2a47faa refactor(gateway): remove transcript archive re-export (#106097) 2026-07-13 15:25:16 +08:00
Peter Steinberger
32c84b0f41 feat(skills): capture reusable techniques from successful work (#105674)
* feat(skills): capture reusable experience safely

* feat(skills): review completed work for reusable learning

* docs(skills): explain self-learning

* docs: clarify self-learning runtime scope

* fix(skills): harden autonomous workshop reviews

* test(skills): align review prompt fixture
2026-07-13 00:22:06 -07:00
Peter Steinberger
b2b87e956e fix(macos): center dashboard traffic lights with the hosted titlebar buttons (#106099)
* fix(macos): center dashboard traffic lights with the hosted titlebar buttons

Give the dashboard window an empty unified toolbar so its titlebar grows
to 52pt, vertically centering the macOS traffic lights against the row of
web-hosted titlebar buttons (sidebar toggle, back/forward) instead of
hugging the top edge. Bump the injected --openclaw-native-titlebar-height
to match, and nudge the hosted controls' left offset from 78px to 92px so
the traffic-light cluster and the first web button read as separate groups.

The toolbar exists only to size the titlebar, so View > Hide Toolbar (and
the corresponding shortcut) are refused; hiding it would collapse the
titlebar while the web inset stays pinned at 52pt, resurrecting the
misalignment. Smoke tests cover toolbar presence/style, hide refusal, and
the exact injected height.

* chore(i18n): resync native inventory line metadata
2026-07-13 00:17:13 -07:00
Peter Steinberger
b5273e78d6 fix(ui): restore app-sidebar content with IconName type import
The previous commit accidentally truncated app-sidebar.ts to an empty
file while fixing the missing IconName import from #105850. This
restores the full component with the corrected icons import.
2026-07-13 00:15:43 -07:00
Peter Steinberger
08843c74de fix(ui): restore IconName type import in app-sidebar
#105850 added AGENT_MENU_LINKS typed with IconName without importing
the type, breaking check-prod-types/check-test-types on main.
2026-07-13 00:14:34 -07:00
Peter Steinberger
b57e7b74e6 feat: add native Skills management parity (#105814)
* feat(apps): add native skills management parity

* chore(i18n): refresh native skills inventory

* style(apps): apply canonical Swift formatting

* style(ios): wrap skills status message

* chore(i18n): refresh native skill locales

* refactor(apps): trim native skills review surface

* chore(i18n): regenerate native app resources

* chore: keep release changelog owner-only

* fix(ios): remove dead gateway and watch wrappers
2026-07-13 00:11:11 -07:00
Peter Steinberger
78c190814f fix(ci): dedupe read-only state allowlist (#106132) 2026-07-13 00:09:55 -07:00
Peter Steinberger
3c30634de4 fix(ui): order model-dependent chat settings (#106095)
* fix(ui): order model-dependent chat settings

* fix(ui): serialize picker model transitions

* chore: remove release-owned changelog edit
2026-07-13 00:08:15 -07:00
Peter Steinberger
00e8ca6676 fix(ci): dedupe read-only state DB entry in kysely raw-sqlite allowlist
Three concurrent unbreak commits (#106124, #106126, a4467f1971) each
added src/state/openclaw-state-db-readonly.ts, so the guard now dies on
its own duplicate-path assertion before checking anything. Keep the
dedicated read-only shared-state group entry.
2026-07-13 00:06:27 -07:00
Peter Steinberger
6b506e9070 improve(gateway): reduce context-cache startup delay (#106117)
* perf(gateway): defer context cache prewarm

* refactor(gateway): keep prewarm internals private
2026-07-13 00:06:18 -07:00
Peter Steinberger
cb1b5779ea feat(ui): docs, help, Discord, and changelog links in the agent chip menu (#105850)
* feat(ui): docs, help, Discord, and changelog links in the agent chip menu

* chore(i18n): normalize locale bundle metadata after rebase

* refactor(ui): move the agent menu links into the nav-menus module for the LOC ratchet

* Revert "refactor(ui): move the agent menu links into the nav-menus module for the LOC ratchet"

This reverts commit 0e4d72f4c6.
2026-07-13 00:05:42 -07:00
Ben Badejo
2725742cad fix(memory): respect QMD timeout for memory_search (#95757)
* fix(memory): scope qmd search deadline

Preserve the phase-scoped QMD timeout semantics on current main.

Co-authored-by: Peter Steinberger <58493+steipete@users.noreply.github.com>

* docs: refresh generated docs map

* test(memory): reconcile manager mock with current main

* test(memory): isolate deadline mock import

* style(memory): format search test mocks

* test(memory): decouple mock from deadline symbol

* chore(memory): refresh reviewed pull request head

---------

Co-authored-by: Benjamin Badejo <ben@benbadejo.com>
Co-authored-by: Peter Steinberger <58493+steipete@users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
Co-authored-by: Peter Steinberger <peter@steipete.me>
2026-07-13 00:05:13 -07:00
Peter Steinberger
d614920c3e fix(ci): allow read-only state database boundary (#106126)
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-12 23:59:39 -07:00
Peter Steinberger
a4467f1971 ci: allowlist read-only state DB opener in kysely guardrails 2026-07-12 23:57:56 -07:00
Peter Steinberger
ad1b4d9731 fix(ci): classify read-only shared state SQLite (#106124) 2026-07-12 23:57:30 -07:00
Jason (Json)
4e1224ddbe fix(agents): follow through on promised asynchronous work (#105958)
* fix(agents): close promised asynchronous work loops

* fix(agents): close promised asynchronous work loops

* refactor(agents): keep promised work policy focused

* refactor(agents): preserve prompt module documentation

* style(agents): keep prompt renderer within LOC ratchet

* fix(agents): close promised asynchronous work loops

* fix(agents): close promised asynchronous work loops
2026-07-13 00:56:04 -06:00
Peter Steinberger
f1076c23d4 fix(ci): isolate macOS node restart notifications 2026-07-13 02:54:10 -04:00
Peter Steinberger
0cdb13abfc docs(gateway): dedicated 1Password integration page (#106109) 2026-07-12 23:52:33 -07:00
Jason (Json)
7d9fbb1db8 docs(coding-agent): secure worktree preparation (#106121) 2026-07-13 00:51:49 -06:00