cd /news/artificial-intelligence/my-ai-assistant-stopped-working-the-… · home topics artificial-intelligence article
[ARTICLE · art-44504] src=dev.to ↗ pub= topic=artificial-intelligence verified=true sentiment=· neutral

"My AI Assistant Stopped Working the Moment I Closed the Chat"

A developer building CliGate, a local AI control plane, discovered that AI assistants fail when they cannot operate outside of chat sessions. To solve this, they implemented background assistant runs with delayed wake-ups, separate conversation scopes for recurring tasks, and a bridge to user-facing conversations when input is needed. The key insight is that scheduled assistant runs differ fundamentally from simple reminders.

read3 min views2 publishedJun 30, 2026

A lot of AI assistants only feel helpful while the chat window is still open.

You ask for something, watch it think, maybe answer one follow-up, and then you leave.

That is the moment the illusion breaks.

If the assistant cannot wake itself up later, run something in the background, and only come back to you when it actually needs you, it is not much of an assistant. It is just a chat box with good manners.

That was one of the more practical lessons while building CliGate, my local AI control plane for a resident assistant, scheduled work, channels, Claude Code, Codex, and model routing behind one localhost service.

The old mental model was too chat-shaped.

A user message arrived. The assistant did some work. The answer came back into the same visible thread.

That works for interactive tasks, but it falls apart for the boring real ones:

In other words, the assistant needed a way to work without pretending the user was still sitting there.

The first naive version of scheduled work is just:

at 8 PM -> send message

That is fine for "drink water" reminders.

It is useless for anything that needs actual reasoning or tools.

What I wanted instead was:

at 8 PM -> wake the assistant with an instruction
-> let it run in the background
-> send me the result
-> if it needs input, route my reply back into that d run

That sounds small, but it changes what a scheduled task really is. It stops being a timer and starts being a delayed assistant run.

One subtle bug showed up fast.

If every recurring run reused the same hidden conversation forever, the assistant started treating later fires like duplicates.

That is especially bad for recurring work. A scheduled publishing task should not say "already done" just because a previous run earlier that day used the same scope and saw similar history.

So I ended up separating two modes:

That means a recurring task can wake the assistant in its own background scope conversation, without polluting the user's visible chat and without inheriting the wrong assumptions from the last run.

In CliGate, that also made the scheduling model much easier to trust: each fire can be a clean round, while things like a running diary can still opt into shared context.

Background runs do not always finish cleanly.

Sometimes the assistant needs the user.

Maybe a credential is missing. Maybe a choice matters. Maybe a risky action needs confirmation.

If that happens inside a hidden scheduled-task scope, the run cannot just hang there forever.

So the assistant needed a bridge back to the user-facing conversation.

The model that finally felt right was:

That was the difference between "background automation" and "a silent dead end."

One thing I like about this setup is that the user-facing choice is simple.

A scheduled task can either:

And when invoking the assistant, two more controls matter a lot:

That is enough surface area to be useful without turning scheduling into a mini workflow engine.

Most people do not want cron trivia. They want to say:

That is the level an assistant should operate at.

The biggest win was not technical elegance.

It was behavioral honesty.

The assistant no longer had to pretend every task was a live chat exchange.

Now it can:

That made CliGate feel a lot less like "chat with extra steps" and a lot more like an actual local operator.

If you are building AI assistants, this is the line I would not blur: a scheduled reminder is not the same thing as a scheduled assistant run, and users feel the difference immediately.

── more in #artificial-intelligence 4 stories · sorted by recency
── more on @cligate 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/my-ai-assistant-stop…] indexed:0 read:3min 2026-06-30 ·