The glossary approval command should bind to an artifact revision, not just a stable glossary ID. If a translator revises the glossary while a human has an earlier version open, approving that screen must not accidentally approve the newer content that shares the same ID.
I would include the reviewed revision or content digest in the command and reject an approval when the current proposal differs. A fake-runner test can propose version A, present it for review, replace it with B, and then deliver the old approval. Proofreading should remain stopped until someone reviews B. That makes the human gate a statement about specific content rather than merely an event in the workflow.