fix alerts reconnect backoff and clipboard availability checks
release / build (push) Successful in 1m12s

This commit is contained in:
lda committed 2026-10-01 14:55:26 +07:00 Verified
1 parent 5d77b9aeb2
commit 53c274dbe8
4 files changed
+11

No files matched your search

+1
View File
@@ -2,6 +2,7 @@
# schema on each build, so the .sqlx cache is only needed for DB-less builds.
# Run scripts/prepare_sqlx_sqlite.sh once first — it creates and migrates the DB.
# Use an absolute path so builds work from any working directory.
# Replace the placeholder below with the DATABASE_URL printed by the script.
DATABASE_URL=sqlite:///absolute/path/to/wakey-prepare.sqlite3
# Offline mode (CI / packaging): force the committed .sqlx cache.
+1
View File
@@ -24,3 +24,4 @@ cp .sqlx/*.json wakey-control-plane/.sqlx/
echo "SQLx metadata prepared in $ROOT/.sqlx"
echo "SQLx package metadata mirrored in $ROOT/wakey-control-plane/.sqlx"
echo "Prepare DB (referenced by .env for live compile-time checking): $DB"
echo "DATABASE_URL=$DATABASE_URL"
+1
View File
@@ -207,6 +207,7 @@ export function App() {
// Only a connection that stayed up proves the stream is healthy; an
// accept-then-close server must not pin us to the first backoff step.
if (openedAt && Date.now() - openedAt > 10_000) attempt = 0;
openedAt = 0;
// Browsers never reconnect a WebSocket on their own.
const delay =
Math.min(30_000, 1000 * 2 ** attempt) + Math.random() * 1000;
+8
View File
@@ -172,6 +172,10 @@ export function useXterm({ pageRef, hostRef }: Options) {
toast.info("Nothing to copy");
return;
}
if (!navigator.clipboard) {
toast.error("Clipboard access requires HTTPS or localhost");
return;
}
try {
await navigator.clipboard.writeText(text);
toast.success(
@@ -184,6 +188,10 @@ export function useXterm({ pageRef, hostRef }: Options) {
}
}, []);
const paste = useCallback(async (writeData: (data: string) => void) => {
if (!navigator.clipboard) {
toast.error("Clipboard access requires HTTPS or localhost");
return;
}
try {
const text = await navigator.clipboard.readText();
if (text) writeData(text);