betterbird: never lose an unsent message, never answer an address, and keep the test apart (review of #155)
mesh/merge-gate pass: builds new: modules/betterbird, sent nowhere; no bus step; every machine composes with the change as it did without (4 of 4 compose)
mesh/repo-check pass: its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)
mesh/delivery superseded: a newer head of the same pull request
mesh/merge-gate pass: builds new: modules/betterbird, sent nowhere; no bus step; every machine composes with the change as it did without (4 of 4 compose)
mesh/repo-check pass: its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)
mesh/delivery superseded: a newer head of the same pull request
A restart ended Betterbird with whatever a composer held; now it refuses while a Msgcompose window is open unless discard_unsent says the operator agreed, and answers within the runtime's 30 s. A preference's value could carry an address, a user%40domain@host URI, a host or the home; those are masked, recent-folder, account and cloud-file preferences and every add-on preference but the theme's id are withheld, and a request for everything is refused. A log kept the token after Bearer or Basic. The reminder test's Betterbird counted as the operator's and left its profile behind when it ended on its own; it is now left out everywhere and its unit removes the profile when it stops.
This commit is contained in:
@@ -100,11 +100,21 @@ func tools() []stdio.Tool {
|
||||
},
|
||||
{
|
||||
Name: "betterbird_restart",
|
||||
Description: "End Betterbird (asked to quit, forced after 20 s), place the module's user.js when the profile " +
|
||||
Description: "End Betterbird (asked to quit, forced after 10 s), place the module's user.js when the profile " +
|
||||
"allows it, and start Betterbird again in the operator's desktop session under the account's service " +
|
||||
"manager (unit mesh-betterbird), its output in the journal. An unsent message in a composer is lost: ask " +
|
||||
"the operator first. Answers the pids ended and the new main process. (a)",
|
||||
Run: func(map[string]any) (any, error) { return machine.Restart() },
|
||||
"manager (unit mesh-betterbird), its output in the journal. Refused while a message is being written " +
|
||||
"(a composer window is open), because the unsent message would be lost, unless discard_unsent is true — " +
|
||||
"ask the operator first. Answers the pids ended and the new main process. (a)",
|
||||
Input: map[string]any{
|
||||
"discard_unsent": map[string]any{"type": "boolean", "description": "restart even with a composer open, losing what it holds (default false)"},
|
||||
},
|
||||
Run: func(args map[string]any) (any, error) {
|
||||
discard, err := flag(args, "discard_unsent", false)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return machine.Restart(discard)
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "betterbird_check",
|
||||
|
||||
Reference in New Issue
Block a user