I decided to vent out all my frustrations on you but now {I have a change of heart /I've had a change of heart}.
1 Answer
In its ordinary sense have is a stative verb: it signifies a state which endures over time. But in the expression have a change of heart it is an eventive verb (specifically, an achievement verb): it signifies a change of state which occurs at a single moment in time.
Consequently, you would ordinarily use the simple present form "I have a change of heart" only to speak of repeated or habitual events, or of a hypothetical future event. For instance:
Joe can't decide whether to fire Keith or not. Every fifteen minutes he has a change of heart.
We're screwed unless Mrs. Williams has a change of heart.
If your focus were on the past event itself, the "change of heart" you experienced, you would use the simple past:
I decided to vent all my frustrations on you but then I had a change of heart.
In your case, however, your use of the adverb now signifies that you are speaking of your present state which arose out of your past change of heart. This is exactly what a present perfect expresses:
I decided to vent all my frustrations on you but now I have had a change of heart.
Note, however, that in writing most people would not cast the eventive verb decide in the first clause in the simple past, because that 'narrative past' jars a little with the present focus of the second clause. (But this might very well happen in speech, because people often don't have time to anticipate where their discourse is going.) Instead they would employ a word or form which characterizes what preceded the change of heart as the state which changed:
I had decided to vent ... OR
I was going to vent ...
If you want more detail on these matters you might consult our tag-wiki on aspect or our Canonical Post What is the perfect, and how should I use it?, especially §3.1 Grammatical meaning,