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
deb682abfe
refactor(plugins): consolidate extension runtime helpers ( #118509 )
...
* refactor(plugins): consolidate extension runtime helpers
* fix(ci): satisfy extension type and lint checks
* chore(plugin-sdk): regenerate API baseline for #118509
2026-08-03 02:56:43 -07:00
Peter Steinberger
e98fdeefdf
refactor(errors): consolidate message formatting ( #117818 )
2026-08-01 22:05:49 -07:00
Peter Steinberger
4ec46e0ff1
fix(qa-lab): support groups and isolate thread timelines ( #116803 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-07-31 04:54:03 -07:00
Dallin Romney
9310586b09
fix(qa-lab): unify runner control plane ( #112838 )
2026-07-27 14:05:14 +08:00
QiuYuang
4a7b1d9a1c
fix(qa-lab-web): guard dashboard json responses ( #108943 )
...
* fix(qa-lab-web): guard dashboard json responses
* fix(qa-lab-web): remove global json size cap
* test(qa-lab-web): cover production json routes
* fix(qa-lab-web): satisfy json guard checks
* test(qa-lab-web): cover JSON media contracts
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-20 23:12:46 -07:00
Dallin Romney
8924e27bb6
refactor(qa): keep synthetic UX evidence out of scenario catalog ( #109315 )
...
* refactor(qa): keep UX evidence producer out of catalog
* test(qa): preserve UX producer runner integration
2026-07-16 13:51:18 -07:00
Peter Steinberger
bae9752c5a
refactor(deadcode): enforce repository hard zero ( #108641 )
2026-07-15 22:40:00 -07:00
Josh Avant
2cc04c205f
fix(qa-channel): bind message actions to authorized targets ( #108433 )
...
* fix(qa-channel): bind message actions to authorized targets
* fix(qa-channel): close target-binding review gaps
* fix(qa-lab): preserve conversation identity in snapshots
* fix(qa-channel): canonicalize scoped targets
* fix(qa-channel): unify target parsing
* fix(qa-channel): close review gaps
2026-07-15 14:36:20 -07:00
Alix-007
e9d76ae2a7
fix(qa-lab): prevent dashboard API hangs ( #107701 )
2026-07-14 20:45:57 -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
16ff48c729
refactor(time): trust pretty-ms defaults
2026-07-14 01:15:43 -07:00
Peter Steinberger
e0facfcf9a
refactor(qa-lab): split web UI renderer ( #106537 )
...
* refactor(qa-lab): split web UI renderer
* refactor(qa-lab): split web UI renderer
2026-07-13 09:21:29 -07:00
Peter Steinberger
adf6b08ab4
refactor: consolidate duration parsing and formatting ( #105988 )
...
* refactor: consolidate duration handling
* docs: leave release notes to release workflow
* fix: preserve build timing precision
* ci: align plugin sdk surface budgets
2026-07-12 23:38:22 -07:00
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
fa77fe10d5
chore: migrate active GPT-5.5 references to GPT-5.6 ( #104452 )
...
* chore(models): migrate active GPT-5.5 references
* test(workboard): expect GPT-5.6 Sol default
* chore: keep release notes in PR body
* test(models): align picker fixtures with Sol default
* test: update PDF default model expectation
* test(qa): migrate thinking smoke to Luna
* test(gateway): align mock catalog with Sol default
* ci: retrigger exact-head PR checks
* test(gateway): document default catalog invariant
2026-07-11 06:30:57 -07:00
xingzhou
4257875448
fix(qa-lab): keep saved view text truncation UTF-16 safe ( #103789 )
...
* fix(qa-lab): keep saved view text truncation UTF-16 safe
* refactor(qa-lab): use semantic truncation helper
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-10 23:10:53 +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
Vincent Koc
78d1b4a9b3
fix(qa): remove personal capture CA path
2026-06-20 05:27:21 +02:00
Vincent Koc
33a4845555
fix(qa): redact capture payload previews
2026-06-20 05:24:09 +02:00
Dallin Romney
e12cf72b17
Standardize QA coverage IDs on dotted names ( #94702 )
...
* fix: standardize qa coverage ids
* test: avoid qa coverage id assertion spread
2026-06-18 17:25:26 -07:00
Colin Johnson
c677424edb
qa-lab: add evidence artifact gallery ( #94283 )
...
* qa-lab: add evidence artifact gallery
* qa-lab: harden evidence gallery artifacts
* qa-lab: share evidence gallery view types
* qa-lab: disable evidence preview caching
* refactor(qa-lab): resolve evidence artifacts once and trim gallery render/test duplication
* fix(qa-lab): build evidence model before sending /api/evidence success headers
---------
Co-authored-by: Dallin Romney <dallinromney@gmail.com >
2026-06-18 12:17:46 -07:00
Peter Steinberger
58912f8fd8
docs: document channel extension sources
2026-06-04 21:59:00 -04:00
Peter Steinberger
2df95c0b10
chore(lint): enable no-misused-promises
2026-05-31 20:42:13 +01:00
Peter Steinberger
304e2c83c0
chore(lint): enable stricter oxlint rules
2026-05-31 18:59:02 +01:00
Peter Steinberger
deb7bc6539
chore(lint): enable readability lint rules
2026-05-31 07:17:57 +01:00
Vincent Koc
81a578fd6b
fix(qa-lab): validate capture saved views
2026-05-17 06:28:57 +08:00
Peter Steinberger
fd4bee9c05
refactor: trim qa lab helper exports
2026-05-01 18:37:30 +01:00
Peter Steinberger
6b3e4b88d6
test: update QA parity fixtures for GPT-5.5
2026-04-25 18:05:28 +01:00
Vincent Koc
01bf61fcfd
fix(media): remove express from media host ( #71436 )
...
* fix(media): remove express from media host
* fix(media): harden media host responses
* fix(msteams): stage express runtime dependency
* fix(browser): align profile facade exports
* fix(msteams): keep setup entry narrow
* fix(types): satisfy extension setup gates
* fix(msteams): use generic setup config type
2026-04-25 01:39:42 -07:00
Peter Steinberger
0b0662b1c9
chore: apply extension lint cleanups
2026-04-23 05:30:49 +01:00
Peter Steinberger
057fe786bd
style: apply formatter drift
2026-04-11 21:25:24 +01:00
HDYA
26f633b604
feat(msteams): add federated credential support (certificate + managed identity) ( #53615 )
...
* feat(msteams): add federated authentication support (certificate + managed identity + workload identity)
* msteams: fix vitest 4.1.2 compat, type errors, and regenerate config baseline
* msteams: fix lint errors, update fetch allowlist, regenerate protocol Swift
* fix(msteams): gate secret-only delegated auth flows
* fix(ci): unblock gateway watch and install smoke
* fix(ci): restore mergeability for pr 53615
* fix(ci): restore channel registry helper typing
* fix(ci): refresh raw fetch guard allowlist
---------
Co-authored-by: Chudi Huang <Chudi.Huang@microsoft.com >
Co-authored-by: Brad Groux <3053586+BradGroux@users.noreply.github.com >
2026-04-11 13:29:22 -05:00
Tak Hoffman
958c34e82c
feat(qa-lab): Add proxy capture stack and QA Lab inspector ( #64895 )
...
* Add proxy capture core and CLI
* Expand transport capture coverage
* Add QA Lab capture backend
* Refine QA Lab capture UI
* Fix proxy capture review feedback
* Fix proxy run cleanup and TTS capture
* Fix proxy capture transport follow-ups
* Fix debug proxy CONNECT target parsing
* Harden QA Lab asset path containment
2026-04-11 12:34:57 -05:00
Peter Steinberger
c0aed59fca
refactor: move qa suite definitions into markdown
2026-04-07 23:39:50 +01:00
Vincent Koc
18fb171179
feat(qa): add frontier harness bakeoff loop
2026-04-07 20:32:41 +01:00
Peter Steinberger
524951e124
fix(ci): route qa-lab web imports through package barrels
2026-04-07 10:24:02 +01:00
Peter Steinberger
f2494aa33f
feat: streamline qa lab live runs
2026-04-07 10:05:49 +01:00
Peter Steinberger
124cd5e307
feat: auto-reload qa lab fast refresh
2026-04-07 09:54:59 +01:00
Peter Steinberger
36aeef30c2
style: add padding to qa lab scenario list
2026-04-07 09:45:11 +01:00
Peter Steinberger
1baf5533aa
feat(qa-lab): add Clawfather/Claw avatars and live-watch mode for scenario runs
2026-04-07 09:24:26 +01:00
Peter Steinberger
282188a326
fix(qa-lab): widen sidebar to 360px and allow scenario titles to wrap
2026-04-07 09:21:25 +01:00
Peter Steinberger
0e51f2f2ab
fix(qa-lab): set themed background on app-shell so light mode covers dark body
2026-04-07 09:04:37 +01:00
Peter Steinberger
7a2abb1c50
fix: stabilize qa lab docker builds
2026-04-07 06:06:29 +01:00
Peter Steinberger
a03e430248
refactor: dedupe core error helpers
2026-04-07 05:06:54 +01:00
Peter Steinberger
9f4c2caf06
fix(qa-lab): skip render when poll data unchanged and use dropdown model selectors
2026-04-06 19:25:51 +01:00
Peter Steinberger
0cebe9d593
fix(qa-lab): add Slack-style chat sidebar and fix light mode theming
2026-04-06 19:21:24 +01:00
Peter Steinberger
a47c49bbf3
feat(qa-lab): redesign UI with sidebar layout, Slack-like chat, and light/dark mode
2026-04-06 18:21:33 +01:00
Peter Steinberger
350238d402
feat: add interactive qa lab suite runner
2026-04-06 17:23:35 +01:00
Peter Steinberger
514328a9ad
style(repo): format touched helpers and tests
2026-04-06 16:16:10 +01:00