See PHI1202, which requests a way to distinguish between edits in Phriction which affect only drafts vs those which affect the published document.
Today, with a few exceptions, Herald mostly acts only on state, not on changes. For example, you can write a rule like "When task assignee is X", but not "When task assignee changes". This is mostly to make testing rules with the test console easier, and some conditions (like "Actor" and "Is Newly Created") already aren't really state rules.
We can make this behavior more predictable/testable like this:
- When Herald executes in the context of a TransactionEditor, pass the applied transactions to Herald.
- Build change-triggered rules like "published document changed" out of these transactions.
- Save the transaction PHIDs in the transcript and show them in the transcript UI.
This will at least make it more clear which changes we're talking about, in a relatively stable/visible way.
When running the test console on an object, we can pick the most recent transaction group and apply a similar treatment.
(We can't let the user select an older transaction group because we can't rewind transactions in the general case.)