Peter Steinberger
c648ed0299
test(release): harden prerelease timing contracts ( #104606 )
...
* test(release): harden prerelease timing contracts
* test(whatsapp): satisfy task barrier lint
2026-07-11 11:11:31 -07:00
Peter Steinberger
934a974c29
feat(slack): support native data visualizations ( #104539 )
2026-07-11 09:18:39 -07:00
Peter Steinberger
03cab29505
feat(cloud-workers): worker bundle production, pinned SSH bootstrap, and admission handshake ( #104532 )
...
* feat(gateway-protocol): add worker admission handshake
* feat(cloud-workers): build and bootstrap worker bundles
* feat(cloud-workers): wire bootstrap lifecycle
* fix(cloud-workers): state host-key TOFU fallback without warning-comment suppression
* test(cloud-workers): assemble host-key fixture to satisfy review secret scanner
* test(cloud-workers): assemble redaction fixture to satisfy review secret scanner
* fix(cloud-workers): require pinned SSH host keys
* fix(state): add ssh_host_key to additive worker_environments migration
2026-07-11 08:14:30 -07: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
Peter Steinberger
e681646834
feat(cloud-workers): add crabbox worker provider plugin and profile-aware lease lifecycle ( #104465 )
...
* feat(cloud-workers): add Crabbox worker provider
* docs(cloud-workers): document Crabbox profiles
* chore(cloud-workers): drop changelog entry (release-only file)
* refactor(plugin-sdk): pass profiles to worker lease lifecycle
* docs(plugin-sdk): document worker lifecycle profiles
* chore(docs): regenerate plugin inventory, docs map, and sdk baseline after rebase
* fix(cloud-workers): state crabbox key-ref gap without warning-comment suppressions
2026-07-11 05:51:56 -07:00
Peter Steinberger
90e465833b
feat(gateway): durable cloud worker environments, provider SDK contract, and lifecycle RPCs ( #104401 )
...
* docs(plan): add cloud workers design plan
* feat(plugin-sdk): add cloud worker provider foundations
* feat(protocol): add worker environment lifecycle shapes
* feat(gateway): persist worker environment lifecycles
* test(gateway): pin environment inventory assertion for damaged worker store
* style(cloud-workers): satisfy lint and docs formatting
* fix(gateway): narrow worker environment type boundaries
* chore(plugin-sdk): account for WorkerProvider surface growth
* docs: regenerate docs map
2026-07-11 04:54:27 -07:00
xingzhou
af80736057
fix(qa-lab): keep bounded web snapshots UTF-16 safe ( #104249 )
...
* fix(qa-lab): keep bounded web snapshots UTF-16 safe
* fix(qa-lab): keep diagnostic truncation UTF-16 safe
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-11 04:49:00 -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
dce871540b
test(qa): consolidate web search scenario ( #104280 )
...
Co-authored-by: Jimmy Puckett <jimmy.puckett@spinen.com >
2026-07-11 00:54:15 -07:00
Peter Steinberger
afa3212e90
fix(release): stage Telegram QA inside runtime root ( #104125 )
2026-07-10 22:39:09 -07:00
Peter Steinberger
feae1faf06
fix(release): expose Telegram launcher failures safely ( #104099 )
...
* fix(release): expose Telegram launcher failures safely
* test(release): prove namespace launcher diagnostics
2026-07-10 20:03:36 -07:00
Peter Steinberger
dba64d574f
chore(release): set version to 2026.7.2
2026-07-11 04:00:49 +01:00
lsr911
9dee9ebffa
fix(qa-lab): use truncateUtf16Safe for tool search gateway and mock OpenAI text truncation ( #103219 )
...
* fix(qa-lab): use truncateUtf16Safe for tool search and mock OpenAI text truncation
Replace naive .slice(0, N) with truncateUtf16Safe() in:
- tool-search-gateway.fixture.ts: 4 sites (provider input snippet,
tool output snippet, gateway output text for normal/code lanes)
- mock-openai/server.ts: 1 site (tool output evidence snippet)
LLM output text may contain non-BMP characters (emoji, CJK
extension characters). Naive .slice(0, N) at a surrogate pair
boundary produces a lone surrogate.
Co-Authored-By: Claude <noreply@anthropic.com >
* test: add proof script for qa-lab UTF-16 safe truncation at all boundaries
* test(qa-lab): integrate UTF-16 boundary coverage
Co-authored-by: lsr911 <liao.shirong@xydigit.com >
---------
Co-authored-by: Claude <noreply@anthropic.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-10 23:26:42 +01: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
Vincent Koc
2a1d6e49d5
fix(ci): run Telegram release QA from trusted harness ( #103207 )
...
* fix(ci): use trusted Telegram QA harness
* fix(ci): restrict trusted Telegram QA candidate
* fix(ci): isolate trusted Telegram QA candidate
* fix(ci): harden Telegram QA process boundary
* fix(ci): pass Telegram QA release gates
* test(qa): stub Telegram env explicitly
* fix(ci): harden Telegram release QA boundary
* test(ci): harden trusted workflow and memory guards
2026-07-10 11:32:24 -07:00
cavit99
5e250aac74
fix: A2A handoffs can duplicate message-tool replies ( #97259 )
...
* fix: stop A2A source-reply mirror duplicates
* fix(agents): harden A2A reply extraction
* fix(agents): preserve internal A2A source replies
* test(gateway): assert A2A mirror projection precisely
* test(agents): complete A2A payload fixtures
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-10 18:05:51 +01:00
Dallin Romney
0b9c2e6f95
fix(qa): simplify smoke lanes and isolate fanout ( #102262 )
...
* fix(qa): simplify smoke lanes and isolate fanout
* ci: re-enable repaired QA smoke lanes
* ci: split Crabline smoke into three shards
* ci: eliminate repeated QA smoke builds
* fix(qa): focus control ui smoke scenario
* ci(qa): remove smoke worker launch delay
* ci(qa): bound automatic smoke coverage
2026-07-10 09:48:40 -07:00
Vincent Koc
155e196e22
fix(release): preserve beta validation evidence ( #103796 )
...
* fix(release): proxy upgrade fixtures to npm
(cherry picked from commit 30f54a5fe1 )
* fix(release): require installer doctor evidence
(cherry picked from commit 0782a94452 )
* test(qa): scope aborted restart outcome to Codex
(cherry picked from commit ac54f80430 )
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-10 09:05:14 -07:00
Peter Steinberger
fbcb7812cb
test(qa): wait for durable webchat transcript ( #103718 )
2026-07-10 15:08:47 +01:00
Peter Steinberger
9ef833f4ed
test(qa): require web fetch after discovery ( #103685 )
2026-07-10 14:01:10 +01:00
Peter Steinberger
5a451f92f9
test(qa): accept structured gateway restart outcomes ( #103681 )
2026-07-10 13:57:59 +01:00
Peter Steinberger
4cc5304178
test(qa): derive smoke scenario coverage ( #103656 )
2026-07-10 12:28:02 +01:00
Peter Steinberger
7b03a2ae20
test(qa): model non-assistant parity usage ( #103650 )
2026-07-10 12:12:28 +01:00
Peter Steinberger
74717f6a5a
fix(qa): keep retry passes terminally successful ( #103635 )
...
Refs #103631
2026-07-10 11:42:13 +01:00
Peter Steinberger
4bc300843d
fix(qa): keep runtime parity tiers flow-compatible ( #103609 )
...
* fix(qa): keep runtime parity tiers flow-compatible
Refs #103588
* test(qa): follow canonical frontier defaults
2026-07-10 10:51:13 +01:00
Peter Steinberger
ab5d143d59
feat(openai): default new setups to GPT-5.6 ( #103581 )
...
* feat(openai): default fresh setup to GPT-5.6
* test(crestodian): expect GPT-5.6 Codex defaults
* test(crestodian): expect GPT-5.6 bootstrap default
2026-07-10 10:22:58 +01:00
Eva
ae63a48e94
fix(auto-reply): recover stranded message-tool finals by default ( #99536 )
...
In messages.visibleReplies "message_tool" sessions, a successful agent turn that produced a substantive private final without calling message(action=send) previously left the user with silence and only an operator log. The gateway now enqueues one protected front-of-queue retry prompting the model to deliver the reply, and falls back to a sanitized visible diagnostic when the retry cannot be enqueued or also strands. Queue overflow protection is unified with the in-flight-aware drop policy (skip in-flight or protected items, reject when nothing is droppable), rejected overflow no longer refreshes the drain debounce, heartbeat turns are excluded from recovery, and recovery retries no longer share the client turn's queued-turn lifecycle.
Fixes #85714
Thanks to Eva (@100yenadmin) for the contribution.
2026-07-10 14:01:01 +05:30
Peter Steinberger
54009c15bb
improve(qa): verify native Slack chart delivery ( #103337 )
...
* test(qa): prove Slack native chart delivery
* test(qa): exercise Slack chart verifier through scenario
* fix(build): bound private QA SDK declarations separately
* fix(qa): normalize Slack chart history whitespace
2026-07-10 06:58:33 +01:00
Peter Steinberger
743422217e
fix(qa): normalize malformed JSON errors ( #102830 )
...
Co-authored-by: ZengWen-DT <ceng.wen@xydigit.com >
2026-07-09 15:40:27 +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
wangmiao0668000666
6433b82723
fix(qa-lab): surface gateway child stream failures ( #102104 )
...
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-09 10:28:32 +01:00
Vincent Koc
238be4b849
test(release): refresh beta3 gate expectations
2026-07-08 15:55:50 -07:00
Vincent Koc
757d7a0de3
refactor(qa-lab): localize orchestration declarations ( #102005 )
2026-07-07 20:50:07 -07:00
Vincent Koc
082bd45130
refactor(qa-lab): localize utility types ( #101990 )
2026-07-07 20:20:53 -07:00
Vincent Koc
a24f15dc4d
refactor(qa-lab): localize evidence summary schemas ( #101987 )
2026-07-07 20:09:00 -07:00
Vincent Koc
7498c4dd6c
refactor(qa-lab): localize confidence report types ( #101980 )
2026-07-07 19:54:03 -07:00
Vincent Koc
e242c61400
refactor(deadcode): localize extension helpers ( #101860 )
2026-07-07 12:12:32 -07:00
Vincent Koc
fdc7892a6e
refactor: localize internal implementation types ( #101731 )
2026-07-07 07:41:04 -07:00
xingzhou
de152b1f65
fix(plugin-sdk): align speech runtime packaging ( #89899 )
...
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-07 07:38:41 +01:00
Dallin Romney
3175d8e742
refactor(qa): drive Matrix lifecycle through channel drivers ( #101055 )
...
* test(matrix): add substrate lifecycle contract
* fix(matrix): satisfy lifecycle dependency gates
* refactor(matrix): keep Crabline lifecycle in adapter
* refactor(qa): select Matrix lifecycle by driver lane
* refactor(matrix): keep lifecycle helpers test-only
* refactor(qa): drive Matrix lifecycle through channel drivers
2026-07-06 23:13:21 -07:00
cxbAsDev
08349608f2
QA-lab credentials-admin response bound ( #101131 )
...
* fix(qa-lab): bound credentials admin response reads
* test(qa-lab): verify streamed response cancellation
Co-authored-by: 陈宪彪0668000387 <chen.xianbiao@xydigit.com >
* test(qa-lab): satisfy cleanup callback lint
Co-authored-by: 陈宪彪0668000387 <chen.xianbiao@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-07 04:56:07 +01:00
Ayaan Zaidi
107a9d6d9b
fix(qa-lab): skip runtime-context carrier in mock last-user matching
2026-07-06 20:34:01 -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
Peter Steinberger
aed2482292
fix(qa): restore automatic smoke coverage across channels ( #101186 )
...
* fix(qa): restore channel-sharded smoke coverage
Co-authored-by: Peter Steinberger <steipete@gmail.com >
Co-authored-by: Dallin Romney <dallinromney@gmail.com >
* fix(qa): restore channel-sharded smoke coverage
* fix(qa): restore channel-sharded smoke coverage
* fix(qa): restore channel-sharded smoke coverage
---------
Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com >
Co-authored-by: Dallin Romney <dallinromney@gmail.com >
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-07-06 17:09:40 -07:00
Dallin Romney
95e3b9243b
test: execute media and Talk runtime boundaries ( #101091 )
...
* test: execute media and Talk runtime boundaries
* test(qa): centralize gateway fixture startup
* test(qa): check in voice call plugin fixture
2026-07-06 16:25:33 -07:00
Dallin Romney
19491fe34c
Revert "fix(qa): keep smoke profile on one channel ( #101173 )" ( #101184 )
...
This reverts commit b773f7981a .
2026-07-06 13:29:07 -07:00
Dallin Romney
b773f7981a
fix(qa): keep smoke profile on one channel ( #101173 )
2026-07-06 13:26:58 -07:00
Dallin Romney
66b4dcf184
chore(docker): execute Compose and package artifact proofs ( #101045 )
...
* test(docker): prove Compose and package artifacts
* test(docker): use bounded container cleanup
* test(docker): bound package proof launch
* test(qa): keep Docker artifact proofs release-only
* test(docker): simplify artifact proof names
* test(docker): satisfy identity writer lint
2026-07-06 13:05:34 -07:00
Dallin Romney
2f7299eaa5
test(qa): add provider runtime evidence ( #101051 )
2026-07-06 13:01:32 -07:00