Commit Graph

34619 Commits

Author SHA1 Message Date
ZengWen-DT 01acb34bdb fix(tui): show activity indicator for system-injected runs (#93427)
* fix(tui): show activity indicator for system-injected runs

System-injected runs (bridge-notify, webhook, cron) never go through the
TUI submit path, so no active/pending run id exists when their lifecycle
"start" event arrives. handleAgentEvent dropped events for untracked runs,
leaving the status bar idle until the response landed.

Adopt an untracked lifecycle "start" for the current session (lifecycle
events always carry sessionKey) so the activity indicator shows work is
happening, mirroring how chat deltas adopt runs in handleChatEvent. Local
side-question (btw) runs never claim the active slot.

Closes #51825

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* fix(tui): preserve concurrent injected run activity

---------

Co-authored-by: zengwen <zeng_wen@foxmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com>
2026-06-16 08:27:59 +08:00
zengLingbiao 03e3ef86af fix(agents): resolve configured default model in runEmbeddedAgent (fixes #93419) (#93428)
* fix(agents): honor configured default model in embedded runs

* fix(agents): resolve embedded defaults from runtime config

* fix(agents): preserve embedded model routing semantics

* test(agents): model current embedded attempts explicitly

---------

Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com>
2026-06-16 08:27:19 +08:00
NianJiu a375d6c849 fix(telegram): gate rich messages behind opt-in (#93279)
Restore readable standard Telegram text delivery by default after Bot API 10.1 rich messages rendered as unsupported in current clients. Keep native rich tables and structured messages available through the account-level richMessages opt-in, with account-aware capability advertising and documented structural limits.

Fixes #93263.
2026-06-15 17:22:41 -07:00
Vincent Koc 9dbf8f718f fix(sessions): guard append cache after extension serialization 2026-06-16 08:13:38 +08:00
Vincent Koc 4ca8bf086c fix(proxy): close cached SQLite stores by path
Track debug proxy capture stores per database path so replacing or concurrently leasing capture paths cannot orphan SQLite handles and WAL checkpoint timers.
2026-06-16 01:54:09 +02:00
Vincent Koc b41c0b6746 fix(cli): preserve gateway request errors in json mode 2026-06-16 01:52:23 +02:00
Marcus Castro 52d9d16e1b fix(whatsapp): preserve auth on terminal disconnects (#93076)
* fix(whatsapp): preserve auth on passive terminal stops

* fix(whatsapp): recover stale web auth during relink

* fix(gateway): defer channel stop until qr takeover
2026-06-15 20:50:22 -03:00
Vincent Koc 0ef8620746 fix(auth): wait through SQLite read contention
Apply the canonical SQLite busy timeout to short-lived read-only auth profile reads so a brief rollback-journal exclusive lock cannot make valid persisted credentials appear missing.
2026-06-16 01:41:05 +02:00
Shakker e64379dddb fix: stabilize transcript cache and CLI env isolation 2026-06-16 00:27:53 +01:00
Josh Lehman 127e174c9e refactor: route auto-reply sessions through session seam (#89124)
* clawdbot-6f0: route agent runtime session writes through seam

* clawdbot-6f0: route command entry persistence through seam

* test: ratchet auto-reply session accessor writes

* refactor: scope embedded attempt quota reads

* test: ratchet session store save writer
2026-06-15 15:50:38 -07:00
Vincent Koc c8e70708e9 fix(ci): restore main checks 2026-06-16 06:36:10 +08:00
Harjoth Khara 0bb415bf66 fix(sessions): preserve behavior overrides across rollover
Carry user behavior overrides across implicit daily/idle session rollover while preserving existing model fallback clearing behavior.
2026-06-16 06:35:26 +08:00
Vincent Koc 50dbd46aa6 test(agents): mark runtime contract delivery as sent 2026-06-16 06:31:06 +08:00
litang9 0f71a665ed fix(logging): avoid stalled warnings for active model calls
Classify owned silent model calls as long-running until the abort threshold while preserving stalled handling for ownerless stale activity, with diagnostics tests and docs.
2026-06-16 06:27:40 +08:00
lundog bcd1fdb1db fix(media): stop pruning media on write
Stop media writes from triggering opportunistic pruning and leave retention cleanup to the configured maintenance timer. Preserve explicit cleanup options and cover shallow/root/recursive cleanup behavior.
2026-06-16 06:27:22 +08:00
Alix-007 1b5ac45e60 fix(doctor): separate platform-incompatible skills
Track platform-incompatible skills separately from missing requirements, keep doctor --fix from treating them as broken installs, and cover the status output.
2026-06-16 06:26:20 +08:00
Bakhtiyar 3d3d291902 fix(auth): keep alias-compatible auth-profile overrides
Use alias-aware credential compatibility before clearing auth-profile overrides, preventing compatible CLI sessions from flapping auth profiles. Includes regression coverage.
2026-06-16 06:26:11 +08:00
Andy Ye 57bad4bdf8 fix(cron): suppress announce control replies
Use the shared suppressed-control-reply detector for cron delivery so NO_REPLY, ANNOUNCE_SKIP, and REPLY_SKIP do not leak to outbound channels, with direct/text delivery coverage.
2026-06-16 06:25:21 +08:00
James W. Niu 923828ccd7 fix(infra): drop duplicated restart word
Avoid rendering "Gateway restart restart" for restart sentinel summaries, while keeping the existing wording for other restart kinds.
2026-06-16 06:25:12 +08:00
ooiuuii 212fef8703 fix(cli): accept --no-color after subcommands
Normalize root --no-color before command parsing while preserving command option values, and add coverage for subcommand/root option placement.
2026-06-16 06:20:56 +08:00
Vincent Koc bdc3017c1a test(agents): require delivery evidence in suppression fixtures 2026-06-16 06:16:02 +08:00
Vincent Koc 6cb631afc9 fix(agents): distinguish delivery routes from references 2026-06-16 05:56:48 +08:00
Vincent Koc fec6a0407f fix(agents): validate visible delivery receipts 2026-06-16 05:56:48 +08:00
Vincent Koc 43cef3a80c fix(agents): record visible delivery target evidence 2026-06-16 05:56:48 +08:00
pick-cat f018945eff fix(doctor): import default-agent auth profiles into sqlite (#93156)
* fix(doctor): import default-agent auth profiles into sqlite

* fix(doctor): type legacy config auth imports

* fix(doctor): preserve auth json precedence

* fix(doctor): import config auth with state-only stores

Signed-off-by: sallyom <somalley@redhat.com>

---------

Signed-off-by: sallyom <somalley@redhat.com>
Co-authored-by: sallyom <somalley@redhat.com>
2026-06-15 17:42:51 -04:00
Agustin Rivera 8b0eac7927 fix(plugins): enforce install policy in wrappers (#93357) 2026-06-15 13:59:37 -07:00
Josh Lehman efa9a6110b refactor: add transcript runtime identity contract (#89201) 2026-06-15 13:04:03 -07:00
Michael Appel 32af1c0697 Control Telegram group history context (#89547)
* fix(telegram): control group history context

* fix(telegram): keep history mode type local

* fix(telegram): respect history mode during forum recovery
2026-06-15 12:37:04 -07:00
Vincent Koc b3128ba93d fix(cron): require explicit poll delivery targets 2026-06-16 03:09:36 +08:00
Marcus Castro ef6b7e3659 docs(plugins): record whatsapp admission compatibility 2026-06-15 20:06:16 +01:00
Marcus Castro 2758140607 refactor(whatsapp): add inbound admission envelope 2026-06-15 20:06:16 +01:00
Agustin Rivera 55d1324c7d fix(flock): bind allow-always to wrapped command (#93362)
* fix(flock): bind allow-always to wrapped command

* fix(flock): handle wrapper option aliases

* fix(flock): handle wrapper option aliases
2026-06-15 11:56:15 -07:00
Agustin Rivera 9dbe25e0f6 fix(outbound): guard cross-context message mutations (#93358) 2026-06-15 11:46:16 -07:00
Vincent Koc e3ca10438a fix(agents): recognize bare-ok broadcast sends 2026-06-16 02:45:41 +08:00
Vincent Koc 68cbd1ae63 test(agents): align fallback delivery mock 2026-06-16 02:45:41 +08:00
Vincent Koc 0ea08076c3 fix(agents): preserve CLI message delivery evidence 2026-06-16 02:45:41 +08:00
Shakker 5c2487dc9a test: type cli test mocks 2026-06-15 19:34:16 +01:00
Chunyue Wang df521a6459 fix(gateway): guard fast-path startup migrations (#93118)
* fix(cron): run legacy cron store migration in gateway fast path

* fix(cli): run gateway startup migrations

* fix(gateway): guard startup migrations and config selection

* fix(gateway): reconcile final startup environment

* fix(gateway): preserve guarded startup env semantics

* fix(gateway): guard service-mode recovery candidates

* fix(config): reconcile normalized env precedence

* fix(cli): clear replaced proxy signal handlers

* fix(gateway): reject invalid final config

* test(gateway): cover invalid future config reset guard

* test(cli): remove unused recovery state
2026-06-16 01:54:29 +08:00
Alix-007 a0b16f37e8 fix(sessions): cache validated transcripts across turns (#90412)
Avoid repeated full JSONL parsing and cloning on every embedded-agent turn by keeping a bounded, validated transcript cache and advancing repair incrementally.

The final implementation preserves lock ownership and exact fingerprint validation, publishes only verified writes, handles header rewrites and unterminated JSONL safely, and adds focused regression coverage.

Fixes #83943.

Co-authored-by: Alix-007 <li.long15@xydigit.com>
2026-06-15 10:32:35 -07:00
Michael Appel cc000e0ffe fix(cron): preserve scheduled turn tool policy [AI] (#91499)
* fix(cron): preserve creator tool policy for scheduled turns

* fix(cron): cap edited scheduled turns

* fix(cron): preserve scheduled turn allowlists

* fix(cron): cap filtered tool surfaces

* fix(cron): cap scheduled turn conversions

* fix(cron): include bundled scheduled tools
2026-06-15 10:29:11 -07:00
joshavant 379de52b59 fix: use canonical ios bundle identifiers 2026-06-15 19:27:55 +02:00
Agustin Rivera ddb07fc597 fix(plugins): require owner for plugin writes (#93353) 2026-06-15 10:22:28 -07:00
Yuval Dinodia caab343461 fix(reply): project preflight compaction gate by next-input on fresh tokens (#91488)
The fresh-tokens path of runPreflightCompactionIfNeeded fed the prompt-only
entry.totalTokens snapshot straight into the budget threshold check, dropping
the current user prompt estimate and the previous turn's output. The sibling
memory-flush gate and this function's own stale branch already project
base + output + estimate via resolveEffectivePromptTokens, so the preflight
gate under-triggered and let over-budget requests through to overflow-retry.

Project the fresh persisted base the same way: read transcript output when near
the threshold (mirroring the memory-flush gate's buffer) and run the fresh base
through resolveEffectivePromptTokens before the threshold check.
2026-06-16 01:10:42 +08:00
ZZ.No.1 8e55348ff9 fix(agents): canonicalize node binding selectors (#66985) 2026-06-16 01:09:01 +08:00
Peter Steinberger 40f1190c8b fix(configure): remove duplicate password wrapper 2026-06-15 12:54:54 -04:00
Josh Lehman 8ded756284 refactor: add transcript reader seam (#89121)
Merged via squash.

Prepared head SHA: 7ea7ea47ef
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-06-15 09:41:50 -07:00
Harjoth Khara 158d3db85a fix(gateway): pass managed inbound PDFs through chat.send (#90115)
* fix(gateway): pass managed inbound PDFs through when sandbox staging fails

chat.send force-stages offloaded non-image media into the sandbox workspace when
one exists. If that optional staging was unavailable or incomplete,
prestageMediaPathOffloads deleted the media buffers and failed the whole send
with a 5xx — even for already-managed inbound PDFs that are safe to read
host-side. A Control-UI-uploaded PDF could fail to send.

When staging throws or is incomplete, fall back to the absolute managed paths
iff every non-image offloaded ref is a managed-inbound application/pdf (reusing
the existing resolveInboundMediaReference allow-check + the PDF mime type). This
mirrors the existing no-sandbox passthrough: with MediaWorkspaceDir unset the
managed media dir is a default media-understanding local root, so the absolute
path resolves host-side. Gated all-or-nothing so a single non-managed or non-PDF
ref keeps the previous delete + 5xx behavior. Success path and oversized 4xx are
unchanged; managed buffers are not deleted on the fallback.

Fixes #90097

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* fix(gateway): exempt managed PDFs from staging cap

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 00:39:17 +08:00
Alix-007 6cd6e3f39e fix(plugins): serialize binding approval saves (#88945) 2026-06-16 00:39:01 +08:00
Gio Della-Libera 4bb4252042 fix(cli): report Gemini CLI runtime auth status (#86544) 2026-06-16 00:38:27 +08:00
ToToKr 6451550cd7 fix(heartbeat): refresh stale Current time line on every helper call (#44993) (#75025)
Rebase onto current upstream/main (head 4780546c12). Resolves the conflict from upstream's two-line Current time + Reference UTC helper output: appendCronStyleCurrentTimeLine now refreshes/collapses any prior helper-injected block via CURRENT_TIME_LINE_RE instead of returning early on a stale base.includes('Current time:') match. Preserves upstream-added doc comments. 16/16 current-time.test.ts pass; tsgo core clean.
2026-06-16 00:37:40 +08:00