Skip to content

fix(chat): preserve persisted tool activity details - #1111

Open
TheAngryPit wants to merge 4 commits into
openclaw:mainfrom
TheAngryPit:codex/companion-main-20260806
Open

fix(chat): preserve persisted tool activity details#1111
TheAngryPit wants to merge 4 commits into
openclaw:mainfrom
TheAngryPit:codex/companion-main-20260806

Conversation

@TheAngryPit

@TheAngryPit TheAngryPit commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Related: #1092

What Problem This Solves

Fixes an issue where users reopening persisted chat history could lose important tool activity details: failed tool calls could be hidden inside a successful activity group, tool results using callId could lose their correlation, message-level errors could be ignored, and JSON-string-encoded tool arguments could render without their safe display fields.

Why This Change Was Made

The history parser now accepts the persisted aliases and shapes already emitted by the Gateway, while the existing NativeToolProjector remains authoritative for decoding and safe argument projection. Failed tools remain individually visible; only neighboring successful tools are compacted into activity groups. This is a narrow follow-up to the compact tool activity work in #1092.

User Impact

Users can reopen older conversations and still inspect failed tools, correlated results, and safe command arguments without losing the compact presentation for successful activity.

Evidence

  • Failed-first regressions reproduce and cover persisted callId, message-level errors, JSON-string arguments, result correlation, and failure presentation.
  • Fresh exact-head build passed for Shared, CLI, WinNodeCLI, SetupEngine, and WinUI.
  • Fresh exact-head Shared suite: 3,632 passed, 0 failed, 32 environment-only skips.
  • Fresh exact-head Tray suite: 2,250 passed, 0 failed.
  • All required GitHub test, build, E2E, hygiene, and CodeQL gates are green on the current head.
  • Exact-head persisted Gateway-to-WinUI replay was exercised twice: initially and again after terminating/relaunching the disposable app without rewriting history.

Change Type

  • Bug fix
  • Feature
  • Refactor
  • Docs or instructions
  • Tests or validation
  • Security hardening
  • Chore or infrastructure

Scope

  • Tray or WinUI UX
  • Windows node capability
  • Local MCP or winnode
  • Gateway, connection, or pairing
  • Setup or onboarding
  • Permissions, privacy, or security
  • Tests, CI, or docs

Validation

  • ./build.ps1 - passed all 5 projects on exact head e05d86c5151bae9e6aa286231975c99616c577ce
  • dotnet test ./tests/OpenClaw.Shared.Tests/OpenClaw.Shared.Tests.csproj --no-restore - 3,632 passed, 0 failed, 32 skipped
  • dotnet test ./tests/OpenClaw.Tray.Tests/OpenClaw.Tray.Tests.csproj --no-restore - 2,250 passed, 0 failed
  • Exact-head side-by-side Dev executable SHA-256: 6CFA0FC0616FF77956461B71B6CAB4C83F3C88A8A495F9217F4D81E91CC95691
  • git diff --check - passed; source worktree remained clean
  • Current required GitHub checks - green, including setup-connect, network-recovery, revocation-recovery, win-x64, win-arm64, repository hygiene, and CodeQL gate

Real Behavior Proof

  • Environment tested: Windows 11 host, exact-head side-by-side Dev WinUI, and a disposable OpenClaw Core Gateway 2026.7.2-beta.6 profile in WSL
  • PR head or commit tested: e05d86c5151bae9e6aa286231975c99616c577ce
  • Isolation: Gateway bound only to WSL loopback with an ephemeral token and disposable paired device; production Gateway state, sessions, identities, models, providers, and credentials were not used
  • Persisted fixture: six canonical chat.history messages containing a JSON-string read call and success result, plus an object-form exec call and error result
  • Initial exact-head WinUI result: Connected; read · Done with safe path: proof/success.txt; exec · Error with safe command: proof-command; correlated success/error result text visible
  • Post-reopen result: after terminating and relaunching the disposable app against the same isolated data directory without rewriting the transcript, the same six-message history and expanded success/error cards were reproduced
  • Redacted evidence SHA-256: initial 9551A52E5D2A953E76C0BC99E5276AE718E1D847B1095E9402707F9B23BE2B91; post-reopen AD787822369BAD8A9FD352F08A181286B633FB5B745055E79C33FE39B996D72C
  • Proof level: runtime_proven for current-head persisted Gateway-to-WinUI replay and post-reopen persistence; not claimed as provider or real tool-execution proof
  • Cleanup: disposable app and Gateway stopped; the pre-existing production Companion process remained running unchanged
  • Screenshot or artifact links verified? (Yes/No/N/A): accessibility/live diagnostic evidence is copied into the PR discussion; no token, endpoint, device/request identifier, private transcript, or raw filesystem path is included

Security Impact

  • New permissions or capabilities? (Yes/No): No
  • Secrets or tokens handling changed? (Yes/No): No
  • New or changed network calls? (Yes/No): No
  • Command or tool execution surface changed? (Yes/No): No
  • Data access scope changed? (Yes/No): No
  • If any answer is Yes, explain the risk and mitigation: N/A

Compatibility and Migration

  • Backward compatible? (Yes/No): Yes
  • Config or environment changes? (Yes/No): No
  • Migration needed? (Yes/No): No
  • If yes, list the exact upgrade steps: N/A

Review Conversations

  • I replied to or resolved every bot review conversation addressed by this PR.
  • I left unresolved only conversations that still need maintainer judgment.

@clawsweeper clawsweeper Bot added rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. P2 Normal priority bug or improvement with limited blast radius. merge-risk: 🚨 session-state 🚨 Merging this PR could lose, corrupt, stale, or mis-associate session or agent state. labels Aug 6, 2026
@clawsweeper

clawsweeper Bot commented Aug 6, 2026

Copy link
Copy Markdown

Codex review: needs maintainer review before merge. Reviewed August 21, 2026, 7:50 AM ET / 11:50 UTC.

ClawSweeper review

What this changes

The PR preserves tool correlation, error details, and safely projected persisted arguments when a tray-chat conversation is reopened.

Merge readiness

⚠️ Ready for maintainer review - 2 items remain

Keep open. Current main still omits the persisted callId alias, message-level error fallback, and JSON-string argument projection; this PR repairs those contracts with focused coverage and inspectable exact-head Gateway-to-WinUI replay diagnostics.

Priority: P2
Reviewed head: 5049e5a6f5ce7f5f2d41383ac204c6ca7c05215a

Review scores

Measure Result What it means
Overall readiness 🦞 diamond lobster (5/6) Focused implementation and regression coverage are backed by current-head real replay diagnostics and clean required checks.
Proof confidence 🦞 diamond lobster (5/6) Sufficient (logs): The exact-head PR discussion includes inspectable redacted diagnostics from a real disposable Gateway-to-WinUI replay and app-only reopen, showing the changed persisted cards, correlation, redaction, and oversized-input behavior.
Patch quality 🦞 diamond lobster (5/6) No actionable review findings were identified.

Verification

Check Result Evidence
Real behavior Verified Sufficient (logs): The exact-head PR discussion includes inspectable redacted diagnostics from a real disposable Gateway-to-WinUI replay and app-only reopen, showing the changed persisted cards, correlation, redaction, and oversized-input behavior.
Evidence reviewed 6 items Current-main gap: Current main does not read the callId alias, does not inherit result error state from the enclosing message, and only accepts object-form persisted arguments.
Current-main replay projection: Current main returns no display arguments for a persisted JSON string, so the reported safe-argument display is still missing.
PR implementation boundary: The PR adds bounded JSON-string decoding to the existing authoritative safe-display projector and leaves allowlisting and redaction in that owner.
Findings None None.
Security None None.

Live Verification

Command: dotnet test ./tests/OpenClaw.Tray.Tests/OpenClaw.Tray.Tests.csproj --no-restore --filter "FullyQualifiedName~NativeToolProjectorTests|FullyQualifiedName~ChatToolActivityPresentationTests"

Result: FAIL (failed) — execution before step 1 run: sh -lc pnpm install --ignore-scripts --frozen-lockfile failed: ! Corepack is about to download https://registry.npmjs.org/pnpm/-/pnpm-11.22.0.tgz

sh -lc pnpm install --ignore-scripts --frozen-lockfile failed: ! Corepack is about to download https://registry.npmjs.org/pnpm/-/pnpm-11.22.0.tgz

Assertions:

  • FAIL expect_output: Passed!

How this fits together

Gateway chat.history data is parsed into typed tool calls and results, then replayed into the tray chat timeline and rendered as grouped or standalone activity cards. This change affects saved conversation replay without changing tool execution or networking.

flowchart LR
  A[Persisted Gateway history] --> B[Shared history parser]
  B --> C[Tool correlation and error state]
  C --> D[Tray replay projection]
  D --> E[Activity grouping]
  E --> F[WinUI chat cards]
Loading

Before merge

  • Resolve merge risk (P1) - Persisted history is user session state. Merge review should preserve compatibility with the broader Gateway payload shapes, although the new aliases, bounded parsing, focused tests, and exact-head replay substantially reduce that risk.
  • Complete next step (P2) - No repair dispatch is needed because the review found no actionable defect; this is ready for ordinary maintainer merge review.
Agent review details

Security

None.

Review metrics

Metric Value Why it matters
Patch composition production +54/-13, tests +182 Most of the change is focused regression coverage across the parser, replay projection, and activity presentation.
Review scope 8 files affected The change crosses the shared parser and tray replay path but does not alter dependencies, workflows, or execution surfaces.

Merge-risk options

Maintainer options:

  1. Land with replay compatibility coverage (recommended)
    Retain the focused persisted-history regressions and exact-head replay evidence, then land the clean branch through normal maintainer review.
  2. Pause for a broader Gateway fixture
    If maintainers expect additional persisted envelope variants, add those focused fixtures before merging rather than changing the projection architecture.

Technical review

Best possible solution:

Merge the focused replay repair while retaining its parser, projection, and failed-tool presentation regressions as the compatibility contract.

Do we have a high-confidence way to reproduce the issue?

Yes, source-reproducible with high confidence: current main rejects the persisted shapes exercised by the new parser and replay tests, and the contributor supplied exact-head after-fix Gateway-to-WinUI replay diagnostics.

Is this the best way to solve the issue?

Yes. The repair extends the shared parser and the existing authoritative safe-display projector instead of adding a parallel history or rendering path.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against d3ed6c78bf14.

Labels

Label changes:

  • add proof: sufficient: Contributor real behavior proof is sufficient. The exact-head PR discussion includes inspectable redacted diagnostics from a real disposable Gateway-to-WinUI replay and app-only reopen, showing the changed persisted cards, correlation, redaction, and oversized-input behavior.
  • add rating: 🦞 diamond lobster: Overall readiness is 🦞 diamond lobster; proof is 🦞 diamond lobster and patch quality is 🦞 diamond lobster.
  • add status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (logs): The exact-head PR discussion includes inspectable redacted diagnostics from a real disposable Gateway-to-WinUI replay and app-only reopen, showing the changed persisted cards, correlation, redaction, and oversized-input behavior.
  • remove status: 📣 needs proof: Current PR status label is status: 👀 ready for maintainer look.
  • remove rating: 🦐 gold shrimp: Current PR rating is rating: 🦞 diamond lobster, so this older rating label is no longer current.

Label justifications:

  • P2: This is a bounded persisted-chat correctness fix with meaningful but limited user impact.
  • merge-risk: 🚨 session-state: The PR changes correlation and display of persisted tool-call state when a conversation is reopened.
  • rating: 🦞 diamond lobster: Overall readiness is 🦞 diamond lobster; proof is 🦞 diamond lobster and patch quality is 🦞 diamond lobster.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (logs): The exact-head PR discussion includes inspectable redacted diagnostics from a real disposable Gateway-to-WinUI replay and app-only reopen, showing the changed persisted cards, correlation, redaction, and oversized-input behavior.
  • proof: sufficient: Contributor real behavior proof is sufficient. The exact-head PR discussion includes inspectable redacted diagnostics from a real disposable Gateway-to-WinUI replay and app-only reopen, showing the changed persisted cards, correlation, redaction, and oversized-input behavior.

Evidence

What I checked:

Likely related people:

  • calebeden: Authored recent current-main chat work touching the reviewed surfaces and the merged compact-activity foundation. (role: recent chat-area contributor; confidence: medium; commits: a76c85218c7d, aac07abb1fbd; files: src/OpenClaw.Tray.WinUI/Chat/ChatToolActivityPresentation.cs, src/OpenClaw.Tray.WinUI/Chat/NativeToolProjector.cs)
  • bkudiess: Authored merged PR 1114, which established adjacent native tool-correlation invariants used by the persisted replay path. (role: related correlation contributor; confidence: medium; commits: a1d933a3c7b7; files: src/OpenClaw.Tray.WinUI/Chat/NativeToolProjector.cs, src/OpenClaw.Tray.WinUI/Chat/OpenClawChatDataProvider.cs)

Rating scale

Score Internal tier Crab rank Meaning
6/6 S 🦀 challenger crab Exceptional readiness
5/6 A 🦞 diamond lobster Very strong readiness
4/6 B 🐚 platinum hermit Good normal PR; ordinary maintainer review
3/6 C 🦐 gold shrimp Useful, but confidence is limited
2/6 D 🦪 silver shellfish Proof or implementation needs work
1/6 F 🧂 unranked krab Not merge-ready
N/A NA 🌊 off-meta tidepool Rating does not apply

Overall follows the weaker of proof and patch quality.
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

Workflow

  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

History

Review history (24 earlier review cycles; latest 8 shown)
  • reviewed 2026-08-10T00:33:03.886Z sha 919ec7c :: needs maintainer review before merge. :: none
  • reviewed 2026-08-12T11:14:58.841Z sha e05d86c :: needs real behavior proof before merge. :: none
  • reviewed 2026-08-12T11:19:57.079Z sha e05d86c :: needs real behavior proof before merge. :: [P2] Add current-head persisted replay proof
  • reviewed 2026-08-12T12:35:21.624Z sha e05d86c :: needs maintainer review before merge. :: none
  • reviewed 2026-08-12T14:12:19.018Z sha e05d86c :: needs maintainer review before merge. :: none
  • reviewed 2026-08-12T19:18:49.970Z sha e05d86c :: needs maintainer review before merge. :: none
  • reviewed 2026-08-20T20:16:24.472Z sha 5049e5a :: needs real behavior proof before merge. :: none
  • reviewed 2026-08-21T11:41:57.529Z sha 5049e5a :: needs real behavior proof before merge. :: none

@TheAngryPit

TheAngryPit commented Aug 6, 2026

Copy link
Copy Markdown
Contributor Author

Exact-head proof (8d0f5480)

Automated

  • Focused parser/projector/presentation regressions: 8 passed, 0 failed.
  • Full Shared suite: 3,413 passed, 0 failed, 32 skipped.
  • Full Tray suite: 2,168 passed, 0 failed.
  • ./build.ps1: passed for Shared, CLI, WinNodeCLI, SetupEngine, and WinUI.
  • Scoped OpenClaw Auto-review: no actionable in-scope findings; patch is correct 0.98.

Disposable Windows behavior

  • Published the self-contained win-x64 artifact from exact head 8d0f5480.
  • Direct Windows Sandbox smoke used networking disabled, clipboard disabled, vGPU disabled, and an isolated data directory.
  • The Companion process remained alive through the bounded startup gate and reported the exact 8d0f5480 product version.

Real persisted-history replay

  • Promoted that reviewed artifact locally with a complete file-level rollback backup.
  • Reopened a real persisted agent:main:main conversation.
  • A failed Lcm Grep rendered as its own inspectable row marked failed.
  • Neighboring successful tools remained compacted into activity groups.
  • Safe projected arguments remained visible for persisted Memory Search, Lcm Grep, Session Search, and Session History entries.
  • Gateway WSL and settings/history state were preserved; the promoted Companion restarted with no new error events.
  • Redacted captures were inspected locally rather than committed to the product repository, avoiding repository bloat and disclosure of unrelated conversation content.

Current CI exception

The current setup-connect check is an infrastructure failure before checkout or repository code execution. The runner repeatedly failed to resolve action download metadata with Service Unavailable / Internal Server Error. Other E2E shards completed successfully. The contributor account cannot rerun repository jobs, so this check needs a maintainer rerun.

@TheAngryPit

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Aug 6, 2026

Copy link
Copy Markdown

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: when the review finishes, ClawSweeper will create the durable review comment if needed or update the existing comment in place.

Re-review progress:

@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. and removed rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. labels Aug 6, 2026
@TheAngryPit

Copy link
Copy Markdown
Contributor Author

Exact-head persisted-history proof (8d0f5480)

These redacted captures come from the reviewed Companion artifact and a real persisted agent:main:main replay.

proof-failed-tool-and-safe-args proof-persisted-group-safe-projection

The first capture shows the failed Lcm Grep as a standalone failed row while adjacent successful activity remains grouped and safe projected arguments remain inspectable.

The second capture shows the persisted four-tool activity group with safe projected arguments for Lcm Grep, Memory Search, Session Search, and Session History.

No private transcript content, tokens, or filesystem paths are included.

@clawsweeper clawsweeper Bot added proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. and removed rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. labels Aug 7, 2026
@TheAngryPit

Copy link
Copy Markdown
Contributor Author

Current-main reconciliation proof

Exact head: be50098bae12e6291ad60b2196ca50996837f94e
Upstream base: 9f9a8eda6340c7ec6f0acbc410de4f6b7d24a3ce

The branch was merged normally with current main. The only conflict was additive in NativeToolProjectorTests.cs: the PR's safe string-encoded argument projection test was retained alongside upstream #1114's correlation tests. Production files merged automatically. The final PR diff remains limited to the same 8 chat/history files.

Fresh exact-head validation:

  • focused Gateway parser: 1/1 passed
  • focused Tray projection/presentation: 66/66 passed
  • dependency preflight: passed; locked @microsoft/mxc-sdk 0.7.0
  • canonical sequential closeout: Shared 3,632 passed, 32 environment-only skips; Tray 2,249/2,249 passed
  • scoped Auto-review: no actionable findings; patch correct, confidence 0.93
  • git diff --check origin/main...HEAD: clean

The PR is now mergeable and remains draft while exact-head CI and automatic review run. Existing redacted behavior captures remain the supported-path evidence; this reconciliation adds no new architecture, protocol, dependency, or ownership surface.

@clawsweeper clawsweeper Bot added proof: sufficient Contributor real behavior proof is sufficient. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. and removed rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. labels Aug 8, 2026
@TheAngryPit
TheAngryPit marked this pull request as ready for review August 8, 2026 14:11
@clawsweeper clawsweeper Bot added rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. and removed proof: sufficient Contributor real behavior proof is sufficient. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. labels Aug 8, 2026
@clawsweeper clawsweeper Bot added rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. and removed rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. proof: sufficient Contributor real behavior proof is sufficient. labels Aug 12, 2026
@TheAngryPit

Copy link
Copy Markdown
Contributor Author

Current-head persisted replay proof (e05d86c5151bae9e6aa286231975c99616c577ce)

Fresh supported-path proof now covers the parser/projection refactor on the exact published head:

  • Built the clean exact head and ran the full Shared and Tray suites: 3,632 passed / 0 failed / 32 environment-only skipped and 2,250 passed / 0 failed.
  • Ran the exact-head side-by-side WinUI (SHA-256 6CFA0FC0616FF77956461B71B6CAB4C83F3C88A8A495F9217F4D81E91CC95691) against a disposable OpenClaw Core 2026.7.2-beta.6 Gateway profile, WSL loopback only, with an ephemeral token and disposable paired device.
  • The persisted chat.history fixture contained 6 messages, 2 tool calls, and 2 tool results: JSON-string read arguments with a successful result, plus object-form exec arguments with an error result.
  • Copied WinUI accessibility diagnostics from the real current-head app showed Connected, session PR #1111 persisted replay proof, read · Done with path: proof/success.txt and fixture read completed, and exec · Error with command: proof-command and fixture command failed as expected.
  • Terminated and relaunched only the disposable app against the same isolated data directory without rewriting the transcript. The reopened session reproduced the same six-message history and both expanded success/error cards.
  • Initial redacted capture SHA-256: 9551A52E5D2A953E76C0BC99E5276AE718E1D847B1095E9402707F9B23BE2B91
  • Post-reopen redacted capture SHA-256: AD787822369BAD8A9FD352F08A181286B633FB5B745055E79C33FE39B996D72C

Proof level: runtime-proven for exact-head persisted Gateway → WinUI replay and post-reopen persistence. This does not claim provider or real tool execution. The captures omit tokens, endpoints, device/request identifiers, private transcript content, and raw filesystem paths. The disposable app and Gateway were stopped afterward; the pre-existing production Companion remained running unchanged. The PR body now records the same exact-head proof and current green CI state.

@clawsweeper re-review

@clawsweeper clawsweeper Bot added proof: sufficient Contributor real behavior proof is sufficient. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. and removed status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. labels Aug 12, 2026
@karkarl
karkarl force-pushed the codex/companion-main-20260806 branch from e05d86c to 5049e5a Compare August 20, 2026 20:08
@clawsweeper clawsweeper Bot added rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. and removed rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. proof: sufficient Contributor real behavior proof is sufficient. labels Aug 20, 2026
@TheAngryPit

Copy link
Copy Markdown
Contributor Author

Exact-head persisted replay proof (5049e5a6)

Fresh current-head behavior proof now covers the bounded persisted-argument decoder added after the prior replay:

  • Built the clean exact head 5049e5a6f5ce7f5f2d41383ac204c6ca7c05215a with the repository-supported build; all five projects passed. Exact executable SHA-256: 49533C6CB778102C80EC73671D7F4E25017A1FC05AA70FCB510CF153EC26E0EF.
  • Ran that WinUI build against a disposable OpenClaw Core 2026.7.2-beta.6 Gateway profile in OpenClawUpdateLab, loopback only, with a fresh ephemeral token and existing disposable paired identity. No provider/model request was made.
  • The real persisted chat.history response contained 10 messages, four tool calls, and four results:
    • JSON-string read args -> read · Done, path: proof/success.txt, fixture read completed.
    • Object-form exec args plus message-level error/correlation -> standalone exec · Error, command: proof-command, fixture command failed as expected.
    • Normal JSON-string exec args with a declared synthetic token-shaped marker and a non-allowlisted field -> only the allowlisted command rendered, with the marker redacted to abcdef…ghij; neither the raw marker nor the extra field appeared.
    • A 67,633-character JSON-string argument (>64 KiB) -> the exec · Done row and result rendered without crash, with no display argument and no oversized sentinel leak.
  • Closed and relaunched only the accepted disposable app against the same proof data. The imported fixture transcript hash remained 35B81B1D6C82CF46A65C8D2EA6240ED6917D96422BD0E53BC87FDA0A51BF9C17, and the redacted logical UI/history proof was identical after reopen.
  • Initial redacted capture SHA-256: 73655EB913CCABCEBDA6CB32BA8C40FCAA94D137140C1F97634E0BB13DE60EB7.
  • Post-reopen redacted capture SHA-256: D1712555958DEA46EA63B1CFB9D6144D1F0AA9AD4665701C882EFF3BA81FBE9C.
  • Scoped exact-diff auto-review completed with checksum-verified TruffleHog clean and no accepted/actionable findings (patch is correct, confidence 0.98).

Proof level: runtime-proven for exact-head persisted Gateway -> WinUI replay and post-reopen persistence. This deliberately does not claim provider/tool execution or installed-package promotion. The published evidence contains no token, endpoint, device/request identifier, raw filesystem path, unrelated transcript content, or unredacted accessibility-tree neighbor.

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Aug 21, 2026

Copy link
Copy Markdown

🦞👀
Exact review queued.

Re-review progress:

@TheAngryPit

Copy link
Copy Markdown
Contributor Author

Inspectable redacted exact-head diagnostics (5049e5a6)

The prior comment summarized and hashed the captures. Below is the inspectable redacted diagnostic payload from the real rendered WinUI accessibility capture, first render and app-only post-reopen. The two captures had the same logical payload; only capture time and capture-file hash differed.

{
  "source": {
    "head": "5049e5a6f5ce7f5f2d41383ac204c6ca7c05215a",
    "clean": true,
    "executableSha256": "49533C6CB778102C80EC73671D7F4E25017A1FC05AA70FCB510CF153EC26E0EF"
  },
  "history": {
    "messages": 10,
    "toolCalls": [
      {"name":"read","encoding":"json-string","encodedChars":28,"argumentKeys":["path"]},
      {"name":"exec","encoding":"object","argumentKeys":["command","workdir"]},
      {"name":"exec","encoding":"json-string","encodedChars":148,"argumentKeys":["command","content","workdir"]},
      {"name":"exec","encoding":"json-string","encodedChars":67633,"over64KiB":true,"argumentKeys":[]}
    ],
    "toolResults": [
      {"name":"read","isError":false,"text":"fixture read completed"},
      {"name":"exec","isError":true,"text":"fixture command failed as expected"},
      {"name":"exec","isError":false,"text":"fixture redaction completed"},
      {"name":"exec","isError":false,"text":"fixture oversized input completed"}
    ]
  },
  "operatorVisibleUi": {
    "connection": "Connected",
    "cards": [
      {"sequence":1,"label":"read · Done","requiredFactsPresent":true,"forbiddenFactsAbsent":true,"displayArgumentsPresent":true},
      {"sequence":2,"label":"exec · Error","requiredFactsPresent":true,"forbiddenFactsAbsent":true,"displayArgumentsPresent":true},
      {"sequence":3,"label":"exec · Done","requiredFactsPresent":true,"forbiddenFactsAbsent":true,"displayArgumentsPresent":true},
      {"sequence":4,"label":"exec · Done","requiredFactsPresent":true,"forbiddenFactsAbsent":true,"displayArgumentsPresent":false}
    ],
    "redactedArgument": "command: curl https://example.test --token abcdef…ghij",
    "oversizedArgumentDisplaySuppressed": true
  },
  "redactionAssertions": {
    "syntheticMarkerRawRendered": false,
    "oversizedSentinelRendered": false,
    "nonAllowlistedContentRendered": false,
    "tokenIncluded": false,
    "endpointIncluded": false,
    "deviceOrRequestIdsIncluded": false,
    "rawFilesystemPathsIncluded": false,
    "unrelatedTranscriptContentIncluded": false
  }
}

Capture binding:

  • initial rendered capture: 73655EB913CCABCEBDA6CB32BA8C40FCAA94D137140C1F97634E0BB13DE60EB7
  • post-reopen rendered capture: D1712555958DEA46EA63B1CFB9D6144D1F0AA9AD4665701C882EFF3BA81FBE9C
  • unchanged imported transcript: 35B81B1D6C82CF46A65C8D2EA6240ED6917D96422BD0E53BC87FDA0A51BF9C17

This is the redacted diagnostic content itself, not only a narrative claim. No raw accessibility-tree neighbors are included because they contain unrelated local UI state.

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Aug 21, 2026

Copy link
Copy Markdown

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event exact_review_queue).
Result: when the review finishes, ClawSweeper will create the durable review comment if needed or update the existing comment in place.

Re-review progress:

@clawsweeper clawsweeper Bot added proof: sufficient Contributor real behavior proof is sufficient. rating: 🦞 diamond lobster Very strong PR readiness with only minor maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. and removed status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. labels Aug 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merge-risk: 🚨 session-state 🚨 Merging this PR could lose, corrupt, stale, or mis-associate session or agent state. P2 Normal priority bug or improvement with limited blast radius. proof: sufficient Contributor real behavior proof is sufficient. rating: 🦞 diamond lobster Very strong PR readiness with only minor maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants