Peter Steinberger
ea707382fd
feat(code-mode): first-class nodes API ( #114877 )
...
* feat(agents): add nodes to code mode
* fix(agents): add code mode nodes discovery hint
2026-07-27 23:03:23 -04:00
Peter Steinberger
37cf0c6064
improve: reduce GPT-5.6 coding harness overhead ( #114574 )
...
* improve: reduce GPT-5.6 coding harness overhead
* refactor: extract runtime parity timing helpers
* fix(qa): verify native apply-patch runtime parity
* fix(qa): use mock patch execution evidence
* fix(qa): preserve workspace templates in full syncs
* fix(qa): make rejected patch fixtures deterministic
* fix(qa): prove apply-patch workspace containment
* fix(qa): expose runtime prompt-cache usage
* fix(codex): confine forced private QA patch turns
* fix(qa): verify native patch execution and sandbox precedence
* fix(qa): execute native patches and prove disk mutation
* fix(codex): avoid duplicate native patch registration
* perf(agents): keep code mode catalog guidance compact
* fix(qa): make native Codex patch evidence deterministic
* fix(qa): recognize native sandbox denial errors
* fix(qa): advertise native Codex mock model capabilities
* fix(qa): seed native Codex mock model catalog at startup
* fix(qa): recognize native Codex patch denial results
* fix(ci): repair Codex harness parity checks
* fix(qa): distinguish unknown prompt-cache measurements
* fix(qa): accept native Codex project patch denials
* fix(ci): isolate runtime parity report contracts
* fix(codex): eliminate native runtime transport overhead
* fix(qa): consume runtime parity report contract
* fix(qa): compare matched runtime timing captures
* fix(qa): type native response delta context
* fix(qa): satisfy native codex websocket lint
2026-07-27 19:24:52 -04:00
Peter Steinberger
b5bb29a36e
fix(code-mode): preserve direct tools and secure suspended runs ( #114778 )
...
Preserve trusted policy-required message delivery and native image/computer tools across Code Mode catalogs and provider transports. Keep preferred Gemini capability metadata during live discovery, escape MCP declaration keywords, and reject suspended-run resumes with missing owner identity. Add before-and-after regressions for each user path. Closes #114753 .
2026-07-27 18:47:33 -04:00
Peter Steinberger
3a39dbcdfd
fix(agents): harden code mode module isolation ( #114742 )
2026-07-27 16:38:44 -04:00
Peter Steinberger
d9e6d00261
fix(agents): safely parse Code Mode module boundaries ( #114651 )
2026-07-27 13:50:40 -04:00
Sasan
7599bbe636
fix(agents): stop code-mode shell-command retry storms ( #113070 )
...
Reject recognizable POSIX and Windows shell source before QuickJS execution while preserving valid JavaScript, TypeScript, syntax errors, standard globals, and real hoisted bindings. Add real-worker regression coverage and adversarial cross-platform stress proof. Fixes #113069 .
2026-07-27 08:10:37 -04:00
Peter Steinberger
55d66fbf98
chore(scripts): remove resolved investigation tools and orphans ( #113532 )
...
* chore(scripts): remove orphaned wrappers
* chore(scripts): remove resolved investigation tools
* refactor(code-mode): remove orphaned plugin namespaces
* test(code-mode): remove stale namespace import
2026-07-25 02:47:40 -07:00
Peter Steinberger
104691f822
feat(swarm): add QuickJS guest orchestration ( #111298 )
...
* feat(swarm): add QuickJS guest orchestration (#110325 )
* fix(agents): turn-stable swarm replay identity — distinct exec invocations cannot collide
* fix(agents): turn-stable swarm replay identity — distinct exec invocations cannot collide
* fix(agents): turn-stable swarm replay identity — distinct exec invocations cannot collide
2026-07-19 03:58:59 -07:00
Peter Steinberger
e9f798ecc4
fix(agents): greedily pack the code mode quick index so one oversized entry cannot blank it ( #110517 )
2026-07-18 08:26:06 +01:00
Peter Steinberger
b9c5c7c9fc
feat(agents): contract filesystem tools for code mode ( #110395 )
2026-07-18 06:26:04 +01:00
Peter Steinberger
010f662f48
fix(agents): keep declared-output tools visible in the truncated code mode index ( #110317 )
2026-07-18 03:48:28 +01:00
Peter Steinberger
3d1e8f9475
perf(agents): compose conversation tools in code mode ( #110098 )
2026-07-17 20:54:32 +01:00
Peter Steinberger
b319493a52
improve: let Code Mode use declared tool result shapes ( #109813 )
...
* feat(agents): add Code Mode output contracts
* perf(agents): defer untrusted tool schemas
* chore(plugin-sdk): refresh API baseline
* fix(agents): preserve deferred schema markers
* fix(agents): preserve policy-blocked tool results
* fix(agents): preserve nullable output contracts
* fix(agents): reject policy blocks from success contracts
* fix(agents): preserve output contracts through normalization
* test(agents): type normalized tool fixtures
* fix(agents): validate catalog results before projection
* fix(agents): keep result snapshots internal
* fix(agents): fail closed on unrenderable unions
* fix(agents): preserve empty result markers
* test(agents): keep result fixture discriminator literal
* test(agents): use native own-property check
2026-07-17 14:46:37 +01:00
Peter Steinberger
c742caee4b
perf(agents): prime code mode with compact tool ids ( #109651 )
2026-07-16 23:09:03 -07:00
Peter Steinberger
57cc2ca308
improve: reduce compact tool orchestration turns ( #109596 )
...
* perf(agents): streamline compact tool orchestration
* fix(agents): preserve compact schema narrowing
* refactor(agents): focus legacy tool-search guidance
* fix(agents): defer MCP compact schema hints
* chore: drop release-owned changelog edit
2026-07-16 20:53:42 -07:00
Peter Steinberger
b39e1cf66f
perf(agents): drain code-mode bridge calls inline within one exec turn ( #109290 )
...
Code mode previously suspended to the model with a waiting result for every
awaited tools.search/describe/call, forcing one wait tool turn per await
(turns = tool calls + 1). Bridge calls now resolve inline within the exec
deadline and resume the QuickJS snapshot host-side, matching the namespace
auto-drain path. Restart-safe runs keep their existing no-drain semantics.
Live proof across OpenAI/Anthropic/Google: ~45% fewer turns and ~45% fewer
input tokens at equal success rate.
Also landed with the same contract:
- one shared wall-clock deadline per exec/wait call (initial worker, inline
drain rounds, and resumed guest interrupt budget all share it)
- park the snapshot instead of resuming when the remaining budget could not
survive VM restore, so near-deadline settles stay recoverable
- abort now terminates the guest worker, skips resume, and drops suspended
runs instead of pinning process-global slots until TTL, reported with the
existing aborted failure code
- exec description omits API.list/MCP/namespace guidance when the run catalog
has no MCP tools or namespaces, so models stop probing an empty surface
- API.list tolerates a trailing-slash prefix like API.list("mcp/")
2026-07-16 13:30:07 -07:00
Peter Steinberger
9497450511
refactor: eliminate dead-export baseline ( #108376 )
...
Burn the grandfathered unused-export baseline to zero and enforce a hard-zero Knip gate.
2026-07-15 17:05:07 +01:00
Peter Steinberger
3ea45589ba
refactor(agents): trim CLI and transport export seams ( #108309 )
...
* refactor(agents): trim CLI and transport export seams
* chore(deadcode): shrink agents CLI transport baseline
2026-07-15 14:02:29 +01:00
Peter Steinberger
580938097f
refactor(agents): privatize internal helper surfaces ( #108219 )
...
* refactor(agents): privatize internal helper surfaces
* chore(deadcode): shrink unused-export baseline
2026-07-15 02:47:05 -07:00
Peter Steinberger
f81f9d8570
chore: enforce max-lines suppression ratchet ( #107315 )
...
* ci: enforce max-lines suppression ratchet
* chore: prune stale max-lines suppression
* fix: close max-lines ratchet enforcement gaps
* fix: harden max-lines ratchet checks
* fix(ci): satisfy max-lines ratchet checks
* style: format max-lines declarations
* fix(ci): match oxlint suppression grammar
* test: isolate max-lines git fixtures
* chore: prune resolved max-lines debt
* test: skip newline path fixture on Windows
* fix: harden max-lines suppression ratchet
* chore: refresh max-lines baseline
* fix: close max-lines ratchet bypasses
* fix: derive ratchet base from PR merge tree
* fix: support older Git in staged ratchet
* fix: align max-lines declarations and baseline
* chore: refresh max-lines baseline for current main
* fix: exclude generated wizard locales from max-lines
* chore: prune resolved max-lines debt
2026-07-14 09:27:02 -07:00
Peter Steinberger
1b313dc4d4
chore(tooling): enforce indexed access in core tests ( #105375 )
...
* test(tooling): enforce indexed access in core tests
* test(tui): constrain theme environment overrides
* test(doctor): enforce indexed access in migration fixtures
2026-07-12 14:29:52 +01:00
Peter Steinberger
d14bb8ec44
fix: resume replay-safe work after gateway restarts ( #104997 )
...
* fix: resume replay-safe work after gateway restart
* chore: leave restart note to release process
* fix: sync restart recovery protocol artifacts
2026-07-12 06:37:22 +01:00
qingminlong
08da0d3861
fix(code-mode): report UTF-8 API file byte counts ( #104244 )
...
* fix(code-mode): report UTF-8 API file byte counts
* fix(code-mode): report UTF-8 API file byte counts
* chore(changelog): keep release notes release-owned
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-11 05:10:46 -07:00
Peter Steinberger
461772868d
fix(computer): prevent stale, replayed, and post-cancel desktop actions ( #103422 )
...
* fix(ai): preserve streamed tool-call identity
* fix(computer): bind actions to current tool authority
* fix(macos): serialize computer control lifecycle
* docs(computer): document hardened control contract
* chore: follow release-owned changelog policy
* test(agents): cover node list cancellation
2026-07-10 06:47:56 +01:00
Peter Steinberger
3d404478b8
fix(discord): hide internal Code Mode wait progress ( #99893 )
...
Hide invocation-specific Code Mode wait controls from channel progress while preserving telemetry and visible non-internal tools.
2026-07-04 01:45:50 -07:00
Wynne668
dff45cae4c
fix(code-mode): surface QuickJS error name and message to the model ( #95906 )
...
* fix(code-mode): surface QuickJS error name and message to the model
* fix(code-mode): preserve host error diagnostics
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-07-01 03:07:09 -07:00
mushuiyu886
01abe0a33d
fix(agents): suggest recovery for unknown tool ids ( #93374 )
...
Merged via squash.
Prepared head SHA: bee84e4eb8
Co-authored-by: mushuiyu886 <266724580+mushuiyu886@users.noreply.github.com >
Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com >
Reviewed-by: @vincentkoc
2026-06-23 14:20:09 +08:00
Peter Steinberger
bb6c3ce262
docs: document agent cli tests
2026-06-04 14:04:32 -04:00
Vincent Koc
a46181f168
test: stabilize timing-sensitive ARM suites
2026-06-03 03:47:48 -07:00
Peter Steinberger
22cb7fb6b7
chore(lint): enable no-promise-executor-return
2026-05-31 23:06:13 +01:00
Peter Steinberger
e681569536
feat: add code-mode MCP API files
...
* feat: add code-mode MCP API files
* fix: satisfy code-mode MCP lint
2026-05-31 21:29:06 +01:00
Peter Steinberger
4150c6ff82
feat: add typed MCP code-mode API ( #88678 )
...
* feat: add typed MCP code-mode API
* fix: stabilize code-mode namespace drain
* fix: preserve code-mode run cap
* fix: reserve code-mode snapshot capacity
2026-05-31 17:51:22 +01:00
Peter Steinberger
ec8cb8bcbf
feat: add MCP code-mode namespace ( #88636 )
...
* feat: add MCP code-mode namespace
* fix: unblock mcp namespace ci gates
2026-05-31 15:02:19 +01:00
Peter Steinberger
23dac6c263
test: keep vitest cases under one second
2026-05-31 06:51:34 +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
287687da20
feat: add internal code mode namespaces ( #88043 )
...
* feat: add internal code mode namespaces
* test: add code mode namespace live proof
* test: add live code mode Docker repro
* chore: keep code mode docker repro out of package scripts
* fix: break code mode namespace type cycle
* fix: clean code mode namespace ci drift
* fix: route code mode namespaces through tools
* fix: preserve explicit agent global sessions
* docs: explain code mode namespace registry
* test: cap realtime websocket payload
* fix: normalize code mode timeout results
* fix: satisfy code mode timeout lint
* chore: rerun code mode CI
* ci: extend node shard silence watchdog
* test: avoid child process mock deadlocks
* test: fix code mode repro shebang
* fix: scope explicit agent sentinel sessions
* test: preserve child process mock actual loader
* fix: dispatch namespace tools by exact id
* test: satisfy restart execFile mock type
2026-05-30 22:42:57 +01:00
Peter Steinberger
11b5728faa
fix(agents): bound code mode snapshot expiry
2026-05-30 12:42:07 -04:00
Vincent Koc
61ef6b12dd
test(agents): harden code mode wait timeout
2026-05-30 13:53:25 +01:00
Peter Steinberger
acb0e9c155
fix(agents): extend terminal outcome projections ( #88162 )
...
* fix(agents): extend terminal outcome projections
* fix(agents): align terminal outcome follow-up checks
* fix(agents): satisfy terminal outcome mapper lint
* test(scripts): isolate websocket open timers
* test(security): drive sandbox browser timeout timers
* test(scripts): drive gh-read timeout timers
* test(agents): isolate code mode timers
* fix(agents): preserve hard timeouts on wait surfaces
* fix(agents): require timeout attribution for provider errors
* fix(sdk): require timeout attribution for provider errors
* fix(scripts): preserve changelog parse cause
2026-05-30 03:13:01 +02:00
Dallin Romney
2ba725ef48
fix: stabilize code mode timeout and prompt snapshots ( #87809 )
...
* fix: normalize code mode timeout interrupts
* test: refresh firecrawl prompt snapshots
2026-05-28 16:26:12 -07:00
Peter Steinberger
d7e62a87f2
test: stabilize code mode wait timeout
...
Increase the code-mode wait-timeout test timeout so CI shard load does not trip the worker startup guard before the test reaches the intended pending-tool wait path.
2026-05-28 08:56:57 -04:00
Peter Steinberger
b9ade75fec
test(agents): deflake code mode guest error check
2026-05-27 02:34:17 +01:00
Peter Steinberger
4118a32aad
test: enforce per-test ci threshold
2026-05-26 04:35:20 +01:00
Peter Steinberger
6814525867
fix: preserve code mode failure output
2026-05-26 00:54:00 +01:00
Peter Steinberger
70dd31506b
fix: land code-mode structured worker errors ( #83444 ) (thanks @Kaspre)
2026-05-22 10:36:18 +01:00
Kaspre
edab653178
fix(code-mode): return structured worker error codes
2026-05-22 10:36:18 +01:00
Kaspre
1e1e45b72b
fix(code-mode): align outer exec hook params
2026-05-22 09:46:27 +01:00
clawsweeper[bot]
0e2a06ae10
fix(code-mode): sharpen exec tool description so models stop wasting turns rediscovering constraints ( #84368 )
...
Summary:
- The PR updates the code-mode exec tool description, adds regression coverage for the model-visible constraints, and records the fix in the changelog.
- Reproducibility: yes. at source level: current main's exec schema omits constraints that the current code-mo ... also includes a live before/after recitation path showing the model receives the changed tool description.
Automerge notes:
- PR branch already contained follow-up commit before automerge: test(code-mode): cover exec tool guidance
- PR branch already contained follow-up commit before automerge: fix(code-mode): sharpen exec tool description so models stop wasting …
Validation:
- ClawSweeper review passed for head 8ff85071ce .
- Required merge gates passed before the squash merge.
Prepared head SHA: 8ff85071ce
Review: https://github.com/openclaw/openclaw/pull/84368#issuecomment-4493273853
Co-authored-by: Kaspre <kaspre@gmail.com >
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com >
2026-05-20 01:25:04 +00:00
Peter Steinberger
4f4d108639
chore(lint): remove underscore-dangle allow list ( #83542 )
...
* chore(lint): reduce underscore-dangle exceptions
* chore(lint): reduce more underscore exceptions
* chore(lint): remove underscore-dangle allow list
* fix(lint): repair underscore cleanup regressions
* test(lint): track version define suppression
2026-05-18 14:56:06 +01:00
Kaspre
fd8877b5fd
fix(code-mode): honor agent scoped code mode
...
Fixes #83388 .
- Honor per-agent `tools.codeMode` in config schema, runtime code-mode resolution, and model payload filtering.
- Preserve grouped OpenAI tool declarations when code-mode filtering keeps only `exec` and `wait`.
- Sync generated config/prompt baselines and carry a narrow media CI unblocker from current `main` fallout.
Co-authored-by: Kaspre <kaspre@gmail.com >
2026-05-18 12:26:46 +01:00