• Joined on 2021-11-21
logan pushed to main at logan/server-26 2026-08-20 03:14:40 -04:00
a250c29e3c Add AI provider degradation registry and alerting (server-26#14)
logan closed issue logan/server-26#14 2026-08-20 03:14:40 -04:00
No alerting when an AI provider account runs dry or a model is retired
logan commented on issue logan/node-26#3 2026-08-20 03:13:51 -04:00
Icecast ships a default source password of "hackme" in three places

Fixed in e6aab75.

Every fallback is gone rather than replaced with a better default:

  • icecast/entrypoint.sh refuses to start if either password is empty and prints how to generate one. This…
logan pushed to main at logan/node-26 2026-08-20 03:13:12 -04:00
fb13bb8ae3 Pin *.sh to LF so Windows checkouts cannot ship a CRLF shebang
logan pushed to main at logan/node-26 2026-08-20 03:12:47 -04:00
e6aab7589a Stop shipping "hackme" as the Icecast password
logan closed issue logan/node-26#3 2026-08-20 03:12:47 -04:00
Icecast ships a default source password of "hackme" in three places
logan commented on issue logan/server-26#3 2026-08-20 03:08:39 -04:00
Billing UI is mock data and shows every org a fabricated trial

Correcting this issue — I overstated it when filing, and the overstatement is the reason it looked urgent.

The fixture is real: lib/billing.ts:142 still defines SAMPLE_SUBSCRIPTION with a…

logan commented on issue logan/server-26#12 2026-08-20 03:08:39 -04:00
upload.py compares node API keys with != instead of secrets.compare_digest

Fixed in 5355095. /upload now uses secrets.compare_digest, matching what enrollment.py and dynsec.py already did for the same class of credential.

One thing the fix added beyond the…

logan closed issue logan/server-26#12 2026-08-20 03:08:22 -04:00
upload.py compares node API keys with != instead of secrets.compare_digest
logan pushed to main at logan/server-26 2026-08-20 03:08:22 -04:00
5355095c48 Compare node API keys in constant time on /upload
logan pushed to main at logan/server-26 2026-08-20 03:06:49 -04:00
6dfa5bc66d fix: repair 10 stale tests in test_mqtt_handler.py and test_node_sweeper.py
logan closed issue logan/server-26#10 2026-08-20 03:06:49 -04:00
10 pre-existing test failures in test_mqtt_handler and test_node_sweeper
logan opened issue logan/server-26#20 2026-08-20 03:06:27 -04:00
CORS defaults to "*" while allow_credentials is True
logan opened issue logan/node-26#3 2026-08-20 03:06:26 -04:00
Icecast ships a default source password of "hackme" in three places
logan commented on issue logan/node-26#1 2026-08-20 03:04:53 -04:00
node-002 dashboard is still on first-boot default credentials

Re-scoping: the code side is done. What remains is operational.

drb-edge-node/app/internal/auth.py implements exactly what this issue asked for — username/password from DASHBOARD_USERNAME…

logan closed issue logan/node-26#2 2026-08-20 03:04:53 -04:00
Audio regression: Discord voice and call recording pull from Icecast instead of PulseAudio
logan commented on issue logan/node-26#2 2026-08-20 03:04:53 -04:00
Audio regression: Discord voice and call recording pull from Icecast instead of PulseAudio

Already fixed in the code — this issue was filed from CLAUDE.md and memory rather than from source, and both were stale.

Both paths are on PulseAudio now:

  • discord_radio.py builds its…
logan pushed to main at logan/node-26 2026-08-20 03:03:08 -04:00
28266b4441 Pin the op25 container to a Python major version
logan closed issue logan/server-26#8 2026-08-20 03:02:55 -04:00
POST /calls/{id}/reprocess is unmetered spend for any authenticated user
logan commented on issue logan/server-26#11 2026-08-20 03:02:55 -04:00
Unpinned base images: Python major version can change on rebuild

Fixed in the client repo — logan/node-26 commit 28266b4, "Pin the op25 container to a Python major version". Filing it under server-26 was wrong; the offending file is `Client/op25-contain…