Sasan
6938f7dddb
fix: allow gateway service commands for named profiles ( #116314 )
...
* fix: gateway service commands refuse a named profile or relocated OPENCLAW_HOME
- Resolve the default install identity against the canonical state directory
for the active OpenClaw home and profile instead of the unprofiled OS
account default.
- `--profile <name>` / `--dev` project `.openclaw-<profile>` state and config
paths, so every named profile was classified as isolated state and refused
`install`, `start`, `stop`, `restart`, `uninstall`, Doctor service repair,
and self-update service handling.
- `OPENCLAW_HOME` relocates all OpenClaw path defaults and is documented for
running as a dedicated service user; a relocated home is now an install
identity. `HOME` alone still is not.
- An `OPENCLAW_STATE_DIR` or `OPENCLAW_CONFIG_PATH` pointing outside those
canonical paths is still treated as isolated state.
- Recovery guidance in the refusal message now names the paths that must match.
Verified: focused vitest shards for the changed suites plus the daemon, CLI,
and doctor suites that consume the identity check; tsgo core and core-test
lanes; oxlint; docs format, MDX, link, and map checks.
* fix(gateway): keep relocated homes isolated
* fix(config): validate service profile identity
* fix(daemon): enforce named-profile service ownership
* fix(update): reject drifted service selectors before probes
* test(windows): prove scheduled task lifecycle
* test(windows): harden scheduled task proof cleanup
* test(windows): bind lifecycle proof to checkout
* test(windows): normalize cleanup exit status
* test(windows): verify effective task privilege
* test(windows): protect scheduled task proof roots
* test(windows): prove listener-owned task lifecycle
* test(windows): fix scheduled task proof contracts
* test(windows): remove redundant mock coercions
* test(windows): measure fallback before task probes
* test(windows): prove scheduled task process origin
* fix(gateway): preserve unmanaged restart fallback
* test(gateway): cover denied restart ownership
* test(gateway): keep restart helper types private
* test(gateway): classify lifecycle helpers as test code
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-08-01 11:28:39 +08:00
..
2026-07-31 13:21:21 +08:00
2026-07-31 18:25:15 -07:00
2026-08-01 11:28:39 +08:00
2026-07-16 18:30:43 -07:00
2026-07-31 16:20:34 -07:00
2026-07-28 08:41:14 -04:00
2026-07-31 16:20:34 -07:00
2026-07-31 16:20:34 -07:00
2026-07-10 23:52:35 +01:00
2026-07-13 00:42:56 -07:00
2026-08-01 11:28:39 +08:00
2026-07-31 16:45:53 +08:00
2026-06-04 19:37:38 -04:00
2026-07-18 18:41:09 -07:00
2026-07-28 00:34:20 -04:00
2026-07-25 20:59:20 -07:00
2026-08-01 01:50:32 +08:00
2026-08-01 01:50:32 +08:00
2026-07-12 17:44:44 +03:00
2026-07-01 15:52:39 -07:00
2026-07-12 17:44:44 +03:00
2026-07-21 20:28:43 -07:00
2026-07-21 20:28:43 -07:00
2026-07-21 20:28:43 -07:00
2026-07-31 13:21:21 +08:00
2026-07-15 16:57:21 -07:00
2026-07-16 20:21:06 -07:00
2026-07-16 20:21:06 -07:00
2026-07-15 17:05:07 +01:00
2026-07-15 17:05:07 +01:00
2026-07-15 17:05:07 +01:00
2026-07-22 19:57:42 -04:00
2026-07-31 16:20:34 -07:00
2026-07-31 16:20:34 -07:00
2026-07-12 17:20:30 -07:00
2026-07-12 17:20:30 -07:00
2026-06-04 10:48:30 -04:00
2026-06-26 18:33:19 +10:00
2026-07-13 00:42:56 -07:00
2026-07-22 13:44:09 -07:00
2026-07-27 17:37:23 -07:00
2026-07-27 17:37:23 -07:00
2026-07-27 17:37:23 -07:00
2026-07-22 17:42:42 -07:00
2026-07-27 08:30:50 -07:00
2026-06-03 15:20:39 -07:00
2026-07-20 20:07:11 -07:00
2026-06-13 19:55:37 +08:00
2026-07-13 02:32:24 -07:00
2026-07-13 02:32:24 -07:00
2026-07-31 13:28:53 -07:00
2026-06-04 10:50:04 -04:00
2026-06-04 19:37:38 -04:00
2026-06-12 09:50:31 -05:00
2026-07-15 06:11:30 -07:00
2026-07-13 02:32:24 -07:00
2026-06-22 19:11:46 +08:00
2026-07-31 16:20:34 -07:00
2026-07-13 05:05:31 -07:00
2026-07-06 17:55:50 -07:00
2026-06-19 04:44:51 +08:00
2026-07-31 13:28:53 -07:00
2026-07-25 20:59:20 -07:00
2026-06-04 19:32:43 -04:00
2026-06-04 10:50:04 -04:00
2026-07-15 17:05:07 +01:00
2026-07-31 10:16:45 -06:00
2026-07-19 11:04:48 -07:00
2026-07-25 21:37:59 -07:00
2026-07-31 10:16:45 -06:00
2026-07-21 20:28:43 -07:00
2026-07-27 17:55:44 -05:00
2026-07-31 10:16:45 -06:00
2026-06-04 19:35:08 -04:00
2026-06-03 15:20:39 -07:00
2026-07-27 13:56:00 -04:00
2026-07-06 17:55:50 -07:00
2026-07-31 16:20:34 -07:00
2026-07-31 16:20:34 -07:00
2026-07-31 16:20:34 -07:00
2026-07-31 16:20:34 -07:00
2026-07-31 15:41:08 -07:00
2026-07-31 08:59:11 -07:00
2026-07-31 08:59:11 -07:00
2026-07-31 08:59:11 -07:00
2026-07-31 08:59:11 -07:00
2026-07-31 15:41:08 -07:00
2026-07-31 15:41:08 -07:00
2026-07-24 00:27:00 -07:00
2026-07-29 12:04:07 -04:00
2026-07-31 16:20:34 -07:00
2026-07-31 17:53:24 -07:00
2026-07-27 22:27:00 -04:00
2026-07-21 20:28:43 -07:00
2026-07-31 17:53:24 -07:00
2026-07-31 13:28:53 -07:00
2026-07-20 03:31:03 -07:00
2026-07-24 22:38:09 -07:00
2026-07-29 00:23:39 -04:00
2026-07-27 05:44:16 -04:00
2026-06-03 15:20:39 -07:00
2026-07-20 03:31:03 -07:00
2026-07-31 05:44:33 -07:00
2026-07-31 05:44:33 -07:00
2026-06-04 19:37:38 -04:00
2026-06-03 15:20:39 -07:00
2026-07-25 06:51:49 -07:00
2026-07-25 06:51:49 -07:00
2026-07-31 16:20:34 -07:00
2026-06-03 18:43:23 -04:00
2026-07-31 05:32:06 -07:00
2026-06-03 15:20:39 -07:00
2026-07-13 05:47:05 -07:00
2026-07-13 03:22:00 -07:00
2026-06-03 18:43:23 -04:00
2026-06-04 19:32:43 -04:00
2026-06-04 19:35:08 -04:00
2026-07-31 16:20:34 -07:00
2026-07-31 16:20:34 -07:00
2026-07-27 05:44:16 -04:00
2026-07-27 05:44:16 -04:00
2026-06-04 19:32:43 -04:00
2026-07-10 11:56:44 +01:00
2026-07-29 05:03:20 -04:00
2026-07-29 05:03:20 -04:00
2026-06-04 10:55:01 -04:00
2026-07-27 05:44:16 -04:00
2026-07-27 05:44:16 -04:00
2026-07-07 13:44:32 +01:00
2026-07-07 13:44:32 +01:00
2026-07-18 23:23:49 -07:00
2026-07-27 16:07:11 +08:00
2026-07-27 16:07:11 +08:00
2026-07-27 16:07:11 +08:00
2026-07-27 16:07:11 +08:00
2026-07-31 16:20:34 -07:00
2026-07-31 16:20:34 -07:00
2026-07-11 11:24:04 -07:00
2026-07-13 21:15:36 -07:00
2026-07-30 17:48:36 -07:00
2026-07-31 16:20:34 -07:00
2026-06-03 18:25:21 -04:00
2026-07-05 12:10:24 -07:00
2026-06-22 14:00:57 +08:00
2026-06-22 14:00:57 +08:00
2026-07-31 16:20:34 -07:00
2026-07-31 16:20:34 -07:00
2026-07-31 16:20:34 -07:00
2026-07-31 16:20:34 -07:00
2026-07-27 05:44:16 -04:00
2026-06-03 15:20:39 -07:00
2026-06-19 05:18:25 +08:00
2026-07-31 13:28:53 -07:00
2026-07-13 00:42:56 -07:00
2026-07-10 11:56:44 +01:00
2026-07-20 20:07:11 -07:00
2026-07-30 05:29:25 +08:00
2026-07-31 16:20:34 -07:00
2026-07-31 16:20:34 -07:00
2026-06-03 15:20:39 -07:00
2026-07-18 09:30:27 +01:00
2026-07-18 09:30:27 +01:00
2026-07-27 05:44:16 -04:00
2026-07-29 14:04:12 +08:00
2026-07-10 08:49:27 +01:00
2026-07-11 20:47:34 -07:00
2026-06-04 19:37:38 -04:00
2026-06-04 10:58:50 -04:00
2026-07-19 16:56:54 +08:00
2026-07-19 16:56:54 +08:00
2026-07-18 10:25:13 +01:00
2026-07-18 10:25:13 +01:00
2026-07-27 05:44:16 -04:00
2026-07-27 05:44:16 -04:00
2026-07-30 21:57:35 -07:00
2026-07-20 02:34:13 -07:00
2026-07-30 21:57:35 -07:00
2026-06-04 19:35:08 -04:00
2026-06-03 15:20:39 -07:00
2026-07-15 16:57:21 -07:00
2026-06-04 19:35:08 -04:00
2026-06-04 10:58:50 -04:00
2026-07-27 05:44:16 -04:00
2026-07-27 05:44:16 -04:00
2026-07-27 05:44:16 -04:00
2026-07-28 11:57:36 -07:00
2026-07-28 11:57:36 -07:00
2026-07-28 11:57:36 -07:00
2026-06-03 18:43:23 -04:00
2026-07-28 08:09:48 -04:00
2026-07-14 09:28:16 -07:00
2026-07-31 16:20:34 -07:00
2026-07-10 22:45:54 +01:00
2026-06-03 15:20:39 -07:00
2026-07-28 08:09:48 -04:00
2026-07-28 08:09:48 -04:00
2026-07-28 08:09:48 -04:00
2026-07-15 03:25:36 +10:00
2026-07-27 19:34:01 -04:00
2026-07-27 19:34:01 -04:00
2026-07-30 21:57:35 -07:00
2026-07-23 11:28:54 -07:00
2026-06-03 15:20:39 -07:00
2026-06-04 19:32:43 -04:00
2026-06-04 11:01:13 -04:00
2026-07-31 16:20:34 -07:00
2026-07-31 16:20:34 -07:00
2026-07-09 23:02:31 +01:00
2026-07-16 00:45:23 -07:00
2026-06-11 20:52:07 +09:00
2026-06-11 20:52:07 +09:00
2026-07-11 20:47:34 -07:00
2026-07-28 18:25:57 -04:00
2026-07-28 18:25:57 -04:00
2026-06-04 19:35:08 -04:00
2026-06-18 18:40:12 +08:00
2026-06-04 19:32:43 -04:00
2026-06-04 11:01:13 -04:00
2026-07-17 11:53:23 +01:00
2026-07-17 11:53:23 +01:00
2026-07-28 18:25:57 -04:00
2026-07-23 12:30:15 -07:00
2026-07-29 11:43:41 -04:00
2026-07-31 16:20:34 -07:00
2026-07-13 19:25:29 -07:00
2026-07-29 11:43:41 -04:00
2026-07-29 11:43:41 -04:00
2026-07-27 06:54:14 -04:00
2026-07-23 12:30:54 -07:00
2026-07-29 11:43:41 -04:00
2026-07-31 16:20:34 -07:00
2026-07-22 23:25:48 -04:00
2026-07-29 11:43:41 -04:00
2026-07-10 11:56:44 +01:00
2026-07-27 06:54:14 -04:00
2026-06-03 18:43:23 -04:00
2026-07-19 11:04:48 -07:00
2026-07-28 18:25:57 -04:00
2026-07-28 18:25:57 -04:00
2026-07-28 18:25:57 -04:00
2026-07-28 18:25:57 -04:00
2026-07-28 18:25:57 -04:00
2026-07-28 23:01:24 -04:00
2026-07-28 23:01:24 -04:00
2026-06-03 18:43:23 -04:00
2026-06-20 23:37:00 +08:00
2026-07-21 22:33:36 +09:00
2026-07-21 22:33:36 +09:00
2026-07-13 01:29:33 -07:00
2026-07-09 04:02:39 -07:00
2026-08-01 08:01:18 +08:00
2026-07-13 00:42:56 -07:00
2026-07-29 11:43:41 -04:00
2026-06-04 19:37:38 -04:00
2026-07-13 00:42:56 -07:00
2026-07-30 03:00:17 -07:00
2026-07-26 06:39:45 -04:00
2026-07-26 06:39:45 -04:00
2026-07-29 01:46:53 -04:00
2026-07-16 21:38:45 -07:00
2026-07-16 21:38:45 -07:00
2026-06-26 18:33:19 +10:00
2026-07-09 15:54:21 +01:00
2026-07-11 20:47:34 -07:00
2026-07-14 09:28:16 -07:00
2026-07-29 01:02:32 -04:00
2026-07-30 05:22:50 -07:00
2026-07-30 05:22:50 -07:00
2026-06-04 11:03:24 -04:00
2026-08-01 11:28:39 +08:00
2026-08-01 11:28:39 +08:00
2026-07-29 01:02:32 -04:00
2026-07-28 00:54:42 +08:00
2026-07-28 12:47:30 -04:00
2026-06-04 19:37:38 -04:00
2026-06-03 15:20:39 -07:00
2026-07-14 11:03:02 -07:00
2026-07-14 11:03:02 -07:00
2026-06-03 18:43:23 -04:00
2026-07-31 16:20:34 -07:00
2026-07-31 16:20:34 -07:00
2026-07-07 01:10:42 -06:00
2026-06-04 19:32:43 -04:00
2026-06-26 18:33:19 +10:00
2026-07-25 06:51:49 -07:00
2026-07-25 06:51:49 -07:00
2026-06-04 19:32:43 -04:00
2026-07-27 05:44:16 -04:00
2026-07-27 05:44:16 -04:00
2026-07-29 04:09:37 -04:00
2026-07-29 04:09:37 -04:00
2026-06-04 19:32:43 -04:00
2026-07-18 07:15:37 +01:00
2026-06-22 02:59:57 -04:00
2026-06-03 15:20:39 -07:00
2026-07-28 11:57:36 -07:00
2026-06-04 19:32:43 -04:00
2026-06-20 22:09:32 +08:00
2026-06-22 21:27:47 +08:00
2026-06-03 15:20:39 -07:00
2026-06-03 18:23:39 -04:00
2026-06-04 19:35:08 -04:00
2026-06-03 15:20:39 -07:00
2026-07-28 14:19:18 -04:00
2026-07-27 05:44:16 -04:00
2026-07-30 05:22:50 -07:00
2026-07-30 18:11:14 -05:00
2026-06-20 03:56:15 +01:00
2026-07-30 05:22:50 -07:00
2026-07-30 18:11:14 -05:00
2026-06-04 11:07:54 -04:00
2026-07-18 07:18:21 +01:00
2026-07-19 01:29:23 -07:00
2026-06-04 19:37:38 -04:00
2026-06-04 11:07:54 -04:00
2026-07-30 05:22:50 -07:00
2026-07-06 10:33:47 +01:00
2026-07-13 00:36:02 -07:00
2026-07-27 01:51:16 -04:00
2026-07-07 03:25:44 +01:00
2026-07-30 07:16:57 -07:00
2026-06-04 19:32:43 -04:00
2026-07-30 07:16:57 -07:00
2026-07-31 16:20:34 -07:00
2026-07-25 08:24:34 -05:00
2026-07-30 01:09:56 +08:00
2026-07-31 16:20:34 -07:00
2026-07-27 05:44:16 -04:00
2026-07-15 17:05:07 +01:00
2026-07-15 17:05:07 +01:00
2026-07-15 17:05:07 +01:00
2026-07-27 05:44:16 -04:00
2026-07-25 06:51:49 -07:00
2026-07-31 14:38:21 -07:00
2026-07-31 14:38:21 -07:00
2026-07-27 05:44:16 -04:00
2026-07-13 15:09:26 -07:00
2026-07-13 15:09:26 -07:00
2026-07-18 07:01:38 +01:00
2026-07-22 19:10:02 -04:00
2026-06-03 15:20:39 -07:00
2026-07-11 10:25:14 -07:00
2026-07-27 20:10:35 -04:00
2026-06-04 19:35:08 -04:00
2026-06-04 19:35:08 -04:00
2026-08-01 11:28:39 +08:00
2026-07-27 20:10:35 -04:00
2026-07-19 00:58:43 -07:00
2026-07-19 00:58:43 -07:00
2026-06-04 11:11:07 -04:00
2026-06-04 19:35:08 -04:00
2026-06-03 15:20:39 -07:00
2026-06-04 19:37:38 -04:00
2026-07-11 01:09:51 -07:00
2026-07-13 02:34:31 -07:00
2026-07-19 07:35:45 -07:00
2026-07-19 07:35:45 -07:00