Commit Graph

68723 Commits

Author SHA1 Message Date
Yuval Dinodia 7974def3fd fix(codex): restore shell for restricted turns (#92294)
* fix(codex): keep OpenClaw exec when native surface has no environment (#92238)

* chore: keep release note in PR

* fix(codex): keep shell tool type internal

Co-authored-by: yetval <yetvald@gmail.com>

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-15 00:37:04 -07:00
Peter Steinberger 7856a99aa5 test: speed Telegram archive fixture (#108108) 2026-07-15 00:34:38 -07:00
Eden cce791607e fix(line): drop blank entries from trailing commas in agenda/device directives (#105381)
* fix(line): drop blank entries from trailing commas in agenda/device directives

* fix(line): drop blank device action labels

Co-authored-by: Eden <146086744+edenfunf@users.noreply.github.com>

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-15 00:32:30 -07:00
Peter Steinberger 53cc2977ac chore(plugin-sdk): align baseline after auth refactor 2026-07-15 08:30:41 +01:00
Peter Steinberger 15cc637004 chore(plugin-sdk): refresh API baseline 2026-07-15 08:30:41 +01:00
Peter Steinberger 061ccb1a26 refactor(active-memory): prepare recall context once 2026-07-15 08:30:41 +01:00
Peter Steinberger 658fdaea5b refactor(audit): remove internal test exports (#108111)
* refactor(audit): remove internal test exports

* chore(deadcode): refresh export baseline
2026-07-15 00:30:16 -07:00
sunlit-deng 8ddb23ea96 fix(agents): avoid stale session label timestamps after replacement (#107638)
* fix(agents): clear session label timestamps on replacement

* fix(agents): clear label timestamps on run reset

Co-authored-by: sunlit-deng <yang.jiajun1@xydigit.com>

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-15 00:29:35 -07:00
Peter Steinberger 666a907316 fix: preserve updates across pnpm and Bun lifecycle checks (#108090)
* fix(update): validate lifecycle runtimes

* fix(update): verify Bun lifecycle path

* fix(update): reject drive-relative Node paths

* test(update): align lifecycle argv expectations
2026-07-15 00:26:41 -07:00
Peter Steinberger 46fad5296a refactor(github-copilot): own runtime auth in provider (#108096) 2026-07-15 00:19:44 -07:00
Leon-SK668 9a8ed45935 fix(linux-node): keep command errors UTF-16 safe (#107717) 2026-07-15 00:16:39 -07:00
Peter Steinberger 752032e4fb test: stabilize full-suite shards (#108093) 2026-07-15 00:15:57 -07:00
WhatsSkiLL a0af118c0d fix(android): keep offline chat actions readable (#107404)
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com>
2026-07-15 00:15:03 -07:00
Peter Steinberger d801f2e68c docs: document CI rerun attempt selection (#108095) 2026-07-15 00:12:41 -07:00
Peter Steinberger 723c2f81ad refactor(llm): privatize provider internals (#108099)
* refactor(llm): privatize provider internals

* chore(deadcode): refresh export baseline
2026-07-15 00:11:43 -07:00
Peter Steinberger 6beb726be7 fix(docs): preserve inline code literals 2026-07-15 03:10:11 -04:00
Peter Steinberger 0d7da61e9b fix(macos): hide update guide after app-only updates (#108034)
* fix(macos): hide update guide for app-only updates

* chore: defer release note to release changelog

* docs(macos): clarify app-only update completion

* chore(i18n): sync native update strings
2026-07-15 00:09:26 -07:00
Peter Steinberger 732fb5f9e6 fix(release): bind Telegram proof artifact identity 2026-07-15 08:02:17 +01:00
Yuval Dinodia 864bb18738 fix(cron): cap trigger script tool access (#104430)
* fix(cron): cap trigger script tool access

Persist the creator tool cap for any cron job with a trigger script and pass it to the headless trigger runtime. System event and command payloads retain the cap across cron updates.

* fix(cron): persist trigger tool cap for systemEvent and command payloads

The creator tool cap is stamped on systemEvent and command payloads whenever a
cron job carries a trigger script, but the SQLite codec dropped
payload.toolsAllow for those kinds. After a gateway restart the reloaded job
carried no cap and the trigger regained the full coding surface. Persist and
restore toolsAllow through the existing payload_tools_allow_json column for all
payload kinds, and add restart-aware round-trip coverage.

* ci: re-trigger workflows (transient self-hosted runner flake)

* fix(cron): use expectDefined for store test job access

* refactor(cron): hoist cron tool types, payload merge, and wire types into companion modules

Keeps the oversized cron files at or below their baseline line counts for the
changed-file TypeScript LOC ratchet on main. No behavior change.

* fix(cron): retain freshly stamped cap markers

* test(ci): align compact shard count

* fix(cron): make trigger cap updates atomic

* fix(cron): preserve explicit cap provenance

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
Co-authored-by: Peter Steinberger <peter@steipete.me>
2026-07-15 00:01:26 -07:00
Peter Steinberger d139c0e854 test: speed PR operation lock fixtures (#108078) 2026-07-14 23:58:13 -07:00
Wynne668 b01c7619cc fix(media): handle uploads with conflicting MIME metadata (#107863)
* fix(media): prefer attachment bytes for MIME detection

* fix(media): honor detected MIME in explicit image paths

Co-authored-by: ZengWen-DT <ceng.wen@xydigit.com>

* fix(media): preserve ambiguous audio container hints

Co-authored-by: ZengWen-DT <ceng.wen@xydigit.com>

* fix(media): narrow ambiguous MIME overrides

Co-authored-by: ZengWen-DT <ceng.wen@xydigit.com>

* fix(media): reconcile fetched MIME hints

Co-authored-by: ZengWen-DT <ceng.wen@xydigit.com>

* fix(media): refine generic ZIP MIME metadata

Co-authored-by: ZengWen-DT <ceng.wen@xydigit.com>

* fix(media): preserve compatible ZIP MIME hints

Co-authored-by: ZengWen-DT <ceng.wen@xydigit.com>

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-14 23:57:56 -07:00
Peter Steinberger c31d19950f refactor(macos): tighten status item lifecycle 2026-07-14 23:57:05 -07:00
Peter Steinberger 5779422283 refactor(packaging): remove unused inventory override 2026-07-14 23:56:09 -07:00
Dallin Romney f0109f430c fix(release): retry transient live provider failures (#108015) 2026-07-14 23:55:32 -07:00
Peter Steinberger 0754d23615 fix: group native sessions by host (#108062)
* fix(control-ui): group native sessions by host

* test: satisfy native session checks

* chore: remove release-owned changelog entry
2026-07-14 23:51:00 -07:00
Peter Steinberger 80e1509fe8 fix(codex): keep parent binding on cross-key handoff and stop foreign-transcript mirror warns (#108042)
- session_end with a provably different nextSessionKey (dashboard "New Chat",
  fork child) no longer permanently retires the still-live parent Codex
  binding; same-key rollovers, unknown-key ends, and terminal ends retire as
  before (#106778)
- mirrored session-history reads treat well-formed non-Codex transcripts as an
  empty mirror instead of a read failure, so codex harness hooks stop warning
  on every non-Codex model run; corrupted session headers stay on the warn
  path (#106556)
2026-07-14 23:50:01 -07:00
Peter Steinberger 18c14abc2a docs: require post-merge recap 2026-07-14 23:48:20 -07:00
Peter Steinberger 92d06e51bb refactor(mcp): trim internal server exports (#108076)
* refactor(mcp): remove dead internal exports

* chore(deadcode): refresh export baseline
2026-07-14 23:47:38 -07:00
Alix-007 c4cd643c1b test(extensions): derive Firecrawl batch expectations from tracked tests (#103369)
* fix(firecrawl): require own legacy provider config entries

* fix(firecrawl): make legacy config lookup type-safe

* test(firecrawl): keep extension batch assertions data-driven

* test(firecrawl): cover inherited config in client path

* test(firecrawl): avoid request object stringification

* test(extensions): keep firecrawl batch expectations data-driven

* test(extensions): simplify shard fixture mapping

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-14 23:47:31 -07:00
Peter Steinberger 92fc907ffb fix: preserve TUI restore state without JSON races (#108058)
* refactor(tui): move last session state to sqlite

* chore: keep release notes in PR body

* test: update doctor migration fixture

* chore: satisfy dead code export gate
2026-07-14 23:46:22 -07:00
clawsweeper[bot] 5afb1fb381 feat(ui): add follow-up behavior setting for active runs (steer by default) (#108032)
* feat(ui): add follow-up behavior setting (queue vs steer) for active runs

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* default follow-up behavior to steer

Follow-ups sent while a run is active now steer into the running turn by
default; queue mode becomes the persisted opt-out. Offline/disconnected
sends still always queue.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* feat(ui): steer active follow-ups by default

---------

Co-authored-by: openclaw-clawsweeper[bot] <openclaw-clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-14 23:28:27 -07:00
Peter Steinberger 0240327fe7 refactor(security): privatize audit internals (#108067)
* refactor(security): privatize audit internals

* chore(deadcode): shrink security export baseline
2026-07-14 23:28:04 -07:00
Peter Steinberger c51bb5ed20 test(github-copilot): align token endpoint fixtures (#108047)
* test(github-copilot): align token endpoint fixtures

* docs: refresh generated docs map
2026-07-14 23:25:49 -07:00
Peter Steinberger 1d22f1d34c fix: restore palette-aware embedded terminal surfaces (#108057)
* fix(ui): answer terminal color queries

* chore: keep terminal release note in PR
2026-07-14 23:25:19 -07:00
Peter Steinberger 23c0a7b612 fix: preserve working installs on unsupported Node (#106994)
* fix(update): preserve installs on unsupported Node

* fix(update): verify skipped install scripts

* refactor(update): share global install preflight

* fix(update): validate Bun-installed Node runtime

* fix(update): classify install preflight failures

* refactor(update): normalize install failure reasons

* style(update): format updater policy test

* fix(update): preserve pnpm script policy safety

* fix(update): classify hosted git sources

* chore: leave release notes to release flow

* fix(release): defer package inventory helper loading

* style(release): keep inventory loader LOC-neutral

* fix(update): validate staged package lifecycle

* fix(update): match packed lifecycle contract

* fix(update): harden Bun package activation

* test(update): model packed Bun lifecycle

* style(update): avoid lifecycle name shadowing

* fix(update): remove unsafe Bun staging experiment

* fix(update): satisfy updater type checks

* fix(update): preserve packed npm package name

* fix(update): preserve checkout failure status

* fix(update): disable scripts while packing candidates

* fix(update): preflight source package engines safely

* fix(update): preserve legacy npm downgrades

* fix(update): pin npm packing to selected Node

* fix(update): stage npm activation before replacing live package

* fix(update): guard non-npm source activation

* refactor(update): isolate npm staging helpers

* fix(update): harden staged package lifecycle

* test(update): satisfy merged type gates

* fix(update): privatize runtime npm helper

* fix(ci): satisfy merged lint and type gates

* docs(changelog): defer updater note to release

* fix(update): guard package activation runtime

* fix(update): preserve installs on unsupported Node

* test(update): reject prerelease Node runtimes

* test(update): use shared temp cleanup

* fix(update): fail closed when install scripts are skipped

* fix(update): pack install guard in docker artifacts

* fix(ci): keep install guard export tooling-local
2026-07-14 23:19:48 -07:00
Peter Steinberger bda5288365 fix(gateway): preserve MCP literal union schemas (#108054) 2026-07-14 23:17:42 -07:00
Alix-007 d5ece3b2d7 fix(device-pair): bound notifier polling overlap (#106395)
* fix(device-pair): bound notifier polling overlap

* fix(device-pair): retain notify lock across reloads

Co-authored-by: Alix-007 <li.long15@xydigit.com>

* test(device-pair): prove reload delivery dedupe

* test(device-pair): type pairing list mock

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-14 23:17:09 -07:00
Dallin Romney c421a3b2e6 feat: add reusable Parallels Windows test setup (#107881)
* test: route Parallels Windows setup

* test: own Parallels Windows baseline setup

* docs: point Windows proof to Parallels sidecar
2026-07-14 23:15:57 -07:00
Peter Steinberger 75a48c0033 fix(config): align session maintenance validation (#108046) 2026-07-14 23:15:06 -07:00
Peter Steinberger 6ec5a2e5aa refactor(plugins): defer installed payload validation (#108051) 2026-07-14 23:14:06 -07:00
WhatsSkiLL e6f3303cf2 fix(android): enlarge attachment remove touch target (#106737)
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com>
2026-07-14 23:13:14 -07:00
Peter Steinberger ed49673307 fix(release): prepare trusted harness dependencies 2026-07-15 07:11:59 +01:00
Peter Steinberger 5eaa72e740 test: speed bench model tests (#108048) 2026-07-14 23:11:28 -07:00
Peter Steinberger 3d4ba02574 feat(active-memory): add recall-specific fast mode (#108043)
* feat(active-memory): add fast mode override

* fix(agents): preserve fast auto cutoff

* fix(active-memory): inherit parent fast mode

* docs: refresh generated docs map
2026-07-14 23:09:04 -07:00
Peter Steinberger 34b8a3fda0 fix(release): isolate trusted candidate dependencies 2026-07-15 07:08:00 +01:00
Peter Steinberger f30d9b250a fix(worktrees): fail closed on owner lookup errors (#108041) 2026-07-14 23:06:26 -07:00
Dallin Romney fc56b55403 docs: refresh generated docs map (#108052) 2026-07-14 23:05:07 -07:00
VectorPeak 1ac30c8491 fix(tlon): send fragment image URLs as media (#104853)
* fix(tlon): keep fragment image URLs as media

Co-authored-by: chatgpt-codex-connector[bot] <199175422+chatgpt-codex-connector[bot]@users.noreply.github.com>

* test(tlon): prove fragment image media send path

Co-authored-by: chatgpt-codex-connector[bot] <199175422+chatgpt-codex-connector[bot]@users.noreply.github.com>

* test(tlon): remove mocked fragment outbound proof

Keep the PR evidence scoped to the helper-level regression test until live Tlon proof is available. The mocked outbound test was not sufficient for the reviewer-requested live behavior proof and triggered serialized-state review noise.

Co-authored-by: chatgpt-codex-connector[bot] <199175422+chatgpt-codex-connector[bot]@users.noreply.github.com>

* docs: refresh docs map for CI

Regenerate docs/docs_map.md after syncing with upstream/main so the docs map check passes on this PR branch.

Co-authored-by: chatgpt-codex-connector[bot] <199175422+chatgpt-codex-connector[bot]@users.noreply.github.com>

* fix(tlon): constrain fragment image URL matching

Co-authored-by: chatgpt-codex-connector[bot] <199175422+chatgpt-codex-connector[bot]@users.noreply.github.com>

* fix(tlon): harden image URL classification

Co-authored-by: VectorPeak <garrufariw@gmail.com>

---------

Co-authored-by: chatgpt-codex-connector[bot] <199175422+chatgpt-codex-connector[bot]@users.noreply.github.com>
Co-authored-by: VectorPeak <VectorPeak@users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-14 23:04:21 -07:00
Peter Steinberger 7f1baa6d75 refactor(codex): trim session catalog exports (#108045)
* refactor(codex): privatize session catalog helpers

* chore(deadcode): refresh export baseline
2026-07-14 22:59:46 -07:00
Peter Steinberger 701d02f241 refactor(gateway): make secret assignment projection explicit (#108040) 2026-07-14 22:56:54 -07:00