Repository navigation
fix: redact every progress reply Bloop posts directly - #42
Merged
Merged
Conversation
added 2 commits
October 8, 2026 15:58
Only the verbatim branch redacted the milestone text, so a deployment with no narration configured (the delegation-only default) and the narration fallback both posted `<!here>` and a quoted token as given. The delivery-path test pins the other half: the fallback text a turn that never speaks owes its thread is redacted where it leaves.
The direct and narration-fallback replies posted the milestone text as given, so a `<!here>` or a token quoted from a thread reached Slack whenever no narration turn carried the milestone. Redacting the text before the closing block joins it keeps the admitted mentions, which a redaction of the whole reply would escape.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A progress milestone reached Slack unredacted whenever Bloop posted it itself: the
verbatim: truebranch was the only one that ranredact, so the direct path (narrationunset, the delegation-only default atapps/slack-agent/src/index.ts:55-77) and the narration fallback both posted<!here>or a token quoted from a thread as given. Redacting the milestone text beforereplyOfappends the trusted mentions and links block fixes both, and the closing block is untouched: redacting the finished reply would escape<@U…>into<@U…>and break admitted mentions.Verify
narrationundefined,verbatimunset) with<!here> Bearer xoxb-1234-not-a-real-tokenposts neither:narrated progress endpoint > redacts what a direct milestone would carry, red on f28de36 (Expected to not contain: "<!here>"/Received: "<!here> Bearer xoxb-1234-not-a-real-token\n<https://example.com/run>"), green after.narrated progress endpoint > redacts what the narration fallback would carry, red on f28de36 with the same received text, green after.fallbackTextthrough the delivery path posts neither:narrated progress endpoint > redacts the fallback text the delivery path owes the threaddrives the real delivery path with the binding progress built (narrate turn, thenopenSlackDelivery/finishSlackDelivery), green after, and, on f28de36 too: that one was already redacted atpackages/core/src/delivery.ts:731(post(sanitizeReply(notice), closingBudget)), where the fallback trailer and failure notice are sanitized like any streamed text. It is a pin, not a fix;durable Slack deliverycovers the same fallback on the durable record.redacts what a verbatim milestone would carry(unchanged).bun run verify: exit 0, 374 pass / 0 fail across 17 files, format, lint, typecheck, knip,deploy:dryandbun audit(561 packages, 1 ignored) green.Commits
test37c3757: pins the three texts plus the delivery path.fix6a21349: oneredact(milestone.text)per reply that leaves for Slack, in the direct branch and in the narration fallback.Not covered
<title> · <label>) is unchanged: it carries no milestone text.Goal:
bloop-delegation-3row A2.