Commit Graph

35418 Commits

Author SHA1 Message Date
Vincent Koc b1608b4a4e test(ci): refresh temp-dir helper routing 2026-06-20 18:05:14 +08:00
Vincent Koc 703dfbf453 chore(deadcode): remove stale auto-reply helpers 2026-06-20 17:58:59 +08:00
Vincent Koc 29df94382e chore(deadcode): remove duplicate compaction provider lister 2026-06-20 16:22:46 +08:00
Vincent Koc a4e2113e1b chore(deadcode): remove unused infra consumers 2026-06-20 15:59:37 +08:00
Vincent Koc 0e14a3f09b chore(deadcode): remove unused web push sender 2026-06-20 15:41:30 +08:00
Vincent Koc 1dbf4dbd40 chore(deadcode): remove unused infra wrappers 2026-06-20 15:26:47 +08:00
Vincent Koc df7e4788ed chore(deadcode): remove unused package inventory comparator 2026-06-20 15:10:15 +08:00
Vincent Koc da35f8b4d1 chore(deadcode): remove unused outbound json builder 2026-06-20 14:53:05 +08:00
Vincent Koc bb7150de94 fix(gateway): reject malformed artifact base64 2026-06-20 08:49:05 +02:00
Vincent Koc 9afc333bd7 chore(deadcode): remove stale runtime query helpers 2026-06-20 14:37:46 +08:00
Vincent Koc eb5bb7f6a0 chore(deadcode): remove unused channel alias lister 2026-06-20 14:15:31 +08:00
Vincent Koc d0812126c8 chore(deadcode): prune stale model metadata wrappers 2026-06-20 14:00:10 +08:00
Vincent Koc f8675b3b70 fix(gateway): normalize secret fallback values 2026-06-20 07:34:39 +02:00
Vincent Koc 93cbd16c88 chore(deadcode): remove copied copilot token shim 2026-06-20 13:15:12 +08:00
Vincent Koc 7779bc64d2 fix(tui): wrap Windows auth shims explicitly 2026-06-20 07:01:27 +02:00
Vincent Koc 5e7bb9cf9b fix(hooks): share Windows gog command wrapping 2026-06-20 06:56:23 +02:00
Vincent Koc 2248aa4315 fix(process): wrap Windows command shims 2026-06-20 06:50:56 +02:00
Vincent Koc 6bfe7a2b06 fix(secrets): enforce canonical secret refs 2026-06-20 06:41:33 +02:00
Shakker 14d362039e test: restore doctor completion env 2026-06-20 04:37:18 +01:00
Shakker 9391dac56d fix: scope backup config env 2026-06-20 04:36:11 +01:00
Shakker 0d6e0a2263 test: isolate launchd process env 2026-06-20 04:26:00 +01:00
Shakker c946df0239 fix: route skills home env restores 2026-06-20 04:13:52 +01:00
Shakker 9ce68d0920 test: isolate daemon status env 2026-06-20 04:09:09 +01:00
Shakker 78a2a31a6b fix: scope completion install env 2026-06-20 04:01:08 +01:00
Shakker c719ff3183 test: restore cli profile env 2026-06-20 03:56:15 +01:00
Shakker 13e76544e5 fix: scope onboard reset env 2026-06-20 03:54:07 +01:00
Shakker a5e33b3a6b test: restore manifest model env 2026-06-20 03:14:54 +01:00
Shakker d6c7e95c7b fix: scope compact skill path env 2026-06-20 03:09:02 +01:00
Shakker 2844ec2bb0 test: isolate exec approval env 2026-06-20 03:02:20 +01:00
Shakker e27c9a9a41 fix: centralize dotenv env cleanup 2026-06-20 02:55:43 +01:00
Shakker 5fd947c661 test: route config guard home env 2026-06-20 02:39:03 +01:00
Shakker 3e41587992 fix: scope best effort config env 2026-06-20 02:33:01 +01:00
Vincent Koc 0cf941344c fix(test): honor shell completion test args 2026-06-20 03:12:16 +02:00
Andy Ye 1e105d5340 fix(doctor): repair legacy Codex route persistence (#94478)
Summary:
- The branch changes config write preparation and doctor regression coverage so `doctor --fix` persists repair ... rams under canonical `openai/*` with Codex runtime policy, plus a prerelease lane timeout assertion update.
- PR surface: Source +9, Tests +107. Total +116 across 4 files.
- Reproducibility: yes. at source level: current main can re-preserve stale source-authored `openai-codex/*` m ... the candidate config, while the PR body supplies after-fix command proof for the narrowed persistence path.

Automerge notes:
- No ClawSweeper repair was needed after automerge opt-in.

Validation:
- ClawSweeper review passed for head 7b5bc00f31.
- Required merge gates passed before the squash merge.

Prepared head SHA: 7b5bc00f31
Review: https://github.com/openclaw/openclaw/pull/94478#issuecomment-4739605890

Co-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com>
2026-06-19 23:09:45 +00:00
Vincent Koc d6cefe26f4 fix(agents): bound Anthropic error streams (#95108) 2026-06-20 06:02:12 +08:00
Vincent Koc b073d7cc11 fix(gateway): bound pricing catalog streams
Bound gateway model pricing catalog reads through the shared streaming byte-limit helper so no-content-length LiteLLM/OpenRouter responses cannot be fully buffered past the 5 MiB cap before rejection. Adds a regression for streamed LiteLLM overflow while preserving OpenRouter fallback pricing.
2026-06-20 05:42:23 +08:00
Vincent Koc a54a56fb98 refactor(theme): drop unused terminal detection 2026-06-20 05:20:35 +08:00
Alix-007 6a27300a5b fix(gateway): remove device-backed node pairings (#90373)
Merged via squash.

Prepared head SHA: 8bd0e964ec
Co-authored-by: Alix-007 <267018309+Alix-007@users.noreply.github.com>
Co-authored-by: steipete <58493+steipete@users.noreply.github.com>
Reviewed-by: @steipete
2026-06-19 22:04:16 +01:00
Peter Steinberger 023993249f fix(queue): restart dormant followup drains (#95039)
Merged via squash.

Prepared head SHA: b6a81f07f1
Co-authored-by: steipete <58493+steipete@users.noreply.github.com>
Reviewed-by: @steipete
2026-06-19 22:03:48 +01:00
zerone0x cd061a4c7b fix(agents): preserve delivered message send results (#84292)
Merged via squash.

Prepared head SHA: e5f948cf31
Co-authored-by: zerone0x <39543393+zerone0x@users.noreply.github.com>
Co-authored-by: steipete <58493+steipete@users.noreply.github.com>
Reviewed-by: @steipete
2026-06-19 22:02:33 +01:00
Vincent Koc b554c470a2 refactor(sessions): drop unused footer provider methods 2026-06-20 04:50:23 +08:00
Vincent Koc 6f5fdb1e6b fix(gateway): validate plugin descriptors and compact refresh 2026-06-19 22:25:15 +02:00
Vincent Koc 9594300f8c refactor(gateway): drop unused helper methods 2026-06-20 04:14:45 +08:00
Vincent Koc 3706047d60 refactor(core): drop unused internal helpers 2026-06-20 03:58:55 +08:00
Alix-007 e35e5f123d feat(cli): add openclaw sessions compact and fail loudly on CLI /compact (fixes #90640) (#91378)
* feat(cli): add `sessions compact` command and fail loudly on CLI `/compact`

`sessions.compact` was reachable only as an internal Gateway RPC — no CLI
command, no docs — and `openclaw agent --message '/compact'` silently no-opped
with exit 0 because the slash-command handler rejects CLI-originated senders,
so the message fell through to an ordinary agent turn that compacted nothing.

- Add `openclaw sessions compact <key>` wrapping the existing `sessions.compact`
  RPC; exit non-zero on a transport error or an `ok:false` payload so automation
  never mistakes a silent no-op for success.
- Reject `openclaw agent --message '/compact'` with a redirect to the new
  command and exit 1 instead of a silent exit 0. The shared chat-side `/compact`
  handler is left untouched (no compatibility / message-delivery blast radius).
- Strictly validate `--max-lines` and `--timeout` (positive integers only).
- Document the command and the `sessions.compact` RPC in docs/cli/sessions.md.

Fixes #90640.

* fix(cli): inherit parent `sessions` options for `compact`

`openclaw sessions compact <key>` did not merge the parent `sessions`
command options the way its sibling subcommands (list/cleanup/info/…) do,
so a parent-level `--agent`/`--json` was silently dropped. In particular
`openclaw sessions --agent work compact <key>` compacted the default
agent's session instead of the work agent's — a wrong-target session-state
mutation.

Merge the parent options in the compact action (parent `--agent`/`--json`,
with the compact-level option taking precedence) and add regression
coverage for parent `--agent`, parent `--json`, and the compact-level
override.

Refs #90640.

* fix(cli): report pending Codex compaction and reject unsupported parent options

Address two ClawSweeper review findings on the `sessions compact` command:

- `sessions-compact.ts`: the Codex app-server `thread/compact/start` path
  returns `ok:true / compacted:false` with a pending marker, meaning the
  compaction was *started* asynchronously. The formatter collapsed every
  non-compacted success into "No compaction needed", so Codex users were told
  nothing happened. Report it as a started/pending compaction instead.
- `register.status-health-sessions.ts`: the parent `sessions` command defines
  list-only options (`--store`/`--all-agents`/`--active`/`--limit`) that the
  compact action previously ignored. Silently dropping a parent `--store` is
  dangerous — the gateway resolves the target store itself, so a user could
  believe they targeted one store while another is mutated. Reject any
  unsupported inherited parent option with a clear error and a non-zero exit.

Add regression tests for the pending-compaction message and the rejected
parent options.

Refs #90640.

* fix(gateway): guard sessions.compact maxLines truncation against active runs

The non-maxLines (LLM) compact branch interrupts an active session run before
compacting, but the maxLines truncate branch read the tail, archived, and
overwrote the transcript in place without that guard. Exposing `--max-lines`
as a documented CLI command (this PR) would make the active-run data-loss mode
tracked by #72765 easy to trigger from ordinary CLI usage.

Run the same interruptSessionRunIfActive guard in the maxLines branch before
reading the tail and truncating, matching the LLM compact path. Add gateway
regression coverage over a real in-process Gateway: with no active run, the
maxLines branch truncates the on-disk transcript 500 -> 50 and preserves the
original 500 lines in the .bak archive; with an active embedded run, the
maxLines branch fires the same interrupt (abort + wait-for-end) before
archiving and truncating.

* docs(cli): move sessions compact section above related links

The new "Compact a session" section was inserted between the cleanup
section's inline "Related:" list and the page's final "## Related"
block, splitting related-link content around the command docs. Move the
compact section above the related-links area and merge the orphaned
"Session config" link into the single final "## Related" block.

* fix(gateway): avoid no-op compact aborts

Signed-off-by: sallyom <somalley@redhat.com>

* fix(gateway): satisfy compact preflight lint

Signed-off-by: sallyom <somalley@redhat.com>

* fix(sessions): preserve compacted transcript structure

---------

Signed-off-by: sallyom <somalley@redhat.com>
Co-authored-by: sallyom <somalley@redhat.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-06-19 15:47:43 -04:00
Alix-007 16fba65cb6 fix(cron): honor configured retry.backoffMs for recurring error backoff floor (#93051)
Merged via squash.

Prepared head SHA: c8026d0aef
Co-authored-by: Alix-007 <267018309+Alix-007@users.noreply.github.com>
Co-authored-by: steipete <58493+steipete@users.noreply.github.com>
Reviewed-by: @steipete
2026-06-19 20:35:42 +01:00
Alix-007 806a37fca8 fix(cli): reject present-but-invalid --timeout on status/health fast path (#92996)
Merged via squash.

Prepared head SHA: eda96f9f80
Co-authored-by: Alix-007 <267018309+Alix-007@users.noreply.github.com>
Co-authored-by: steipete <58493+steipete@users.noreply.github.com>
Reviewed-by: @steipete
2026-06-19 20:33:24 +01:00
Vincent Koc 061a3705db test(plugin-sdk): isolate runtime facade tests 2026-06-19 20:55:49 +02:00
Lu Wang 583829a342 fix(ssh): scope tunnel port preflight to loopback (#94603) (#94607)
Merged via squash.

Prepared head SHA: 6798b718de
Co-authored-by: wangwllu <7668944+wangwllu@users.noreply.github.com>
Co-authored-by: steipete <58493+steipete@users.noreply.github.com>
Reviewed-by: @steipete
2026-06-19 18:59:58 +01:00
Vincent Koc 1609365b3e test(state): canonicalize sqlite volume assertions 2026-06-19 19:45:40 +02:00