From 33983131bafbd5c478e943033e81f19b496c9ef7 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sat, 24 Jan 2026 00:42:06 +0000 Subject: [PATCH] fix: land matrix plugin deps (#1549) (thanks @travisp) --- CHANGELOG.md | 1 + README.md | 47 +++++++++++++++++++------------------ src/infra/tailscale.test.ts | 22 +++++++++++------ 3 files changed, 40 insertions(+), 30 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 557a80ac5..ba4ea7d13 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,7 @@ Docs: https://docs.clawd.bot - Agents: treat plugin-only tool allowlists as opt-ins; keep core tools enabled. (#1467) - Exec approvals: persist allowlist entry ids to keep macOS allowlist rows stable. (#1521) Thanks @ngutman. - MS Teams (plugin): remove `.default` suffix from Graph scopes to avoid double-appending. (#1507) Thanks @Evizero. +- Matrix (plugin): keep runtime deps installable with `npm install --omit=dev`. (#1549) Thanks @travisp. ## 2026.1.22 diff --git a/README.md b/README.md index a08760ae6..842a18103 100644 --- a/README.md +++ b/README.md @@ -478,28 +478,29 @@ Thanks to all clawtributors:

steipete bohdanpodvirnyi joaohlisboa mneves75 MatthieuBizien MaudeBot rahthakor vrknetha radek-paclt Tobias Bischoff - joshp123 mukhtharcm maxsumrall xadenryan juanpablodlc hsrvc magimetal meaningfool NicholasSpisak sebslight - abhisekbasu1 jamesgroat zerone0x claude SocialNerd42069 Hyaxia dantelex daveonkels mteam88 Eng. Juan Combetto - Mariano Belinky dbhurley TSavo julianengel benithors bradleypriest timolins nachx639 sreekaransrinath gupsammy - cristip73 nachoiacovino Vasanth Rao Naik Sabavat cpojer lc0rp scald gumadeiras andranik-sahakyan davidguttman sleontenko - sircrumpet peschee rafaelreis-r thewilloftheshadow ratulsarna lutr0 danielz1z emanuelst KristijanJovanovski CashWilliams - rdev osolmaz joshrad-dev kiranjd adityashaw2 sheeek artuskg onutc tyler6204 manuelhettich - minghinmatthewlam myfunc vignesh07 buddyh connorshea mcinteerj dependabot[bot] John-Rood timkrase gerardward2007 - obviyus tosh-hamburg azade-c roshanasingh4 bjesuiter cheeeee Josh Phillips Whoaa512 YuriNachos chriseidhof - ysqander dlauer superman32432432 Yurii Chukhlib grp06 antons austinm911 blacksmith-sh[bot] damoahdominic dan-dr + joshp123 mukhtharcm maxsumrall xadenryan juanpablodlc hsrvc magimetal meaningfool patelhiren NicholasSpisak + sebslight abhisekbasu1 zerone0x jamesgroat claude SocialNerd42069 Hyaxia dantelex daveonkels google-labs-jules[bot] + mteam88 Eng. Juan Combetto Mariano Belinky dbhurley TSavo julianengel benithors bradleypriest timolins nachx639 + pvoo sreekaransrinath gupsammy cristip73 stefangalescu nachoiacovino Vasanth Rao Naik Sabavat iHildy cpojer lc0rp + scald gumadeiras andranik-sahakyan davidguttman sleontenko rodrigouroz sircrumpet peschee rafaelreis-r thewilloftheshadow + ratulsarna lutr0 danielz1z emanuelst KristijanJovanovski CashWilliams rdev osolmaz joshrad-dev kiranjd + adityashaw2 sheeek artuskg onutc pauloportella tyler6204 neooriginal manuelhettich minghinmatthewlam myfunc + travisirby vignesh07 buddyh connorshea mcinteerj dependabot[bot] John-Rood timkrase gerardward2007 obviyus + tosh-hamburg azade-c roshanasingh4 bjesuiter cheeeee Josh Phillips Whoaa512 YuriNachos chriseidhof dlauer + robbyczgw-cla ysqander superman32432432 Yurii Chukhlib grp06 antons austinm911 blacksmith-sh[bot] damoahdominic dan-dr HeimdallStrategy imfing jalehman jarvis-medmatic kkarimi mahmoudashraf93 ngutman petter-b pkrmf RandyVentures - robbyczgw-cla Ryan Lisse dougvk erikpr1994 Ghost jonasjancarik Keith the Silly Goose L36 Server Marc mitschabaude-bot - mkbehr neist chrisrodz czekaj Friederike Seiler gabriel-trigo iamadig Jonathan D. Rhyne (DJ-D) Kit koala73 - manmal ogulcancelik pasogott petradonka rubyrunsstuff sibbl siddhantjain suminhthanh VACInc wes-davis - zats 24601 ameno- Chris Taylor Django Navarro evalexpr henrino3 humanwritten larlyssa oswalpalash - pcty-nextgen-service-account Syhids Aaron Konyer aaronveklabs adam91holt cash-echo-bot Clawd ClawdFx erik-agens fcatuhe - ivanrvpereira jayhickey jeffersonwarrior jeffersonwarrior jverdi longmaba mickahouan mjrussell p6l-richard philipp-spiess - robaxelsen Sash Catanzarite T5-AndyML VAC zknicker aj47 alejandro maza andrewting19 Andrii anpoirier - Asleep123 bolismauro conhecendoia Dimitrios Ploutarchos Drake Thomsen Felix Krause gtsifrikas HazAT hrdwdmrbl hugobarauna - Jamie Openshaw Jarvis Jefferson Nunn Kevin Lin kitze levifig Lloyd loukotal martinpucik Matt mini - Miles mrdbstn MSch Mustafa Tag Eldeen ndraiman nexty5870 odysseus0 prathamdby ptn1411 reeltimeapps - RLTCmpe rodrigouroz Rolf Fredheim Rony Kelner Samrat Jha siraht snopoke testingabc321 The Admiral thesash - Ubuntu voidserf Vultr-Clawd Admin Wimmie wstock yazinsai Zach Knickerbocker Alphonse-arianee Azade carlulsoe - ddyo Erik latitudeki5223 Manuel Maly Mourad Boustani odrobnik pauloportella pcty-nextgen-ios-builder Quentin Randy Torres - rhjoh ronak-guliani William Stock + Ryan Lisse dougvk erikpr1994 Ghost jonasjancarik Keith the Silly Goose L36 Server Marc mitschabaude-bot mkbehr + neist sibbl chrisrodz czekaj Friederike Seiler gabriel-trigo iamadig Jonathan D. Rhyne (DJ-D) Kit koala73 + manmal ogulcancelik pasogott petradonka rubyrunsstuff siddhantjain suminhthanh svkozak VACInc wes-davis + zats 24601 ameno- Chris Taylor Django Navarro evalexpr henrino3 humanwritten larlyssa odysseus0 + oswalpalash pcty-nextgen-service-account Syhids Aaron Konyer aaronveklabs adam91holt cash-echo-bot Clawd ClawdFx erik-agens + fcatuhe ivanrvpereira jeffersonwarrior jverdi longmaba mickahouan mjrussell p6l-richard philipp-spiess robaxelsen + Sash Catanzarite T5-AndyML VAC zknicker aj47 alejandro maza andrewting19 Andrii anpoirier Asleep123 + bolismauro conhecendoia Dimitrios Ploutarchos Drake Thomsen Felix Krause ganghyun kim gtsifrikas HazAT hrdwdmrbl hugobarauna + Jamie Openshaw Jarvis Jefferson Nunn kitze levifig Lloyd loukotal martinpucik Matt mini Miles + mrdbstn MSch Mustafa Tag Eldeen ndraiman nexty5870 odnxe prathamdby ptn1411 reeltimeapps RLTCmpe + Rolf Fredheim Rony Kelner Samrat Jha shiv19 siraht snopoke testingabc321 The Admiral thesash Ubuntu + voidserf Vultr-Clawd Admin william arzt Wimmie wstock yazinsai Zach Knickerbocker Alphonse-arianee Azade carlulsoe + ddyo Erik jayhickey jeffersonwarrior latitudeki5223 Manuel Maly Mourad Boustani odrobnik pcty-nextgen-ios-builder Quentin + Randy Torres rhjoh ronak-guliani William Stock

diff --git a/src/infra/tailscale.test.ts b/src/infra/tailscale.test.ts index 410c7befd..56c68f8b9 100644 --- a/src/infra/tailscale.test.ts +++ b/src/infra/tailscale.test.ts @@ -73,9 +73,11 @@ describe("tailscale helpers", () => { await enableTailscaleServe(3000, exec as never); + const bin = exec.mock.calls[0]?.[0] as string; + expect(bin).toMatch(/tailscale$/); expect(exec).toHaveBeenNthCalledWith( 1, - "tailscale", + bin, expect.arrayContaining(["serve", "--bg", "--yes", "3000"]), expect.any(Object), ); @@ -83,7 +85,7 @@ describe("tailscale helpers", () => { expect(exec).toHaveBeenNthCalledWith( 2, "sudo", - expect.arrayContaining(["-n", "tailscale", "serve", "--bg", "--yes", "3000"]), + expect.arrayContaining(["-n", bin, "serve", "--bg", "--yes", "3000"]), expect.any(Object), ); }); @@ -94,9 +96,11 @@ describe("tailscale helpers", () => { await enableTailscaleServe(3000, exec as never); + const bin = exec.mock.calls[0]?.[0] as string; + expect(bin).toMatch(/tailscale$/); expect(exec).toHaveBeenCalledTimes(1); expect(exec).toHaveBeenCalledWith( - "tailscale", + bin, expect.arrayContaining(["serve", "--bg", "--yes", "3000"]), expect.any(Object), ); @@ -111,11 +115,13 @@ describe("tailscale helpers", () => { await disableTailscaleServe(exec as never); + const bin = exec.mock.calls[0]?.[0] as string; + expect(bin).toMatch(/tailscale$/); expect(exec).toHaveBeenCalledTimes(2); expect(exec).toHaveBeenNthCalledWith( 2, "sudo", - expect.arrayContaining(["-n", "tailscale", "serve", "reset"]), + expect.arrayContaining(["-n", bin, "serve", "reset"]), expect.any(Object), ); }); @@ -141,17 +147,19 @@ describe("tailscale helpers", () => { await ensureFunnel(8080, exec as never, runtime, prompt); + const bin = exec.mock.calls[0]?.[0] as string; + expect(bin).toMatch(/tailscale$/); // 1. status expect(exec).toHaveBeenNthCalledWith( 1, - "tailscale", + bin, expect.arrayContaining(["funnel", "status", "--json"]), ); // 2. enable normal expect(exec).toHaveBeenNthCalledWith( 2, - "tailscale", + bin, expect.arrayContaining(["funnel", "--yes", "--bg", "8080"]), expect.any(Object), ); @@ -160,7 +168,7 @@ describe("tailscale helpers", () => { expect(exec).toHaveBeenNthCalledWith( 3, "sudo", - expect.arrayContaining(["-n", "tailscale", "funnel", "--yes", "--bg", "8080"]), + expect.arrayContaining(["-n", bin, "funnel", "--yes", "--bg", "8080"]), expect.any(Object), ); });