Commit Graph

67697 Commits

Author SHA1 Message Date
Vincent Koc
7de8c1ab1c perf(ci): balance compact whole test jobs 2026-07-11 21:29:40 +08:00
Peter Steinberger
fe261b0f59 chore(tooling): typecheck root test/** with a dedicated tsgo lane (#104475)
* chore(types): add declaration files for scripts/lib and scripts/e2e modules

* chore(types): add declaration files for top-level script modules (a-m)

* chore(types): add declaration files for top-level script modules (n-z)

* test: use a non-secret-shaped gateway token fixture

* test: type ci workflow guard helpers for the root test lane

* chore(tooling): typecheck root test/** with a dedicated tsgo lane

- test/tsconfig/tsconfig.test.root.json: root-test program (strict unused checks,
  fixtures excluded; two Docker E2E clients that import built dist/** stay out,
  same rationale as the scripts/e2e exclusion in tsconfig.scripts.json)
- tsgo:test:root wired into tsgo:test, check:test-types, scripts/check.mjs, and
  the ci.yml test-types shard, mirroring the tsgo:scripts lane (#104348)
- changed-lane routing: test/**/*.ts (excluding fixtures) and the lane tsconfig
  now trigger 'typecheck test root' in check:changed; previously test/ paths ran
  lint only, so harness type errors surfaced first in CI (#104287 envDir case)
- burn down all 1071 latent type errors in the program: precise param/local
  types across test/scripts, test/vitest, test/e2e, and transitive scripts/e2e
  program members; 205 sibling .d.mts declaration files for imported .mjs
  modules (committed separately); zero any, zero ts-expect-error
- resolve the pre-existing testing star-export ambiguity in
  scripts/e2e/parallels/common.ts with an explicit re-export

Closes #104388

* chore(types): correct declaration fidelity per structured review

- re-derive 51 .d.mts files from implementation data flow instead of
  initializers: fix a wrong never return (runTestProjectsDelegation returns
  the child), add encoding-sensitive exec/spawn overloads (plain-gh), restore
  the full release profile union, make parsed paths string | null, add missing
  parseArgs fields via help/non-help unions, add a missing sibling declaration
  (budget-number-args), drop 15 unused lint directives
- precise install-record/tuple typing removes the type-aware oxlint
  regressions the first declarations caused in scripts/e2e implementations
- route .mts declaration edits under test/ to the testRoot lane and reference
  the test-root project from tsconfig.projects.json so tsgo:all covers it
  (closes both review findings against the lane wiring)

* chore(scripts): keep telegram runner dist typing structural for the boundary guard

* chore(types): declare runtime pack and gateway readiness exports added on main

* test: pin the importTargetPlan form of the plugin-contract plan import

The guard expectation still referenced the raw await import( form that
7ae5996bb3 (#103975) replaced with the importTargetPlan fallback helper;
the assertion fails on current main.
2026-07-11 06:15:41 -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
qingminlong
a66d2959e9 fix(onboard): wait for gateway warnings before installing service (#104173)
* fix(onboard): wait for gateway warnings before installing service

* fix(onboard): show gateway warnings after plan errors

* refactor(onboard): drain install warnings from queue

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-11 05:49:34 -07:00
Peter Steinberger
3f33f0bb5f refactor(qqbot): adopt core typing keepalive loop with budget accounting intact (#104438)
* refactor(channels): adopt core typing keepalive loop

* chore(plugin-sdk): pin surface budget for typing keepalive re-export
2026-07-11 05:48:33 -07:00
Peter Steinberger
7ae5996bb3 fix(ci): validate older release targets (#103975)
* fix(ci): support older release targets

* fix(ci): guard optional channel contracts

* fix(ci): scope legacy release compatibility
2026-07-11 05:44:49 -07:00
qingminlong
02560243f3 fix(agents): truncate multibyte middleware details at byte limit (#104156)
* fix(agents): bound multibyte middleware details by bytes

* refactor(agents): bound middleware detail byte sizing

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-11 05:39:50 -07:00
Peter Steinberger
05aecc1d6f feat: show Codex transcripts in the sidebar (#104437)
* feat: show Codex transcripts in sidebar

* fix: clear Codex sidebar on Gateway switch

* chore: leave release notes to release workflow

* chore: refresh native i18n inventory

* fix: satisfy macOS Codex node lint

* fix: refresh native localization inventory

* docs: refresh documentation map

* chore: refresh UI locale metadata
2026-07-11 05:39:29 -07:00
haruai
597de699d0 fix: route node policy plugin approvals (#98561)
* fix: route node policy plugin approvals

* refactor(gateway): simplify node approval routing

* fix(gateway): preserve node approval routes

* chore(protocol): refresh node invoke model

---------

Co-authored-by: haruaiclone-droid <281899875+haruaiclone-droid@users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-11 05:37:45 -07:00
Vincent Koc
4977dc7897 improve(ci): let Kova own diagnostic build profiles (#104459)
* perf(ci): delegate Kova build profile selection

* fix(ci): repin Kova diagnostic contract
2026-07-11 20:35:06 +08:00
pick-cat
0ca6880f3d fix(tools): reject malformed availability expressions (#92411)
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-11 05:32:22 -07:00
qingminlong
3ed8143495 fix(gateway): cap history when numeric limit is huge (#104263)
* fix(gateway): cap oversized history limits

* refactor(gateway): simplify oversized history limits

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-11 05:24:54 -07:00
Peter Steinberger
a4ee15a851 fix(release): validate Telegram launcher syntax (#104455) 2026-07-11 05:13:44 -07:00
qingminlong
08da0d3861 fix(code-mode): report UTF-8 API file byte counts (#104244)
* fix(code-mode): report UTF-8 API file byte counts

* fix(code-mode): report UTF-8 API file byte counts

* chore(changelog): keep release notes release-owned

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-11 05:10:46 -07:00
Peter Steinberger
b2a6408964 build(android): eliminate Gradle and manifest warnings (#104451) 2026-07-11 05:08:45 -07:00
Peter Steinberger
1285fd6db4 fix(whatsapp): keep pre-connect recovery replayable (#104450) 2026-07-11 05:03:59 -07:00
Ayaan Zaidi
f02673882c fix(agents): keep CLI terminal-reason classification non-throwing
Run errors can expose hostile getters; classification must not replace the
original failure or suppress its terminal event. Matches the containment
contract of isProviderTimeoutError in the same module.
2026-07-11 17:32:13 +05:30
Ayaan Zaidi
d3a8eb8a1c refactor(agents): converge CLI tool terminal reason onto run-termination
One shared resolveCliToolTerminalReason owns the timed_out/cancelled/failed
decision for one-shot and live CLI runners; abort-signal lifecycle fields are
authoritative, error shape is the fallback. Deletes both local derivations.
Fixes live-path drift where a timeout abort delivered as a generic AbortError
was reported as cancelled instead of timed_out.

Part of #104219 (seam 3).
2026-07-11 17:32:13 +05:30
Peter Steinberger
5325c4a786 feat(ui): redesign queued-message list as compact composer-width rows (#104445) 2026-07-11 04:59:14 -07:00
xingzhou
745cfc028e fix(codex): bound shared app-server startup waits (#89442)
* fix(codex): isolated cron reports Codex startup stalls

* fix(codex): isolated cron reports Codex startup stalls

* fix(codex): bound shared app-server startup waits

Co-authored-by: 张贵萍0668001030 <zhang.guiping@xydigit.com>

* test(codex): satisfy startup lifecycle checks

* test(codex): align deferred auth test type

* test(codex): type auth mock as async void

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-11 04:58:55 -07:00
Vincent Koc
2d1a8bd6df perf(ci): build focused Kova runtime package 2026-07-11 19:57:54 +08:00
Vincent Koc
451d6314fc refactor(build): expose prepack finalization 2026-07-11 19:57:54 +08:00
Peter Steinberger
9523a52871 fix(ui): stop sidebar session sections from painting over each other in short windows (#104447) 2026-07-11 04:57:15 -07:00
Peter Steinberger
6c415c44c9 refactor(ui): style the new-session draft as the chat composer shell (#104448)
* refactor(ui): style new-session draft as the chat composer shell

* fix(ui): guard new-session Enter send against IME keyCode 229
2026-07-11 04:55:53 -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
llagy007
6036413766 fix(plugins): honor empty document extractor scope (#103731)
* fix(plugins): honor empty document extractor scope

* fix(plugins): honor empty document extractor scope

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-11 19:52:19 +08: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
NianJiu
d85e8a5f23 fix(android): restore sticky node service (#104226)
Co-authored-by: NianJiuZst <180004567+NianJiuZst@users.noreply.github.com>
2026-07-11 04:45:43 -07:00
NianJiu
26dc42aa37 fix(android): cancel expired node invokes (#104225)
Co-authored-by: NianJiuZst <180004567+NianJiuZst@users.noreply.github.com>
2026-07-11 04:43:00 -07:00
Peter Steinberger
651aab87f3 fix(release): wait for Telegram proc visibility (#104439) 2026-07-11 04:40:27 -07:00
Peter Steinberger
d5fe0c5e73 feat(ui): multi-select sessions in the sidebar with batch menu actions (#104416)
* feat(ui): multi-select sessions in the sidebar with batch menu actions

* chore(i18n): sync locale bundles for sidebar multi-select strings

* docs(control-ui): document sidebar session multi-select and batch menu
2026-07-11 04:38:05 -07:00
Peter Steinberger
1d84acf2c3 test(macos): remove Swift warning and timing flake (#104434) 2026-07-11 04:30:35 -07:00
Peter Steinberger
2d319961d5 fix(browser): block interaction-triggered navigation SSRF (#104254)
* fix(browser): guard interaction navigation requests

* fix(browser): preserve pages on blocked navigation

* fix(browser): enforce interaction navigation policy

* test(browser): type navigation guard fixtures

* fix(browser): execute guarded wait predicates

* style(browser): satisfy interaction lint

* fix(browser): guard hover drag and scroll navigation

* fix(browser): type policy check outcomes

* test(browser): type navigation guard mocks

* fix(browser): preserve proxy policy for guarded interactions

* fix(browser): carry navigation policy through actions

* fix(browser): retain policy for existing-session guards

* fix(browser): guard existing-session waits

* test(browser): avoid shadowed guard pages

* fix(browser): expose scroll action to agents

* fix(browser): disable speculative managed preconnects

* docs(browser): bound managed preconnect hardening

* fix(browser): keep wait behavior outside interaction guards

* chore(browser): leave release notes to release automation

* fix(browser): guard all interaction navigations
2026-07-11 04:30:33 -07:00
Peter Steinberger
3902adf9f6 refactor(channels): adopt core retryAsync for hand-rolled retry loops (#104431) 2026-07-11 04:30:21 -07:00
Peter Steinberger
5a26748c3e fix(commitments): isolate extraction batches by agent (#104426)
* fix(commitments): isolate extraction batches by agent

* chore: leave release notes to release workflow
2026-07-11 04:23:30 -07:00
llagy007
cba9ffb177 fix(memory): skip blank search provider bootstrap (#103728)
* fix(memory): skip blank search provider bootstrap

* refactor(memory): simplify blank search preflight

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
Co-authored-by: Peter Steinberger <peter@steipete.me>
2026-07-11 04:19:40 -07:00
Peter Steinberger
c49e5c480d fix(agents): keep exec finalization suspension-safe (#104419) 2026-07-11 04:16:21 -07:00
Vincent Koc
cce2d39d0c fix(ci): preserve performance target compatibility 2026-07-11 19:13:52 +08:00
Vincent Koc
163227a0af perf(ci): use source performance build profile 2026-07-11 19:13:52 +08:00
Vincent Koc
6013e78f5a perf(build): add source performance profile 2026-07-11 19:13:52 +08:00
Peter Steinberger
234e8f4fae test(discord): exercise multipart proxy fetch path (#104421) 2026-07-11 04:13:00 -07:00
Peter Steinberger
93fcfa40ee fix(release): wait for Telegram proc marker (#104418) 2026-07-11 04:12:44 -07:00
llagy007
f8aa995856 fix(google-meet): validate chrome node policy params (#103752) 2026-07-11 04:00:28 -07:00
Peter Steinberger
8756cc4a3b fix(googlechat): keep off-mode replies out of threads (#104402)
* fix(googlechat): align reply and typing targets

Co-authored-by: Jai Govindani <jai.g@ewa-services.com>

Co-authored-by: Neerav Makwana <261249544+neeravmakwana@users.noreply.github.com>

Co-authored-by: banddude <127166397+banddude@users.noreply.github.com>

Co-authored-by: Novan Adrian <novan.adrian@qasir.id>

* chore(googlechat): leave changelog to release automation

* style(googlechat): apply canonical formatting

* chore(googlechat): leave changelog to release automation

* style(googlechat): keep monitor imports canonical

* style(googlechat): keep monitor imports canonical

---------

Co-authored-by: Novan Adrian <novan.adrian@qasir.id>
2026-07-11 03:57:16 -07:00
qingminlong
b322a8e311 fix(gateway): stop watch result after invalid body (#104293) 2026-07-11 03:57:07 -07:00
Peter Steinberger
fe608a8dcb fix(ui): give sidebar build chip breathing room from the status dot (#104411) 2026-07-11 03:56:15 -07:00
Peter Steinberger
b4a9a4c3d4 fix(mac): silence lock result warning (#104408) 2026-07-11 03:53:28 -07:00
Peter Steinberger
cfd2dc2346 fix(telegram): mark durable webhook acceptance (#104407) 2026-07-11 03:51:39 -07:00
Peter Steinberger
7ec0d4abb8 chore: update Peekaboo to 3.9.0 (#104398)
* build(macos): update Peekaboo to 3.9.0

* chore: keep release notes in PR body

* fix(macos): trust current Peekaboo release signers
2026-07-11 03:44:13 -07:00
Peter Steinberger
591bb49d67 fix(release): tolerate exited Telegram proc probe (#104400) 2026-07-11 03:40:56 -07:00