Chat is very good at one thing: getting a message from me to you quickly. We have then spent twenty years asking it to do a completely different job — getting a group of people to agree on something — and mostly not noticing that it is bad at it.
Here is the failure, and it is so ordinary that it is hard to see. Five of us are in a room. Somebody pastes a map. I look at it. You are three messages behind, still reading. Someone else is scrolled up entirely, hunting for a thing from last Tuesday. Somebody pastes a second map. Now the phrase “the map” has two meanings, and there is no way to tell from the text which one anybody means. We sort it out — we always sort it out — but we sort it out by spending messages on it. “Which map?” “The new one.” “Scroll down.”
And then it gets worse, because a week later somebody asks what we decided, and the answer is genuinely in there, distributed across sixty messages with nothing marking which four of them were the decision.
The scroll position is the bug
The thing I kept coming back to is that in a chat window there is no such thing as now. Every participant has a private position in the history, and the app has no opinion about where anyone should be. That’s the right design for messaging — you should be able to read at your own pace — and it’s the wrong design for coordination, where the entire point is that we are all in the same place at the same moment.
Voice chat solves this with a shared clock: whatever is being said is being said to everyone at once. But voice leaves no record, so the group ends up running two channels — one that is synchronised and forgets everything, and one that remembers everything and is never synchronised.
So the question I actually wanted to answer was: what if the room had a now? Not a cursor in a message list, but a place on the screen that is the same for everybody, that you can point at, and that persists.
One Stage, one thing on it
The answer in Covert Mission is a Stage. It sits in the middle of the room, and
exactly one thing is on it — an image, a link, a video, a poll, a dice table.
Putting something on the Stage is the main gesture in the app rather than an
afterthought: /img, /url, /stage.
The constraint is doing all the work. Not “content can be pinned”, not “you can attach images” — one thing at a time, and it is the same thing for everyone. There is no state of the room in which you and I are looking at different maps. “Look at this” stops being a request that can fail, and becomes something the software guarantees.

It is a small idea and it is a bit dictatorial, which is the point. Somebody taking the Stage is taking the group’s attention, deliberately and visibly, and everybody can see that it happened.
The threads write themselves
Here is the bit I did not plan, and it is the reason I think the Stage is the right idea rather than just a nice one.
If the Stage changing is the moment the group’s attention moves, then the Stage changing is also exactly where one topic ends and the next begins. So threads are not created by people in Covert Mission. Every time the Stage changes, a thread opens against it, holding a snapshot of what was on the Stage at that moment. Nobody can make one by hand, and nobody has to remember to.

An evening therefore files itself: the bit where we argued about the approach, the bit about the patch notes, the bit where we fixed the timing — each one with the thing it was about attached to it.
Threading in every other chat tool asks you to do administration in the middle of a conversation. That’s why it doesn’t get used: at the moment a thread would be most useful, you are busy having the argument that would go in it. Here the filing is a by-product of the thing everybody wanted to do anyway. You get the record for free, because the record is made of the same gesture as the discussion.
I want to be careful about how strong a claim that is. It works because the Stage is a genuinely good proxy for “the topic changed” — and it is a good proxy precisely in the kind of group I built this for, one that coordinates around artefacts. A conversation with no pictures in it would get one enormous thread and no benefit at all.
Arriving late
The last piece follows from the first two. If a session is an ordered log of events, and the Stage is part of that log, then you can play it back.
Catch-up mode replays a session in order: messages arrive as they arrived, and the Stage changes as it changed. Turning up an hour late means watching what happened rather than reading upwards through it and reconstructing which map anybody meant.

That is not a feature I would have built on its own — it exists because the data was already shaped that way. Which is usually the sign that the underlying model was worth the trouble.
What I think it proves
Not that everyone should throw away Slack. Covert Mission is a small tool for small groups doing a specific kind of work, and it is invite-only, so this is a description rather than a pitch.
But I think the general shape is right, and it is the bit I would take somewhere else: when a group has to agree on something, give the group a shared present tense. One place on the screen that means this, now, the same for everybody. Almost everything I like about the app turned out to be a consequence of that one constraint rather than something I designed separately — which is the most useful thing I have learned from building it.