Peter Steinberger
218dcd815a
feat(tooling): enforce noUncheckedIndexedAccess in the extensions lane (NUIA phase 4) ( #105132 )
...
* fix(extensions): make indexed access explicit across channel plugins
Transport-payload-safe burn-down: malformed Telegram/Discord/QQ/LINE
and sibling channel input keeps existing skip paths; no synthesized
fields, no new throws in delivery loops. Zalo escape sentinels preserve
literal matches instead of undefined replacements.
* fix(extensions): make indexed access explicit across provider and memory plugins
Stream and model iteration, tool-block guards, capture guards, and
sparse accumulators; singleton model reads carry named invariants.
* fix(extensions): make indexed access explicit across tooling plugins, flip the extensions lane
Remaining plugins (oc-path, qa-lab, browser, logbook, and siblings) plus
the tsconfig.extensions.json flag flip. Cleanup: logbook sampleFrames
NaN index at max=1, QA retry clamp at non-positive attempts, dead Canvas
probe and OpenShell no-op slice removed, twitch test setup leak excluded
from the prod lane.
* refactor(plugin-sdk): expose expectDefined via a focused SDK subpath
Extensions imported @openclaw/normalization-core directly, crossing the
external-plugin packaging boundary (it only worked because the runtime
builder bundles undeclared workspace helpers). expect-runtime joins the
canonical entrypoints JSON, generated exports, API baseline, docs, and
subpath contract test; all 78 extension imports now use the SDK seam.
Two scanner-shaped locals renamed for review-bundle hygiene.
* chore(plugin-sdk): raise surface budgets for the expect-runtime subpath
One new entrypoint with one callable export, added intentionally as the
packaging-honest seam for extension invariant helpers.
2026-07-12 09:17:31 +01:00
Peter Steinberger
de282b4d0d
refactor(matrix): adopt core claimable dedupe with doctor-owned state migration ( #104391 )
...
* refactor(matrix): adopt core claimable dedupe for inbound events
* fix(matrix): migrate legacy inbound dedupe markers via doctor
* fix(matrix): single-pool dedupe namespace and capacity-aware legacy import
* fix(matrix): keep unreadable legacy dedupe JSON in place during doctor import
2026-07-11 03:38:54 -07:00
Peter Steinberger
7bf80dc2c6
chore(tooling): enforce formatting and refresh TypeScript checks ( #104239 )
...
* chore(tooling): enforce current formatter and refresh checks
* chore(tooling): keep release changelog formatter-owned
* chore(tooling): retain compatible Node type surface
* ci: enforce formatting for docs-only changes
* ci: isolate docs formatter check
* chore(tooling): apply updated lint and format rules
* chore(tooling): satisfy updated switch lint
* style(ui): apply Linux formatter layout
* test(doctor): match quiet local audio contribution
* test(doctor): assert quiet output only
* test(doctor): follow restored information contract
2026-07-11 01:09:51 -07:00
Peter Steinberger
dba64d574f
chore(release): set version to 2026.7.2
2026-07-11 04:00:49 +01:00
Peter Steinberger
72e6fcab8a
fix(qa-matrix): preserve Unicode error previews ( #103909 )
...
Co-authored-by: lsr911 <liao.shirong@xydigit.com >
2026-07-10 20:58:38 +01:00
Peter Steinberger
5ef269c2bb
fix: keep bounded Unicode text valid across UTF-16 boundaries ( #102823 )
...
* fix(text): keep bounded output UTF-16 safe
Co-authored-by: 黄剑雄0668001315 <huang.jianxiong@xydigit.com >
Co-authored-by: 0668000539 <shu.zongyu@xydigit.com >
Co-authored-by: 张鹊平0668001085 <zhang.queping@xydigit.com >
Co-authored-by: 赵旺0668001248 <zhao.wang1@xydigit.com >
Co-authored-by: 陈宪彪0668000387 <chen.xianbiao@xydigit.com >
Co-authored-by: lizeyu-xydt <li.zeyu@xydigit.com >
* chore(changelog): defer release note to automation
* refactor(qa-lab): keep text helper behind SDK
---------
Co-authored-by: 黄剑雄0668001315 <huang.jianxiong@xydigit.com >
Co-authored-by: 0668000539 <shu.zongyu@xydigit.com >
Co-authored-by: 张鹊平0668001085 <zhang.queping@xydigit.com >
Co-authored-by: 赵旺0668001248 <zhao.wang1@xydigit.com >
Co-authored-by: 陈宪彪0668000387 <chen.xianbiao@xydigit.com >
Co-authored-by: lizeyu-xydt <li.zeyu@xydigit.com >
2026-07-09 15:21:23 +01:00
huangjianxiong
0e626690cd
fix(qa-matrix): keep shared reply previews UTF-16 safe ( #102656 )
...
* fix(qa-matrix): keep reply body preview truncation UTF-16 safe
Replace `.slice(0, 200)` with `truncateUtf16Safe(replyBody, 200)` in
buildMatrixReplyArtifact to prevent surrogate pair corruption.
Ref. lsr911 pattern — mechanical substitution, no behavior change.
* test(qa-matrix): preserve reply preview semantics
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-09 14:41:54 +01:00
huangjianxiong
5ba981a437
fix(qa-matrix): keep room scenario preview truncation UTF-16 safe ( #102606 )
...
* fix(qa-matrix): keep room scenario preview truncation UTF-16 safe
Replace 7x `.slice(0, N)` with `truncateUtf16Safe(..., N)` in
runMatrixStreamingPreviewScenario and runMatrixToolProgressScenario
to prevent surrogate pair corruption in body/formattedBody previews.
Ref. lsr911 pattern — mechanical substitution, no behavior change.
* test(qa-matrix): prove UTF-16 artifact boundaries
Co-authored-by: 黄剑雄0668001315 <huang.jianxiong@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-09 12:07:23 +01:00
Vincent Koc
686b6b51da
test(release): refresh beta plugin expectations
2026-07-08 14:22:22 -07:00
Vincent Koc
4bdf224442
refactor(qa-matrix): localize internal declarations ( #101974 )
2026-07-07 19:43:42 -07:00
Vincent Koc
1b6f3e43d1
refactor(deadcode): trim private helper exports ( #101886 )
2026-07-07 14:43:45 -07:00
Vincent Koc
e242c61400
refactor(deadcode): localize extension helpers ( #101860 )
2026-07-07 12:12:32 -07:00
Dallin Romney
253b784468
test(qa): use qa flow for channel routing scenarios ( #101076 )
...
* test(qa): canonicalize channel routing scenarios
* test(qa): enforce Crabline actor allowlists
* test(qa): preserve canonical flow integration
* test(matrix): use retained topology fixture id
* test(qa): preserve WhatsApp live defaults
* QA: declare channel transport policy in scenarios
* refactor(qa): keep transport policy type local
* refactor(qa): keep transport policy on leaf contract
* test(matrix): use retained routing fixture
2026-07-06 18:35:41 -07:00
Dallin Romney
c1b9e36221
test(qa): migrate channel thread and DM isolation scenarios ( #101112 )
...
* test(qa): migrate channel thread isolation scenarios
* test(qa): remove stale Matrix scenario fixture
* test(qa): use canonical coverage taxonomy ids
* test(qa): preserve Matrix flow runtime identities
* test(qa): expose Slack thread polling helper
* test(qa): select Matrix for native thread smoke
* test(qa): keep Matrix subagent spawn opt-in
* test(qa): target selected live account in scenario patches
2026-07-06 17:52:38 -07:00
Dallin Romney
627f6988a0
test(qa): migrate restart and policy scenarios to yaml ( #101063 )
2026-07-06 11:50:16 -07:00
Dallin Romney
b29d472e41
refactor(qa): add canonical live channel adapters ( #99707 )
2026-07-06 09:24:34 -07:00
Dallin Romney
939f9aeff5
test(qa): record Matrix route state inventory ( #100039 )
2026-07-04 11:48:18 -07:00
Vincent Koc
4d7d34e6a5
fix(qa-matrix): accept final command preview edits
2026-07-01 23:15:33 -07:00
Vincent Koc
75240f4385
fix(qa-matrix): read account state from sqlite
2026-07-01 22:56:12 -07:00
Vincent Koc
3e2646a786
fix(release): use workspace host deps in release lockfile
...
(cherry picked from commit d377c0f910 )
2026-06-30 15:54:12 -07:00
Vincent Koc
66e676d29b
chore(release): close out 2026.6.11 on main
2026-06-30 11:31:08 -07:00
Alix-007
5f86c3a90f
fix(qa-matrix): bound homeserver response reads
...
Bounds Matrix QA homeserver JSON and media upload response reads with existing response-limit helpers.
2026-06-28 20:53:53 -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
932b58b94b
fix(qa): avoid matrix qa artifact collisions
2026-06-23 11:45:29 +02:00
Vincent Koc
03a71f3b46
fix(matrix): prevent double bootstrapCrossSigning reset in forced reset ( #95720 )
...
Merged via squash.
Prepared head SHA: afa7684e4b
Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com >
Co-authored-by: steipete <58493+steipete@users.noreply.github.com >
Reviewed-by: @steipete
2026-06-22 02:45:56 -07:00
Vincent Koc
6be98022da
fix(qa-matrix): surface gateway stderr in failures
2026-06-22 13:55:49 +08:00
Vincent Koc
fe7b78b05f
chore(deadcode): prune stale test hooks
2026-06-22 08:51:49 +08:00
Vincent Koc
735d70d9db
test(extensions): pin Windows taskkill test roots
2026-06-21 11:37:59 +02:00
Vincent Koc
15300291ed
fix(qa-matrix): resolve Windows taskkill path
2026-06-21 11:37:59 +02:00
Vincent Koc
35d7cb0bff
chore(deadcode): remove stale qa-matrix wrappers
2026-06-21 17:10:35 +08:00
Vincent Koc
b06e2f9149
fix(qa-matrix): taskkill scenario cli trees on windows
2026-06-21 08:25:25 +02:00
Vincent Koc
b039e949b6
chore(release): close out 2026.6.9
2026-06-21 12:24:15 +08:00
Vincent Koc
2252674168
fix(qa): reject matrix output symlink escapes
2026-06-20 17:15:45 +02:00
Vincent Koc
4296ecb78c
fix(qa-matrix): clean up killed CLI process groups
2026-06-20 11:50:38 +02:00
Vincent Koc
cb394309fe
fix(qa-matrix): keep timed CLI process groups tracked
2026-06-20 11:41:46 +02:00
Vincent Koc
a085db6b64
fix(qa): release docker health probe bodies
2026-06-20 07:52:33 +02:00
Vincent Koc
beea31a6b5
feat(firecrawl): add keyless scrape support ( #94551 )
...
Merged under maintainer approval while exact-head CI was queue-bound.
Co-authored-by: Developers Digest <124798203+developersdigest@users.noreply.github.com >
Co-authored-by: Vincent Koc <vincentkoc@users.noreply.github.com >
2026-06-19 00:23:41 +08:00
Vincent Koc
ac973a8f60
refactor(qa-matrix): dedupe progress timeout errors
2026-06-18 13:06:41 +08:00
Vincent Koc
2195b446d4
test(qa): align Docker inspect expectations
2026-06-17 15:03:49 +02: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
Ben Badejo
3fc850fe86
fix(matrix): replace recovered command progress lines ( #89920 )
...
* fix(matrix): replace recovered command progress lines
* fix(matrix): replace recovered command progress lines
* fix(matrix): share command progress identity
* fix(channels): share command progress identity
* fix command progress draft replacement
* fix command progress ids without changing public line ids
* test(telegram): assert command progress preview update
* fix(telegram): keep progress preview test typed
---------
Co-authored-by: Benjamin Badejo <ben@benbadejo.com >
Co-authored-by: jesse-merhi <79823012+jesse-merhi@users.noreply.github.com >
2026-06-15 19:14:43 +10:00
Vincent Koc
0766a5c2ec
fix(qa): corrupt Matrix idb state in sqlite
2026-06-10 17:49:59 +09:00
Vincent Koc
87abb8defb
fix(qa): preserve Matrix recovery state in sqlite
2026-06-10 17:35:41 +09:00
Josh Avant
9f48254f09
Fix config.patch explicit array replacement ( #91551 )
...
* fix config patch explicit array replacement
* fix generated config patch protocol model
* fix config patch test helper typing
* fix shared auth patch replacement tests
* update config patch prompt snapshots
* harden qa lab config patch replace paths
2026-06-08 21:48:46 -05:00
Peter Steinberger
e8348c0dc8
refactor(matrix): store sync cache in sqlite
...
Move Matrix sync cache state into plugin SQLite storage, with startup and doctor migrations for readable legacy bot-storage.json files.\n\nVerification: focused Matrix and QA tests passed locally; focused touched-file oxlint and git diff --check passed; autoreview clean. CI failures are current main/unrelated: lint/type/madge/gateway-watch issues outside the Matrix diff.
2026-06-06 22:17:41 -07:00
Peter Steinberger
2514980118
feat(matrix): handle voice preflight and threads ( #90415 )
...
* feat(matrix): handle voice preflight and threads
Co-authored-by: Frank Dierolf <frank_dierolf@web.de >
Co-authored-by: marc.wilson <marcwilson@gazasrv15i5.globaladvisors.biz >
* test(matrix): satisfy ci guards
* fix(matrix): preserve thread relations on edits
* chore: annotate deprecated compatibility aliases
* fix(matrix): include poll thread roots in reads
* test(matrix): enable audio preflight qa config
* test(matrix): make voice preflight QA mention deterministic
---------
Co-authored-by: Frank Dierolf <frank_dierolf@web.de >
Co-authored-by: marc.wilson <marcwilson@gazasrv15i5.globaladvisors.biz >
2026-06-05 08:49:35 -07:00
Peter Steinberger
96e5812426
docs: document medium extension sources
2026-06-04 21:33:54 -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