← Back to the journal

Why runtime status is not the same as a chat summary

Task status cannot be inferred from a conversation summary alone. Reliable progress reporting needs runtime state, recent events, waiting reasons, and real execution evidence. This article explains the difference.

Here is the short answer: a conversation summary can tell you what the chat has generally been about, but it cannot reliably tell you what a task is actually doing right now. In an execution-focused assistant, trustworthy status reporting usually needs at least four layers: the current runtime state, recent events, the waiting reason, and the latest piece of execution evidence that has really landed. If you only read the conversation summary, you are likely to mistake “what we were talking about” for “what is still true in the live execution state.”

That is exactly why OmniGoAI’s GoWork separates conversation-level context from run-level state. GoWork is not just a chatbot that happens to call tools. It is an assistant that must chat, schedule work, queue desktop operations, continue long-running jobs, and report results without confusing intent with execution. Once a system both talks and acts, one summary field is no longer enough to describe reality. You need to know whether there is an active run, whether it is queued, running, waiting, or done, what the last few steps actually were, and whether the task is blocked by the user, an approval, a resource, or an external system.

If you have already read Why a status question should not retrigger the task, Why long-running tasks need continuation rounds, and Why assistants should check run archives before probing live systems, this article answers a more foundational question: why task status cannot be read from conversation summary alone, and how runtime state, recent events, and real execution evidence relate to each other.

The main rule: a summary is navigation, not a verdict

A practical mental model looks like this:

  1. conversation summary tells you what the chat has recently been about;
  2. runtime status tells you whether execution is alive, queued, blocked, or finished;
  3. recent events tell you what has happened in the last few steps;
  4. execution evidence tells you what has actually landed in the world.

All four are useful, but they answer different questions. A conversation summary helps with orientation. It is not strong enough to serve as the final source of truth for execution status.

Why conversation summary is not enough

Because it is a compressed chat-level view, not a step-by-step execution ledger.

A summary is good at preserving things like:

  • the broad goal of the conversation;
  • the main task or topic under discussion;
  • which object or workflow the user and assistant have been focused on;
  • where the conversation last seemed to be heading.

That is valuable for context recovery, but it does not answer harder and more operational questions such as:

  • whether the current run still exists;
  • what the last successful step actually was;
  • whether the task is waiting on the user, an approval, or a resource;
  • whether a reported error has already been retried and superseded;
  • whether a “next step” was only discussed or actually executed.

In other words, a conversation summary is closer to a table of contents than to a run log, and even farther from hard evidence.

Runtime status answers a different question: is the task alive?

If the summary is a navigation bar, runtime status is more like a monitor.

Its real job is to tell you things such as:

  1. whether there is an active execution at all;
  2. whether that execution is queued, running, waiting, completed, or failed;
  3. whether there are pending approvals, clarifications, or resource blockers;
  4. which run, session, or task the current state belongs to.

This layer matters because many misleading answers begin here:

  • the summary still sounds like “publishing is in progress,” but the run has already failed;
  • the summary makes it sound like nothing has started, while the task is actually queued and waiting for the desktop;
  • the user thinks the assistant is stuck, while the system is really waiting on user clarification;
  • an old summary still reflects a previous phase, while the current execution has already moved into a continuation round.

So when a user asks “where is it now?”, the first job is often not to read the summary, but to check the live runtime state.

Recent events tell you what the last few steps actually were

Runtime status can tell you whether a run is alive, but not always what it just did. That is where recent events become the closest factual layer.

Recent events usually reveal things like:

  • the latest completed step;
  • the current step title or summary;
  • the newest user-visible progress update;
  • the latest retry, skip, error, or pause;
  • the exact reason the task is currently waiting.

For example, a bare status field may only say:

  • running
  • waiting
  • queued

But recent events can translate that into something a human can actually use:

  1. the Chinese and English drafts are already written;
  2. npm run build is still running;
  3. website deployment finished and the run is now submitting URLs;
  4. OmniPost publishing is queued behind another desktop-bound task;
  5. the task is waiting for the user to restore a platform login.

Status enums give you the skeleton. Recent events give you the muscle and motion.

Real execution evidence answers the final question: did the result actually land?

Below runtime state and recent events sits the evidence layer.

This is where many execution systems fail. The dangerous mistake is not complete ignorance. It is treating any of the following as “done” when they are not:

  • “the next step is deployment,” even though deployment has not happened yet;
  • a command was launched, but no output artifact was verified;
  • a platform returned success, but no public URL was captured;
  • a desktop button was clicked, but the page is still a draft screen;
  • a summary says “completed,” but no file, commit, recordId, or published page confirms it.

So the last mile of status checking must always be evidence-driven when the answer matters. Examples include:

  • the target file really exists;
  • the build artifact is on disk;
  • the command exited with code 0;
  • the public URL is reachable;
  • the current run really produced the recordId, commit hash, or history entry you are talking about.

That is why GoWork does not let a summary stand in for execution evidence. A summary may describe a result, but it cannot substitute for the result itself.

A common mistake: confusing “where the conversation got to” with “where the task got to”

This is especially common in long or multi-round tasks.

Imagine that in a previous turn, the user and assistant discussed a plan like this:

  1. deploy the website;
  2. publish to four platforms;
  3. update logs and commit Git changes.

If you only read the conversation summary, you may conclude that the current task is in the deployment stage.

But the real situation might instead be:

  • deployment is already done and the task is now waiting on OmniPost;
  • website deployment and indexing are finished, but publishing is blocked by login expiry;
  • deployment failed and later stages never started;
  • those steps were only planned, not yet executed.

A summary remembers the thread of discussion, not which steps have actually happened. That is the core reason it should not be used alone as execution truth.

Why long-running tasks make summary-only reasoning worse

Because long tasks cross multiple phases, while summaries tend to preserve the high-level theme and drop the phase boundaries.

A long task may move through:

  1. understanding the goal;
  2. making a plan;
  3. executing phase one;
  4. hitting an error and recovering;
  5. handing off via continuation;
  6. executing phase two;
  7. reporting the final result.

For a task like that, a conversation summary usually preserves something broad such as “this is a content-publishing workflow” or “this is a desktop troubleshooting task.” But the user is not asking for the theme. They are asking:

  • whether the task has reached phase five yet;
  • which results are already verified;
  • whether the assistant is waiting on the user;
  • whether the live run has already moved into a continuation round.

Those are execution-stage facts, not chat-topic summaries.

Why recent events are better than summary for “where did it get to?”

Because recent events are naturally ordered around the present.

When a user asks “where is it now?”, “how did that run go?”, or “what is left?”, they need near-cause information, not an abstract overview. Recent events are better because they are:

  1. closer to now: less likely to confuse older context with the present state;
  2. more specific: they can tell you what just finished and what has not started;
  3. safer: they are typically read-only and do not retrigger execution;
  4. more explainable: they can be turned directly into a progress update a user understands.

That is why status questions in GoWork should usually read recent events before they touch tools, rerun commands, or rely on a chat summary alone.

When conversation summary is still useful

It is still valuable—just for a different job.

Conversation summary is especially useful when:

1. You need to recover the topic quickly

For example, the system receives a new message and needs to know whether the conversation is mainly about content publishing, desktop troubleshooting, or reminders. A summary is excellent for that.

2. You want a high-level recap

For example: “recently we have been focused on the website + OmniPost publishing loop.” That kind of abstraction belongs in a summary, not in recent events.

If the summary tells you the current thread is a content pipeline, the system knows to inspect the active run, recent events, build logs, and publishing records next—not some unrelated artifact.

So the issue is not that summaries are useless. The issue is that their job is orientation, not adjudication.

A more reliable order for status checking

If you are designing or using an execution-focused assistant, this order is much safer:

  1. Check runtime state first: is there an active run, and is it running, queued, waiting, or done?
  2. Read recent events next: what was the latest completed step, and why is the task here now?
  3. Check blockers and pending items: is it waiting on approval, clarification, a resource, or the user?
  4. Drill into evidence when needed: logs, files, pages, run history, recordIds, or commit hashes.

Conversation summary can help at the top as a directional hint, but it should not replace those four steps. The most dangerous pattern is:

  1. read only the summary;
  2. give the user a confident answer;
  3. maybe even trigger a new action to “confirm” it.

That pattern is how execution assistants become both inaccurate and intrusive.

Why summary-only reasoning gets worse with concurrent tasks

Because a single conversation may have multiple runs, while the summary often preserves only the dominant impression.

For example, one chat may simultaneously involve:

  • a desktop installation task still running;
  • a code fix that already completed;
  • a quick user status question inserted in between;
  • a scheduled task waiting for its next trigger.

If you only read the summary, you may confuse “the thing most discussed recently” with “the thing actively executing now.” Runtime state and recent events help you separate:

  • which run is alive;
  • which run is already complete;
  • which object the user’s follow-up most likely refers to;
  • whether there is a resource conflict or waiting reason.

As soon as concurrency appears, the compression advantage of summary quickly turns into a source of ambiguity.

One practical rule to keep

If the user is asking “where is it now?”, do not build the answer from conversation summary alone.

A safer approach is:

  1. use the summary to recover the topic;
  2. use runtime status to inspect execution health;
  3. use recent events to reconstruct recent progress;
  4. use evidence to confirm whether key results actually landed.

For an execution assistant, the summary tells you what the chat is about, runtime and events tell you what is happening now, and evidence tells you what has really happened. Once those layers are collapsed into one, status reporting turns into guesswork.

FAQ

1. Is conversation summary useless then?

No. It is valuable for topic recovery, high-level recaps, and routing the system toward the right evidence source. The problem is not the existence of summary; it is treating summary as live execution truth.

2. When a user asks “where is it now?”, what should the assistant read first?

Usually the active run’s runtime state and recent events. The user wants current progress, not merely the topic of the conversation.

3. What is the difference between recent events and run archives?

Recent events are about “now and just now,” so they are ideal for current status answers. Run archives are for full history, such as when the user asks what exactly happened in an earlier run or where a past failure occurred.

4. When should the assistant drill down to the evidence layer?

Whenever a key result needs confirmation: whether a file exists, a build artifact was produced, a command exited successfully, a page is publicly available, or a commit hash and record really belong to the run being discussed.

5. Why does this boundary affect product trust so directly?

Because users can tell whether the assistant is reporting real state or inferring it from a vague summary. The former feels like a reliable operator. The latter feels like impression management.

If you are building an assistant that both chats and executes, GoWork’s model is simple: use summary for orientation, then answer with runtime state, recent events, and real evidence. If you want to bring that pattern into DingTalk, Feishu, Telegram, or your own workflow, start with GoWork: https://omnigoai.com/en/download/gowork/

#GoWork#runtime status#recent events#AI assistants

More from the journal

11 min

Why long tasks need continuation rounds

Learn why GoWork pairs assistant continuation rounds with handoff summaries: when to declare continuation, what a usable handoff must contain, and why this is more reliable than merely saying “I will continue next round.”

Read
10 min

Why assistant systems need a global concurrency gate

Parallel tasks do not mean every action should run at once. This article explains why execution-oriented AI assistants need a global concurrency gate to separate safe parallel work, exclusive resources, course corrections, and read-only status requests.

Read