Commit Graph

77481 Commits

Author SHA1 Message Date
Peter Steinberger c70aee247e refactor(scripts): migrate JavaScript tools to TypeScript (#121005)
* refactor(scripts): migrate JavaScript tools to TypeScript

* fix(ci): keep changed-scope preflight zero-install

* fix(ci): preserve zero-install script owners

* fix(ci): complete script migration follow-through

* fix(release): keep stable closeout zero-install

* fix(scripts): preserve standalone execution boundaries

* fix(scripts): repair standalone loader boundaries

* fix(scripts): normalize gateway observation ids

* fix(scripts): keep Docker packager standalone

* test(scripts): preserve rebase cleanup helpers

* test(sessions): use tracked temp directory
2026-08-09 07:21:35 -07:00
Peter Steinberger 2433fa213c fix(cron): preserve canonical failure alert routes (#116933) 2026-08-09 07:17:56 -07:00
Peter Steinberger 00194139ba refactor(providers): consolidate contract fixtures (#114424) 2026-08-09 07:07:47 -07:00
Peter Steinberger 2e6c2bba19 fix(feishu): restore forwarded interactive card content (#115136) 2026-08-09 07:07:03 -07:00
Ayaan Zaidi 409fb7abca fix(telegram): enforce direct-message tool policies
Enforce configured Telegram direct-message tool policies across queued runs and native harnesses. Unsupported restricted harnesses now refuse visibly; turns without explicit policy keep existing tool access.

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-08-09 19:32:30 +05:30
Peter Steinberger 52a76313e8 refactor(gateway): consolidate interactive connection resolution (#120865)
* refactor(gateway): consolidate interactive connection resolution

* test(gateway): remove superseded auth surface coverage

* chore(plugin-sdk): refresh API baseline

* fix(tui): preserve in-process exit fallback
2026-08-09 06:57:22 -07:00
Ayaan Zaidi 6a586cd0ea fix(telegram): keep tool progress transient without drafts
Keep quiet Telegram tool progress on the transient draft lane when it exists. Preserve durable delivery for media, execution approvals, and ask-user prompts across direct and queued turns.

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-08-09 19:18:02 +05:30
Peter Steinberger 4fec524243 fix: new session finds models after fresh gateway start (#121057)
* fix(gateway): align chat metadata with prepared auth

* fix(gateway): complete prepared auth mode contract

* fix(agents): canonicalize prepared auth aliases

* test(sessions): finish temp-dir helper migration
2026-08-09 06:40:25 -07:00
Peter Steinberger 0dbce297fd test(ios): isolate TLS pin clearing (#113067) 2026-08-09 06:34:10 -07:00
Peter Steinberger 0b4c8a9fc9 fix(state): preserve additive column order (#121062)
Keep fresh shared-state table definitions aligned with SQLite ADD COLUMN ordering so current-version upgraded databases pass canonical schema validation.\n\nRefs #121061
2026-08-09 06:26:54 -07:00
Peter Steinberger cb50289e28 fix(agents): keep removed background processes alive until exit (#113860)
* fix(agents): keep removed processes live until exit

* test(agents): isolate process registry lifecycle coverage

* chore(plugin-sdk): refresh API closure baseline
2026-08-09 06:04:40 -07:00
Peter Steinberger 8616c0c374 refactor: finish shared test helper migrations (#120996)
* test: finish shared helper migrations

* test: fix helper migration CI

* style: fix test import ordering

* test(acpx): restore deferred void types

* test: fix helper migrations after rebase
2026-08-09 06:00:06 -07:00
Peter Steinberger 4ade409cf2 fix(cli): report stale binding clears accurately (#114926)
Co-authored-by: Alix-007 <li.long15@xydigit.com>
2026-08-09 05:55:21 -07:00
Peter Steinberger dfbc95e4ea fix: replies fail after transcript projection repair (#121025)
* fix(reply): rebind prepared session ownership

* test(mcp): correlate queued wait events

* fix(sessions): await transcript admission projection

* fix(recovery): distinguish admission failure stages

* refactor(sessions): split runtime transcript projection

* fix(ci): preserve transcript API baseline

* fix(sessions): await target projection only
2026-08-09 05:54:39 -07:00
Peter Steinberger 6794fc0fc8 refactor(plugins): consolidate messaging fixtures (#114423) 2026-08-09 05:48:15 -07:00
Peter Steinberger d5809b4080 test(infra): clean exec approval temp roots (#113342) 2026-08-09 05:43:55 -07:00
Peter Steinberger c48339527a fix(imessage): deliver service-qualified media to existing chats [AI-assisted] (#115006)
* fix(imessage): resolve service-qualified media chats

* test(imessage): keep custody coverage on auto handles
2026-08-09 05:42:18 -07:00
Peter Steinberger 8dad2bf0ce fix(gateway): stop completed task terminals from blocking restarts (#121055)
* fix(gateway): close task-owned terminals on completion

* test(gateway): isolate terminal task lifecycle coverage

* chore(plugin-sdk): refresh API baseline
2026-08-09 05:39:02 -07:00
openclaw-mantis[bot] 900e37b31d chore(i18n): refresh native locales (#121000)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-09 20:38:32 +08:00
ZYV5ge b85c84682a fix(ui): remove redundant Labs config refresh (#119115)
Let the runtime config patch owner complete its authoritative refresh instead of starting a second Labs-page refresh. Tighten unit and mocked browser coverage around the single refresh and visible settings state.


Punchcard-Session: amber-workshop-workshop-36

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-08-09 20:29:32 +08:00
Vincent Koc 1471881af7 fix(plugins): preserve install records during recovery (#121045)
* fix(plugins): canonicalize install record persistence

Preserve canonical fields, passthrough metadata, untouched record identity, and deterministic serialized ordering across SQLite and post-core handoff.

Punchcard-Session: amber-workshop-workshop-36
Co-authored-by: Galin Iliev <5711535+galiniliev@users.noreply.github.com>

* fix(doctor): block invalid plugin record mutations

Preflight persisted and legacy install-record state before registry repair, package cleanup, generation retirement, archival, or state-directory moves.

Punchcard-Session: amber-workshop-workshop-36
Co-authored-by: Galin Iliev <5711535+galiniliev@users.noreply.github.com>

* fix(plugins): harden install record map ownership

Punchcard-Session: amber-workshop-workshop-36
Co-authored-by: Galin Iliev <5711535+galiniliev@users.noreply.github.com>

* fix(update): preserve special plugin ids in payload checks

Punchcard-Session: amber-workshop-workshop-36
Co-authored-by: Galin Iliev <5711535+galiniliev@users.noreply.github.com>

* test(doctor): assert canonical install record maps

Punchcard-Session: amber-workshop-workshop-36
Co-authored-by: Galin Iliev <5711535+galiniliev@users.noreply.github.com>

* test(doctor): preserve invalid plugin index fixtures

Punchcard-Session: amber-workshop-workshop-36
Co-authored-by: Galin Iliev <5711535+galiniliev@users.noreply.github.com>

---------

Co-authored-by: Galin Iliev <5711535+galiniliev@users.noreply.github.com>
2026-08-09 20:24:40 +08:00
Peter Steinberger ab62621223 fix(discord): clean voice temp files on send failures (#120904) 2026-08-09 05:21:20 -07:00
Peter Steinberger bec06affef fix(heartbeat): suppress reasoning-only acknowledgements (#114454) 2026-08-09 05:21:02 -07:00
Peter Steinberger 2d33a15e3e refactor(sessions): consolidate batch patch mutation ownership (#121017)
* refactor(sessions): consolidate batch patch mutation ownership

Related to #120873.

* refactor(sessions): preserve SDK contracts in shared mutation owner

Related to #120873.
2026-08-09 05:20:52 -07:00
Peter Steinberger 7dcb4fb760 feat(talk): broker realtime sideband control (#121054)
* feat(talk): broker OpenAI realtime sideband

* test(openai): prove audio-only sideband offer

* fix(talk): harden realtime sideband control

* fix(talk): restore sideband session update fence

* fix(talk): recognize GA function output events

* refactor(talk): unify realtime broker session leases

* fix(talk): use PCM audio for WebRTC sideband

* chore(plugin-sdk): refresh API baseline
2026-08-09 05:14:20 -07:00
Peter Steinberger bee541003f refactor(cli): consolidate route argv fixtures (#114513) 2026-08-09 05:07:15 -07:00
Peter Steinberger 600787a0cb test(gateway): isolate live-event sweep assertion (#106216)
* test(gateway): isolate agent run registry state

* test(infra): reset agent event state between files
2026-08-09 05:06:40 -07:00
Peter Steinberger 758d4a4786 test(updater): clean cloned Git fixtures (#113348) 2026-08-09 05:02:39 -07:00
Shakker 0a898b70d8 test: satisfy browser annotation landing guards (#120848) 2026-08-09 13:56:55 +02:00
Shakker 88ec5a9343 fix: preserve browser annotation metadata styling 2026-08-09 13:56:55 +02:00
Shakker f06e3675a6 docs: clarify browser annotation session scope 2026-08-09 13:56:55 +02:00
Shakker 7874024748 fix: preserve staged browser annotations across remounts 2026-08-09 13:56:55 +02:00
Shakker d0e76dea49 fix: bound browser annotation composer lifecycle 2026-08-09 13:56:55 +02:00
Shakker 7a98ff6ee6 test: construct annotation credential URL at runtime 2026-08-09 13:56:55 +02:00
Shakker 992c38f053 fix: restore annotation removal focus handling 2026-08-09 13:56:55 +02:00
Shakker a3938ef435 fix: couple browser annotations to composer attachments 2026-08-09 13:56:55 +02:00
Anuj Bolewar 1328a53930 fix: keep cron trigger once when editing only the script body (#120226)
* fix: keep cron trigger once when editing only the script body

* test: cover cron trigger once preservation on script edit

* test: clean up temp script fixture in cron edit once test

The test leaked the mkdtemp directory under os.tmpdir. Remove it in a
finally block so repeated runs do not accumulate temp fixtures.

Fixes #120226

* test: prove trigger.once survives script edit via real gateway store

* fix(cron): preserve trigger metadata on script edits

Validate trigger script input before any Gateway lookup, retain existing trigger metadata during script-only edits, and replace mock-only handler coverage with isolated CLI-to-Gateway persistence proof.

Co-authored-by: Anuj Bolewar <bolewara@gmail.com>

* test(cron): normalize trigger-script rejection cases

Keep the table rows type-stable so the cron edit regression suite passes test type checking.

Co-authored-by: Anuj Bolewar <bolewara@gmail.com>

* style(cron): format trigger preservation tests

Co-authored-by: Anuj Bolewar <bolewara@gmail.com>

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-08-09 04:54:50 -07:00
zw-xysk 03cb1443e5 fix(agents): canonicalize auth profile aliases (#119505)
Persist inherited per-agent order references, collapse equivalent auth-provider state keys onto the canonical provider, and clear every equivalent persisted key. Make auth-order validation and display alias-aware while leaving separate OAuth runtime-cache behavior unchanged.

Fixes #119233

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-08-09 04:53:24 -07:00
Serghei d7054d4daf fix(gateway): streamed chat text stalls mid-answer until the next agent event (#119566)
* fix(gateway): flush trailing chat deltas

Keep the fixed-deadline wake-up on the existing chat run record so terminal, abort, and shutdown cleanup cancel it at the lifecycle owner. Normalize voice runs onto their unique per-turn ID instead of compensating for a stale client alias downstream.

Fixes #119557

Co-authored-by: Serghei <43180231+xyrolle@users.noreply.github.com>

* test(gateway): drop obsolete delta length assertions

Remove stale fixtures and assertions for the write-only chat delta length field deleted by the owner-boundary repair.

Co-authored-by: Serghei <43180231+xyrolle@users.noreply.github.com>

* fix(gateway): preserve chat run state type contract

Keep the optional delta length field and its cleanup semantics in the exported ChatRunState closure without restoring runtime writes.

Co-authored-by: Serghei <43180231+xyrolle@users.noreply.github.com>

* refactor(gateway): hide chat delta timer from SDK shape

Keep the trailing wake physically on each run record while exposing it only through internal state-module accessors, preserving the public ChatRunState closure.

Co-authored-by: Serghei <43180231+xyrolle@users.noreply.github.com>

* refactor(gateway): narrow chat delta timer access

Use one Gateway-internal record accessor so the run-owned timer remains outside the public ChatRunState shape without extra state maps.

Co-authored-by: Serghei <43180231+xyrolle@users.noreply.github.com>

* refactor(gateway): keep chat timer casts private

Keep the run-owned timer invisible to the generated Plugin SDK closure by using module-private casts in each owning Gateway module.

Co-authored-by: Serghei <43180231+xyrolle@users.noreply.github.com>

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-08-09 04:53:16 -07:00
Vincent Koc f83ba2b326 fix(ci): route UI E2E PR retries to hosted runners (#120997)
* fix(ci): route UI E2E PR retries to hosted runners

Punchcard-Session: amber-workshop-workshop-36

* fix(ci): align UI E2E retry cache routing

Punchcard-Session: amber-workshop-workshop-36

* fix(ci): clarify UI E2E retry routing

Punchcard-Session: amber-workshop-workshop-36

* fix(ci): validate workflow expression capture

Punchcard-Session: amber-workshop-workshop-36
2026-08-09 19:50:24 +08:00
Peter Steinberger 2a57e1a1af fix(github-copilot): preserve cumulative poll backoff (#103434) 2026-08-09 04:50:18 -07:00
Peter Steinberger 71a33f07a9 fix(imessage): make SSH-backed sends and actions reliable (#121038)
* fix(imessage): harden remote Mac transport

Route SSH-backed iMessage actions through JSON-RPC, preserve remote database paths, and stage outbound files on the Messages Mac with bounded cleanup. Keep local action semantics intact while failing closed on ambiguous wrappers and surfacing the remaining imsg v0.13.4 limits.

* fix(imessage): remove test-only exports
2026-08-09 04:48:38 -07:00
Peter Steinberger 11e897a630 fix(discord): preserve attachment content types (#114460)
Co-authored-by: Zhe Liu <15888718+zheliu2@users.noreply.github.com>
2026-08-09 04:44:38 -07:00
Peter Steinberger 5d98d2e6ec fix(uninstall): preserve user data when gateway removal fails (#113887)
* fix(uninstall): gate cleanup on service teardown

* fix(daemon): scope strict task removal checks
2026-08-09 04:40:50 -07:00
Peter Steinberger 4cb33d48cd refactor(config): consolidate regression fixtures (#114459) 2026-08-09 04:35:00 -07:00
Peter Steinberger b869d5e73f fix(workers): skip shared-host quiescence sweeps (#120969)
* fix(workers): skip shared-host quiescence sweeps

Refs #120952.

* test(workers): update shared-host fixtures

Refs #120952.

* fix(workers): reconcile shared-host lease metadata

* fix(workers): fence unknown lease isolation

* chore(plugin-sdk): refresh API baseline

* fix(workers): fence tunnel isolation updates

* docs(workers): clarify shared-host final fences

* ci: invalidate Vitest cache for state schemas

* refactor(workers): import stableWorkerPathComponent from its defining module

workspace-sync.ts crossed the 700-line lint budget by one; drop its
re-export and point consumers at workspace-sync-helpers directly.
2026-08-09 04:34:39 -07:00
Peter Steinberger 262cf17baf fix(agents): preserve session abort reasons (#113693) 2026-08-09 04:30:32 -07:00
Peter Steinberger e257683390 test(wizard): restore stdin TTY state (#113345) 2026-08-09 04:29:34 -07:00
Peter Steinberger 05e534eae5 fix(cron): deliver final results after heartbeat acknowledgements (#113924) 2026-08-09 04:27:23 -07:00
Peter Steinberger d1b4ed872c fix(slack): preserve inbound attachment metadata (#114502) 2026-08-09 04:09:18 -07:00