"The dress she put on is green."
Translation:La robe qu'elle a mise est verte.
There's a quirk of French grammar that - and no, I'm not making this up - the past participle of the passé composé (in this case, mis) must agree with the direct object (if it exists) in number and gender if the direct object is located before the verb.
In this case, the direct object is la robe, which comes well before the passé composé construction of a mis. Therefore, mis must agree with la robe, and because la robe is feminine, mis must be too. Thus it becomes mise.
I'm looking through my text book, and it says nothing about direct objects. The rules being noted in this thread are for Direct Object Pronouns according to my book, so I have no idea how the passe compose works with direct objects. The examples in my book all show direct objects after the verb while the example here has the direct object before the verb.
No, the verb mettre (of which mis is the past participle) has many meanings. Which meaning applies depends on the context. In this case it means "to put on" because we are talking about a dress. The past participle mis gets an added e on the end to agree with the preceding direct object which is feminine. The relative pronoun que provides the link back to la robe that is feminine so the participle becomes mise.
I just checked at reverso the verb 'mettre' and I've seeen plenty of example using in passe compose without any agreement in gender.
'Quand j'ai mis la main sur vous...' 'J'ai mis une caméra dans sa rue' 'J'ai mis des choses dans ton sac' and etc
Also when I tried to translate with reverso and google translator the phrase 'elle a mise une robe est verte' both translated it as she was gambling a robe, but without -e the translation was correct.
In my opinion if there's a rule about agreement, French don't follow it.