Peter Steinberger
7c2863d401
fix: harden bonjour retry recovery
2026-03-16 07:59:15 +00:00
Peter Steinberger
3a2c24e598
refactor: route shared channel sdk imports through plugin seams
2026-03-16 00:48:53 -07:00
Peter Steinberger
74d0c39b32
refactor: move session lifecycle and outbound fallbacks into plugins
2026-03-16 00:40:43 -07:00
Peter Steinberger
045a879acf
fix: stop bonjour before re-advertising
2026-03-16 07:32:34 +00:00
Peter Steinberger
e3ab0e174c
style(core): normalize rebase fallout
2026-03-16 00:12:43 -07:00
Peter Steinberger
0ca1b18517
fix(core): restore outbound fallbacks and gate checks
2026-03-16 00:12:43 -07:00
Peter Steinberger
85b7bc7edf
refactor: remove dock shim and move session routing into plugins
2026-03-16 00:09:38 -07:00
Tak Hoffman
3c6a49b27e
feishu: harden media support and align capability docs ( #47968 )
...
* feishu: harden media support and action surface
* feishu: format media action changes
* feishu: fix review follow-ups
* fix: scope Feishu target aliases to Feishu (#47968 ) (thanks @Takhoffman)
2026-03-16 02:02:48 -05:00
Peter Steinberger
a8367bb0ec
fix: stabilize ci gate
2026-03-16 06:51:18 +00:00
Peter Steinberger
2054cb9431
refactor: move remaining channel seams into plugins
2026-03-15 23:47:30 -07:00
Peter Steinberger
d163278e9c
refactor: move channel delivery and ACP seams into plugins
2026-03-15 23:25:20 -07:00
Peter Steinberger
130b575c21
fix: recover bonjour advertiser from ciao announce loops
2026-03-16 06:21:46 +00:00
Vincent Koc
ebfd32efc3
Status: split heartbeat summary helpers
2026-03-15 22:55:26 -07:00
Peter Steinberger
7bea559166
refactor: unify reply content checks
2026-03-16 05:54:16 +00:00
Peter Steinberger
ad97c581e2
refactor: move channel messaging hooks into plugins
2026-03-15 22:39:00 -07:00
Peter Steinberger
680eff63fb
fix: land SIGUSR1 orphan recovery regressions ( #47719 ) (thanks @joeykrug)
2026-03-15 22:32:36 -07:00
bot_apk
98f6ec50aa
fix: address 6 review comments on PR #47719
...
1. [P1] Treat remap failures as resume failures — if replaceSubagentRunAfterSteer
returns false, do NOT clear abortedLastRun, increment failed count.
2. [P2] Count scan-level exceptions as retryable failures — set result.failed > 0
in the outer catch block so scheduleOrphanRecovery retry logic triggers.
3. [P2] Persist resumed-session dedupe across recovery retries — accept
resumedSessionKeys as a parameter; scheduleOrphanRecovery lifts the Set to
its own scope and passes it through retries.
4. [Greptile] Use typed config accessors instead of raw structural cast for TLS
check in lifecycle.ts.
5. [Greptile] Forward gateway.reload.deferralTimeoutMs to deferGatewayRestartUntilIdle
in scheduleGatewaySigusr1Restart so user-configured value is not silently ignored.
6. [Greptile] Same as #4 — already addressed by the typed config fix.
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-03-15 22:32:36 -07:00
Joey Krug
304703f165
fix: resume orphaned subagent sessions after SIGUSR1 reload
...
Closes #47711
After a SIGUSR1 gateway reload aborts in-flight subagent LLM calls, the gateway now scans for orphaned sessions and sends a synthetic resume message to restart their work. Also makes the deferral timeout configurable via gateway.reload.deferralTimeoutMs (default: 5 minutes, up from 90s).
2026-03-15 22:32:36 -07:00
Peter Steinberger
d937b61fb3
fix: follow up shared interactive regressions ( #47715 )
2026-03-16 05:03:46 +00:00
Vincent Koc
0277aa0159
Slack: fix review regressions
2026-03-15 21:55:45 -07:00
Vincent Koc
3a08f70151
Outbound: test shared interactive telegram delivery
2026-03-15 21:55:45 -07:00
Vincent Koc
0feb939cb3
Outbound: deliver shared interactive payloads
2026-03-15 21:55:45 -07:00
Vincent Koc
2eb2b0995d
Outbound: accept shared interactive sends
2026-03-15 21:55:45 -07:00
Vincent Koc
04081d349e
Outbound: parse shared interactive params
2026-03-15 21:55:45 -07:00
Vincent Koc
f3f0bdcb07
Outbound: preserve shared interactive payloads
2026-03-15 21:55:45 -07:00
Peter Steinberger
0c2ae71366
fix(outbound): preserve channel registry during provider snapshots
2026-03-15 21:52:29 -07:00
Peter Steinberger
0f43dc4680
test: fix fetch mock typing
2026-03-15 21:07:05 -07:00
Peter Steinberger
0218045818
test: silence vitest warning noise
2026-03-15 21:02:31 -07:00
Peter Steinberger
8ab01c5c93
refactor(core): land plugin auth and startup cleanup
2026-03-15 20:12:37 -07:00
Vincent Koc
f71f44576a
Status: lazy-load read-only account inspectors
2026-03-15 20:10:43 -07:00
Peter Steinberger
65ec4843e8
fix: tighten outbound channel/plugin resolution
2026-03-16 02:52:01 +00:00
Ayaan Zaidi
a516141bda
feat(telegram): add topic-edit action
2026-03-16 08:03:22 +05:30
Peter Steinberger
e7555724af
feat(plugins): add provider usage runtime hooks
2026-03-15 16:57:16 -07:00
Nimrod Gutman
50c8934231
fix(dev): align gateway watch with tsdown wrapper ( #47636 )
2026-03-15 23:28:57 +02:00
Vincent Koc
5a7aba94a2
CLI: support package-manager installs from GitHub main ( #47630 )
...
* CLI: resolve package-manager main install specs
* CLI: skip registry resolution for raw package specs
* CLI: support main package target updates
* CLI: document package update specs in help
* Tests: cover package install spec resolution
* Tests: cover npm main-package updates
* Tests: cover update --tag main
* Installer: support main package targets
* Installer: support main package targets on Windows
* Docs: document package-manager main updates
* Docs: document installer main targets
* Docs: document npm and pnpm main installs
* Docs: document update --tag main
* Changelog: note package-manager main installs
* Update src/infra/update-global.test.ts
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
---------
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-03-15 14:18:12 -07:00
Gustavo Madeira Santana
4fb0160309
Gateway: sync runtime post-build artifacts
2026-03-15 20:44:15 +00:00
Gustavo Madeira Santana
594920f8cc
Scripts: rebuild on extension and tsdown config changes ( #47571 )
...
Merged via squash.
Prepared head SHA: edd8ed8254
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-03-15 16:19:27 -04:00
Vincent Koc
c9a8b6f82f
chore(fmt): format changes and broken types
2026-03-15 12:03:35 -07:00
Vincent Koc
fc2d29ea92
Gateway: tighten forwarded client and pairing guards ( #46800 )
...
* Gateway: tighten forwarded client and pairing guards
* Gateway: make device approval scope checks atomic
* Gateway: preserve device approval baseDir compatibility
2026-03-15 10:50:49 -07:00
Vincent Koc
8d44b16b7c
Plugins: preserve scoped ids and reserve bundled duplicates ( #47413 )
...
* Plugins: preserve scoped ids and reserve bundled duplicates
* Changelog: add plugin scoped id note
* Plugins: harden scoped install ids
* Plugins: reserve scoped install dirs
* Plugins: migrate legacy scoped update ids
2026-03-15 09:07:10 -07:00
Peter Steinberger
7c0a849ed7
fix: harden device token rotation denial paths
2026-03-15 09:05:45 -07:00
Peter Steinberger
ff61343d76
fix: harden mention pattern regex compilation
2026-03-15 08:44:12 -07:00
Harold Hunt
53462b990d
chore(gateway): ignore .test.ts changes in gateway:watch ( #36211 )
2026-03-15 11:14:28 -04:00
Frank Yang
4bb8a65edd
fix: forward forceDocument through sendPayload path (follow-up to #45111 ) ( #47119 )
...
Merged via squash.
Prepared head SHA: d791190f83
Co-authored-by: thepagent <262003297+thepagent@users.noreply.github.com >
Reviewed-by: @frankekn
2026-03-15 17:23:53 +08:00
Radek Sienkiewicz
e3b7ff2f1f
Docs: fix MDX markers blocking page refreshes ( #46695 )
...
Merged via squash.
Prepared head SHA: 56b25a9fb3
Co-authored-by: velvet-shark <126378+velvet-shark@users.noreply.github.com >
Co-authored-by: velvet-shark <126378+velvet-shark@users.noreply.github.com >
Reviewed-by: @velvet-shark
2026-03-15 02:58:59 +01:00
songlei
df3a247db2
feat(feishu): structured cards with identity header, note footer, and streaming enhancements (openclaw#29938)
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: nszhsl <512639+nszhsl@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-03-14 20:31:46 -05:00
George Zhang
2806f2b878
Heartbeat: add isolatedSession option for fresh session per heartbeat run ( #46634 )
...
Reuses the cron isolated session pattern (resolveCronSession with forceNew)
to give each heartbeat a fresh session with no prior conversation history.
Reduces per-heartbeat token cost from ~100K to ~2-5K tokens.
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-14 16:28:01 -07:00
Tak Hoffman
e81442ac80
Fix full local gate on main
2026-03-14 15:52:11 -05:00
scoootscooob
d9c285e930
Fix configure startup stalls from outbound send-deps imports ( #46301 )
...
* fix: avoid configure startup plugin stalls
* fix: credit configure startup changelog entry
2026-03-14 09:58:03 -07:00
Nimrod Gutman
9aac55d306
Add /btw side questions ( #45444 )
...
* feat(agent): add /btw side questions
* fix(agent): gate and log /btw reviews
* feat(btw): isolate side-question delivery
* test(reply): update route reply runtime mocks
* fix(btw): complete side-result delivery across clients
* fix(gateway): handle streamed btw side results
* fix(telegram): unblock btw side questions
* fix(reply): make external btw replies explicit
* fix(chat): keep btw side results ephemeral in internal history
* fix(btw): address remaining review feedback
* fix(chat): preserve btw history on mobile refresh
* fix(acp): keep btw replies out of prompt history
* refactor(btw): narrow side questions to live channels
* fix(btw): preserve channel typing indicators
* fix(btw): keep side questions isolated in chat
* fix(outbound): restore typed channel send deps
* fix(btw): avoid blocking replies on transcript persistence
* fix(btw): keep side questions fast
* docs(commands): document btw slash command
* docs(changelog): add btw side questions entry
* test(outbound): align session transcript mocks
2026-03-14 17:27:54 +02:00