Commit Graph

81 Commits

Author SHA1 Message Date
Peter Steinberger 7e78de747b refactor(ui): replace duplicated locale bundles with canonical translation memory (#117157)
* refactor(ui): generate locale bundles from canonical translation memory

* fix(ui): keep server-only locale config out of browser test helpers
2026-07-31 19:40:27 -07:00
Vincent Koc 90a22b4f50 chore(test): run browser copilot E2E in CI (#116407)
* test(browser): run copilot E2E in CI

* test(browser): stabilize copilot E2E synchronization

* test(browser): wake extension workers deterministically

* test(ci): route browser copilot command changes
2026-07-30 23:20:34 +08:00
Vincent Koc da5820b39c test(ci): split control UI scope coverage 2026-07-28 23:47:14 +08:00
Vincent Koc 8f40fac955 fix(ci): run localization checks for UI changes 2026-07-28 23:47:14 +08:00
Dallin Romney 74cc99f2d1 fix(release): publish extended-stable Docker channels safely (#112494)
* fix(release): isolate extended-stable Docker aliases

* fix(release): harden Docker channel promotion

* docs(release): pin Docker policy into tagged tree

* refactor(release): isolate Docker channel promotion

* fix(release): queue Docker publications

* fix(release): harden docker channel promotion

* docs(release): tighten extended-stable guidance

* fix(release): promote Docker aliases after verification

* chore(release): format maintainer instructions

* refactor(release): separate release version policy

* docs(release): clarify extended-stable gateway scope

* fix(release): harden Docker channel promotion
2026-07-23 10:03:11 +09:00
Vincent Koc 60cb53233b ci(i18n): publish Wear locale artifacts 2026-07-21 17:36:49 +08:00
Peter Steinberger e0b1a39d2a improve(i18n): generate native locales after merge (#111557)
* ci(i18n): move native locale generation post-merge

* fix(i18n): allow generated Android companions
2026-07-19 15:42:41 -07:00
Peter Steinberger 067635cb51 fix(ui): prevent generated locale rebase conflicts (#109393)
* ci(ui): make locale refresh bot-owned

* test(ui): keep locale gate coverage scoped

* fix(ci): preserve generated PR merge policy

* fix(ci): wait for generated PR head convergence

* fix(ci): retry transient guard API failures

* fix(ci): enforce locale isolation across CI events

* fix(ci): harden generated PR publication

* fix(ci): validate release gate merge tree

* fix(ci): allow trusted main locale output
2026-07-16 18:48:20 -07:00
Peter Steinberger ce919593bf fix(ui): unblock rebases with generated i18n conflicts (#109279)
* fix(ui): automate i18n conflict resolution

* fix(ui): preserve i18n cache merge intent

* fix(ui): restrict resolver to generated locales

* fix(ui): prune stale locales before baseline

* fix(ui): handle removed locale conflicts
2026-07-16 12:52:28 -07:00
Peter Steinberger f81f9d8570 chore: enforce max-lines suppression ratchet (#107315)
* ci: enforce max-lines suppression ratchet

* chore: prune stale max-lines suppression

* fix: close max-lines ratchet enforcement gaps

* fix: harden max-lines ratchet checks

* fix(ci): satisfy max-lines ratchet checks

* style: format max-lines declarations

* fix(ci): match oxlint suppression grammar

* test: isolate max-lines git fixtures

* chore: prune resolved max-lines debt

* test: skip newline path fixture on Windows

* fix: harden max-lines suppression ratchet

* chore: refresh max-lines baseline

* fix: close max-lines ratchet bypasses

* fix: derive ratchet base from PR merge tree

* fix: support older Git in staged ratchet

* fix: align max-lines declarations and baseline

* chore: refresh max-lines baseline for current main

* fix: exclude generated wizard locales from max-lines

* chore: prune resolved max-lines debt
2026-07-14 09:27:02 -07:00
Peter Steinberger 47d37804a8 improve(ui): catch i18n catalog drift locally (#107253)
* ci(ui): verify i18n catalogs locally

* fix(ui): preserve scoped i18n sync errors

* refactor(ui): share i18n raw-copy verifier

* test(ui): cover i18n lint gate

* fix(ui): route lint threads to oxlint
2026-07-14 01:12:36 -07:00
Peter Steinberger df5097b6e7 fix(native): keep platform validation warning-free (#107101)
* build(android): keep Gradle warning-free

* ci(native): pin XcodeGen tooling

* test(macos): avoid concurrency warnings
2026-07-13 22:33:12 -07:00
Peter Steinberger 70833dab7f ci: scope PR Node tests to changed targets (#106633)
* ci: scope PR Node tests to changed targets

* ci: bound targeted Node test plans

* test: cover changed path manifest input

* fix(ui): preserve model providers lazy boundary

* ci: cover public SDK re-export consumers

* ci: reject unresolved changed test targets

* ci: cover public SDK wrapper imports

* ci: preserve global checks in targeted plans

* docs(ci): clarify targeted boundary coverage

* test(plugins): declare computed runtime dependencies
2026-07-13 15:26:02 -07:00
Peter Steinberger 458746e1c2 chore(ci): enforce changed-file TypeScript LOC ratchet (#106387)
* ci: enforce changed-file TypeScript LOC ratchet

* ci: derive release-gate LOC base from PR

* test(ci): exclude repository test helpers from LOC ratchet

* ci: validate LOC ratchet on PR merge tree

* style: format release maintainer skill

* ci: run LOC ratchet for fast-only changes

* fix(ci): harden LOC ratchet comparisons

* fix(ci): cover native TypeScript in LOC ratchet

* fix(ci): compare LOC against tested merge tree

* test(ci): cover LOC manifest routing
2026-07-13 07:20:32 -07:00
Peter Steinberger 4dd839c462 refactor(release): split cross-os checks (#106309) 2026-07-13 04:01:40 -07:00
Peter Steinberger 6268eeef15 test: wire Control UI suite into CI, fix its broken tests, drop dead harness surface (#104361)
* test: wire Control UI suite into CI, fix its broken tests, drop dead harness surface

- fix 7 Control UI tests broken on main: module-mock factories are unreliable
  under isolate:false shared workers; use RealtimeTalkSession prototype spies
  and real jsdom storage instead (chat-realtime, chat-pull-requests)
- add gated checks-ui CI job (runUiTests changed-scope output): chromium
  provisioning, lint:ui:no-raw-window-open, pnpm --dir ui test; ~30s on a
  4vcpu runner, runs only when ui-affecting paths change
- add weekly node22-compat workflow exercising the supported lower Node bound
  with the same command set as the dispatch-only ci.yml job
- delete the unreachable channels entry in EXTENSION_TEST_CONFIG_ROUTES and
  the never-populated extensionRoutedChannelTestFiles override machinery
  (born empty in 2ccb5cff22); resolved globs are provably identical
- guard run-vitest.mjs hardcoded path maps with existence tests so renames
  cannot silently drop extended stall watchdogs
- remove unenforced coverage thresholds; test:coverage is informational, docs
  updated (reference/test, help/testing, plugins/sdk-testing)

Closes #104321

* test: pin OPENCLAW_CI_RUN_UI_TESTS in the manifest env expectation

* test(ui): capture the realtime start spy instead of referencing the unbound prototype method

* test(ui): raise ui vitest timeouts for real-browser layout tests on small CI runners
2026-07-11 03:04:11 -07:00
Peter Steinberger 62bd760c0e chore(swift): enforce current formatting and lint rules (#103313)
* style: apply SwiftFormat 0.62.1 rules

Refs #103202

* ci: enforce deterministic Swift lint

Refs #103202

* refactor: keep gateway connect lint-clean

Refs #103202

* style: keep iOS typography checks warning-free

* ci: route MLX Swift changes through pre-push

* fix: preserve native i18n extraction after Swift cleanup

* refactor: keep rebased Swift surfaces lint-clean

* style: format latest Swift additions

* chore: refresh native i18n inventory

* style: keep generated Swift formatter-clean

* fix: preserve node route invalidation callbacks

* fix: keep native translation IDs stable

* fix: retain native translation identifiers

* fix: preserve translations across Swift source moves
2026-07-10 11:54:08 +01:00
Vincent Koc 968b89defe fix(ci): remove cross-os TypeScript loader bootstrap (#103195) 2026-07-09 18:15:12 -07:00
Peter Steinberger 129e2795ae fix: stabilize SwiftFormat 0.62 lint (#103098) 2026-07-09 21:48:14 +01:00
Peter Steinberger dbba3d2a8e fix(ci): stabilize Windows startup fallback tests (#101223)
* test(windows): stabilize startup fallback fixtures

* ci(windows): route daemon scheduler changes
2026-07-07 00:37:50 +01:00
Dallin Romney d2e6ccf4bb refactor(test): consolidate script declaration contracts (#100992) 2026-07-06 10:26:51 -07:00
Vincent Koc d71a24f3a4 fix(mac): share Swift packaging preflight 2026-07-04 08:00:15 +02:00
Vincent Koc 249d4904af fix(ci): route native locale refresh checks 2026-07-01 03:28:23 -07:00
Vincent Koc 9fd6ca9602 fix(i18n): route native inventory checks narrowly 2026-07-01 03:28:23 -07:00
Vincent Koc cc981f8a73 ci: build iOS app for iOS changes 2026-06-24 04:32:08 +08:00
Vincent Koc d91aee7220 fix(ci): reject flag refs in changed scope 2026-06-21 19:54:57 +02:00
Vincent Koc 77a859f4ae fix(ci): route mac packaging scripts to macos checks 2026-06-21 16:32:57 +02:00
Vincent Koc 617076687e refactor(plugins): remove import specifier facade 2026-06-18 09:44:17 +08:00
Vincent Koc 76658cd159 fix(ci): keep ci workflow edits off fast-only routing 2026-06-16 20:28:23 +02:00
Vincent Koc e94b666e45 fix(mac): isolate dmg image cleanup 2026-06-16 02:43:16 +02:00
Vincent Koc 1549172816 fix(ci): reject missing changed scope refs 2026-06-06 22:21:14 +02:00
Peter Steinberger b2e320dfb1 docs: document support test files 2026-06-04 20:31:55 -04:00
Mason Huang 8b29ff5f16 fix(ci): scope PR merge diff checks to first parent (#90287)
Summary:
- This PR adds opt-in first-parent merge-head diff-base handling for CI changed-scope, changed-lanes, and OpenGrep PR scans, plus synthetic merge coverage and small lint/type cleanups.
- PR surface: Source +6, Tests +204, Config +1, Other +179. Total +390 across 15 files.
- Reproducibility: yes. The synthetic merge tests and PR body live-ref proof show the stale payload-base path can include main-only files, and first-parent mode narrows it to PR-owned paths.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(ci): update workflow guard expectations
- PR branch already contained follow-up commit before automerge: fix(ci): resolve plugin guardrail lint failures
- PR branch already contained follow-up commit before automerge: fix(ci): preserve plugin run context typing
- PR branch already contained follow-up commit before automerge: fix(ci): scope PR merge diff checks to first parent

Validation:
- ClawSweeper review passed for head 40235e8c3d.
- Required merge gates passed before the squash merge.

Prepared head SHA: 40235e8c3d
Review: https://github.com/openclaw/openclaw/pull/90287#issuecomment-4621155576

Co-authored-by: Mason Huang <masonxhuang@tencent.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: hxy91819
Co-authored-by: hxy91819 <8814856+hxy91819@users.noreply.github.com>
2026-06-04 17:24:03 +00:00
Peter Steinberger e24a9c5457 ci: keep harness changes on fast checks (#88429) 2026-05-30 20:27:59 +01:00
Peter Steinberger b1117d9862 refactor: extract gateway client package (#87797)
* refactor: extract gateway client package

* chore: drop generated gateway package artifacts

* refactor: move gateway protocol package

* refactor: remove old gateway protocol tree

* test: keep auth compat split in run mode

* test: expose gateway wrapper options for internals

* fix: watch moved gateway package sources

* test: normalize slash command import guard

* chore: teach knip gateway package entries

* ci: route gateway client package checks

* fix: reuse ipaddr for gateway client hosts

* fix: sync gateway protocol usage schema
2026-05-29 02:23:42 +01:00
Peter Steinberger 0c5f622f9a perf(discord): use libopus-wasm for voice opus 2026-05-26 02:53:29 +01:00
Vincent Koc 43252c8099 fix(scripts): harden Windows native opus install 2026-05-24 21:28:09 +02:00
Vincent Koc 0a98559440 fix(scripts): harden Windows generated formatting 2026-05-24 20:50:07 +02:00
Peter Steinberger 863fe90249 chore(installer): remove legacy cmd installer 2026-05-10 06:59:33 +01:00
Peter Steinberger e60928d13c ci: verify and sync website installers (#80067)
* ci: verify and sync website installers

* test: fix pi runner boundary test type cast

* fix(installer): scope Windows legacy cleanup to git checkout

* ci: install curl for minimal install-cli smoke

* fix(installer): promote supported Linux node after install

* test(cli): align command hint expectations

* fix(installer): avoid shellcheck warning in node promotion

* fix(installer): sync Linux path hardening

* ci: raise build artifact testbox heap

* test(installer): align PowerShell installer tests
2026-05-09 23:48:49 -04:00
Peter Steinberger 7e503bdbbb test: tighten ci changed scope injection assertion 2026-05-09 01:29:03 +01:00
Peter Steinberger a33d994e3a test: simplify ci changed scope output parsing 2026-05-08 23:49:56 +01:00
Peter Steinberger 330ba1fa31 refactor: move canvas to plugin surfaces 2026-05-07 09:07:18 +01:00
Peter Steinberger 7cab067bce ci: scope prompt snapshot boundary check 2026-05-07 01:31:50 +01:00
Peter Steinberger 95f5b265c1 test: align support-boundary expectations 2026-05-03 15:04:02 +01:00
Peter Steinberger 4760ee4055 chore: remove root assets 2026-05-03 13:20:26 +01:00
Peter Steinberger 869103684f chore: move swabble into apps 2026-05-03 13:10:25 +01:00
Peter Steinberger ed8f50f240 refactor: simplify plugin dependency handling
Simplify plugin installation and runtime loading around package-manager-owned dependencies, with Jiti reserved for local/TS fallback paths.

Also scans npm plugin install roots so hoisted transitive dependencies are covered by dependency denylist and node_modules symlink checks.
2026-05-01 21:32:22 +01:00
Peter Steinberger e1acb61317 refactor: expose SDK test helper subpaths 2026-04-28 03:28:17 +01:00
Peter Steinberger 8057561cee refactor: promote plugin test helpers to sdk 2026-04-28 00:55:11 +01:00