Commit Graph

42483 Commits

Author SHA1 Message Date
RenzoMXD
8fb22fdfe2 fix(agents): compare file-target structurally not via fingerprint split
Address clawsweeper P2 on PR #79067: the prior cross-tool recovery
extracted the path target by splitting the joined fingerprint string
on `|`, which is also a legal character in file paths. A failed edit on
`/tmp/a|left` and a successful write to `/tmp/a|right` would both
extract as `path=/tmp/a` and incorrectly clear the prior failure.

Carry a structured `fileTarget: { path?, oldpath? }` alongside the
existing `actionFingerprint` string and compare it directly.
`extractFileTarget` reads args once at fingerprint-build time, with
the same alias support as `buildToolActionFingerprint`. The
fingerprint string is unchanged for diagnostics and the exact-equality
match path; only the cross-tool fallback now compares structurally.

Threaded through `ToolMutationState`, `ToolActionRef`, `ToolCallSummary`,
and `ToolErrorSummary` so the existing handler code at
`pi-embedded-subscribe.handlers.tools.ts:910-928` can populate and
consume it without re-parsing.

Adds delimiter-bearing-path regression test asserting that
`/tmp/a|left` vs `/tmp/a|right` returns false, and that an identical
delimiter-bearing path on both sides still matches.
2026-05-08 07:00:00 -04:00
RenzoMXD
3f4c64163d fix(agents): narrow self-heal recovery to edit↔write pair
Drop apply_patch from the file-mutating recovery set after clawsweeper
P2 review on PR #79067 noted production apply_patch calls only carry
opaque `input` patch text, so buildToolActionFingerprint never extracts
a `path=` segment from real call args. Including apply_patch only
matched handcrafted fingerprints in tests, not real recoveries, and
the public CHANGELOG claim was unimplemented.

Also drops the now-orphaned `oldpath` segment from
FILE_TARGET_FINGERPRINT_KEYS since edit and write do not produce it,
and replaces the apply_patch test expectation with an explicit
negative assertion that proves the narrowing.

Re-files apply_patch ↔ write recovery as a future enhancement; it
needs single-file patch-target extraction in
buildToolActionFingerprint to be honestly supportable.
2026-05-08 07:00:00 -04:00
RenzoMXD
0a7d9d7abe docs(changelog): credit @RenzoMXD on #79024 fix
Adds the Thanks attribution called out by clawsweeper P3 review on
PR #79067, keeping the bullet on a single line per repo policy.
2026-05-08 07:00:00 -04:00
RenzoMXD
79b292c2be fix(agents): self-heal cross-tool file-mutation in cron classifier
Recognize a successful file-mutation on the same path/oldpath target as
recovery for an earlier failed file-mutation, even when the tool name
differs (edit -> write, apply_patch -> write, etc). Previously
isSameToolMutationAction required exact fingerprint equality, which
includes tool=<name>, so an edit failure followed by a successful
write to the same path was never recognized as recovery. The unresolved
lastToolError then drove the cron classifier to flag a healthy
self-healed run as fatal with the user-visible warning prefix from
issue #79024. Limited to file-mutating tools (edit, write, apply_patch)
and the stable path/oldpath segments of the action fingerprint;
non-file-mutating tools and different paths still fail closed.

Fixes #79024.
2026-05-08 07:00:00 -04:00
Peter Steinberger
6389059632 test: clarify telegram send assertions 2026-05-08 11:59:17 +01:00
Peter Steinberger
7dc6a79905 test: clarify telegram command assertions 2026-05-08 11:57:22 +01:00
Shakker
2a8565ea67 test: restore matrix progress draft expectation 2026-05-08 11:56:52 +01:00
Peter Steinberger
054d0163dd test: clarify codex app-server assertions 2026-05-08 11:55:45 +01:00
Peter Steinberger
9905f2d13a test: clarify memory and slack assertions 2026-05-08 11:53:22 +01:00
Peter Steinberger
05fd67f822 test: clarify nvidia provider assertions 2026-05-08 11:51:58 +01:00
Peter Steinberger
7ebcce6a3d test: clarify qmd manager assertions 2026-05-08 11:50:46 +01:00
Peter Steinberger
774e8a7054 test: clarify memory core assertions 2026-05-08 11:49:00 +01:00
Peter Steinberger
b332f06e30 test: clarify google meet setup assertions 2026-05-08 11:47:49 +01:00
Peter Steinberger
607f0b4a9d test: clear remaining agent assertion scans 2026-05-08 11:46:22 +01:00
Peter Steinberger
07a850a5fb test: clarify websocket error assertions 2026-05-08 11:44:56 +01:00
Ayaan Zaidi
5e27993cbe docs(qa): document telegram e2e defaults 2026-05-08 16:14:42 +05:30
Ayaan Zaidi
5cd4996205 feat(qa-lab): list telegram live scenarios 2026-05-08 16:14:42 +05:30
Ayaan Zaidi
ec54642581 test(qa-lab): expand telegram e2e defaults 2026-05-08 16:14:42 +05:30
Ayaan Zaidi
0ff4ff4667 fix(qa-lab): harden mock telegram prompt routing 2026-05-08 16:14:42 +05:30
Shakker
d0402671c6 fix: make orphan attachment pruning deterministic 2026-05-08 11:43:17 +01:00
Peter Steinberger
90ba0f9690 test: clarify maintenance task assertions 2026-05-08 11:42:57 +01:00
Peter Steinberger
5760d7f38f test: clarify sandbox browser env assertion 2026-05-08 11:41:55 +01:00
Peter Steinberger
60b6b492e4 test: clarify openai transport assertions 2026-05-08 11:40:49 +01:00
Peter Steinberger
44268a134c test: clarify harness diagnostic assertions 2026-05-08 11:39:18 +01:00
Peter Steinberger
4624a1642f test: clarify bootstrap warning assertions 2026-05-08 11:38:16 +01:00
Peter Steinberger
4aa2fe45de test: clarify native hook relay retention assertion 2026-05-08 11:37:23 +01:00
Peter Steinberger
fddec6d8cd test: clarify abort listener cleanup assertion 2026-05-08 11:36:13 +01:00
Peter Steinberger
0c5f604fd6 test: clarify websocket stream assertions 2026-05-08 11:35:10 +01:00
Peter Steinberger
85587e17d7 test: clarify coding tool content assertions 2026-05-08 11:33:54 +01:00
Shakker
baffa57c00 revert: restore progress draft behavior 2026-05-08 11:33:08 +01:00
Peter Steinberger
ee495603d1 test: clarify coding tool name assertions 2026-05-08 11:31:46 +01:00
clawsweeper
48c24c86c9 test: cover download parent symlink race 2026-05-08 20:31:43 +10:00
jesse-merhi
c71dfb6f52 test: cover download parent symlink race 2026-05-08 20:31:43 +10:00
Peter Steinberger
c2927e6d87 test: clarify script preflight flag assertion 2026-05-08 11:30:00 +01:00
Peter Steinberger
fecddcabd7 test: clarify sessions send gateway assertion 2026-05-08 11:28:29 +01:00
Peter Steinberger
97d7dd9add test: clarify sessions tool call assertions 2026-05-08 11:27:09 +01:00
Peter Steinberger
c2b2a4cdf4 test: clarify read only channel plugin assertions 2026-05-08 11:26:06 +01:00
Shakker
2aa6d6ba14 test: assert discord voice staging output 2026-05-08 11:25:16 +01:00
Peter Steinberger
3c6dd9fcb2 test: clarify final tag payload assertion 2026-05-08 11:24:02 +01:00
Shakker
acb3b09e2a fix: keep progress draft labels visible 2026-05-08 11:23:59 +01:00
Peter Steinberger
036c432101 test: clarify transcript repair assertion 2026-05-08 11:22:57 +01:00
Peter Steinberger
8b57d0fe9e test: clarify update cli exit assertions 2026-05-08 11:21:56 +01:00
Peter Steinberger
767dbe469e test: clarify subscribe media assertions 2026-05-08 11:20:24 +01:00
Peter Steinberger
b38c78fe63 test: clarify plugin loader channel assertions 2026-05-08 11:19:17 +01:00
Peter Steinberger
a31f4c57e5 fix: normalize Gemini auth config patches 2026-05-08 11:17:54 +01:00
Peter Steinberger
e8d63b8bd0 test: clarify update plan tool assertions 2026-05-08 11:13:36 +01:00
Shakker
150b869cf8 fix: set tts conversion output formats 2026-05-08 11:12:25 +01:00
Shakker
e1e9cd82c1 test: add codex media session id 2026-05-08 11:11:31 +01:00
Peter Steinberger
3a5d39688c test: clarify bootstrap file assertions 2026-05-08 11:10:54 +01:00
Shakker
665d823237 fix: restore rolling progress labels 2026-05-08 11:10:16 +01:00