Commit Graph

24946 Commits

Author SHA1 Message Date
Vincent Koc 2ec9d3d58b test(bluebubbles): narrow request-url export 2026-04-03 20:36:24 +09:00
Vincent Koc 69e0fbd95e test(bluebubbles): narrow media-send limit import 2026-04-03 20:36:24 +09:00
Vincent Koc 13412c0c50 test(bluebubbles): narrow send markdown import 2026-04-03 20:36:24 +09:00
Peter Steinberger afa78a5b13
test: trim telegram testing barrel imports 2026-04-03 12:36:07 +01:00
Peter Steinberger de1d0f4fae
fix(ci): restore telegram real registry test support 2026-04-03 12:31:28 +01:00
samzong 37ab4b7fdc
[Feat] Add ClawHub skill search and detail in Control UI (#60134)
* feat(gateway): add skills.search and skills.detail RPC methods

Expose ClawHub search and detail capabilities through the Gateway protocol,
enabling desktop/web clients to browse and inspect skills from the registry.

New RPCs:
- skills.search: search ClawHub skills by query with optional limit
- skills.detail: fetch full detail for a single skill by slug

Both methods delegate to existing agent-layer functions
(searchSkillsFromClawHub, fetchSkillDetailFromClawHub) which wrap
the ClawHub HTTP client. No new external dependencies.

Signed-off-by: samzong <samzong.lu@gmail.com>

* feat(skills): add ClawHub skill search and detail in Control UI

Add skills.search and skills.detail Gateway RPC methods with typed
protocol schemas, AJV validators, and handler implementations. Wire
the new RPCs into the Control UI Skills panel with a debounced search
input, results list, detail dialog, and one-click install from ClawHub.

Gateway:
- SkillsSearchParams/ResultSchema and SkillsDetailParams/ResultSchema
- Handler calls searchClawHubSkills and fetchClawHubSkillDetail directly
- Remove zero-logic fetchSkillDetailFromClawHub wrapper
- 9 handler tests including boundary validation

Control UI:
- searchClawHub, loadClawHubDetail, installFromClawHub controllers
- 300ms debounced search input to avoid 429 rate limits
- Dedicated install busy state (clawhubInstallSlug) with success/error feedback
- Install buttons disabled during install with progress text
- Detail dialog with owner, version, changelog, platform metadata

Part of #43301

Signed-off-by: samzong <samzong.lu@gmail.com>

* fix(skills): guard search and detail responses against stale writes

Signed-off-by: samzong <samzong.lu@gmail.com>

* fix(skills): reset loading flags on query clear and detail close

Signed-off-by: samzong <samzong.lu@gmail.com>

* fix(gateway): register skills.search/detail in read scope and method list

Add skills.search and skills.detail to the operator READ scope group
and the server methods list. Without this, unclassified methods default
to operator.admin, blocking read-only operator sessions.

Also guard the detail loading reset in the finally block by the active
slug to prevent a transient flash when rapidly switching skills.

Signed-off-by: samzong <samzong.lu@gmail.com>

* fix(skills): guard search loading reset by active query

Signed-off-by: samzong <samzong.lu@gmail.com>

* test: cover ClawHub skills UI flow

* fix: clear stale ClawHub search results

---------

Signed-off-by: samzong <samzong.lu@gmail.com>
Co-authored-by: Frank Yang <frank.ekn@gmail.com>
2026-04-03 19:30:44 +08:00
Peter Steinberger d39e4dff6a
test: make planner lanes explicit 2026-04-03 12:29:29 +01:00
Peter Steinberger f4393791eb
test: split vitest setup for projects 2026-04-03 12:29:29 +01:00
Peter Steinberger 1dd88c6288
fix(sessions): harden session id resolution 2026-04-03 20:29:20 +09:00
Peter Steinberger 1337be3063
refactor: narrow telegram native command test seams 2026-04-03 12:25:47 +01:00
Peter Steinberger db6d149f75
test: route telegram plugin tests through extensions 2026-04-03 12:25:47 +01:00
Peter Steinberger 0a2a1ff778
fix(ci): make gateway audit path test platform-safe 2026-04-03 12:22:29 +01:00
Vincent Koc 5021b12ac1 perf(browser): trim invoke-browser test imports 2026-04-03 20:12:40 +09:00
Vincent Koc 045d590542 perf(matrix): isolate probe runtime deps 2026-04-03 20:05:50 +09:00
Vincent Koc fac89d403b perf(browser): split remote profile tab op tests 2026-04-03 20:03:48 +09:00
Peter Steinberger d3310f4837
fix(ci): resolve changelog conflict markers 2026-04-03 12:03:22 +01:00
Peter Steinberger e2e1197fa9
refactor(gateway): clarify local mode guardrails 2026-04-03 20:02:32 +09:00
Peter Steinberger 4e22e75697
test: reduce telegram broad partial mocks 2026-04-03 12:01:10 +01:00
Peter Steinberger 225431665a
test: trim telegram media retry import cost 2026-04-03 12:01:10 +01:00
Peter Steinberger 05df7f802b
docs: add test cost guardrails 2026-04-03 12:01:10 +01:00
Peter Steinberger 566fc72106
refactor(discord): share proxy resolution helpers 2026-04-03 19:58:23 +09:00
Vincent Koc 53504b3662 fix(agents): suppress profile allowlist warnings 2026-04-03 19:55:05 +09:00
Peter Steinberger 2c7eea8f10
fix(gateway): fail closed on missing mode 2026-04-03 19:50:45 +09:00
Peter Steinberger a6649201b7
docs: clarify default subagent allowlists 2026-04-03 19:45:05 +09:00
Peter Steinberger d921784718
fix: support default subagent allowlists (#59944) (thanks @hclsys) 2026-04-03 19:43:17 +09:00
HCL a57766bad0 fix(agents): fall back to defaults for subagents.allowAgents
resolveAgentConfig().subagents.allowAgents reads only the per-agent
entry, never falling back to agents.defaults.subagents.allowAgents.
Other subagent defaults like runTimeoutSeconds correctly read from
cfg.agents.defaults.subagents — allowAgents was missed.

Root cause: subagent-spawn.ts:463 and agents-list-tool.ts:49 both
use resolveAgentConfig() which returns only per-agent config without
defaults merging. The same pattern is already established at
subagent-spawn.ts:403 for runTimeoutSeconds.

Fix: add cfg.agents.defaults.subagents.allowAgents as fallback when
per-agent entry doesn't specify allowAgents. Both call sites fixed.

Closes #59938

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: HCL <chenglunhu@gmail.com>
2026-04-03 19:42:24 +09:00
Peter Steinberger 50f4bffbb6
fix: unblock Discord land by breaking import cycles (#57465) 2026-04-03 19:38:59 +09:00
Peter Steinberger 32ebaa3757
refactor: share session model resolution helpers 2026-04-03 19:37:56 +09:00
Peter Steinberger 67d87abf7c
style: normalize telegram fetch test formatting 2026-04-03 11:37:41 +01:00
Peter Steinberger bb3ea2137b
test: move telegram fetch coverage into extensions 2026-04-03 11:37:41 +01:00
Peter Steinberger e0c4458a2f
test: add lighter extensions vitest setup 2026-04-03 11:37:41 +01:00
Peter Steinberger 52225db134
fix(ci): reuse sdk tool auth error for whatsapp 2026-04-03 11:35:45 +01:00
Peter Steinberger 5400980305
test(plugin-sdk): tighten boundary guardrails 2026-04-03 11:35:37 +01:00
Peter Steinberger 1c26e806ff
refactor: simplify gateway startup logs 2026-04-03 11:31:34 +01:00
Peter Steinberger 16ca1f4d74
test: route extension boundary inventory off unit 2026-04-03 11:30:45 +01:00
Peter Steinberger b406b7d2e4
refactor: extract embedded runner failover helpers 2026-04-03 19:28:39 +09:00
Peter Steinberger 71f8c0344a
fix(ci): refresh schema and boundary expectations 2026-04-03 11:26:06 +01:00
Vincent Koc 1a5787137f style(msteams): format split graph message import 2026-04-03 19:23:26 +09:00
Vincent Koc b53ab34d04 perf(msteams): split graph message tests 2026-04-03 19:23:26 +09:00
Peter Steinberger a5eb8e08ad
test: reroute telegram fetch network policy suite 2026-04-03 11:19:29 +01:00
Vincent Koc c0a8d07fce test(browser): collapse wrapper suite files 2026-04-03 19:18:49 +09:00
Peter Steinberger fb0d82ba9f
fix(ci): refresh guardrails and config baselines 2026-04-03 11:18:40 +01:00
Peter Steinberger 2766c27b2a
refactor(plugin-sdk): genericize web channel runtime seams 2026-04-03 11:17:28 +01:00
Peter Steinberger 182bec5091
test: run boundary inventory suites without global setup 2026-04-03 11:17:00 +01:00
Vincent Koc d55e580307 perf(acpx): clean up runtime fixtures per test 2026-04-03 19:15:26 +09:00
Vincent Koc e18611188d test(discord): defer provider runtime mocks 2026-04-03 19:13:10 +09:00
Peter Steinberger d68840ef40
fix(ci): handle bundled fast-check task 2026-04-03 11:10:50 +01:00
Vincent Koc e414e51761 perf(nextcloud-talk): split setup test hotspots 2026-04-03 19:09:49 +09:00
Peter Steinberger 80c5764482
refactor(telegram): streamline media runtime options 2026-04-03 19:09:13 +09:00
Peter Steinberger 122e6f0f79
fix(plugins): route runtime imports through sdk facades 2026-04-03 11:07:31 +01:00