SIGN IN SIGN UP

fix(acp): match a slash command against the prompt ledger it was rebuilt from

The background watcher decides whether a transcript record belongs to a turn
codeg sent (the wire renders it) or to out-of-turn work it has to surface as
an overlay, by matching the record's initiator text against the prompt ledger.
A slash command has no readable initiator text: the CLI persists the
invocation as command tags, so slash_command_display rebuilds it as the name,
one space, and the trimmed args. That drops whatever separator the sender
actually typed, and the composer already inserts a space after a command badge
so a sender who types their own sends two. The rebuilt text then does not
start with the fingerprint, the command classifies as an out-of-turn
initiator, and the whole wire-rendered turn comes back as a background overlay
beside itself, which is the duplicated /goal turn again by a different route.

Compare on collapsed whitespace as well as bytes, which keeps the match exact
in words and order.
A
Adam Dalloul committed
116d033ab51a3f0b42d1f7a17cce66501a1f6326
Parent: 938b235