Peter Steinberger
538605ff44
[codex] Extract filesystem safety primitives ( #77918 )
...
* refactor: extract filesystem safety primitives
* refactor: use fs-safe for file access helpers
* refactor: reuse fs-safe for media reads
* refactor: use fs-safe for image reads
* refactor: reuse fs-safe in qqbot media opener
* refactor: reuse fs-safe for local media checks
* refactor: consume cleaner fs-safe api
* refactor: align fs-safe json option names
* fix: preserve fs-safe migration contracts
* refactor: use fs-safe primitive subpaths
* refactor: use grouped fs-safe subpaths
* refactor: align fs-safe api usage
* refactor: adapt private state store api
* chore: refresh proof gate
* refactor: follow fs-safe json api split
* refactor: follow reduced fs-safe surface
* build: default fs-safe python helper off
* fix: preserve fs-safe plugin sdk aliases
* refactor: consolidate fs-safe usage
* refactor: unify fs-safe store usage
* refactor: trim fs-safe temp workspace usage
* refactor: hide low-level fs-safe primitives
* build: use published fs-safe package
* fix: preserve outbound recovery durability after rebase
* chore: refresh pr checks
2026-05-06 02:15:17 +01:00
Peter Steinberger
384432fd22
test: isolate media factory planning imports
2026-05-06 01:54:55 +01:00
Vincent Koc
fcf0561da0
fix(cli): repair legacy config before update channel switch ( #77069 )
...
* fix(cli): repair legacy config before update channel switch
* docs(changelog): note update channel legacy config repair
* fix(update): keep legacy config repair doctor-owned
* fix(update): keep dry runs read-only
* fix(update): avoid include-flattening legacy repair
2026-05-05 17:54:53 -07:00
Peter Steinberger
d12c4d832d
test: narrow capability auth profile import
2026-05-06 01:52:10 +01:00
Peter Steinberger
cc3eb0b53e
test: use candidate seam for fallback ordering cases
2026-05-06 01:48:48 +01:00
Frank Yang
1ddc2650c6
Fix WebChat display for Codex-generated local media ( #77889 )
...
* fix: stage webchat codex media before display
* fix: avoid staging sensitive webchat media
* fix: preserve webchat inline media replies
* fix: normalize mixed webchat media replies
* fix: suppress mixed media false warnings
* fix(gateway): preserve webchat audio media display
2026-05-06 08:48:34 +08:00
Peter Steinberger
e3b0707a53
fix: preserve source plugin loading fallbacks
2026-05-06 01:46:42 +01:00
Peter Steinberger
2ead1502c9
feat: route outbound sends through durable lifecycle
2026-05-06 01:46:42 +01:00
Peter Steinberger
8bfabd6bb1
feat: add channel message lifecycle sdk
2026-05-06 01:46:42 +01:00
Peter Steinberger
2d45598738
test: trim duplicate local auth resolver cases
2026-05-06 01:45:43 +01:00
Peter Steinberger
271aac42e4
test: isolate cli provider model-selection coverage
2026-05-06 01:43:55 +01:00
hcl
d193d15f17
fix(plugins): explain source-only package diagnostics ( #77835 ) ( #77842 )
2026-05-05 17:43:13 -07:00
Vincent Koc
bca6709203
fix(doctor): repair legacy Codex route config
...
Repair legacy openai-codex route config and session pins safely.
2026-05-05 17:42:41 -07:00
Vincent Koc
2014c2327b
fix(plugins): sync official plugin installs during update ( #78065 )
...
* fix(plugins): sync official npm installs during update
* fix(plugins): sync official clawhub installs during update
* test(update): mock official plugin sync helpers
---------
Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com>
2026-05-05 17:27:32 -07:00
Agustin Rivera
d583013b8f
fix(exec): enforce allowlist argument patterns ( #75143 )
...
* fix(exec): enforce allowlist argument patterns
* fix(exec): document argPattern allowlist field
* Add CHANGELOG entry for #75143 cross-platform argPattern enforcement
---------
Co-authored-by: Devin Robison <drobison@nvidia.com>
Co-authored-by: Devin Robison <drobison00@users.noreply.github.com>
2026-05-05 18:23:40 -06:00
Vincent Koc
01377ddbe2
fix(cli): guard device fallback state
...
* fix(cli): guard device fallback state
* test(agents): fix model fallback case typing
2026-05-05 17:12:58 -07:00
Peter Steinberger
d111605453
test: streamline model fallback probe coverage
2026-05-06 01:12:16 +01:00
Peter Steinberger
093b2b9b5f
test: speed extension and contract scenarios
2026-05-06 00:54:06 +01:00
Peter Steinberger
cb42efb6e6
test: trim slow agent fallback coverage
2026-05-06 00:53:27 +01:00
Peter Steinberger
e428a2dfe2
test: add focused seams for faster isolated tests
2026-05-06 00:53:05 +01:00
Vincent Koc
46c99cff0b
fix(status): show runtime in CLI sessions ( #77776 )
...
* fix(status): show agent runtime in cli status
* fix(status): preserve configured runtime labels
2026-05-05 16:50:22 -07:00
Vincent Koc
b3ab3cde96
fix(agents): filter runtime context from context engines
...
## Summary
- filter hidden runtime-context custom messages before context-engine assemble, afterTurn, and ingest fallback hooks
- preserve the pre-prompt/new-turn boundary after filtering
- add regression coverage for assemble, afterTurn, and ingestBatch fallback behavior
## Verification
- pnpm test:serial src/agents/harness/context-engine-lifecycle.test.ts -- --reporter=verbose
- pnpm exec oxfmt --check --threads=1 src/agents/harness/context-engine-lifecycle.ts src/agents/harness/context-engine-lifecycle.test.ts CHANGELOG.md
- git diff --check origin/main...HEAD
- pnpm changed:lanes --json
- pnpm testbox:run --id tbx_01kqx8fy1ktpqczkcej2pgpryz -- "OPENCLAW_TESTBOX_REMOTE_RUN=1 pnpm check:changed"
2026-05-05 16:48:18 -07:00
Kevin Lin
81349cdc2a
feat: improve Codex skill migration selection ( #77597 )
...
* feat: improve Codex skill migration selection
* docs: add Codex migration changelog entry
* fix codex skill migration bulk toggles
* fix codex migration skip selection
* fix codex migration skip option order
* fix: handle codex migration shortcut toggles
* fix codex migration shortcut reconciliation
* fix: unblock Codex migration CI
2026-05-05 16:41:26 -07:00
Shakker
7af1a87830
fix: stabilize event loop health samples
2026-05-06 00:36:33 +01:00
Vincent Koc
5af1fe1bd0
fix(tui): prevent orphaned terminal sessions ( #77662 )
...
* fix(tui): prevent orphaned terminal sessions
* fix(doctor): repair heartbeat-poisoned main sessions
* fix(tui): preserve startup tls respawn
* fix: harden tui and doctor recovery paths
2026-05-05 16:34:18 -07:00
Vincent Koc
c874c0863a
fix(sessions): show runtime in sessions table
2026-05-05 16:16:15 -07:00
Vincent Koc
a4c860a70c
fix(update): avoid lint-blocked dev installs ( #77181 )
2026-05-05 16:05:35 -07:00
Vincent Koc
fdddb413ef
fix(cli): fast-path bare channels help ( #77659 )
...
* fix(cli): fast-path bare channels help
* fix(cli): normalize channels add argv gating
* fix(cli): restore channel add completion flags
2026-05-05 16:02:39 -07:00
Vincent Koc
1e1903487f
fix(gateway): cancel delayed maintenance on shutdown
2026-05-05 16:01:17 -07:00
Vincent Koc
92b04557a6
test(plugins): accept shared bundled runtime roots
2026-05-05 15:47:29 -07:00
Vincent Koc
1ff07517b0
test(secrets): trust source plugin contracts in coverage
2026-05-05 15:30:25 -07:00
Peter Steinberger
add9a49c40
test: cover generated media delivery evidence fallback
2026-05-05 23:19:36 +01:00
Peter Steinberger
a0ea07e462
fix: recognize attachment message sends
2026-05-05 23:19:36 +01:00
Vincent Koc
a36981a2c5
test(agents): isolate auth profile store fixtures
2026-05-05 14:53:35 -07:00
Vincent Koc
d38e30e02c
fix(gateway): skip media sidecar for unrelated HTTP routes
2026-05-05 14:43:49 -07:00
Patrick Erichsen
8aa7b7a4ca
Tolerate corrupt plugins during update ( #77706 )
...
* fix(update): tolerate corrupt plugin state
* fix(update): preserve corrupt plugin proof state
* fix(update): narrow corrupt plugin warnings
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-05-05 14:18:26 -07:00
Peter Steinberger
d94e7f5114
fix(discord): show reasoning text in progress drafts ( #78050 )
...
* fix(discord): show reasoning text in progress drafts
* fix(discord): handle reasoning progress snapshots
* test: isolate usage-format models fixture
2026-05-05 21:57:00 +01:00
scoootscooob
79dd65e208
feat(voice-call): improve realtime Meet voice agent
...
* feat(voice-call): inject agent context into realtime voice
* fix(voice-call): stabilize realtime meet audio
* fix(voice-call): delegate realtime consults to agent
* Improve realtime Meet voice consult routing
* Pin voice consult delivery to call session
* Move voice changelog entries to changes
* fix(voice-call): isolate final realtime transcripts
* test(voice-call): trim redundant realtime coverage
2026-05-05 12:56:31 -07:00
Peter Steinberger
782963ae66
refactor: compact generated protocol metadata
2026-05-05 20:47:38 +01:00
Peter Steinberger
4ddbdff7c0
refactor: drop legacy agent path files
2026-05-05 20:07:49 +01:00
Peter Steinberger
35da7d2c99
refactor: remove legacy agent dir resolver
2026-05-05 20:07:49 +01:00
Peter Steinberger
55d1cf87d7
refactor: compute base config schema at runtime
2026-05-05 19:55:36 +01:00
Logan Ye
7dc6007aee
fix(doctor): warn when OPENCLAW_GATEWAY_TOKEN env overrides gateway.auth.token config ( #74433 )
...
* fix(doctor): warn when OPENCLAW_GATEWAY_TOKEN env overrides gateway.auth.token config (#74271 )
* fix(doctor): narrow gateway token source warning
* test(status): type env secret provider fixture
* fix(doctor): scope gateway token conflict warning to local mode
Signed-off-by: sallyom <somalley@redhat.com>
---------
Signed-off-by: sallyom <somalley@redhat.com>
Co-authored-by: sallyom <somalley@redhat.com>
2026-05-05 14:54:15 -04:00
Peter Steinberger
64b1f5fbf4
test: speed up changed test paths
2026-05-05 19:48:19 +01:00
Pumpkin Xing
5fae1c32b5
fix(plugins): forward install records to channel catalog registry ( #77269 )
...
CI / -1 (push) Blocked by required conditions
CI / checks-fast-contracts-plugins (push) Blocked by required conditions
CI / -2 (push) Blocked by required conditions
CI / checks-node-core (push) Blocked by required conditions
CI / check-dependencies (push) Blocked by required conditions
CI / checks-fast-contracts-channels (push) Blocked by required conditions
CI / checks-fast-protocol (push) Blocked by required conditions
CI / -3 (push) Blocked by required conditions
CI / checks-node-compat-node22 (push) Blocked by required conditions
CI / -4 (push) Blocked by required conditions
CI / -5 (push) Blocked by required conditions
CI / check-lint (push) Blocked by required conditions
CI / check-policy-guards (push) Blocked by required conditions
CI / check-additional (push) Blocked by required conditions
CI / build-smoke (push) Blocked by required conditions
CI / check-docs (push) Blocked by required conditions
CI / skills-python (push) Blocked by required conditions
CI / -6 (push) Blocked by required conditions
CI / -7 (push) Blocked by required conditions
CI / macos-swift (push) Blocked by required conditions
CI / -8 (push) Blocked by required conditions
ClawSweeper Dispatch / dispatch (push) Waiting to run
Docs Sync Publish Repo / sync-publish-repo (push) Waiting to run
Docs / docs (push) Waiting to run
Plugin NPM Release / preview_plugins_npm (push) Waiting to run
Plugin NPM Release / preview_plugin_pack (push) Blocked by required conditions
Plugin NPM Release / publish_plugins_npm (push) Blocked by required conditions
Workflow Sanity / no-tabs (push) Waiting to run
Workflow Sanity / actionlint (push) Waiting to run
Workflow Sanity / generated-doc-baselines (push) Waiting to run
Merged via squash.
Prepared head SHA: d06034b037
Co-authored-by: pumpkinxing1 <271513653+pumpkinxing1@users.noreply.github.com>
Co-authored-by: odysseus0 <8635094+odysseus0@users.noreply.github.com>
Reviewed-by: @odysseus0
2026-05-05 10:47:01 -07:00
Peter Steinberger
7188e4f4ad
refactor: centralize agent run pending status
2026-05-05 18:21:58 +01:00
Peter Steinberger
b32d4c5255
fix: avoid media completion fallback while announce pending
2026-05-05 18:11:30 +01:00
Peter Steinberger
fd86ab2e50
fix(gateway): mark openai role chunks unfinished
2026-05-05 17:58:09 +01:00
Peter Steinberger
d520bc4cb6
fix(gateway): flush initial openai chat stream chunk
2026-05-05 17:58:09 +01:00
Neerav Makwana
63ce0ca966
fix: persist embedded session transcripts ( #77839 ) (thanks @neeravmakwana)
...
* fix(agents): persist embedded runner session transcripts (#77823 )
Run persistCliTurnTranscript and post-turn compaction for executionTrace.runner embedded,
matching CLI turns so assistant text reaches session JSONL for webchat/Feishu-style runs.
Co-authored-by: Cursor <cursoragent@cursor.com>
* fix(agents): narrow embedded transcript mirror with assistant dedupe (#77823 )
Embedded runs pass embeddedAssistantGapFill so persistCliTurnTranscript skips
re-appending the user prompt Pi owns and only appends assistant text when the
transcript tail lacks equivalent visible assistant content.
Adds CLI transcript regression coverage for gap-fill dedupe.
Co-authored-by: Cursor <cursoragent@cursor.com>
* fix(agents): dedupe embedded transcript gap fill by tail
* fix: persist embedded session transcripts (#77839 ) (thanks @neeravmakwana)
---------
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-05-05 21:35:08 +05:30