Expose the recorded packet transport scope on decrypted channel messages consistently across per-channel/global/hash history, reconnect catch-up and new-message WebSocket delivery. Existing history queries already join scopes but omit the fields. A later report can differ from the first stored packet, so live tags must come from that same stored record rather than the latest ingest candidate.
Add backward-compatible scope metadata, distinguishing a matched name, a packet without transport codes and unresolved transport codes. Do not infer scope from a channel name or imported catalogue membership. Preserve duplicate suppression, retained-history limits and bounded queries; no historical scan or new decryption keys. Include PostgreSQL/read-path/live-event regressions. This is the next slice after #174; the contributor has approved implementation through the ongoing roadmap.
Expose the recorded packet transport scope on decrypted channel messages consistently across per-channel/global/hash history, reconnect catch-up and new-message WebSocket delivery. Existing history queries already join scopes but omit the fields. A later report can differ from the first stored packet, so live tags must come from that same stored record rather than the latest ingest candidate.
Add backward-compatible scope metadata, distinguishing a matched name, a packet without transport codes and unresolved transport codes. Do not infer scope from a channel name or imported catalogue membership. Preserve duplicate suppression, retained-history limits and bounded queries; no historical scan or new decryption keys. Include PostgreSQL/read-path/live-event regressions. This is the next slice after #174; the contributor has approved implementation through the ongoing roadmap.