You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
emrg: the feishu template gives a round no way to tell an empty inbox from an unreadable one #2621
emrg/server/feishu_prompt.md §1 ends with one sentence about empty rounds: "A round that reads nothing must say so." The template never says how a round is supposed to know that the round it just had was empty rather than blind.
That distinction is not academic. A listing (im +chat-messages-list) that comes back with zero messages is the same answer in four different situations:
the conversation really has nothing new;
the identity resolved to the wrong account, so the call read a conversation that is not the host's;
a token valid under one HOME reads missing under another — the template already says this symptom exists (§1, the missing identity bullet) but treats it only as a blocked item;
the index is lagging, which the template names for im +messages-search only, and only to say that the search "can never establish that nothing came back".
The round therefore has a report it is instructed to make ("nothing arrived") and no instrument that earns it. Reported as-is, that sentence is indistinguishable from a checked one, and this task's entire product is the difference between a quiet inbox and an unread one.
What the fix must satisfy
The rule belongs in §1 of emrg/server/feishu_prompt.md, which owns reading — not appended as a new section, and not duplicated in §4's report requirements.
It states the general method: before an empty answer is reported, one conversation known to hold messages is read, and only a call that returns them shows the interface works — so that "nothing new" then means nothing arrived rather than nothing was readable.
How often that check runs is a per-installation tuning decision and stays out of the template.
A test names the requirement, both in the template file and in the render that a round is actually sent: the template is Jinja2, so a construct can keep every character in the file and send none of them.
Activity
argszero commentedon Oct 28, 2026
Handled by #2622