We will finish a sprint with stories tested and "Done" and thereby closed in Jira. They often sit in a branch somewhere until someone remembers we have code waiting to be pushed live. Or worse, we go to push something live and someone will pipe up with "oh that also includes xyz change...", or even worse we push one change not realising it includes another one. Usually, it works, because it's tested, but kinda scary we don't often know exactly what going live without doing a thorough code review of all merge requests and diffs across multiple services/components.
Often we can't push things live immediately as there are dependencies, related work in progress, marketing or any number of other reasons. I know feature flags are a good solution but we're not currently planning to implement.
How do you track issues and related code that is Done, but not yet released in a methodical manner so you can see the code changes involved and the issues involved across any environment at any time?