Demo
A chat console that never loses a message to a sleeping laptop
An agent console for the help chat of an invented online board game shop, next to the fake chat server it talks to. Answer several visitors at once, watch the reminder on the longest wait step up, use or change a suggested reply and rate it. Then put the laptop to sleep while visitors keep writing, and wake it to see the console find the gap and fill in what it missed, in order.
This is a simulation. No AI model runs on this page: the suggested replies are written in advance, and the shop, its visitors, their messages and the chat server are all invented and run inside this page. The laptop does not really sleep; a button stands in for it. Nothing you type leaves your browser or is kept, and reloading the page starts again.
Clock and laptop
Server clock: 14:00:00
The demo keeps its own clock, one second each second, starting at 14:00:00. Pause it at any time, or move it on.
The laptop is awake and the console is connected.
On waking, the console looks for a gap of 3 seconds or more in its heartbeat and asks the server for what it missed. Turn it off to see what happens without it.
Agent console
Connected
The laptop is asleep.
Chats
Reminders step up after 30 seconds, 1 minute and 2 minutes without a reply.
Chat with Poppy
Hi, does the lighthouse tile game include the expansion, or is it sold on its own?
Suggested reply, not sent
Written in advance for this demo. In a real console a language model drafts it, and only you can send it.
Rate this suggestion
About Poppy
- Page now
- The lighthouse tile game
- Basket
- Empty
- Visits
- First visit
- Earlier chats
- None
Suggestion ratings
- Asked for
- 0
- Sent as it was
- 0
- Sent after changes
- 0
- Discarded
- 0
- Rated helpful
- 0
- Rated not helpful
- 0
Each rating is kept with the suggestion, so how good the suggestions are can be judged from real use.
Fake chat server
Invented
What the server really holds, to check the console against. A real console cannot see this side.
The server holds 4 messages and the console shows 4. Missing from the console: 0.
- Briar: 2 on the server, 2 on the console.
- Poppy: 1 on the server, 1 on the console.
- Laurel: 1 on the server, 1 on the console.
Sent while the laptop slept
None yet. While the laptop sleeps, visitors’ messages pile up here.
Connection log
Each sleep and wake, and every step of the recovery, is written here.
What the demo shows
- Many chats in one place. Every open chat is in one list, with its latest message, how long the visitor has waited and a count of new messages, and the visitor’s details sit beside the conversation.
- Reminders that step up. The wait is worked out from what is on the screen: the time since the visitor’s first message after your last reply. At 30 seconds it becomes a reminder, then a second reminder, then overdue, and the longest wait is marked.
- Suggestions stay drafts. A suggested reply is never sent on its own. You send it as it is, change it first or discard it, then rate it, and the ratings are counted. If you answer in your own words, or the visitor writes again, it is put away unused, so it can never go out later as a second answer.
- A heartbeat that notices sleep. A sleeping laptop’s connection dies without a word. The console expects its heartbeat every second, so on waking a gap of 3 seconds or more tells it the laptop slept and the old connection cannot be trusted.
- Missed messages filled in, in order, never twice. It opens a new connection, asks the server which chats are open, then asks each chat for everything from the last message it shows. If the server still counts more messages in a chat than the screen shows, it asks for the whole chat, so an older gap is closed too. Each missed message goes in its place by the server’s own numbering, even after one that arrived first on the new connection, and any already on screen are skipped.
- The quiet failure it prevents. Start over, turn the wake check off, then let the laptop sleep for 5 seconds or more: the console carries on, a chat looks answered when it is not, and only the server knows.