Skip to content

board: topics/imperial-canal (card e1c9fe07) - #81

Draft
zorahrel wants to merge 14 commits into
mainfrom
topics/imperial-canal
Draft

zorahrel wants to merge 14 commits into
mainfrom
topics/imperial-canal

Conversation

@zorahrel

Copy link
Copy Markdown
Contributor

Draft opened by the Topics board for commit ff36412 of card e1c9fe07, to read the pull request CI (e2e jobs, unit tests). Not a request to merge: a person marks it ready when the card lands.

A restart cut twelve cards mid turn. Their panes showed
"Session ended" and nothing else, while the cards stayed in
progress on the board: to whoever was watching, the pane was
stuck, with no cause, no clock and no way back to the card.

The pane knew its topic and stopped there. It now asks the
server which card was working in that topic, and the answer
carries the three facts that were already recorded and never
shown: the shutdown that cut it, the queue reason the
dispatcher wrote, and the topic where the card started over.

The link back is not only the card's current binding: a card
released and reclaimed elsewhere leaves the old topic pointing
at nothing, so the resolver falls back to the attempt history,
which is where that topic is still written down.

One line above the Resume button, and one after the ended
banner. When no card can be found the veil is what it was
yesterday, which is also the fourth e2e case.
# Conflicts:
#	scripts/bloat-baseline.json
The fourth branch of the cause line was missing: a session that exited on its
own showed the veil with its type, cwd and id, and never the one number anyone
could act on. The bridge already reported it and it died in the handler.

The code now rides the WebSocket close reason (encodeExitReason), in both
moments it can be known: the exit the pane witnesses, and a handshake against a
row parked earlier, which reads it off the new exit_code column. Absent, not
zero, when the bridge gave none. It sits last in the precedence: a 143 under a
restart that cut the turn would describe the kill, not the cause.

The line is now drawn by BOTH veils, dormant and stale: a cause shown in one
and missing from the other is how it stayed invisible for the exit case.

Also here: the four e2e annotated TERM-11 while the file covers TERM-12, and
the bundle baseline goes to the measured value, which is what turned the
delivery's CI red for twenty-eight bytes.
The auto-revive relaunched a session that had just died by itself, which
erased the veil before anybody could read the code on it. A known exit
code now stops the revive: the veil stays, says the code, and the Riprendi
button makes waking it up a choice.
`taskIdOfTopic` aveva il suo unit test e l'overlay il suo e2e, ma fra i due
l'e2e stubba proprio questa URL (`page.route("**/by-topic/**")`), quindi
l'handler era l'unico anello che nessun test chiamava: cancellato il blocco
intero da `tasks.ts`, 167 test di rotta e di servizio restavano verdi mentre
la riga di causa moriva in produzione.

E il commento che giustificava l'ordine era falso: `matchRoute` confronta
PRIMA il numero di segmenti, e sei non puo' mai combaciare con cinque, quindi
`:taskId` non avrebbe mai inghiottito `by-topic`. Ora l'ordine e' dichiarato
libero e il test lo fissa seminando una card che si chiama davvero "by-topic".
…-review

# Conflicts:
#	scripts/bloat-baseline.json
#	scripts/bundle-baseline.json
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant