Peter Steinberger
d282667321
test: speed up cli and command suites
2026-03-24 22:17:12 +00:00
Peter Steinberger
bcd61f0a38
refactor: dedupe helpers and source seams
2026-03-24 21:00:36 +00:00
Vincent Koc
805bff6e7e
fix(cli): precompute bare root help startup path
2026-03-24 12:24:52 -07:00
Peter Steinberger
a4327ad544
refactor: dedupe tests and harden suite isolation
2026-03-24 19:16:19 +00:00
Peter Steinberger
6e20c26397
test: speed up cli and model command suites
2026-03-24 17:16:25 +00:00
Peter Steinberger
f52752889b
fix: audit clobbered config reads
2026-03-24 17:10:06 +00:00
Josh Lehman
559b3a5fd4
test: stabilize preaction process title assertion ( #53808 )
...
Regeneration-Prompt: |
Current origin/main fails src/cli/program/preaction.test.ts because the
test asserts on process.title directly inside Vitest, where that runtime
interaction is not stable enough to observe the write reliably. Keep the
production preaction behavior unchanged. Make the test verify that the
hook assigns the expected title by wrapping process.title with a local
getter/setter during each test and restoring the original descriptor
afterward so other tests keep the real process object behavior.
2026-03-24 09:50:11 -07:00
Tak Hoffman
8754d8e330
fix: ci
2026-03-24 09:25:28 -05:00
Sally O'Malley
91adc5e718
feat(cli): support targeting running containerized openclaw instances ( #52651 )
...
Signed-off-by: sallyom <somalley@redhat.com>
2026-03-24 10:17:17 -04:00
Val Alexander
cb58e45130
fix(security): resolve Aisle findings — skill installer validation, terminal sanitization, URL scheme allowlisting ( #53471 ) thanks @BunsDev
...
Co-authored-by: BunsDev <68980965+BunsDev@users.noreply.github.com>
Co-authored-by: Nova <nova@openknot.ai>
2026-03-24 01:43:48 -05:00
Val Alexander
a710366e9e
feat(ui): Control UI polish — skills revamp, markdown preview, agent workspace, macOS config tree ( #53411 ) thanks @BunsDev
...
Co-authored-by: BunsDev <68980965+BunsDev@users.noreply.github.com>
Co-authored-by: Nova <nova@openknot.ai>
2026-03-24 01:21:13 -05:00
Peter Steinberger
fd0fa97952
refactor: centralize plugin install config policy
2026-03-23 23:07:40 -07:00
Catalin Lupuleti
cbb11b3662
fix(plugins): address review feedback for Matrix recovery paths ( #52899 )
2026-03-23 22:16:10 -07:00
Catalin Lupuleti
489797ceaf
fix(plugins): address review feedback for Matrix recovery paths ( #52899 )
...
1. Narrow loadConfigForInstall() to catch only INVALID_CONFIG errors,
letting real failures (fs permission, OOM) propagate.
2. Assert allow array is properly cleaned in stale-cleanup test.
3. Add comment clarifying version-resolution is already addressed via
the shared VERSION constant.
4. Run cleanStaleMatrixPluginConfig() during install so
persistPluginInstall() → writeConfigFile() does not fail validation
on stale Matrix load paths.
2026-03-23 22:16:10 -07:00
Catalin Lupuleti
3ae100a8d7
fix(plugins): make Matrix recovery paths tolerate stale plugin config ( #52899 )
2026-03-23 22:16:10 -07:00
Peter Steinberger
5c9e4cd30a
refactor: clarify doctor repair flow
2026-03-23 22:12:56 -07:00
Peter Steinberger
2e1c88b728
refactor: tighten embedded prompt and sidecar guards
2026-03-23 22:09:22 -07:00
Peter Steinberger
0857447a5d
fix: reject nonexistent zoned cron at-times
2026-03-23 21:14:55 -07:00
Peter Steinberger
ce49d8bca9
fix: verify global npm correction installs
2026-03-23 21:04:08 -07:00
Peter Steinberger
3ae5d33799
refactor: extract cron schedule and test runner helpers
2026-03-23 19:53:43 -07:00
Peter Steinberger
0cbf6d5fed
fix: land cron tz one-shot handling and prerelease config warnings ( #53224 ) (thanks @RolfHegr)
2026-03-23 19:38:04 -07:00
Rolfy
9aac5582d6
fix(cron): make --tz work with --at for one-shot jobs
...
Previously, `--at` with an offset-less ISO datetime (e.g. `2026-03-23T23:00:00`)
was always interpreted as UTC, even when `--tz` was provided. This caused one-shot
jobs to fire at the wrong time.
Changes:
- `parseAt()` now accepts an optional `tz` parameter
- When `--tz` is provided with `--at`, offset-less datetimes are interpreted in
that IANA timezone using Intl.DateTimeFormat
- Datetimes with explicit offsets (e.g. `+01:00`, `Z`) are unaffected
- Removed the guard in cron-edit that blocked `--tz` with `--at`
- Updated `--at` help text to mention `--tz` support
- Added 2 tests verifying timezone resolution and offset preservation
2026-03-23 19:38:04 -07:00
Peter Steinberger
d25ad66069
fix: resolve catalog-backed channel login
2026-03-23 18:25:44 -07:00
Val Alexander
6c44b2ea50
fix(cli): guard channel-auth against prototype-chain pollution and control-char injection
...
- Use hasOwnProperty + isBlockedObjectKey in isConfiguredAuthPlugin to
prevent __proto__/constructor/prototype keys from matching config
- Sanitize plugin IDs with sanitizeForLog in ambiguity error messages
- Add regression test for __proto__ plugin ID
2026-03-23 19:58:16 -05:00
Val Alexander
c8f4b8533d
fix(cli): auto-select login-capable auth channels ( #53254 ) thanks @BunsDev
...
Co-authored-by: BunsDev <68980965+BunsDev@users.noreply.github.com>
Co-authored-by: Nova <nova@openknot.ai>
2026-03-23 19:54:46 -05:00
Peter Steinberger
a921b5bdff
test: fix update-cli default path assertion
2026-03-23 23:05:25 +00:00
Peter Steinberger
47bdc36831
test: make update-cli checkout path assertion platform-safe
2026-03-23 22:54:32 +00:00
Vincent Koc
c1131ba7e0
fix(plugins): accept clawhub uninstall specs
2026-03-23 13:52:27 -07:00
Vincent Koc
8fa91d283b
fix(cli): preserve posix default git dir
2026-03-23 11:49:55 -07:00
Peter Steinberger
ffb287e1de
fix: harden update dev switch and refresh changelog
2026-03-23 10:56:35 -07:00
Nimrod Gutman
041c47419f
fix(channels): preserve external catalog overrides ( #52988 )
...
* fix(channels): preserve external catalog overrides
* fix(channels): clarify catalog precedence
* fix(channels): respect overridden install specs
2026-03-23 18:08:17 +02:00
Vincent Koc
beadd4c553
fix(gateway): harden supervised lock and browser attach readiness
2026-03-23 08:42:00 -07:00
Julia Bush
e94ebfa084
fix: harden gateway SIGTERM shutdown ( #51242 ) (thanks @juliabush)
...
* fix: increase shutdown timeout to avoid SIGTERM hang
* fix(telegram): abort polling fetch on shutdown to prevent SIGTERM hang
* fix(gateway): enforce hard exit on shutdown timeout for SIGTERM
* fix: tighten gateway shutdown watchdog
* fix: harden gateway SIGTERM shutdown (#51242 ) (thanks @juliabush)
---------
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-03-23 15:01:42 +05:30
Peter Steinberger
abf2157b18
fix: sync agent and autoreply e2e updates
2026-03-23 01:33:40 -07:00
Peter Steinberger
9105b3723d
test: harden no-isolate test module resets
2026-03-23 01:02:16 -07:00
Peter Steinberger
3fd5d13315
test: fix ci docs drift and bun qr exit handling
2026-03-23 07:41:23 +00:00
Peter Steinberger
fe5819887b
refactor(gateway): centralize discovery target handling
2026-03-23 00:38:31 -07:00
Peter Steinberger
deecf68b59
fix(gateway): fail closed on unresolved discovery endpoints
2026-03-23 00:27:37 -07:00
Peter Steinberger
72e58ca260
test(models): refresh example model fixtures
2026-03-22 23:00:18 -07:00
Peter Steinberger
6b9915a106
refactor!: drop legacy CLAWDBOT env compatibility
2026-03-22 22:13:39 -07:00
Peter Steinberger
97e4f37171
fix: keep status --json stdout clean ( #52449 ) (thanks @cgdusek)
2026-03-22 21:51:08 -07:00
Charles Dusek
0e1da034c2
fix(cli): route plugin logs to stderr during --json output
2026-03-22 21:51:08 -07:00
Peter Steinberger
54213b587f
refactor: reuse shared cli runtime test mocks
2026-03-23 01:53:28 +00:00
Peter Steinberger
2e6f2b0f07
test: centralize cli runtime capture helpers
2026-03-23 01:53:28 +00:00
Peter Steinberger
75835fc664
test: restore runtime-aware cli mocks
2026-03-22 18:35:37 -07:00
Peter Steinberger
c43bfcbbec
refactor: split best-effort network display discovery
2026-03-22 18:35:37 -07:00
Vincent Koc
e3c7a05cb5
fix(cli): remove duplicate test runtime keys
2026-03-22 17:52:05 -07:00
Peter Steinberger
976eefe373
test: align cli runtime mocks with output runtime
2026-03-22 17:32:20 -07:00
Peter Steinberger
7bd12f4b37
test: fix rebased directory runtime mock ( #52428 ) (thanks @karanuppal)
2026-03-22 16:56:19 -07:00
Peter Steinberger
aaa6068c08
test: stabilize json runtime captures ( #52428 ) (thanks @karanuppal)
2026-03-22 16:56:19 -07:00
Peter Steinberger
797f3cc377
fix: stabilize stale buffer sweep landing ( #52428 ) (thanks @karanuppal)
2026-03-22 16:56:19 -07:00
Peter Steinberger
165aeccd24
test: align memory cli json assertions
2026-03-22 23:46:54 +00:00
Peter Steinberger
4e531d382b
fix(ci): restore cli runtime mocks and timeout exits
2026-03-22 23:43:58 +00:00
Peter Steinberger
4ee41cc6f3
refactor(cli): separate json payload output from logging
2026-03-22 23:19:17 +00:00
Codex
8c7d603f25
fix(gateway): keep status helpers resilient to netif failures
2026-03-22 16:09:43 -07:00
Peter Steinberger
1ad47b8fa1
test: harden path resolution test helpers
2026-03-22 22:47:58 +00:00
Charles Dusek
ebb4cc0128
fix(cli): route logs to stderr in --json mode to keep stdout clean
2026-03-22 15:43:48 -07:00
Peter Steinberger
58c3f8673a
test: fix full gate after runtime lazy-load
2026-03-22 22:33:07 +00:00
Peter Steinberger
47e8ffc2e9
test: repair current main gate regressions
2026-03-22 22:22:46 +00:00
Peter Steinberger
e06b8d3e62
fix: harden update channel switching
2026-03-22 15:09:38 -07:00
Peter Steinberger
cfd9242e5d
perf: lazy-load memory runtime surfaces
2026-03-22 22:06:45 +00:00
Peter Steinberger
2773f33084
test: stabilize vitest no-isolate suites
2026-03-22 14:28:43 -07:00
Peter Steinberger
7a3346871e
test: fix no-isolate integration regressions
2026-03-22 20:41:03 +00:00
Peter Steinberger
8eb881ef18
test: harden no-isolate mock and timer cleanup
2026-03-22 13:32:59 -07:00
Peter Steinberger
1b1167012f
test(cli): split plugin cli test coverage by surface
2026-03-22 12:02:53 -07:00
Peter Steinberger
e3151af6bc
refactor(cli): extract hook pack update flow
2026-03-22 12:02:52 -07:00
Peter Steinberger
5696e24c3f
refactor(cli): use typed clawhub fallback decisions
2026-03-22 12:02:52 -07:00
Peter Steinberger
145e514bb5
refactor(cli): share plugin install persistence
2026-03-22 12:02:52 -07:00
Peter Steinberger
5920ea838d
refactor(cli): extract plugin install and update commands
2026-03-22 12:02:52 -07:00
Peter Steinberger
c40488453e
test: remove thread-unsafe cwd mutations
2026-03-22 11:47:28 -07:00
Peter Steinberger
aa80b1eb7c
feat(cli): unify hook pack installs under plugins
2026-03-22 11:20:50 -07:00
Peter Steinberger
8d9686bd0f
feat!: prefer clawhub plugin installs before npm
2026-03-22 18:17:45 +00:00
Peter Steinberger
1ceaad18a6
test: harden vitest no-isolate coverage
2026-03-22 10:48:21 -07:00
Peter Steinberger
91b2800241
feat: add native clawhub install flows
2026-03-22 17:03:49 +00:00
Peter Steinberger
5cb2f45585
refactor(hooks): unify hook policy resolution
2026-03-22 09:59:51 -07:00
Peter Steinberger
42f23619e3
fix(hooks): harden workspace hook loading
2026-03-22 09:38:09 -07:00
Peter Steinberger
9dea537bae
fix(cli): clean daemon install imports
2026-03-21 23:14:40 +00:00
Peter Steinberger
29b165e456
refactor: centralize node startup tls planning
2026-03-21 15:58:42 -07:00
Menglin Li
ef7a5c3546
fix: use content hash for memory flush dedup instead of compactionCount ( #30115 ) ( #34222 )
...
Merged via squash.
Prepared head SHA: bce6f0bda0
Co-authored-by: lml2468 <39320777+lml2468@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-03-21 12:06:25 -07:00
Jari Mustonen
fd2b3ed6af
feat(memory): pluggable system prompt section for memory plugins ( #40126 )
...
Merged via squash.
Prepared head SHA: 5228d1937f
Co-authored-by: jarimustonen <1272053+jarimustonen@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-03-21 11:20:45 -07:00
Peter Steinberger
ebfc5f8240
fix: detect nvm services from installed command ( #51146 )
2026-03-21 11:06:31 -07:00
Peter Steinberger
40f5305cd2
fix: handle Linux nvm CA env before startup ( #51146 ) (thanks @GodsBoy)
2026-03-21 11:06:31 -07:00
Vincent Koc
11d71ca352
pairing: keep setup codes bootstrap-token only ( #51259 )
2026-03-20 13:27:39 -07:00
Peter Steinberger
62ddc9d9e0
refactor: consolidate plugin sdk surface
2026-03-20 19:24:10 +00:00
Vincent Koc
93fbe26adb
fix(config): tighten json and json5 parsing paths ( #51153 )
2026-03-20 10:10:57 -07:00
Peter Steinberger
ba1bb8505f
refactor: install optional channels for directory
2026-03-20 15:37:56 +00:00
Harold Hunt
41628770f5
Tests: trim command secret gateway imports ( #50663 )
...
Merged via squash.
Prepared head SHA: 7f64fd3ee1
Co-authored-by: huntharo <5617868+huntharo@users.noreply.github.com>
Co-authored-by: huntharo <5617868+huntharo@users.noreply.github.com>
Reviewed-by: @huntharo
2026-03-19 19:53:02 -04:00
Josh Avant
8e132aed6e
Hardening: refresh stale device pairing requests and pending metadata ( #50695 )
...
* Docs: clarify device pairing supersede behavior
* Device pairing: supersede pending requests on auth changes
2026-03-19 18:26:06 -05:00
Vincent Koc
f3971571fe
fix(plugins): fail strict bootstrap on plugin load errors
2026-03-19 16:07:53 -07:00
Josh Avant
1878272f67
CLI: prune inactive gateway auth credentials on mode set ( #50639 )
2026-03-19 16:05:43 -05:00
Vincent Koc
3b79494cbf
fix(runtime): lazy-load setup shims and align contracts
2026-03-19 13:33:32 -07:00
Vincent Koc
f60017d725
test(ci): trim memory cli harness churn
2026-03-19 12:22:41 -07:00
Vincent Koc
6b9ebffebb
test(ci): trim command secret gateway harness churn
2026-03-19 11:08:33 -07:00
Harold Hunt
401ffb59f5
CLI: support versioned plugin updates ( #49998 )
...
Merged via squash.
Prepared head SHA: 545ea60fa2
Co-authored-by: huntharo <5617868+huntharo@users.noreply.github.com>
Reviewed-by: @huntharo
2026-03-19 12:51:10 -04:00
Gustavo Madeira Santana
16129272dc
Tests: update Matrix agent bind fixtures
2026-03-19 08:31:38 -04:00
Ayaan Zaidi
1d3e596021
fix(pairing): include shared auth in setup codes
2026-03-19 11:20:31 +05:30
Ayaan Zaidi
d978ace90b
fix: isolate CLI startup imports ( #50212 )
...
* fix: isolate CLI startup imports
* fix: clarify CLI preflight behavior
* fix: tighten main-module detection
* fix: isolate CLI startup imports (#50212 )
2026-03-19 10:34:29 +05:30
Peter Steinberger
b7ca56f662
refactor: install heavy plugins on demand
2026-03-19 03:37:30 +00:00
Peter Steinberger
83c5bc946d
fix: restore full gate stability
2026-03-19 03:36:03 +00:00
Peter Steinberger
30a94dfd3b
refactor: untangle whatsapp runtime boundary
2026-03-19 03:13:48 +00:00
Peter Steinberger
46f49eb6eb
refactor: shrink plugin sdk public surface
2026-03-18 23:31:08 +00:00
Josh Avant
e6911f0448
Tests: restore deterministic plugins CLI coverage ( #49955 )
...
* Tests: restore deterministic plugins CLI coverage
* CLI: preserve plugins exit control-flow narrowing
* Tests: fix plugins CLI mock typing for tsgo
* Tests: fix provider usage mock typing in key normalization
2026-03-18 14:05:04 -05:00
Vincent Koc
a02bfd30c5
Plugin SDK: use public utility subpaths
2026-03-18 09:43:46 -07:00
Vincent Koc
f187e8bac4
Plugin SDK: use public slack subpath
2026-03-18 09:40:57 -07:00
Vincent Koc
e64cc1983f
Plugin SDK: use public discord subpath
2026-03-18 09:39:12 -07:00
Vincent Koc
b3ca855283
Plugin SDK: use public whatsapp subpath
2026-03-18 09:37:54 -07:00
Vincent Koc
3e02635df3
Plugin SDK: use public telegram subpath
2026-03-18 09:33:21 -07:00
Peter Steinberger
f6928617b7
test: stabilize gate regressions
2026-03-18 15:36:32 +00:00
Vincent Koc
4ebd3d11aa
Plugins: add LSP server loader and surface in inspect reports
2026-03-18 00:12:24 -07:00
Vincent Koc
b48413e252
Plugins: surface MCP servers and bundle capabilities in inspect reports
2026-03-17 23:14:40 -07:00
Josh Avant
0ffcc308f2
Secrets: gate exec dry-run and preflight resolution behind --allow-exec ( #49417 )
...
* Secrets: gate exec dry-run resolution behind --allow-exec
* Secrets: fix dry-run completeness and skipped exec audit semantics
* Secrets: require --allow-exec for exec-containing apply writes
* Docs: align secrets exec consent behavior
* Changelog: note secrets exec consent gating
2026-03-17 23:24:34 -05:00
Vincent Koc
6556a40330
Tests: drop unstable plugins cli coverage
2026-03-17 20:34:51 -07:00
Vincent Koc
5c4903d3fd
Plugins: centralize compatibility formatting
2026-03-17 20:33:12 -07:00
Vincent Koc
27d4fdf3bb
Plugins: surface compatibility notices
2026-03-17 20:03:40 -07:00
Josh Avant
2d3bcbfe08
CLI: skip exec SecretRef dry-run resolution unless explicitly allowed ( #49322 )
...
* CLI: gate exec SecretRef dry-run resolution behind opt-in
* Docs: clarify config dry-run exec opt-in behavior
* CLI: preserve static exec dry-run validation
2026-03-17 20:20:11 -05:00
joshavant
ab5aec137c
CLI: fix config set dry-run coverage gaps
2026-03-17 18:31:03 -05:00
Gustavo Madeira Santana
ffe24955c8
Plugins: fix pnpm check regressions
2026-03-17 23:25:40 +00:00
Josh Avant
e99963100d
CLI: expand config set with SecretRef/provider builders and dry-run ( #49296 )
...
* CLI: expand config set ref/provider builder and dry-run
* Docs: revert README Discord token example
2026-03-17 18:15:49 -05:00
Vincent Koc
0d80897476
Plugins: add inspect matrix and trim export
2026-03-17 10:33:35 -07:00
Vincent Koc
3983928958
Plugins: add inspect command and capability report
2026-03-17 10:16:06 -07:00
Peter Steinberger
9f8cf7f71a
test: stabilize full gate
2026-03-17 16:21:59 +00:00
Peter Steinberger
647fb9cc3e
test: merge update cli channel cases
2026-03-17 16:21:59 +00:00
Peter Steinberger
58313fcd05
test: merge update cli restart behavior cases
2026-03-17 16:21:59 +00:00
Peter Steinberger
31d739fda2
test: merge update cli validation cases
2026-03-17 16:21:59 +00:00
Peter Steinberger
c672635413
test: merge update cli outcome cases
2026-03-17 16:21:59 +00:00
Peter Steinberger
9e29511316
test: merge update cli dry run cases
2026-03-17 16:21:59 +00:00
Peter Steinberger
37df574da0
test: merge update cli service refresh behavior
2026-03-17 16:21:59 +00:00
Peter Steinberger
3be44b1044
test: merge update status output cases
2026-03-17 16:21:59 +00:00
Peter Steinberger
c4323db30f
test: merge update cli service refresh cases
2026-03-17 16:21:59 +00:00
Peter Steinberger
40f1aad019
test: merge duplicate update cli scenarios
2026-03-17 16:21:58 +00:00
Peter Steinberger
9648e7fecb
refactor: consolidate lazy runtime surfaces
2026-03-17 00:59:20 -07:00
Peter Steinberger
449127b474
fix: restore full gate
2026-03-17 07:47:28 +00:00
Peter Steinberger
5fb7a1363f
fix: stabilize full gate
2026-03-17 07:06:25 +00:00
Peter Steinberger
3dec814fda
refactor: bundle lazy runtime surfaces
2026-03-17 00:00:45 -07:00
Peter Steinberger
14d6b762fb
build: remove ineffective dynamic import shims
2026-03-16 23:11:59 -07:00
Vincent Koc
cc88b4a72d
Commands: add /plugins chat command ( #48765 )
...
* Tests: stabilize MCP config merge follow-ups
* Commands: add /plugins chat command
* Docs: add /plugins slash command guide
2026-03-16 22:57:44 -07:00
Peter Steinberger
f2bd76cd1a
refactor: finalize plugin sdk legacy boundary cleanup
2026-03-16 22:51:46 -07:00
Peter Steinberger
dbe77d0425
fix(agents): restore embedded pi and websocket typings
2026-03-16 22:21:18 -07:00
Josh Avant
da34f81ce2
fix(secrets): scope message SecretRef resolution and harden doctor/status paths ( #48728 )
...
* fix(secrets): scope message runtime resolution and harden doctor/status
* docs: align message/doctor/status SecretRef behavior notes
* test(cli): accept scoped targetIds wiring in secret-resolution coverage
* fix(secrets): keep scoped allowedPaths isolation and tighten coverage gate
* fix(secrets): avoid default-account coercion in scoped target selection
* test(doctor): cover inactive telegram secretref inspect path
* docs
Signed-off-by: joshavant <830519+joshavant@users.noreply.github.com>
* changelog
Signed-off-by: joshavant <830519+joshavant@users.noreply.github.com>
---------
Signed-off-by: joshavant <830519+joshavant@users.noreply.github.com>
2026-03-17 00:01:34 -05:00
Vincent Koc
06459ca0df
Agents: run bundle MCP tools in embedded Pi ( #48611 )
...
* Agents: run bundle MCP tools in embedded Pi
* Plugins: fix bundle MCP path resolution
* Plugins: warn on unsupported bundle MCP transports
* Commands: add embedded Pi MCP management
* Config: move MCP management to top-level config
2026-03-16 21:46:05 -07:00
Peter Steinberger
9ebe38b6e3
refactor: untangle remaining plugin sdk boundaries
2026-03-16 21:16:32 -07:00
Tak Hoffman
4863b651c6
docs: rename onboarding user-facing wizard copy
...
Co-authored-by: Tak <contact-redacted@example.com>
2026-03-16 19:50:31 -05:00
Josh Lehman
eeb140b4f0
fix(plugins): late-binding subagent runtime for non-gateway load paths ( #46648 )
...
Merged via squash.
Prepared head SHA: 44742652c9
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-03-16 14:27:54 -07:00
Ayaan Zaidi
7e2658908d
perf: lazy-load status route startup helpers
2026-03-16 22:07:59 +05:30
Ayaan Zaidi
97a7dcf48e
perf: reduce status json startup memory
2026-03-16 21:51:24 +05:30
Gustavo Madeira Santana
541e697554
Plugins: share channel plugin id resolution
2026-03-16 13:31:20 +00:00
Radek Sienkiewicz
7deb543624
Browser: support non-Chrome existing-session profiles via userDataDir ( #48170 )
...
Merged via squash.
Prepared head SHA: e490035a24
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-16 14:21:22 +01:00
Gustavo Madeira Santana
c08f2aa21a
Providers: centralize setup defaults and helper boundaries
2026-03-16 12:06:32 +00:00
Vincent Koc
ff2e864c98
Plugins: add Claude marketplace registry installs ( #48058 )
...
* Changelog: note Claude marketplace plugin support
* Plugins: add Claude marketplace installs
* E2E: cover marketplace plugin installs in Docker
2026-03-16 01:46:07 -07:00
Peter Steinberger
7e74adef91
refactor: shrink public channel plugin sdk surfaces
2026-03-16 01:34:22 -07:00
Peter Steinberger
a73d6620b3
refactor: route remaining channel imports through plugin sdk
2026-03-16 01:17:13 -07:00
Vincent Koc
476d948732
!refactor(browser): remove Chrome extension path and add MCP doctor migration ( #47893 )
...
* Browser: replace extension path with Chrome MCP
* Browser: clarify relay stub and doctor checks
* Docs: mark browser MCP migration as breaking
* Browser: reject unsupported profile drivers
* Browser: accept clawd alias on profile create
* Doctor: narrow legacy browser driver migration
2026-03-15 23:56:08 -07:00
Peter Steinberger
ae60094fb5
refactor(plugins): move onboarding auth metadata to manifests
2026-03-15 23:47:16 -07:00
Peter Steinberger
ddd34b6cc3
refactor(plugins): simplify provider auth choice metadata
2026-03-15 23:01:12 -07:00
Peter Steinberger
465567b1eb
test: fix setup wizard smoke mocks
2026-03-16 05:54:58 +00:00
Peter Steinberger
f9e185887f
docs: restore onboard docs references
2026-03-16 05:50:57 +00:00
Peter Steinberger
2acbea0da7
docs: restore onboard as canonical setup command
2026-03-16 05:50:57 +00: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
c780b6a6ab
fix: address all review comments on PR #47719 + implement resume context and config idempotency guard
2026-03-15 22:32:36 -07:00
Peter Steinberger
abe7ea4373
fix: accept schtasks Last Result key on Windows ( #47844 ) (thanks @MoerAI)
2026-03-15 22:20:34 -07:00
Peter Steinberger
5c120cb36c
refactor: make setup the primary wizard surface
2026-03-15 22:01:04 -07:00
Vincent Koc
474368d746
CLI: add shared interactive send flag
2026-03-15 21:55:45 -07:00
Peter Steinberger
656848dcd7
refactor: rename setup wizard surfaces
2026-03-15 21:40:31 -07:00
Vincent Koc
cb4a298961
CLI: route gateway status through daemon status
2026-03-15 21:15:04 -07:00
Peter Steinberger
0218045818
test: silence vitest warning noise
2026-03-15 21:02:31 -07:00
Vincent Koc
ca2f046668
Status: route JSON through lean command
2026-03-15 20:56:44 -07:00
Vincent Koc
3b26da4b82
CLI: route gateway status before program registration
2026-03-15 20:26:58 -07:00
Vincent Koc
986b772a89
Status: scope JSON plugin preload to configured channels
2026-03-15 20:05:54 -07:00
Peter Steinberger
46482a283a
feat: add nostr setup and unify channel setup discovery
2026-03-15 19:58:22 -07:00
Josh Avant
a2cb81199e
secrets: harden read-only SecretRef command paths and diagnostics ( #47794 )
...
* secrets: harden read-only SecretRef resolution for status and audit
* CLI: add SecretRef degrade-safe regression coverage
* Docs: align SecretRef status and daemon probe semantics
* Security audit: close SecretRef review gaps
* Security audit: preserve source auth SecretRef configuredness
* changelog
Signed-off-by: joshavant <830519+joshavant@users.noreply.github.com>
---------
Signed-off-by: joshavant <830519+joshavant@users.noreply.github.com>
2026-03-15 21:55:24 -05:00
Peter Steinberger
3f12e90f3e
fix(ci): repair security and route test fixtures
2026-03-15 19:54:00 -07:00
Peter Steinberger
57a0534f93
fix(cli): repair preaction merge typo
2026-03-15 18:47:23 -07:00
Peter Steinberger
fb991e6f31
perf(plugins): lazy-load setup surfaces
2026-03-15 18:46:54 -07:00
Peter Steinberger
83ee5c0328
perf(status): defer heavy startup loading
2026-03-15 18:20:53 -07:00
Peter Steinberger
9c89a74f84
perf(cli): trim help startup imports
2026-03-15 18:20:52 -07:00
Vincent Koc
f87e7be55e
CLI: restore lightweight root help and scoped status plugin preload
2026-03-15 17:38:39 -07:00
Peter Steinberger
dd40741e18
feat(plugins): add compatible bundle support
2026-03-15 16:08:50 -07: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
xiaoyi
bbb0c3e5d7
CLI/completion: fix generator OOM and harden plugin registries ( #45537 )
...
* fix: avoid OOM during completion script generation
* CLI/completion: fix PowerShell nested command paths
* CLI/completion: cover generated shell scripts
* Changelog: note completion generator follow-up
* Plugins: reserve shared registry names
---------
Co-authored-by: Xiaoyi <xiaoyi@example.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-03-15 12:14:30 -07:00
Vincent Koc
dd2eb29038
Commands: split static onboard auth choice help ( #47545 )
...
* Commands: split static onboard auth choice help
* Tests: cover static onboard auth choice help
* Changelog: note static onboard auth choice help
2026-03-15 12:11:55 -07:00
Vincent Koc
67b2d1b8e8
CLI: reduce channels add startup memory ( #46784 )
...
* CLI: lazy-load channel subcommand handlers
* Channels: defer add command dependencies
* CLI: skip status JSON plugin preload
* CLI: cover status JSON route preload
* Status: trim JSON security audit path
* Status: update JSON fast-path tests
* CLI: cover root help fast path
* CLI: fast-path root help
* Status: keep JSON security parity
* Status: restore JSON security tests
* CLI: document status plugin preload
* Channels: reuse Telegram account import
2026-03-15 09:10:40 -07:00
Peter Steinberger
a472f988d8
fix: harden remote cdp probes
2026-03-15 08:23:01 -07:00
Sally O'Malley
8db6fcca77
fix(gateway/cli): relax local backend self-pairing and harden launchd restarts ( #46290 )
...
Signed-off-by: sallyom <somalley@redhat.com>
2026-03-14 14:27:52 -04: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
thepagent
0ee11d3321
feat: add --force-document to message.send for Telegram (bypass sendPhoto + image optimizer) ( #45111 )
...
* feat: add --force-document to message.send for Telegram
Adds --force-document CLI flag to bypass sendPhoto and use sendDocument
instead, avoiding Telegram image compression for PNG/image files.
- TelegramSendOpts: add forceDocument field
- send.ts: skip sendPhoto when forceDocument=true (mediaSender pattern)
- ChannelOutboundContext: add forceDocument field
- telegramOutbound.sendMedia: pass forceDocument to sendMessageTelegram
- ChannelHandlerParams / DeliverOutboundPayloadsCoreParams: add forceDocument
- createChannelOutboundContextBase: propagate forceDocument
- outbound-send-service.ts: add forceDocument to executeSendAction params
- message-action-runner.ts: read forceDocument from params
- message.ts: add forceDocument to MessageSendParams
- register.send.ts: add --force-document CLI option
* fix: pass forceDocument through telegram action dispatch path
The actual send path goes through dispatchChannelMessageAction ->
telegramMessageActions.handleAction -> handleTelegramAction, not
deliverOutboundPayloads. forceDocument was not being read in
readTelegramSendParams or passed to sendMessageTelegram.
* fix: apply forceDocument to GIF branch to avoid sendAnimation
* fix: add disable_content_type_detection=true to sendDocument for --force-document
* fix: add forceDocument to buildSendSchema for agent discoverability
* fix: scope telegram force-document detection
* test: fix heartbeat target helper typing
* fix: skip image optimization when forceDocument is set
* fix: persist forceDocument in WAL queue for crash-recovery replay
* test: tighten heartbeat target test entry typing
---------
Co-authored-by: thepagent <thepagent@users.noreply.github.com>
Co-authored-by: Frank Yang <frank.ekn@gmail.com>
2026-03-14 19:43:49 +08:00
scoootscooob
439c21e078
refactor: remove channel shim directories, point all imports to extensions ( #45967 )
...
* refactor: remove channel shim directories, point all imports to extensions
Delete the 6 backward-compat shim directories (src/telegram, src/discord,
src/slack, src/signal, src/imessage, src/web) that were re-exporting from
extensions. Update all 112+ source files to import directly from
extensions/{channel}/src/ instead of through the shims.
Also:
- Move src/channels/telegram/ (allow-from, api) to extensions/telegram/src/
- Fix outbound adapters to use resolveOutboundSendDep (fixes 5 pre-existing TS errors)
- Update cross-extension imports (src/web/media.js → extensions/whatsapp/src/media.js)
- Update vitest, tsdown, knip, labeler, and script configs for new paths
- Update guard test allowlists for extension paths
After this, src/ has zero channel-specific implementation code — only the
generic plugin framework remains.
* fix: update raw-fetch guard allowlist line numbers after shim removal
* refactor: document direct extension channel imports
* test: mock transcript module in delivery helpers
2026-03-14 03:43:07 -07:00
scoootscooob
7764f717e9
refactor: make OutboundSendDeps dynamic with channel-ID keys ( #45517 )
...
* refactor: make OutboundSendDeps dynamic with channel-ID keys
Replace hardcoded per-channel send fields (sendTelegram, sendDiscord,
etc.) with a dynamic index-signature type keyed by channel ID. This
unblocks moving channel implementations to extensions without breaking
the outbound dispatch contract.
- OutboundSendDeps and CliDeps are now { [channelId: string]: unknown }
- Each outbound adapter resolves its send fn via bracket access with cast
- Lazy-loading preserved via createLazySender with module cache
- Delete 6 deps-send-*.runtime.ts one-liner re-export files
- Harden guardrail scan against deleted-but-tracked files
* fix: preserve outbound send-deps compatibility
* style: fix formatting issues (import order, extra bracket, trailing whitespace)
* fix: resolve type errors from dynamic OutboundSendDeps in tests and extension
* fix: remove unused OutboundSendDeps import from deliver.test-helpers
2026-03-14 02:42:21 -07:00
kkhomej33-netizen
e7d9648fba
feat(cron): support custom session IDs and auto-bind to current session ( #16511 )
...
feat(cron): support persistent session targets for cron jobs (#9765 )
Add support for `sessionTarget: "current"` and `session:<id>` so cron jobs can
bind to the creating session or a persistent named session instead of only
`main` or ephemeral `isolated` sessions.
Also:
- preserve custom session targets across reloads and restarts
- update gateway validation and normalization for the new target forms
- add cron coverage for current/custom session targets and fallback behavior
- fix merged CI regressions in Discord and diffs tests
- add a changelog entry for the new cron session behavior
Co-authored-by: kkhomej33-netizen <kkhomej33-netizen@users.noreply.github.com>
Co-authored-by: ImLukeF <92253590+ImLukeF@users.noreply.github.com>
2026-03-14 16:48:46 +11:00
Peter Steinberger
5c40c1c78a
fix(browser): add browser session selection
2026-03-14 03:46:44 +00:00
Peter Steinberger
8bc163d15f
fix(ci): repair helper typing regressions
2026-03-14 03:22:53 +00:00
Peter Steinberger
965bdb2d2d
fix: harden gateway status rpc smoke
2026-03-14 01:56:24 +00:00
Peter Steinberger
5b53481d1d
refactor: share daemon install cli setup
2026-03-14 01:41:17 +00:00
Peter Steinberger
4e055d8df2
refactor: share gateway timeout parsing
2026-03-14 01:41:16 +00:00
Peter Steinberger
f806b07208
refactor: share cli install helpers
2026-03-14 00:30:14 +00:00
Peter Steinberger
2d39c50ee6
refactor: share daemon lifecycle restart helpers
2026-03-14 00:30:14 +00:00
Peter Steinberger
54999be326
test: share qr cli setup code helpers
2026-03-14 00:30:14 +00:00
Peter Steinberger
c90b10b02f
test: share daemon cli service helpers
2026-03-14 00:30:14 +00:00
Peter Steinberger
68a507ab31
test: share lifecycle config guard helpers
2026-03-14 00:30:14 +00:00
Peter Steinberger
6e7e82e5e7
test: share restart health helpers
2026-03-14 00:30:14 +00:00