Show input-wait hints in process log/poll for idle interactive background sessions, keep list markers and structured stdin metadata, and document the recovery flow through log plus existing input actions.
Docs: updated docs/gateway/background-process.md.
Verification:
- pnpm test src/agents/bash-tools.test.ts
- pnpm test src/agents/bash-tools.process.input-hints.test.ts
- pnpm test src/agents/bash-tools.process.input-hints.test.ts src/agents/bash-tools.process.poll-timeout.test.ts src/agents/bash-tools.process.supervisor.test.ts src/agents/bash-tools.process-send-keys.test.ts
- pnpm check:docs
- git diff --check
- CI on 4aea1f11fe: check, check-additional, check-docs, checks-node-core, process/security relevant shards, real behavior proof passed
Fixes#33957.
Thanks @bitloi and @vincentkoc.
Co-authored-by: bitloi <89318445+bitloi@users.noreply.github.com>
Co-authored-by: bitloi <raphaelaloi.eth@gmail.com>
Closes#80087.
When a plugin was previously installed from ~/.openclaw/extensions/<id>/ but
that directory was later removed (replaced by an npm-managed install), the
persisted plugin registry JSON still carried the old "requires compiled runtime
output" WARN diagnostic whose `source` field pointed at the deleted path. On
subsequent `openclaw doctor` runs, the persisted snapshot passed all existing
staleness checks (the npm-loaded plugin was valid), so the stale diagnostic was
re-emitted verbatim — referencing a directory that no longer existed.
Add `hasStalePersistedPluginDiagnostics`: if any diagnostic in the persisted
index has an absolute-path `source` that does not exist on disk, treat the
persisted snapshot as stale and fall back to a freshly derived index (which
will not reproduce the phantom warning). Includes a regression test that
constructs a persisted index carrying a ghost-path diagnostic, verifies the
derived path is taken, and confirms the stale diagnostic is absent from the
fresh snapshot.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Fixes#79856.
Preserves explicitly set config values that equal runtime defaults across CLI set/patch, exported config writes, object paths, array-index paths, and normalized model paths. Rejects default-equal explicit writes under include-owned config instead of reporting a no-op success.
Co-authored-by: hclsys <hclsys@users.noreply.github.com>
Summary:
- accept `moonshotai` and `moonshot-ai` as direct Moonshot provider aliases at runtime
- expose both aliases in the Moonshot manifest catalog
- add resolver/catalog regression coverage for #73876
Verification:
- `pnpm test src/agents/model-selection.test.ts src/agents/pi-embedded-runner/model.test.ts src/model-catalog/manifest-planner.test.ts`
- `pnpm test src/plugins/contracts/plugin-registration.moonshot.contract.test.ts`
- `git diff --check`
- `OPENCLAW_TESTBOX=0 pnpm check:changed`