Show Postulo's state as an icon before the instance address in the popup footer #6

Open
opened 2026-10-01 07:21:57 +00:00 by tiagoagueda · 0 comments
Owner

The list asks, for the popup: "On the bottom, before URL of Postulo instance a status icon: green V for online, orange 'something' for unresponsive (<1s), red X for offline but not in testing mode, gray something in testing mode."

The item was written for the browser extension and copied into this list. Read for Thunderbird, two of its words mean something more here. "Testing mode" is a switch the browser extension has and this one does not yet. And "offline" is also a mode of Thunderbird's own (File → Offline → Work Offline), in which no request leaves at all.

The skeleton's footer shows the instance's address once it is set, and the settings gear. It knows nothing about whether Postulo answers, and it has no testing mode: the browser extension's switch, "Act as if Postulo cannot be reached", was not carried over.

What the extension should do

  • A connection state, as postulo/postulo-chromium#4 defines it for the browser extension: not set up, testing, no permission, token refused, unreachable, reachable. That list has no item for a grey toolbar icon here, so this issue owns the state for Thunderbird. The module should be the browser extension's, shared through shared.json.
  • The check: GET /healthz on the instance, which is public and costs Postulo almost nothing, timed when the popup opens.
  • The four states the list names, each with its own shape and named in words, never by colour alone: a green tick when Postulo answered within a second; orange when it is slow; a red X when it cannot be reached; grey when the testing switch is on.
  • The testing switch in the settings, as the browser extension has it, since "testing mode" needs one.
  • An orange that passes its contrast check in light and dark; the shared stylesheet has no such colour yet.

Decisions

  • What "unresponsive (<1s)" means. Recommended, as in postulo/postulo-chromium#9: orange when Postulo answered but took longer than a second, or has not answered after a second while the wait goes on; red when nothing came at all.
  • States the list does not name: not set up, permission missing, token refused. Recommended: as that issue proposes, each said in words.
  • Thunderbird working offline. Postulo may be up; it is Thunderbird that sends nothing. Recommended: its own state, said in words ("Thunderbird is working offline"), with no check made while it lasts, and not the red X, which would blame Postulo. navigator.onLine says so; whether it follows Work Offline in an extension's pages is not checked.
  • A grey toolbar button too. Not asked for here. Recommended: leave it out unless wanted; the state would be ready for it.

Needs from the server

Nothing: /healthz exists. Not filed on postulo/postulo.

Done when

  • With Postulo answering quickly, the footer shows a green tick named in words; with it stopped, a red X; with the testing switch on, grey, and no request is made.
  • With Thunderbird working offline, the footer says so and makes no request.
  • A screen reader says the state.
  • The state is a pure function tested with node --test.
  • test/i18n.test.mjs requires every new key in every language the extension ships, with identical placeholders: three today, more once #7 lands.

From the list of Thunderbird extension improvements of 2026-09-30.

The list asks, for the popup: "On the bottom, before URL of Postulo instance a status icon: green V for online, orange 'something' for unresponsive (<1s), red X for offline but not in testing mode, gray something in testing mode." The item was written for the browser extension and copied into this list. Read for Thunderbird, two of its words mean something more here. "Testing mode" is a switch the browser extension has and this one does not yet. And "offline" is also a mode of Thunderbird's own (*File → Offline → Work Offline*), in which no request leaves at all. The skeleton's footer shows the instance's address once it is set, and the settings gear. It knows nothing about whether Postulo answers, and it has no testing mode: the browser extension's switch, "Act as if Postulo cannot be reached", was not carried over. ## What the extension should do - **A connection state**, as postulo/postulo-chromium#4 defines it for the browser extension: not set up, testing, no permission, token refused, unreachable, reachable. That list has no item for a grey toolbar icon here, so this issue owns the state for Thunderbird. The module should be the browser extension's, shared through `shared.json`. - **The check**: `GET /healthz` on the instance, which is public and costs Postulo almost nothing, timed when the popup opens. - **The four states the list names**, each with its own shape and named in words, never by colour alone: a green tick when Postulo answered within a second; orange when it is slow; a red X when it cannot be reached; grey when the testing switch is on. - **The testing switch** in the settings, as the browser extension has it, since "testing mode" needs one. - An orange that passes its contrast check in light and dark; the shared stylesheet has no such colour yet. ## Decisions - **What "unresponsive (<1s)" means.** Recommended, as in postulo/postulo-chromium#9: orange when Postulo answered but took longer than a second, or has not answered after a second while the wait goes on; red when nothing came at all. - **States the list does not name**: not set up, permission missing, token refused. Recommended: as that issue proposes, each said in words. - **Thunderbird working offline.** Postulo may be up; it is Thunderbird that sends nothing. Recommended: its own state, said in words ("Thunderbird is working offline"), with no check made while it lasts, and not the red X, which would blame Postulo. `navigator.onLine` says so; whether it follows *Work Offline* in an extension's pages is not checked. - **A grey toolbar button too.** Not asked for here. Recommended: leave it out unless wanted; the state would be ready for it. ## Needs from the server Nothing: `/healthz` exists. Not filed on postulo/postulo. ## Done when - With Postulo answering quickly, the footer shows a green tick named in words; with it stopped, a red X; with the testing switch on, grey, and no request is made. - With Thunderbird working offline, the footer says so and makes no request. - A screen reader says the state. - The state is a pure function tested with `node --test`. - `test/i18n.test.mjs` requires every new key in every language the extension ships, with identical placeholders: three today, more once #7 lands. From the list of Thunderbird extension improvements of 2026-09-30.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Postulo/postulo-thunderbird#6
No description provided.