You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(relay): stream deploy logs and invalidate Docker placeholder cache
Docker rebuild left libbitfun_relay_service artifacts from the empty
placeholder crate, so relay-admin failed to find db/admin. Also make
detached deploy logs line-buffered and pollable so the wizard shows
progress while the remote build runs.
# Relay Deploy: Live Logs + Docker Cache Invalidation
2
+
3
+
**Date:** 2026-07-19
4
+
**Status:** Approved for implementation
5
+
6
+
## Problems
7
+
8
+
1. Deploy wizard log pane stays empty until the remote task finishes or fails.
9
+
2. Docker image rebuild fails with `cannot find db/admin in bitfun_relay_service`.
10
+
11
+
## Root Causes
12
+
13
+
1. Detached `nohup` redirects stdout to a file (full buffering); poll splitter is fragile on CRLF; frontend `setInterval` delays the first poll and can overlap.
14
+
2. Dockerfile dependency-cache cleanup uses `deps/bitfun_relay_service*`, which does not match Cargo artifacts `libbitfun_relay_service-*`; the second build links the empty placeholder crate.
15
+
16
+
## Design
17
+
18
+
### Docker
19
+
20
+
In `src/apps/relay-server/Dockerfile`, invalidate placeholder artifacts with globs `*bitfun_relay_service*`, `*bitfun_relay_server*`, `*relay_admin*`, remove matching `.fingerprint` dirs, and `touch` real sources before the second `cargo build`.
21
+
22
+
### Live logs
23
+
24
+
- Launch detached tasks with `stdbuf -oL -eL` when available.
25
+
- Set `BUILDKIT_PROGRESS=plain` (and compose `--progress=plain` when supported).
26
+
- Split poll stdout on `---\n`, `---\r\n`, or a trimmed `---` line.
27
+
- Frontend: immediate first poll + serial `setTimeout` chain; seed a waiting line via i18n.
Copy file name to clipboardExpand all lines: src/web-ui/src/locales/en-US/common.json
+1Lines changed: 1 addition & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -590,6 +590,7 @@
590
590
"startDeploy": "Start Deployment",
591
591
"deployingTitle": "Deploying relay server…",
592
592
"deployingHint": "The first build compiles Rust in Docker and can take several minutes. The deployment continues on the server even if you close this window.",
593
+
"waitingRemoteOutput": "Waiting for remote output…",
0 commit comments