diff options
| author | Craig Jennings <c@cjennings.net> | 2026-07-28 18:50:08 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-07-28 18:50:08 -0500 |
| commit | 43a4cf73959e4f78bacbe5b3b40dde479377f9ff (patch) | |
| tree | 0b9ea7fd68b9e0ef07e4bf13fae926ff601f3ee2 /claude-rules/docs-lifecycle.md | |
| parent | bff01385a17fd8435f202d70362db13a139774d6 (diff) | |
| download | rulesets-43a4cf73959e4f78bacbe5b3b40dde479377f9ff.tar.gz rulesets-43a4cf73959e4f78bacbe5b3b40dde479377f9ff.zip | |
fix(triage): report a dead server after loadChats, not a quiet account
The load call returned 'loaded whatever happened. ignore-errors catches nothing there, because a bad argument kills the server process rather than signalling in elisp. A death during the load was invisible. The tail now returns 'server-died when the server is gone, and the recipe treats that as SCAN FAILED.
A dead server leaves a thin chat hash, and a thin hash reads exactly like an account with little unread. That's the false all-clear the down/not-loaded rule already guards against, arriving one step later in the lifecycle. It's also the independent evidence the gotcha asks for when it says to treat a short chat list as a real short list. Without it the loadChats crash stayed invisible through two investigations.
I used telega-server-live-p, the wrapper for the process-live-p expression the gotcha names. The fboundp guard comes from Step 0, which uses the same pair. A launch that failed outright leaves telega unloaded, and that should read as 'server-died rather than signalling void-function.
Diffstat (limited to 'claude-rules/docs-lifecycle.md')
0 files changed, 0 insertions, 0 deletions
