Evolu Relay 0.5.1: de melding bovenaan ging nooit weg
Gemeld door de gebruiker binnen een uur na 0.5.0, op de pagina op zijn eigen Umbrel. "Sent. The relay applies changes within a few seconds." bleef staan tot je de pagina herlaadde, dus ook lang nadat hij niet meer waar was. Een ontbrekende tak: de ronde die elke vijf seconden loopt zette de melding wel aan maar nooit uit. De regel die daaruit volgt en die in het commentaar staat: de melding hoort van de RONDE te zijn en niet van de klik, want alleen de ronde weet of hij nog waar is. Hij verdwijnt nu zodra het relay-proces de opdracht heeft opgepakt, en blijft staan zolang de opdracht in de postbus ligt. Dat is het geval waarin er iets te melden valt, want normaal duurt dat twee seconden. Een weigering is de uitzondering en blijft staan tot de volgende opdracht: het is de enige uitleg die je krijgt van wat er misging, en die mag niet binnen vijf seconden verdwijnen. Met een vlag en niet door naar de klasse van het element te kijken, zoals de vorige versie van deze pagina deed; dan hangt gedrag aan een naam die er ook om opmaakredenen kan staan. Bijvangst: die weigering stond in de neutrale stijl en is nu rood. Een geweigerde opdracht in de neutrale stijl leest als een mededeling. Alleen index.html.template geraakt, dus geen nieuwe image: build.sh blijft op 0.5.0 en het manifest gaat naar 0.5.1. De changelog beweerde sinds diezelfde ochtend dat die twee nummers gelijk gehouden worden; de regel is dat een hogere VERSION een hoger manifest vraagt en niet andersom. Rechtgezet. Beide gedragingen zijn in een browser nagegaan tegen de voorbeeldweergave: de bevestiging is na zeven seconden verborgen, de weigering staat er dan nog. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -685,6 +685,19 @@ body {
|
||||
// waarin je typt weghalen.
|
||||
var editing = null;
|
||||
|
||||
// Staat er een weigering in de melding bovenaan?
|
||||
//
|
||||
// Waar dit voor is: de ronde ruimt die melding zelf op zodra hij niet meer waar
|
||||
// is, en dat is precies goed voor "de opdracht is verstuurd". Maar een weigering
|
||||
// mag niet binnen vijf seconden verdwijnen: dan is de enige uitleg van wat er
|
||||
// misging weg voordat je hem gelezen hebt. Vandaar deze vlag; de ronde laat de
|
||||
// melding met rust zolang hij aanstaat.
|
||||
//
|
||||
// Als vlag en niet door naar de klasse van het element te kijken. Dat laatste
|
||||
// deed de vorige versie van deze pagina, en dan hangt het gedrag aan een naam in
|
||||
// een class-attribuut die er ook om opmaakredenen kan staan.
|
||||
var refusal = false;
|
||||
|
||||
// De resterende seconden van het tijdvenster, zoals de agent ze doorgaf, en het
|
||||
// moment waarop dat was. Daartussen telt de pagina zelf af, zodat de teller
|
||||
// loopt in plaats van elke vijf seconden te verspringen.
|
||||
@@ -708,10 +721,14 @@ body {
|
||||
}
|
||||
}
|
||||
|
||||
function show(id, text) {
|
||||
function show(id, text, kind) {
|
||||
var node = el(id);
|
||||
var body = el(id + '-body');
|
||||
if (body && text) { body.textContent = text; }
|
||||
if (kind) {
|
||||
node.classList.remove('alert-neutral', 'alert-warn', 'alert-error');
|
||||
node.classList.add(kind);
|
||||
}
|
||||
node.classList.remove('hidden');
|
||||
}
|
||||
|
||||
@@ -822,21 +839,35 @@ body {
|
||||
});
|
||||
}).then(function (result) {
|
||||
if (!result.ok) {
|
||||
show('alert-notice', 'The app refused that: ' + (result.body.error || 'no reason given'));
|
||||
refusal = true;
|
||||
show('alert-notice', 'The app refused that: ' + (result.body.error || 'no reason given'),
|
||||
'alert-error');
|
||||
} else if (whenDone) {
|
||||
whenDone();
|
||||
}
|
||||
}, function () {
|
||||
show('alert-notice', 'Could not reach the app.');
|
||||
refusal = true;
|
||||
show('alert-notice', 'Could not reach the app.', 'alert-error');
|
||||
});
|
||||
}
|
||||
|
||||
// Elke opdracht begint met een schone lei bovenaan: een weigering van de vorige
|
||||
// poging hoort niet boven het resultaat van deze te blijven staan.
|
||||
function clearNotice() {
|
||||
refusal = false;
|
||||
hide('alert-notice');
|
||||
}
|
||||
|
||||
function send(command) {
|
||||
if (busy) { return; }
|
||||
busy = true;
|
||||
hide('alert-notice');
|
||||
clearNotice();
|
||||
// De melding is met opzet kort van leven: de ronde hieronder haalt hem weg
|
||||
// zodra het relay-proces de opdracht heeft opgepakt, en dan is de nieuwe stand
|
||||
// in de kaders zelf te zien. Blijft hij staan, dan heeft de relay hem nog
|
||||
// niet gezien, en dán is er iets te melden.
|
||||
post('api/command', command, function () {
|
||||
show('alert-notice', 'Sent. The relay applies changes within a few seconds.');
|
||||
show('alert-notice', 'Sent. The relay applies changes within a few seconds.', 'alert-neutral');
|
||||
}).then(function () {
|
||||
busy = false;
|
||||
window.setTimeout(refresh, 2500);
|
||||
@@ -844,7 +875,7 @@ body {
|
||||
}
|
||||
|
||||
function sendLabel(ownerId, label) {
|
||||
hide('alert-notice');
|
||||
clearNotice();
|
||||
// Geen busy-slot hieromheen, en dat is geen vergetelheid: een label gaat niet
|
||||
// via de postbus van het relay-proces maar rechtstreeks naar een eigen bestand
|
||||
// van de agent. Er is dus niets waarop het hoeft te wachten.
|
||||
@@ -1173,8 +1204,22 @@ body {
|
||||
hide('alert-owners');
|
||||
}
|
||||
|
||||
if (status.pendingCommand) {
|
||||
show('alert-notice', 'A command is waiting for the relay to pick it up.');
|
||||
// De melding bovenaan is van deze ronde, niet van de klik die hem opriep.
|
||||
// Hier stond alleen de tak die hem aanzet, en dus bleef "Sent." staan tot je
|
||||
// de pagina herlaadde; gemeld door de gebruiker op 30-08-2026.
|
||||
//
|
||||
// Een weigering is de uitzondering en wordt overgeslagen: die mag niet binnen
|
||||
// vijf seconden verdwijnen, want dan is de enige uitleg van wat er misging weg
|
||||
// voordat je hem gelezen hebt. Hij gaat weg bij de volgende opdracht.
|
||||
if (!refusal) {
|
||||
if (status.pendingCommand) {
|
||||
// Ligt de opdracht er nog, dan heeft het relay-proces hem niet opgepakt.
|
||||
// Dat is het geval waarin een melding écht iets toevoegt: normaal is dat
|
||||
// binnen twee seconden gebeurd.
|
||||
show('alert-notice', 'A command is waiting for the relay to pick it up.', 'alert-neutral');
|
||||
} else {
|
||||
hide('alert-notice');
|
||||
}
|
||||
}
|
||||
}, function () {
|
||||
show('alert-agent');
|
||||
|
||||
@@ -11,7 +11,7 @@ manifestVersion: 1
|
||||
id: whatsnext-evolu-relay
|
||||
category: files
|
||||
name: Evolu Relay
|
||||
version: "0.5.0"
|
||||
version: "0.5.1"
|
||||
tagline: Encrypted sync and backup for your local-first apps
|
||||
description: >-
|
||||
Local-first apps keep your data on your own device and work whether or not you have a
|
||||
@@ -43,6 +43,15 @@ description: >-
|
||||
your app at the address shown there. Away from home you will need a way in, such as Tailscale
|
||||
or a reverse proxy with your own domain.
|
||||
releaseNotes: >-
|
||||
Fixes a message at the top of the page that never went away. Confirming that a command was sent is worth
|
||||
saying for a second or two, but it stayed until you reloaded the page, so it was still there long after it
|
||||
stopped being true. It now clears itself as soon as the relay has picked the command up. A refusal is the
|
||||
exception and stays put: that is the only explanation you get of what went wrong.
|
||||
|
||||
|
||||
Everything in 0.5.0, released the same day:
|
||||
|
||||
|
||||
Accepting a new owner is now a two minute window instead of a switch you have to remember to turn
|
||||
back off. Open it, pair your device, and it closes on its own; you can close it early or restart the
|
||||
two minutes if you need longer. The countdown runs on the Umbrel, so closing the page does not leave
|
||||
|
||||
Reference in New Issue
Block a user