Peter Steinberger
964c8c84c1
refactor: consolidate coercion ownership ( #122299 )
...
* refactor: consolidate coercion ownership
Centralize four canonical coercion helpers, migrate exact core and plugin duplicates through narrow Plugin SDK facades, and enforce declaration and plugin-normalization ownership boundaries.
The sweep adds eight focused SDK exports while deleting more production and tooling code than it adds. User-visible behavior is unchanged except for safer equivalent object and UI parsing at existing boundaries.
* fix: guard integer option ownership
Register resolveIntegerOption with the canonical function owner and extend the declaration-guard fixture so future local duplicates fail validation.
* fix: keep integer helpers on numeric facade
Remove the unshipped duplicate string-coerce exports and route every affected plugin consumer through the existing number-runtime contract.
* fix: point numeric coercion to number runtime
Make boundary and declaration diagnostics recommend the canonical numeric facade, with failing-before coverage for both guidance paths.
2026-08-11 17:14:53 -07:00
Peter Steinberger
fa03d9b913
refactor: consolidate coercion helpers ( #121366 )
...
* refactor: consolidate coercion helpers
* fix: remove duplicate coercion imports
* fix: preserve serialized coercion guard
* chore: ratchet coercion helper carve-outs
* fix(test): keep gauntlet subprocess startup lean
* fix: preserve imported session timestamp semantics
* fix: preserve catalog timestamp string semantics
* chore: align plugin SDK surface ratchet
* fix: preserve trajectory and SDK string contracts
* fix(test): preserve QA record assertion semantics
* fix: complete standalone record guard rename
* refactor(cron): use canonical string coercion
* fix(acpx): preserve Pi timestamp parsing
* test(channels): adapt custody test harnesses
* test(telegram): classify media harness as test support
* test(acpx): split timestamp contract coverage
* test(channels): support generated custody contracts
* chore: ban the full coercion helper name set
Extends the declaration guard to all eleven consolidated helper names and
renames the cron schedule-identity readNumber wrapper to readScheduleInteger
so the banned generic name cannot regrow.
* fix(scripts): repair release-validation guard drift and lint cause
Restores the renamed isJsonRecord guard in assertTrustedWorkflowHarness after
main added isRecord call sites in parallel, and attaches the caught YAML error
as the thrown error cause (preserve-caught-error was red on main).
* fix: preserve Claude timestamp string semantics
* fix: preserve persisted timestamp string semantics
* fix: preserve date-first timestamp contracts
* fix(openai): harden delegation failure formatting
* chore: close coercion helper guard gaps
* test(openai): model non-error delegation rejection
* chore: refresh plugin SDK API contract
* fix(tasks): use canonical string field reader
* fix(ai): use canonical provider error field coercion
* fix(browser): migrate native bootstrap coercion
* docs(plugin-sdk): clarify text record export compatibility
* fix(gateway): normalize approval execution identity
* test(outbound): isolate message action poll harness
2026-08-11 00:02:18 -07:00
Peter Steinberger
48639663b0
chore(release): prepare 2026.8.1 ( #120375 )
2026-08-07 18:44:12 -07:00
Vincent Koc
80ea12b48d
test(extensions): move live audio checks out of unit suites ( #116651 )
2026-07-31 12:15:03 +08:00
Peter Steinberger
db02a96c4c
refactor(process): route bounded commands through Execa ( #106495 )
...
* refactor(process): centralize bounded command execution
* refactor(process): migrate core one-shot commands
* refactor(plugins): migrate one-shot commands
* fix(process): await Windows tree termination
* chore(plugin-sdk): refresh process runtime surface
* refactor(process): migrate remaining bounded commands
* refactor(process): normalize command result handling
* refactor(process): split execution responsibilities
* chore(plugin-sdk): refresh API baseline
* chore(process): remove release-owned changelog entry
* fix(process): narrow binary command input checks
* fix(process): cap sandbox command output
* fix(qa-lab): preserve exact node probe env
* chore(ci): refresh dead export baseline
* fix(process): preserve force-kill command deadlines
* fix(process): avoid post-exit timeout reclassification
* test(process): update scp staging wrapper mock
* test(process): update remaining wrapper mocks
* refactor(qa-lab): preserve Execa tar execution
2026-07-13 11:07:35 -07:00
Peter Steinberger
dba64d574f
chore(release): set version to 2026.7.2
2026-07-11 04:00:49 +01:00
mikasa
18fd6ee9e6
fix(tts-local-cli): cap local CLI speech outputs ( #101510 )
...
* fix(tts-local-cli): bound local speech output
Co-authored-by: mikasa0818 <0668001030@xydigit.com >
* chore(tts-local-cli): keep changelog release-owned
* docs(tts-local-cli): format output-limit note
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-09 12:42:41 +01:00
Vincent Koc
0ac8933721
fix(text): keep diagnostic truncation UTF-16 safe
...
Co-authored-by: chengzhichao-xydt <chengzhichao-xydt@users.noreply.github.com >
Co-authored-by: wangmiao0668000666 <wang.miao86@xydigit.com >
Co-authored-by: 黄剑雄0668001315 <huang.jianxiong@xydigit.com >
2026-07-09 04:02:39 -07:00
Vincent Koc
45d15aabf9
fix(tts-local-cli): preserve file output on stream errors
...
Co-authored-by: 赵旺0668001248 <zhao.wang1@xydigit.com >
2026-07-09 03:28:51 -07:00
zw-xysk
9fa913740d
fix(tts-local-cli): handle stdout/stderr stream errors in speech provider ( #102347 )
...
* fix(tts-local-cli): handle stdout/stderr stream errors in speech provider
CLI TTS speech provider spawns a child process to generate audio and
registers stdout/stderr data listeners but omits stream error handlers.
stdout carries synthesized audio data. A pipe error mid-generation must
reject the promise so the caller does not silently receive truncated
audio when the child later exits zero. stderr carries diagnostic logs
only — errors there are benign and should not crash the provider.
Apply separate strategies matching vincentkoc's requirement:
- stdout (audio): error → reject(Promise) — surface the failure
- stderr (diagnostic): error → ignore — does not affect audio output
* fix lint: remove unused signal param from mock kill()
* fix(tts-local-cli): contain child stream failures
Co-authored-by: 赵旺0668001248 <zhao.wang1@xydigit.com >
* chore(tts-local-cli): keep release notes in PR body
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-09 11:06:10 +01:00
Vincent Koc
66e676d29b
chore(release): close out 2026.6.11 on main
2026-06-30 11:31:08 -07:00
Vincent Koc
0671c08900
chore(release): close out 2026.6.10 on main ( #96271 )
...
* chore(release): close out 2026.6.10 on main
* chore(release): align native app metadata for 2026.6.10
* chore(release): sync Android 2026.6.10 notes
* docs(changelog): preserve 2026.6.9 history
* docs(changelog): preserve 2026.6.9 history
2026-06-24 11:51:14 +08:00
Vincent Koc
b039e949b6
chore(release): close out 2026.6.9
2026-06-21 12:24:15 +08:00
Vincent Koc
6774e7f259
chore(release): sync main to 2026.6.8
2026-06-17 07:25:30 +08:00
Shakker
920e6a8eec
chore: set version 2026.6.9
2026-06-16 19:54:07 +01:00
Peter Steinberger
4fa5092cdc
docs: document small extension sources
2026-06-04 21:02:07 -04:00
Peter Steinberger
1878ca0820
chore(release): prepare 2026.6.2 beta
2026-06-04 00:06:52 +01:00
Peter Steinberger
e254346bc2
chore(release): prepare 2026.6.3 beta
2026-06-03 23:42:34 +01:00
Peter Steinberger
a14eacf372
chore(release): set version 2026.6.2
2026-06-01 23:06:55 +01:00
Peter Steinberger
8e28c773fe
chore(release): prepare 2026.6.1
2026-06-01 10:30:15 +01:00
Peter Steinberger
0d17623f00
chore: bump OpenClaw version to 2026.5.31
...
Bumps OpenClaw release metadata to 2026.5.31 across package manifests, app version files, plugin metadata, changelog headings, and generated shrinkwraps.
Verification:
- pnpm plugins:sync:check
- pnpm ios:version:check
- pnpm deps:shrinkwrap:check
- git diff --check
- stale 2026.5.30/build-code scan across changed files
- autoreview clean: no accepted/actionable findings
- PR CI green for real gates: Checks, security scans, dependency guard, app lanes, real behavior proof
Known non-code workflow issue:
- label workflow failed because this PR hits GitHub's 100-label issue cap before the size-label step.
2026-05-31 14:46:17 +01:00
Peter Steinberger
cd07d013ba
chore(release): bump version to 2026.5.30
2026-05-30 06:49:13 +01:00
Peter Steinberger
cee2a50fe6
chore(release): prepare 2026.5.28
2026-05-28 01:48:07 +01:00
Peter Steinberger
7aaca4a8a6
chore(release): prepare 2026.5.27
2026-05-27 16:53:50 +01:00
Peter Steinberger
d00d0a21c2
chore: bump OpenClaw to 2026.5.26
2026-05-26 01:26:00 +01:00
Peter Steinberger
0cba872e38
chore: bump version to 2026.5.24
2026-05-24 02:40:16 +01:00
Peter Steinberger
4df34cb790
chore(release): bump version to 2026.5.22
2026-05-22 21:25:16 +01:00
Peter Steinberger
e2c92be90b
chore(release): bump version to 2026.5.21
2026-05-22 00:09:45 +01:00
Peter Steinberger
7b9066120a
chore(release): bump version to 2026.5.20
2026-05-20 21:58:56 +01:00
Peter Steinberger
c1579b7727
chore: bump release version to 2026.5.19
2026-05-18 23:11:42 +01:00
Peter Steinberger
9c5acb7ea3
chore: release 2026.5.17
2026-05-16 10:11:41 +01:00
Vincent Koc
f553dad560
Reapply "chore(release): set 2026.5.16 version"
...
This reverts commit 73aab6abd8 .
2026-05-16 08:59:33 +08:00
Vincent Koc
73aab6abd8
Revert "chore(release): set 2026.5.16 version"
...
This reverts commit b7e8f6da6a .
2026-05-16 08:20:19 +08:00
Peter Steinberger
b7e8f6da6a
chore(release): set 2026.5.16 version
2026-05-15 22:06:19 +01:00
Peter Steinberger
1d8d664570
chore(release): prepare 2026.5.14
2026-05-14 21:38:45 +01:00
Peter Steinberger
c98698aa0e
chore: release 2026.5.12-beta.1
2026-05-12 06:33:41 +01:00
Jason Zhou
bfd540bcdf
[codex] refresh plugin regression fixtures
...
Summary:
- Refresh plugin regression fixtures and test-support mocks for guarded network resolution, progress streaming windows, staged TTS output, QQBot STT, and CLI runner assertions.
- Resolve current-main conflicts in Discord, Google video, QQBot STT, and CLI runner tests without changing runtime code.
Verification:
- pnpm check:test-types
- pnpm vitest run $(git diff --name-only origin/main...HEAD)
- git diff --check
- GitHub CI passed, including Real behavior proof, auto-response, ClawSweeper dispatch, CodeQL, and full CI checks.
Co-authored-by: Jason Zhou <22532527+JayZeeDesign@users.noreply.github.com >
2026-05-10 23:44:50 -05:00
Peter Steinberger
09146c9adb
test: tighten tts local cli assertions
2026-05-11 04:39:16 +01:00
Peter Steinberger
827b0de0ce
refactor: reduce plugin sdk surface
2026-05-10 12:37:10 +01:00
Peter Steinberger
9243b575ed
chore(release): prepare 2026.5.10-beta.1
2026-05-10 06:13:38 +01:00
Peter Steinberger
9385eaaf88
chore(release): prepare 2026.5.8
2026-05-09 08:05:17 +01:00
Peter Steinberger
7cc0b21e4d
test: restore node 26 test compatibility
2026-05-08 16:52:23 +01:00
Shakker
150b869cf8
fix: set tts conversion output formats
2026-05-08 11:12:25 +01:00
Peter Steinberger
252a76d25c
refactor: stage external output writes through fs-safe
2026-05-07 06:05:24 +01:00
Peter Steinberger
0b88d6286c
chore: bump version to 2026.5.6
2026-05-06 09:47:34 +01:00
Peter Steinberger
538605ff44
[codex] Extract filesystem safety primitives ( #77918 )
...
* refactor: extract filesystem safety primitives
* refactor: use fs-safe for file access helpers
* refactor: reuse fs-safe for media reads
* refactor: use fs-safe for image reads
* refactor: reuse fs-safe in qqbot media opener
* refactor: reuse fs-safe for local media checks
* refactor: consume cleaner fs-safe api
* refactor: align fs-safe json option names
* fix: preserve fs-safe migration contracts
* refactor: use fs-safe primitive subpaths
* refactor: use grouped fs-safe subpaths
* refactor: align fs-safe api usage
* refactor: adapt private state store api
* chore: refresh proof gate
* refactor: follow fs-safe json api split
* refactor: follow reduced fs-safe surface
* build: default fs-safe python helper off
* fix: preserve fs-safe plugin sdk aliases
* refactor: consolidate fs-safe usage
* refactor: unify fs-safe store usage
* refactor: trim fs-safe temp workspace usage
* refactor: hide low-level fs-safe primitives
* build: use published fs-safe package
* fix: preserve outbound recovery durability after rebase
* chore: refresh pr checks
2026-05-06 02:15:17 +01:00
Peter Steinberger
5397667272
chore(release): prepare 2026.5.4
2026-05-04 10:09:55 +01:00
Peter Steinberger
31161abd40
chore(release): bump version to 2026.5.3
2026-05-03 03:08:47 +01:00
Peter Steinberger
80da0a0213
chore: bump version to 2026.5.2
2026-05-02 11:58:45 +01:00
Shakker
86bdeb0561
perf: mark capability plugins startup lazy
2026-04-28 04:33:47 +01:00