Peter Steinberger
4cc975fec1
test(gateway): use lightweight clears in node event setup
2026-02-22 08:01:16 +00:00
Peter Steinberger
d9085a7704
test(gateway): use lightweight clears in node invoke wake setup
2026-02-22 08:01:16 +00:00
Peter Steinberger
c358ada510
test(gateway): use lightweight clears in push handler setup
2026-02-22 08:01:16 +00:00
Peter Steinberger
2b24a44cd9
test(gateway): use lightweight clears in cron service setup
2026-02-22 08:01:15 +00:00
Peter Steinberger
ba2790222d
test(gateway): dedupe loopback cases and trim setup resets
2026-02-22 08:00:41 +00:00
Peter Steinberger
9f97555b5e
refactor(security): unify hook rate-limit and hook module loading
2026-02-22 08:57:01 +01:00
Peter Steinberger
3d03375043
fix(gateway): block avatar symlink escapes
2026-02-22 08:51:17 +01:00
Peter Steinberger
265da4dd2a
fix(security): harden gateway command/audit guardrails
2026-02-22 08:45:48 +01:00
Peter Steinberger
b109fa53ea
refactor(core): dedupe gateway runtime and config tests
2026-02-22 07:44:57 +00:00
Peter Steinberger
d325c01503
test(gateway): dedupe canvas ws connect assertions
2026-02-22 07:44:57 +00:00
Peter Steinberger
6471ff02dc
test(gateway): dedupe chat history transcript helpers
2026-02-22 07:44:57 +00:00
Peter Steinberger
64b9ae8fb1
test(gateway): reuse shared openai timeout e2e helpers
2026-02-22 07:44:57 +00:00
Peter Steinberger
c4aac407dc
test(gateway): dedupe openai context assertions
2026-02-22 07:44:57 +00:00
Peter Steinberger
b0f6f18569
test(gateway): dedupe control-ui not-found fixture assertions
2026-02-22 07:44:57 +00:00
Peter Steinberger
16f6b55cd4
test(gateway): dedupe tailscale header auth fixtures
2026-02-22 07:44:57 +00:00
Peter Steinberger
a2a19cdad2
test(gateway): dedupe transcript seed fixtures in fs session tests
2026-02-22 07:44:57 +00:00
Peter Steinberger
a4b3aeeefa
test(gateway): reuse last agent command assertion helper
2026-02-22 07:44:56 +00:00
Peter Steinberger
3284d2eb22
fix(security): normalize hook auth rate-limit client keys
2026-02-22 08:40:49 +01:00
Peter Steinberger
e0db04a50d
fix(security): harden avatar validation and size limits
2026-02-22 08:35:32 +01:00
Vignesh Natarajan
f2d664e24f
Gateway: deep-compare array config paths for reload diff
2026-02-21 19:17:46 -08:00
Vignesh Natarajan
4550a52007
TUI: filter model picker to allowlisted models
2026-02-21 19:03:15 -08:00
Peter Steinberger
e84d89ab06
test(gateway): extract shared parse warning helper
2026-02-21 23:32:32 +00:00
Peter Steinberger
d748657265
test(gateway): table-drive runtime config validation matrix
2026-02-21 23:29:29 +00:00
Peter Steinberger
833144fd72
test(gateway): tighten e2e timeout budget
2026-02-21 23:28:07 +00:00
Peter Steinberger
98790339ef
test: dedupe repeated validation and throw assertions
2026-02-21 23:28:07 +00:00
Peter Steinberger
c78ea8ec3f
test(gateway): tighten health e2e timeout ceilings
2026-02-21 23:28:06 +00:00
Marcus Widing
fa4e4efd92
fix(gateway): restore localhost Control UI pairing when allowInsecureAuth is set ( #22996 )
...
* fix(gateway): allow localhost Control UI without device identity when allowInsecureAuth is set
* fix(gateway): pass isLocalClient to evaluateMissingDeviceIdentity
* test: add regression tests for localhost Control UI pairing
* fix(gateway): require pairing for legacy metadata upgrades
* test(gateway): fix legacy metadata e2e ws typing
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-02-22 00:04:52 +01:00
Peter Steinberger
b2de8719ad
test(gateway): normalize canvas ws watchdog timeouts
2026-02-21 23:02:44 +00:00
Peter Steinberger
81a85c19ff
test(gateway): tighten e2e timeouts and dedupe invoke checks
2026-02-21 23:02:44 +00:00
bmendonca3
6ac89757ba
Security/Gateway: harden Control UI static path containment ( #21203 )
...
* Security/Gateway: harden Control UI static path containment
* gateway: block control-ui symlink escapes
* CI: retrigger flaky node test lane
---------
Co-authored-by: Brian Mendonca <brianmendonca@Brians-MacBook-Air.local >
2026-02-21 23:47:51 +01:00
Peter Steinberger
4ef4aa3c10
refactor(gateway): streamline control-ui secure file serving
2026-02-21 23:36:55 +01:00
Peter Steinberger
7c500ff623
fix(security): harden control-ui static path resolution
2026-02-21 23:10:55 +01:00
Peter Steinberger
cc2ff68947
test: optimize gateway infra memory and security coverage
2026-02-21 21:44:50 +00:00
Peter Steinberger
3274a1b804
test(gateway): dedupe control-ui fixture setup and cover query asset 404
2026-02-21 21:40:39 +00:00
Peter Steinberger
8f11868cc2
test(gateway): dedupe boot workspace setup and cover boot failures
2026-02-21 21:40:38 +00:00
Peter Steinberger
bfa59bd22e
refactor(test): collapse gateway e2e env snapshots
2026-02-21 19:13:47 +00:00
Peter Steinberger
2d7d00ef8e
refactor(test): streamline env setup in auth and gateway e2e
2026-02-21 19:13:47 +00:00
Peter Steinberger
a410dad602
refactor(test): simplify env setup in safe bins and skills status
2026-02-21 19:13:46 +00:00
Peter Steinberger
ae70bf4dca
refactor(test): simplify env scoping in exec and usage tests
2026-02-21 19:13:46 +00:00
Peter Steinberger
f9108120c2
fix(gateway): strip inline directive tags from displayed text
2026-02-21 20:08:55 +01:00
Simone Macario
09d5f508b1
fix(cron): persist delivered flag in job state to surface delivery failures (openclaw#19174) thanks @simonemacario
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: simonemacario <2116609+simonemacario@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-21 12:47:29 -06:00
Peter Steinberger
51149fcaf1
refactor(gateway): extract connect and role policy logic
2026-02-21 19:47:22 +01:00
Peter Steinberger
ddcb2d79b1
fix(gateway): block node role when device identity is missing
2026-02-21 19:34:13 +01:00
Peter Steinberger
9fc6c8b713
fix: hide synthetic untrusted metadata in chat history
2026-02-21 19:26:04 +01:00
Peter Steinberger
8588183abe
test: stabilize docker e2e suites for pairing and model updates
2026-02-21 16:38:48 +01:00
Onur
8178ea472d
feat: thread-bound subagents on Discord ( #21805 )
...
* docs: thread-bound subagents plan
* docs: add exact thread-bound subagent implementation touchpoints
* Docs: prioritize auto thread-bound subagent flow
* Docs: add ACP harness thread-binding extensions
* Discord: add thread-bound session routing and auto-bind spawn flow
* Subagents: add focus commands and ACP/session binding lifecycle hooks
* Tests: cover thread bindings, focus commands, and ACP unbind hooks
* Docs: add plugin-hook appendix for thread-bound subagents
* Plugins: add subagent lifecycle hook events
* Core: emit subagent lifecycle hooks and decouple Discord bindings
* Discord: handle subagent bind lifecycle via plugin hooks
* Subagents: unify completion finalizer and split registry modules
* Add subagent lifecycle events module
* Hooks: fix subagent ended context key
* Discord: share thread bindings across ESM and Jiti
* Subagents: add persistent sessions_spawn mode for thread-bound sessions
* Subagents: clarify thread intro and persistent completion copy
* test(subagents): stabilize sessions_spawn lifecycle cleanup assertions
* Discord: add thread-bound session TTL with auto-unfocus
* Subagents: fail session spawns when thread bind fails
* Subagents: cover thread session failure cleanup paths
* Session: add thread binding TTL config and /session ttl controls
* Tests: align discord reaction expectations
* Agent: persist sessionFile for keyed subagent sessions
* Discord: normalize imports after conflict resolution
* Sessions: centralize sessionFile resolve/persist helper
* Discord: harden thread-bound subagent session routing
* Rebase: resolve upstream/main conflicts
* Subagents: move thread binding into hooks and split bindings modules
* Docs: add channel-agnostic subagent routing hook plan
* Agents: decouple subagent routing from Discord
* Discord: refactor thread-bound subagent flows
* Subagents: prevent duplicate end hooks and orphaned failed sessions
* Refactor: split subagent command and provider phases
* Subagents: honor hook delivery target overrides
* Discord: add thread binding kill switches and refresh plan doc
* Discord: fix thread bind channel resolution
* Routing: centralize account id normalization
* Discord: clean up thread bindings on startup failures
* Discord: add startup cleanup regression tests
* Docs: add long-term thread-bound subagent architecture
* Docs: split session binding plan and dedupe thread-bound doc
* Subagents: add channel-agnostic session binding routing
* Subagents: stabilize announce completion routing tests
* Subagents: cover multi-bound completion routing
* Subagents: suppress lifecycle hooks on failed thread bind
* tests: fix discord provider mock typing regressions
* docs/protocol: sync slash command aliases and delete param models
* fix: add changelog entry for Discord thread-bound subagents (#21805 ) (thanks @onutc)
---------
Co-authored-by: Shadow <hi@shadowing.dev >
2026-02-21 16:14:55 +01:00
Peter Steinberger
10b8839a82
fix(security): centralize WhatsApp outbound auth and return 403 tool auth errors
2026-02-21 14:31:01 +01:00
Peter Steinberger
b43aadc34c
refactor(test): dedupe temp-home setup in voicewake suite
2026-02-21 12:56:34 +00:00
Peter Steinberger
c529bafdc3
refactor(test): reuse temp-home helper in voicewake e2e
2026-02-21 12:54:54 +00:00
Peter Steinberger
577e5cc74b
refactor(test): dedupe gateway env setup and add env util coverage
2026-02-21 12:52:21 +00:00