Add source_channel field to Thread struct and verify channel
authorization before allowing approval messages to target threads.
The web gateway channel is allowed as a trusted approval UI, and
threads without a source_channel (e.g. deserialized from older DB
records) are permitted for backward compatibility.
Closes#1485
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>