Measured
The replay harness’s naive indexer reads effects from the envelope. It gets all four indexed cases wrong: the muxed ID and the fee-bump are incorrect, both SAC trustlines are dropped. The reference indexer reads metadata and gets all four right. So does wallet-backend, on all six fixtures.Not every envelope read is wrong
An operation with no source of its own runs as the inner transaction’s source, fee-bump or not. SoEnvelope.SourceAccount() is the right fallback for an operation’s source. IX003 only fires inside fee logic for exactly this reason: a broader version of the rule flagged two correct fallbacks in wallet-backend.
The test is simple. If you’re asking “what did the submitter say?”, the envelope is fine. If you’re asking “what happened?”, read the meta.