Skip to content

Commit c48899c

Browse files
Ark07Yadclaude
andcommitted
Default the dashboard back to port 8000
The smishing-web backend that held it has been stopped, so the race-day script matches the CLI and the README again. The preflight check stays, and it is the part that mattered: a port that cannot be bound kills the engine at launch, which for this script is hours after it was started and with the race already running. It now names what is holding the port and takes a free one as its sixth argument. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1 parent 0fd37c7 commit c48899c

2 files changed

Lines changed: 14 additions & 11 deletions

File tree

‎docs/RACE_DAY.md‎

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,22 @@ Qualifying finished 16:00–17:00 CEST on Saturday and the feed already reports
2222
## One command
2323

2424
```bash
25-
nohup ./scripts/race_day.sh "2026-08-23 13:45" 2026-netherlands-race "2026 Dutch GP" "" 195 8010 &
25+
nohup ./scripts/race_day.sh "2026-08-23 13:45" 2026-netherlands-race "2026 Dutch GP" "" 195 &
2626
```
2727

2828
Arguments: start time (local), recording basename, ledger session name, TLA to advise (empty = the
2929
race leader), minutes to run, dashboard port.
3030

3131
That is **one process holding one connection**, which records the raw frames, folds them into race
3232
state, fits the models, publishes a call every lap, and commits each call to the ledger as it is
33-
made. The dashboard is at <http://127.0.0.1:8010>.
33+
made. The dashboard is at <http://127.0.0.1:8000>.
3434

35-
⚠️ **Port 8010, not the CLI's default 8000.** This machine has the SmishingGuard API (the
36-
`smishing-web` backend) listening on 8000 and has done since 5 August. Uvicorn cannot bind a taken
37-
port, so on 8000 the engine would die the instant it started — hours after launch, with the race
38-
under way. The script refuses to start if the port is busy rather than discovering it later.
35+
The port is the optional 6th argument. The script **refuses to start if it is already in use**,
36+
checked before the wait rather than at launch — uvicorn cannot bind a taken port, so a clash would
37+
kill the engine the instant it finally started, hours later with the race under way. This is not
38+
hypothetical: the `smishing-web` backend held 8000 for seventeen days until it was stopped on the
39+
eve of this race. If something is on 8000 again, pass a free port instead:
40+
`... "2026 Dutch GP" "" 195 8010`.
3941

4042
**Do not also run `scripts/record.py`.** It would open a second connection to an undocumented
4143
endpoint from one address, which is exactly what this project's disclaimer promises not to do. The
@@ -69,7 +71,7 @@ Check the dashboard in the first few laps:
6971
| `ledger.written` | rising by one per lap, once calls begin |
7072
| `ledger.commits_failed` | **0** |
7173

72-
`curl -s http://127.0.0.1:8010/api/state | python -m json.tool` if the browser is inconvenient.
74+
`curl -s http://127.0.0.1:8000/api/state | python -m json.tool` if the browser is inconvenient.
7375

7476
### Things that look broken and are not
7577

@@ -124,7 +126,7 @@ The `--session` name must be identical or you get a second ledger file.
124126

125127
```bash
126128
.venv/bin/pitwall dashboard --record data/raw/2026-netherlands-race.txt \
127-
--log-predictions --session "2026 Dutch GP" --port 8010
129+
--log-predictions --session "2026 Dutch GP"
128130
```
129131

130132
**Commits failing** (`ledger.commits_failed` climbing). The predictions are still on disk; only the

‎scripts/race_day.sh‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@
1111
# Arguments: start time (local), recording basename, ledger session name, the
1212
# TLA to advise (blank = the leader), minutes to run, and the dashboard port.
1313
#
14-
# The port defaults to 8010 rather than the CLI's 8000, because this machine has
15-
# another project's API listening on 8000. Binding is checked before the wait.
14+
# The port is checked before the wait rather than at launch: uvicorn cannot bind
15+
# a taken port, so a clash would kill the engine the instant it finally started -
16+
# hours later, with the race under way and no second chance at it.
1617
#
1718
# Deliberately NOT run alongside scripts/record.py. That would open a second
1819
# connection to an undocumented endpoint from one address, which is exactly the
@@ -28,7 +29,7 @@ BASENAME="${2:?missing recording basename}"
2829
SESSION="${3:?missing ledger session name}"
2930
DRIVER="${4:-}"
3031
MINUTES="${5:-195}"
31-
PORT="${6:-8010}"
32+
PORT="${6:-8000}"
3233

3334
REPO="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
3435
OUTPUT="${REPO}/data/raw/${BASENAME}.txt"

0 commit comments

Comments
 (0)