Skip to content

fix(tlon): strip internal tool-trace banners from outbound text#103450

Merged
steipete merged 1 commit into
mainfrom
codex/fix-tlon-outbound-sanitize
Jul 10, 2026
Merged

fix(tlon): strip internal tool-trace banners from outbound text#103450
steipete merged 1 commit into
mainfrom
codex/fix-tlon-outbound-sanitize

Conversation

@steipete

Copy link
Copy Markdown
Contributor

What Problem This Solves

Tlon outbound delivery did not apply the shared assistant-visible text sanitizer. Internal tool-call banners, raw tool markup, and failed-tool traces could therefore be sent to Tlon users as ordinary message text.

This maintainer replacement supersedes #102211. The contributor branch could not be updated after current-main synchronization because GitHub's signed GraphQL commit path exceeded its 45 MB request ceiling. Part of #90684.

Why This Change Was Made

The Tlon outbound adapter now uses the existing sanitizeAssistantVisibleText hook at the shared delivery boundary, matching sibling channel adapters without adding channel-specific parsing.

The regression test registers the real Tlon plugin, drives deliverOutboundPayloads, authenticates against a local HTTP server, and inspects the rendered Urbit poke payload for direct messages, group messages, and media captions. The original contribution is credited to @masatohoshino in the commit trailer.

User Impact

Tlon users no longer see internal assistant tool traces in final outbound messages. Ordinary Markdown and fenced examples remain unchanged.

Evidence

  • Negative control: reversing only the production sanitizer hook made the boundary test fail because the captured Tlon memo still contained search private repos.
  • Blacksmith Testbox tbx_01kx57xtadevzxynm9nry0bx67: focused boundary test passed, 1 file / 1 test.
  • Same Testbox lease: complete Tlon suite passed, 18 files / 143 tests.
  • Same Testbox lease: pnpm check:changed passed for the extensions and extensionTests lanes, including tsgo, lint, storage guards, and import-cycle checks.
  • Fresh structured autoreview on the one-commit maintainer replacement found no actionable findings.
  • Exact hosted PR checks will run on this published head before merge.

Route assistant-visible Tlon output through the shared sanitizer and prove the rendered Urbit poke payload for DMs, groups, and media captions.

Co-authored-by: masatohoshino <[email protected]>
@openclaw-barnacle openclaw-barnacle Bot added channel: tlon Channel integration: tlon size: S maintainer Maintainer-authored PR labels Jul 10, 2026
@steipete

Copy link
Copy Markdown
Contributor Author

Land-ready proof for exact head 1b834d61102e13066d68e39b7977175c38d1631c:

  • Review artifacts validated with READY FOR /prepare-pr, zero findings. Fresh structured autoreview found no actionable issue with the final one-commit replacement.
  • Before/after boundary proof: reversing only the sanitizeText production hook made the real outbound test fail because the captured Urbit memo still contained search private repos; restoring the hook removed that trace while preserving Markdown and fenced examples.
  • Blacksmith Testbox tbx_01kx57xtadevzxynm9nry0bx67: focused boundary test passed (1 file / 1 test), complete Tlon suite passed (18 files / 143 tests), and the changed-surface gate passed for extensions plus extensionTests.
  • Exact hosted CI run 29072974620 passed on this SHA, including build, production/test types, lint, guards, extension boundaries, channel contracts, tests, and check-shrinkwrap.
  • Repository landing guard passed via OPENCLAW_TESTBOX=1 scripts/pr prepare-run 103450; the remote PR tree matches the reviewed prep tree.

Commands used for focused proof:

corepack pnpm test extensions/tlon/src/outbound-tool-trace-sanitize.test.ts
corepack pnpm test extensions/tlon
env OPENCLAW_CHECK_CHANGED_REMOTE_CHILD=1 OPENCLAW_CHANGED_LANES_RAW_SYNC=1 corepack pnpm check:changed
.agents/skills/autoreview/scripts/autoreview --mode branch --base origin/main
OPENCLAW_TESTBOX=1 scripts/pr prepare-run 103450

Known gap: no credentialed hosted Tlon ship acknowledgement was available. The captured authenticated HTTP login and final Urbit poke payload directly prove the changed local transformation; no remote service behavior changed.

@steipete
steipete merged commit 1d20542 into main Jul 10, 2026
112 of 115 checks passed
@steipete
steipete deleted the codex/fix-tlon-outbound-sanitize branch July 10, 2026 06:17
@steipete

Copy link
Copy Markdown
Contributor Author

Merged via squash.

github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request Jul 10, 2026
…claw#103450)

Route assistant-visible Tlon output through the shared sanitizer and prove the rendered Urbit poke payload for DMs, groups, and media captions.

Co-authored-by: masatohoshino <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

channel: tlon Channel integration: tlon maintainer Maintainer-authored PR size: S

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant