Peter Steinberger
cd9db5ed9a
fix(doctor): keep automated repair from moving approval state ( #103353 )
...
* fix(doctor): isolate automated cross-state imports
* test(update): cover isolated doctor finalization
2026-07-10 05:42:36 +01:00
Peter Steinberger
bb44c2311d
fix(windows): repair legacy gateway fallback updates ( #101213 )
...
* fix(windows): repair doctor update fallback migration
* fix(windows): remove hidden startup fallback launchers
* fix(windows): preserve recovered gateway tokens
* fix(windows): harden update fallback migration
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
* fix(windows): capture fallback runtime before task rewrite
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
* fix(windows): complete legacy update restart handoff
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
* fix(windows): verify fallback ownership during migration
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
* fix(windows): honor update restart policy during repair
* fix(windows): wait for task takeover evidence
* fix(windows): preserve fallback after direct task launch
* fix(windows): preserve repaired task identity
* fix(windows): snapshot gateway before repair
* fix: scope update service repair ownership
* style: satisfy update lint checks
* fix: restart gateways stopped during updates
* fix(windows): enforce fallback process takeover
* fix(windows): prove fallback ownership during takeover
* fix(windows): verify process exit during takeover
* fix(windows): wait through fallback reloads
* fix(windows): harden fallback takeover ownership
* fix(windows): type takeover preflight inputs
* fix(windows): recognize booting replacement task
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
* chore: leave changelog release-owned
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-07-07 00:09:48 +01:00
Peter Steinberger
a13a198a4b
fix(update): guard Windows task autostart during package updates ( #100757 )
...
* fix(update): guard Windows task autostart
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
* fix(update): preserve recovery error causes
* fix(update): retain restore failure causes
* fix(update): recover task on Ctrl+Break
* chore(update): document aggregate lint intent
* fix(update): tolerate deleted Windows tasks
* fix(update): preserve combined recovery failures
* fix(update): preserve aggregate error causes
* fix(update): construct aggregate causes consistently
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-07-06 10:33:47 +01:00
Kevin Lin
9d2d517296
feat: publish plugins with extended-stable releases ( #100448 )
...
* feat(release): publish plugins on extended-stable
* feat(plugins): align extended-stable with core
* docs: explain extended-stable plugin alignment
* fix(release): make plugin convergence recoverable
* fix(plugins): preserve extended-stable fallback intent
* fix(release): keep plugin tag mutation credential-isolated
2026-07-05 16:16:26 -07:00
Peter Steinberger
17c0ad86cb
[codex] Fix doctor completion cache plugin loading ( #76235 )
...
* fix(completion): make cache generation mode explicit
* test(completion): type spawned cache options
* fix(completion): require explicit cache binary name
2026-07-05 07:33:54 -07:00
Kevin Lin
d214622320
feat(update): support extended-stable package updates ( #99811 )
...
* feat(update): add extended-stable channel contract
* feat(update): implement extended-stable package flow
* docs(update): document extended-stable behavior
* fix(update): preserve extended-stable preflight guarantees
* fix(update): reject extended-stable Git repair
* fix(update): support loopback extended-stable canaries
* fix(update): preserve scoped package roots
2026-07-04 12:34:29 -07:00
Jason (Json)
cccc856b82
fix: reject incompatible Node 23 runtimes ( #99832 )
...
* fix: reject incompatible Node 23 runtimes
* fix: repair installer CI coverage
* docs: clarify supported Node ranges
* fix: fail closed on unreadable runtime versions
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-04 00:03:49 -07:00
LiLan0125
4391041026
fix(update): validate bundle plugin payloads by manifest contract ( #98010 )
...
* fix(update): validate bundle plugin payloads by manifest contract
Closes #97985
* fix(update): preserve native payload checks for dual-format plugins
* fix(update): satisfy payload validation lint
* fix(update): cover persisted marketplace bundles
2026-07-01 03:18:03 -07:00
ly-wang19
a0e9ca1e95
perf(update): reuse missing plugin payload id set ( #96950 )
...
* perf(update): reuse missing plugin payload id set
* perf(update): reuse missing plugin payload id set
---------
Co-authored-by: ly-wang19 <ly-wang19@users.noreply.github.com >
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-06-27 05:32:38 +08:00
Jesse Merhi
ec737ee74d
fix: rebase clawhub install trust ( #81364 )
2026-06-26 18:33:19 +10:00
Vincent Koc
a192b2ea52
fix(windows): resolve taskkill in core spawns
2026-06-21 10:57:41 +02:00
Vincent Koc
c1a414bf28
fix(update): preserve RPC pre-update config
2026-06-18 18:46:18 +08:00
masatohoshino
085ff95fcf
fix(update): carry effective git channel into post-core finalize
...
Address ClawSweeper P1 (Carry the effective git channel into finalize):
an unconfigured git/source update runs the core update on the git/dev channel
(runGatewayUpdate: opts.channel ?? "dev"), but the finalizer received no channel
and fell back to the stable package channel, so plugin convergence could resolve
official plugins on the wrong channel.
Mirror the CLI post-core resume's effective/requested channel split: the RPC
finalize path now passes the effective channel (configChannel ?? DEFAULT_GIT_CHANNEL)
to update finalize via OPENCLAW_UPDATE_EFFECTIVE_CHANNEL (convergence-only), never
as --channel. update finalize uses it as a convergence fallback but never persists
update.channel unless the user actually requested one.
2026-06-18 18:46:18 +08:00
Vincent Koc
62fad3da86
fix(update): use configured npm registry for update metadata ( #93879 )
...
Merged via squash.
Prepared head SHA: ae8bbb0303
Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com >
Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com >
Reviewed-by: @vincentkoc
2026-06-17 12:04:44 +08:00
yetval
d1f6ca20a1
fix(update): keep CLI plugin post-update failure behavior unchanged
2026-06-16 12:09:01 +08:00
yetval
c9418b8afd
fix(update): restart managed gateway when update handoff fails after stop
2026-06-16 12:09:01 +08:00
openclaw-clownfish[bot]
333a93ce44
fix(cli): avoid false downgrade prompt for latest tag
...
Keep unresolved latest package targets moving while preserving downgrade confirmation for unresolved non-latest dist-tags.
Validation:
- node scripts/run-vitest.mjs src/cli/update-cli.test.ts
- node scripts/run-tsgo.mjs -p test/tsconfig/tsconfig.test.src.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/test-src-pr92911.tsbuildinfo
- git diff --check origin/main...HEAD && git diff --check
Direct-landed from #92911 because the source branch has maintainer edits disabled and ClawSweeper requested changelog removal plus behavior proof.
Co-authored-by: Andy Wu <31586206+Andy312432@users.noreply.github.com >
Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com >
2026-06-14 17:16:22 +08:00
Jason (Json)
7259cb5c77
fix(update): continue after package doctor warnings ( #91586 )
...
* fix(update): continue after package doctor warnings
* fix(update): type advisory step rendering
* fix(update): preserve advisory doctor step state
* fix(update): share advisory doctor state
* fix(update): keep timed-out doctor failures blocking
* fix(update): require explicit doctor advisory result
* fix(update): reject malformed doctor advisory results
* fix(update): bound doctor advisory diagnostics
* fix(update): keep doctor advisory restart-neutral
* fix(update): protect doctor advisory IPC
* fix(update): scope doctor advisories to converging updater
* fix(update): scope doctor advisories to deferred repairs
* fix(update): secure doctor advisory IPC
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-06-13 21:03:57 -07:00
Shakker
dac468c731
fix: repair update restart type checks
2026-06-11 02:59:39 +01:00
Shakker
400b3e04fb
fix: stop unknown-root git services
2026-06-11 02:18:47 +01:00
Shakker
df52f8ff64
fix: fail stopped service update restart errors
2026-06-11 02:18:47 +01:00
Shakker
9db41b3876
fix: verify managed git restart service
2026-06-11 02:18:47 +01:00
Shakker
ba2782e64c
fix: stop package service during dev switch
2026-06-11 02:18:47 +01:00
Shakker
124625ec4d
fix: stop git service when switching install roots
2026-06-11 02:18:47 +01:00
Shakker
e1c4c3151c
fix: keep gateway stopped after plugin update failure
2026-06-11 02:18:47 +01:00
Shakker
6ea8ac7ea3
fix: defer git update service stop until mutation
2026-06-11 02:18:47 +01:00
Shakker
f385aaab8a
fix: protect managed git update service ownership
2026-06-11 02:18:47 +01:00
abnershang
48ed8f3e81
fix(update): hand off supervised git updates
2026-06-11 02:18:47 +01:00
Ayaan Zaidi
a283df4bfe
refactor(update): simplify refresh failure restart path
2026-06-10 14:48:30 +05:30
FullerStackDev
cab62324f4
fix(update): recover package gateway restart after refresh failure
2026-06-10 14:48:30 +05:30
FullerStackDev
800f4dcb62
fix(update): expose plugin convergence repair
2026-06-10 14:43:46 +05:30
Vincent Koc
fc2a7be0bc
fix(update): hand off supervised auto-updates
2026-06-06 07:19:46 -07:00
Peter Steinberger
4af066b013
docs: document update and agent cli helpers
2026-06-04 11:11:07 -04:00
Vincent Koc
f187bec815
fix(cli): skip plugin loader cache clear on short-lived commands
2026-06-04 15:00:21 +02:00
B.K.
c96a12d3c8
fix(update): surface plugin channel fallbacks ( #81422 )
...
* fix: surface plugin update channel fallbacks
* fix: clarify dry-run plugin fallback output
* fix: preserve failed plugin fallback metadata
* chore: mark compatibility aliases deprecated
* chore: fix channel runtime lint directive
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-06-03 16:00:40 -07:00
Mukunda Rao Katta
2d61521bd3
fix(update): pin post-core plugin compatibility to the downgraded core version ( #87914 ) ( #87952 )
...
* fix(update): pin post-core plugin compatibility to the downgraded core version (#87914 )
* fix(update): force plugin compatibility repair on rollback
* style(update): clarify downgrade compatibility note
* fix(plugins): resolve compatible prerelease plugin downgrades
* fix(plugins): honor host gates during npm downgrade repair
* fix(plugins): keep prerelease downgrade fallback on channel
---------
Co-authored-by: Gio Della-Libera <giodl73@gmail.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-06-02 07:13:26 -04:00
Hussein Nourelddine
4a285d529a
feat(status): detect external plugin version drift
...
Surface active official external plugin version drift in gateway status diagnostics so users can see when a host/package update left npm or ClawHub plugins behind the running local gateway. The advisory uses the daemon service install records, compares against the running gateway version, gives detailed fix commands in deep status, and avoids local-state drift checks for remote gateway mode or explicit status probe URLs.
Co-authored-by: Hussein Nourelddine <hussein@gptc.com.kw >
2026-06-02 06:59:23 -04:00
Peter Steinberger
304e2c83c0
chore(lint): enable stricter oxlint rules
2026-05-31 18:59:02 +01:00
Peter Steinberger
deb7bc6539
chore(lint): enable readability lint rules
2026-05-31 07:17:57 +01:00
Peter Steinberger
00d8d7ead0
refactor: extract normalization core package
...
Extract shared normalization/coercion helpers into private @openclaw/normalization-core workspace package while preserving existing plugin SDK helper subpaths.\n\nAlso keeps direct normalization-core imports internal, wires UI/build/loader resolution, and replaces the slow PR network CodeQL lane with a fast added-line boundary scan while retaining full CodeQL for scheduled/manual runs.\n\nVerification: local moved tests, plugin SDK boundary tests, extension loader tests, agents-support shard, UI build/test, build artifacts, lint, workflow guards, autoreview, and GitHub CI passed on PR head 963d893715 .
2026-05-31 01:33:00 +01:00
Peter Steinberger
de1dfab03e
refactor: move terminal core into package ( #88279 )
...
* refactor: move terminal core into package
* refactor: move terminal module files
* fix: clean terminal package CI followups
* test: update lint suppression allowlist
* fix: ship terminal core runtime aliases
2026-05-30 11:07:45 +02:00
Peter Steinberger
b6ef874220
fix: reject partial numeric parsing
2026-05-28 10:51:32 -04:00
Peter Steinberger
0ec29289c6
fix: tighten CLI utility failure handling ( #86918 )
...
* fix: tighten cli utility failure handling
* fix: preserve completion install error cause
* fix: keep update completion refresh best effort
2026-05-26 18:08:44 +01:00
Peter Steinberger
77d9ac30bb
refactor: reuse shared coercion helpers ( #86419 )
...
* refactor: share talk event metric extraction
* refactor: reuse shared coercion helpers
* refactor: reuse shared primitive guards
* refactor: reuse shared record guard
* refactor: reuse shared primitive helpers
* refactor: reuse shared string guards
* refactor: reuse shared non-empty string guard
* refactor: share plugin primitive coercion helpers
* refactor: reuse plugin coercion helpers
* refactor: reuse plugin coercion helpers in more plugins
* refactor: reuse channel coercion helpers
* refactor: reuse monitor coercion helpers
* refactor: reuse provider coercion helpers
* refactor: reuse core coercion helpers
* refactor: reuse runtime coercion helpers
* refactor: reuse helper coercion in codex paths
* refactor: reuse helper coercion in runtime paths
* refactor: reuse codex app-server coercion helpers
* refactor: reuse codex record helpers
* refactor: reuse migration and qa record helpers
* refactor: reuse feishu and core helper guards
* refactor: reuse browser and policy coercion helpers
* refactor: reuse memory wiki record helper
* refactor: share boolean coercion helpers
* refactor: reuse finite number coercion
* refactor: reuse trimmed string list helpers
* refactor: reuse string list normalization
* refactor: reuse remaining string list helpers
* refactor: reuse string entry normalizer
* refactor: share sorted string helpers
* refactor: share string list normalization
* test: preserve command registry browser imports
* refactor: reuse trimmed list helpers
* refactor: reuse string dedupe helpers
* refactor: reuse local dedupe helpers
* refactor: reuse more string dedupe helpers
* refactor: reuse command string dedupe helpers
* refactor: dedupe memory path lists with helper
* refactor: expose string dedupe helpers to plugins
* refactor: reuse core string dedupe helpers
* refactor: reuse shared unique value helpers
* refactor: reuse unique helpers in agent utilities
* refactor: reuse unique helpers in config plumbing
* refactor: reuse unique helpers in extensions
* refactor: reuse unique helpers in core utilities
* refactor: reuse unique helpers in qa plugins
* refactor: reuse unique helpers in memory plugins
* refactor: reuse unique helpers in channel plugins
* refactor: reuse unique helpers in core tails
* refactor: reuse unique helper in comfy workflow
* refactor: reuse unique helpers in test utilities
* refactor: expose unique value helper to plugins
* refactor: reuse unique helpers for numeric lists
* refactor: replace index dedupe filters
* refactor: reuse string entry normalization
* refactor: reuse string normalization in plugin helpers
* refactor: reuse string normalization in extension helpers
* refactor: reuse string normalization in channel parsers
* refactor: reuse string normalization in memory search
* refactor: reuse string normalization in provider parsers
* refactor: reuse string normalization in qa helpers
* refactor: reuse string normalization in infra parsers
* refactor: reuse string normalization in messaging parsers
* refactor: reuse string normalization in core parsers
* refactor: reuse string normalization in extension parsers
* refactor: reuse string normalization in remaining parsers
* refactor: reuse string normalization in final parser spots
* refactor: reuse string normalization in qa media helpers
* refactor: reuse normalization in provider and media lists
* refactor: reuse normalization for remaining set filters
* refactor: reuse normalization in policy allowlists
* refactor: reuse normalization in session and owner lists
* refactor: centralize primitive string lists
* refactor: reuse lowercase entry helpers
* refactor: reuse sorted string helpers
* refactor: reuse unique trimmed helpers
* refactor: reuse string normalization helpers
* refactor: reuse catalog string helpers
* refactor: reuse remaining string helpers
* refactor: simplify remaining list normalization
* refactor: reuse codex auth order normalization
* chore: refresh plugin sdk api baseline
* fix: make shared string sorting deterministic
* chore: refresh plugin sdk api baseline
* fix: align host env security ordering
2026-05-25 21:20:41 +01:00
Vincent Koc
e2bd20f0aa
fix(cli): suppress self-update version warnings
2026-05-25 08:46:31 +02:00
Vincent Koc
6cc8244333
fix(update): suppress internal handoff version warnings
2026-05-24 21:42:42 +02:00
Jason (Json)
84f6b5c7f8
fix(update): prepack npm git update specs
...
Prepack npm GitHub/git source update specs into temporary tarballs before the staged global npm install. Extends coverage to hosted GitHub HTTPS URLs without a `.git` suffix.
Co-authored-by: fuller-stack-dev <263060202+fuller-stack-dev@users.noreply.github.com >
2026-05-22 22:58:16 +01:00
Vincent Koc
adc6adccd8
fix(update): detect nested macOS gateway ancestry ( #85391 )
...
* fix(update): detect nested macOS gateway ancestry
* fix(release): refresh shrinkwrap for CI npm
* fix(update): inherit gateway runtime pid for update guard
2026-05-23 00:00:38 +08:00
Vincent Koc
a15797ad11
fix(update): preserve package service state during cutover ( #83026 )
...
* fix(update): preserve package service state during cutover
* docs(changelog): mention package service state cutover fix
2026-05-22 21:02:58 +08:00
Vincent Koc
03f61cd1b5
fix(update): keep service logs out of json output
2026-05-22 12:46:00 +02:00