Your situation is complicated. Before I attempt to answer your questions, we need to talk about a destructive pattern that is occurring in your relationship.
Do you realize that your letter reverberates with guilt? I know you think you behaved terribly, by not being totally honest, but let's try to understand why you would conceal facts about yourself in the first place. Usually when a person hides information, the way you did, it's because she is afraid that telling the truth will get her into trouble. Usually a pattern of concealment is learned in early life. I suspect that your parents were very harsh and that you learned to lie or conceal facts in order to protect yourself from being punished. But, this concealment technique didn't work, did it? Your parents always found out the truth and you got into trouble for lying.
When a pattern of concealment (or any other pattern) is learned early in life, it carries over into adulthood. (We are, afterall, creatures of habit.) In your case, you seem to be playing out the following: You are the fearful kid that lies to protect herself, then feels guilty, spills the beans and, your boyfriend plays the role of the punishing parent. Notice how your boyfriend responded to your truthfulness with a punishing, parental attitude and even threatened to abandon you.
So, history has repeated itself: You lied and got punished once again. Sound familiar? Don't think that you are alone in this pattern. All of us choose lovers or mates who treat us as our parents did. In your case, it sounds like your unconscious mind has selected a boyfriend who makes you feel right at home (he's critical, judgmental and punishing like a mean parent. )
But I have a bulletin for you. Your boyfriend is not your parent and you are no longer a kid. You are not obligated to spill your guts to him or tell all. There are always islands of information that are not shared. Where is it written that you were obligated to tell him that you resumed smoking? Maybe you were forced to tell all to your parents, but this obligation does not extend to your boyfriend. So, give yourself a break, for goodness sake.
Obviously your boyfriend has his own issues, relative to trust. When he blames you for having betrayed him, he is actually talking about the ghosts of his past, the people who betrayed him when he was young. Help him to talk with you about who else broke his trust when he was a kid.
Then, after he's finished filling you in, it would be good to tell him two things:
- Explain to him that when you concealed information your intent was not to betray him, but rather to protect yourself from getting into trouble. (Explain to him about your own early life so he understands why you are afraid to tell the truth.)
- Next, point out to him that threatening to abandon you is not the proper way of handling his hurt feelings. No relationship is possible, if one or both partners threatens to leave whenever disappointments crop up. Let him know that if he wants you to be truthful, you need to feel safe and sure that he won't threaten to abandon you whenever he's disappointed with you or hears information that he doesn't like.
In order to avoid trouble in the future, watch yourself like a hawk. Every time you feel the urge to conceal some information, tell yourself: I 'm afraid that I'll spark my boyfriend's anger if I tell the truth, but, if I lie now and only tell him the truth later, I know I'll get even more anger coming at me. Then, consciously make a choice, to either tell the truth now or to lie and bear worse hell later. Once you make this process conscious, you are on the road to breaking the cycle. Good luck.