Josh Lehman
4bfd7416f0
fix: stabilize code-mode follow-up tool display and replay ( #80663 )
...
* fix: project tool-search bridge event display
* fix: keep codex tool progress out of final replies
* fix: preserve tool result pairs on cleanup
* fix: restore tool search display target helper
* fix: keep tool search controls independent
* fix: render bridged tool calls like native tools
* fix: abort timed out tool search bridge calls
* fix: preserve code-mode tool results across display turns
* fix: repair missing code-mode tool results on disk
* fix: expose tool search controls in embedded runs
* docs: add code-mode followups changelog
* fix: update session repair agent-core import
* fix: harden code-mode follow-up repair
* fix: use stable session repair ids
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-05-11 15:31:35 -07:00
Peter Steinberger
15cf49222f
build: refresh deps and route testbox through crabbox
2026-05-11 03:41:00 +01:00
Peter Steinberger
1582bdd344
test: tighten transcript repair assertions
2026-05-09 15:43:59 +01:00
Shakker
90ab12c6dc
test: tighten agent helper array assertions
2026-05-09 05:52:12 +01:00
Peter Steinberger
cd7f733a99
test: avoid agent count filter allocations
2026-05-08 22:02:06 +01:00
Peter Steinberger
66d2825841
test: avoid agent filter allocation assertions
2026-05-08 21:44:50 +01:00
Peter Steinberger
036c432101
test: clarify transcript repair assertion
2026-05-08 11:22:57 +01:00
Peter Steinberger
9ef37d1907
test: tighten assertions and harness coverage
2026-05-08 05:28:12 +01:00
Peter Steinberger
85b914a4e1
fix(model): repair provider replay edge cases
2026-05-07 06:41:59 +01:00
Peter Steinberger
7f6452897e
fix(agents): repair strict provider tool replay
2026-04-25 05:56:13 +01:00
Vincent Koc
d90bc6893f
test(agents): share aborted transcript fixture
2026-04-12 10:55:23 +01:00
Shakker
941aca5e5e
fix: drop conflicting signed replay turns before mutation
2026-04-12 07:26:37 +01:00
Shakker
b27595f278
fix: harden immutable replay id uniqueness
2026-04-12 07:26:37 +01:00
Shakker
b1a228fc3a
test: cover replay scope and attachment redaction guards
2026-04-12 07:26:37 +01:00
Shakker
98e89f5939
fix: gate immutable thinking replay repair to anthropic
2026-04-12 07:26:37 +01:00
Shakker
408e07f96b
fix: drop unsafe signed-thinking turns during transcript repair
2026-04-12 07:26:37 +01:00
Shakker
2d1f4af67a
fix: preserve thinking turns during transcript repair
2026-04-12 07:26:37 +01:00
Peter Steinberger
7043705ef3
refactor: split MCP runtime and transport seams
2026-03-29 23:36:37 +01:00
Peter Steinberger
004bffa1c3
fix: finalize safer MCP tool naming ( #49505 ) (thanks @ziomancer)
2026-03-30 07:22:36 +09:00
ziomancer
a74091eb98
docs(mcp): add CHANGELOG entries and MCP transport/namespacing docs
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-30 07:22:36 +09:00
ziomancer
14f78debd5
fix(mcp): allow colon in tool names and dispose transport on failed connect
...
The transcript validator regex rejected namespaced MCP tool names
(e.g., vigil-harbor:memory_status) because colon wasn't in the
allowed character set. Tool call blocks were silently dropped during
session repair, breaking tool-call/result pairing.
Also closes a resource leak: if client.connect() throws after the
transport is instantiated, the transport is now explicitly closed.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-30 07:22:36 +09:00
Peter Steinberger
2833b27f52
test: continue vitest threads migration
2026-03-24 08:37:00 +00:00
Tak Hoffman
4863b651c6
docs: rename onboarding user-facing wizard copy
...
Co-authored-by: Tak <contact-redacted@example.com >
2026-03-16 19:50:31 -05:00
Clayton Shaw
6ba4d0ddc3
fix: remove orphaned tool_result blocks during compaction ( #15691 ) ( #16095 )
...
Merged via squash.
Prepared head SHA: b772432c1f
Co-authored-by: claw-sylphx <260243939+claw-sylphx@users.noreply.github.com >
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com >
Reviewed-by: @jalehman
2026-03-16 15:57:45 -07:00
Peter Steinberger
70db52de71
test(agents): centralize AgentMessage fixtures and remove unsafe casts
2026-03-03 02:14:15 +00:00
Peter Steinberger
7e29d604ba
test(agents): dedupe agent and cron test scaffolds
2026-03-02 07:13:10 +00:00
Nikolay Petrov
a9f1188785
sessions_spawn: inline attachments with redaction, lifecycle cleanup, and docs ( #16761 )
...
Add inline file attachment support for sessions_spawn (subagent runtime only):
- Schema: attachments[] (name, content, encoding, mimeType) and attachAs.mountPath hint
- Materialization: files written to .openclaw/attachments/<uuid>/ with manifest.json
- Validation: strict base64 decode, filename checks, size limits, duplicate detection
- Transcript redaction: sanitizeToolCallInputs redacts attachment content from persisted transcripts
- Lifecycle cleanup: safeRemoveAttachmentsDir with symlink-safe path containment check
- Config: tools.sessions_spawn.attachments (enabled, maxFiles, maxFileBytes, maxTotalBytes, retainOnSessionKeep)
- Registry: attachmentsDir/attachmentsRootDir/retainAttachmentsOnKeep on SubagentRunRecord
- ACP rejection: attachments rejected for runtime=acp with clear error message
- Docs: updated tools/index.md, concepts/session-tool.md, configuration-reference.md
- Tests: 85 new/updated tests across 5 test files
Fixes:
- Guard fs.rm in materialization catch block with try/catch (review concern #1 )
- Remove unreachable fallback in safeRemoveAttachmentsDir (review concern #7 )
- Move attachment cleanup out of retry path to avoid timing issues with announce loop
Co-authored-by: Tyler Yust <TYTYYUST@YAHOO.COM >
Co-authored-by: napetrov <napetrov@users.noreply.github.com >
2026-03-01 21:33:51 -08:00
Peter Steinberger
ee03ade0d6
fix(agents): harden tool-name normalization and transcript repair
...
Landed from contributor PRs #30620 and #30735 by @Sid-Qin, plus #30881 by @liuxiaopai-ai.
Co-authored-by: SidQin-cyber <sidqin0410@gmail.com >
Co-authored-by: liuxiaopai-ai <73659136+liuxiaopai-ai@users.noreply.github.com >
2026-03-01 23:51:54 +00:00
wangchunyue
6b317b1f17
fix(agents): normalize whitespace-padded tool call names before dispatch ( #27094 )
...
Fix tool-call lookup failures when models emit whitespace-padded names by normalizing
both transcript history and live streamed embedded-runner tool calls before dispatch.
Co-authored-by: wangchunyue <80630709+openperf@users.noreply.github.com >
Co-authored-by: Sid <sidqin0410@gmail.com >
Co-authored-by: Philipp Spiess <hello@philippspiess.com >
2026-02-27 11:26:37 +01:00
Peter Steinberger
adfbbcf1f6
chore: merge origin/main into main
2026-02-22 13:42:52 +00:00
Peter Steinberger
bfada9e425
test: move more local agents helper suites out of e2e
2026-02-22 10:55:22 +00:00
Peter Steinberger
9131b22a28
test: migrate suites to e2e coverage layout
2026-02-13 14:28:22 +00:00
Aisling Cahill
861725fba1
fix(agents): skip tool extraction for aborted/errored assistant messages ( #4598 )
...
Fixes tool call/tool_result pairing issues that cause permanent session corruption when assistant messages have stopReason "error" or "aborted". Includes 4 unit tests.
2026-02-05 16:08:46 -08:00
Justin
0da6de6624
Agent: repair malformed tool calls and session files
2026-02-02 23:56:27 +00:00
Peter Steinberger
c379191f80
chore: migrate to oxlint and oxfmt
...
Co-authored-by: Christoph Nakazawa <christoph.pojer@gmail.com >
2026-01-14 15:02:19 +00:00
Peter Steinberger
98337a14b3
fix: rename bash tool to exec ( #748 ) (thanks @myfunc)
2026-01-12 02:49:55 +00:00
Peter Steinberger
6668805aca
fix(agents): enforce single-writer session files
2026-01-11 02:25:45 +00:00
Peter Steinberger
08cc8f2281
refactor(agents): extract transcript repair module
2026-01-10 22:07:25 +00:00