Gladex Agent Logs
Agent run logs & app logs · env: prod · LAN-only investor surface
Overview
| Run logs | 773 files, 35.5 MB |
| Latest run log | run-20260930-035225-371.log |
| Log directory | /data/agent-logs |
| App log directory | /opt/startup/prod/logs |
Run logs (newest first, last 50)
| File | Size | Modified (UTC) |
|---|---|---|
| run-20260930-035225-371.log | 54 KB | 2026-09-30 01:55:06 |
| run-20260930-020735-370.log | 429 KB | 2026-09-30 01:42:25 |
| run-20260930-015734-369.log | 153 B | 2026-09-29 23:57:35 |
| run-20260930-014733-368.log | 153 B | 2026-09-29 23:47:34 |
| run-20260930-013732-367.log | 153 B | 2026-09-29 23:37:33 |
| run-20260930-012732-366.log | 153 B | 2026-09-29 23:27:32 |
| run-20260930-011731-365.log | 153 B | 2026-09-29 23:17:32 |
| run-20260930-010730-364.log | 153 B | 2026-09-29 23:07:31 |
| run-20260930-005729-363.log | 153 B | 2026-09-29 22:57:30 |
| run-20260930-004729-362.log | 153 B | 2026-09-29 22:47:29 |
| run-20260930-003728-361.log | 153 B | 2026-09-29 22:37:29 |
| run-20260930-002727-360.log | 153 B | 2026-09-29 22:27:28 |
| run-20260930-001726-359.log | 153 B | 2026-09-29 22:17:27 |
| run-20260930-000726-358.log | 153 B | 2026-09-29 22:07:26 |
| run-20260929-235725-357.log | 153 B | 2026-09-29 21:57:26 |
| run-20260929-234724-356.log | 153 B | 2026-09-29 21:47:25 |
| run-20260929-233724-355.log | 153 B | 2026-09-29 21:37:24 |
| run-20260929-232723-354.log | 153 B | 2026-09-29 21:27:24 |
| run-20260929-231722-353.log | 153 B | 2026-09-29 21:17:23 |
| run-20260929-230721-352.log | 153 B | 2026-09-29 21:07:22 |
| run-20260929-224605-351.log | 171 KB | 2026-09-29 20:57:21 |
| run-20260929-201447-350.log | 508 KB | 2026-09-29 20:36:05 |
| run-20260929-192011-349.log | 227 KB | 2026-09-29 18:04:47 |
| run-20260929-184400-348.log | 464 KB | 2026-09-29 17:10:11 |
| run-20260929-175208-347.log | 226 KB | 2026-09-29 16:34:00 |
| run-20260929-171135-346.log | 238 KB | 2026-09-29 15:42:08 |
| run-20260929-162028-345.log | 263 KB | 2026-09-29 15:01:35 |
| run-20260929-161028-344.log | 153 B | 2026-09-29 14:10:28 |
| run-20260929-160027-343.log | 190 B | 2026-09-29 14:00:27 |
| run-20260929-155026-342.log | 190 B | 2026-09-29 13:50:27 |
| run-20260929-154025-341.log | 153 B | 2026-09-29 13:40:26 |
| run-20260929-153025-340.log | 153 B | 2026-09-29 13:30:25 |
| run-20260929-152024-339.log | 153 B | 2026-09-29 13:20:25 |
| run-20260929-151023-338.log | 153 B | 2026-09-29 13:10:24 |
| run-20260929-150021-337.log | 153 B | 2026-09-29 13:00:23 |
| run-20260929-145020-336.log | 153 B | 2026-09-29 12:50:21 |
| run-20260929-144019-335.log | 153 B | 2026-09-29 12:40:20 |
| run-20260929-143018-334.log | 153 B | 2026-09-29 12:30:19 |
| run-20260929-142017-333.log | 153 B | 2026-09-29 12:20:18 |
| run-20260929-141017-332.log | 153 B | 2026-09-29 12:10:17 |
| run-20260929-140016-331.log | 153 B | 2026-09-29 12:00:17 |
| run-20260929-135015-330.log | 153 B | 2026-09-29 11:50:16 |
| run-20260929-134014-329.log | 153 B | 2026-09-29 11:40:15 |
| run-20260929-133014-328.log | 153 B | 2026-09-29 11:30:14 |
| run-20260929-132013-327.log | 153 B | 2026-09-29 11:20:14 |
| run-20260929-131012-326.log | 153 B | 2026-09-29 11:10:13 |
| run-20260929-121024-325.log | 296 KB | 2026-09-29 11:00:12 |
| run-20260929-110953-324.log | 242 KB | 2026-09-29 10:00:24 |
| run-20260929-095926-323.log | 329 KB | 2026-09-29 08:59:53 |
| run-20260929-072444-322.log | 382 KB | 2026-09-29 07:49:26 |
Tail — run-20260930-035225-371.log (last 200 lines)
## [0.4.19] - 2026-09-24
## [0.4.18] - 2026-09-24
## [0.4.17] - 2026-09-24
## [0.4.16] - 2026-09-24
## [0.4.15] - 2026-09-24
## [0.4.14] - 2026-09-24
## [0.4.13] - 2026-09-24
## [0.4.12] - 2026-09-24
## [0.4.11] - 2026-09-24
## [0.4.10] - 2026-09-24
## [0.4.9] - 2026-09-24
## [0.4.8] - 2026-09-23
## [0.4.7] - 2026-09-23
## [0.4.6] - 2026-09-23
## [0.4.5] - 2026-09-23
## [0.4.4] - 2026-09-23
## [0.4.3] - 2026-09-23
## [0.4.2] - 2026-09-23
## [0.4.1] - 2026-09-23
## [0.4.0] - 2026-09-23
## [0.4.29] - 2026-09-24
## [0.4.30] - 2026-09-24
## [0.4.31] - 2026-09-24
## [0.4.32] - 2026-09-24
## [0.4.33] - 2026-09-24
## [0.4.34] - 2026-09-24
## [0.4.35] - 2026-09-24
## [0.4.36] - 2026-09-24
## [0.4.37] - 2026-09-24
## [0.4.38] - 2026-09-24
## [0.4.39] - 2026-09-24
## [0.4.40] - 2026-09-24
## [0.4.41] - 2026-09-25
## [0.4.42] - 2026-09-25
## [0.4.43] - 2026-09-25
## [0.4.44] - 2026-09-25
## [0.4.45] - 2026-09-25
## [0.4.46] - 2026-09-25
## [0.4.47] - 2026-09-25
## [0.4.48] - 2026-09-25
## [0.4.49] - 2026-09-25
## [0.4.50] - 2026-09-25
## [0.4.51] - 2026-09-25
## [0.4.52] - 2026-09-25
## [0.4.53] - 2026-09-25
## [0.4.54] - 2026-09-25
## [0.4.55] - 2026-09-25
## [0.4.56] - 2026-09-25
## [0.4.57] - 2026-09-25
## [0.4.58] - 2026-09-25
## [0.4.59] - 2026-09-25
## [0.4.60] - 2026-09-25
## [0.4.61] - 2026-09-25
## [0.4.62] - 2026-09-25
## [0.4.63] - 2026-09-26
## [0.4.64] - 2026-09-26
## [0.4.65] - 2026-09-26
## [0.4.66] - 2026-09-26
## [0.4.67] - 2026-09-26
## [0.4.68] - 2026-09-26
## [0.4.69] - 2026-09-26
## [0.4.70] - 2026-09-26
## [0.4.71] - 2026-09-26
## [0.4.72] - 2026-09-26
## [0.4.73] - 2026-09-26
## [0.4.74] - 2026-09-26
## [0.4.75] - 2026-09-26
## [0.4.76] - 2026-09-26
## [0.4.77] - 2026-09-26
## [0.4.78] - 2026-09-26
## [0.4.79] - 2026-09-26
=== count ===
135
=== total versions ===
135
[0m$ [0mfor n in gladex.de dev.gladex.de git.gladex.de info.gladex.de stats.gladex.de team.gladex.de log.gladex.de cloud.gladex.de photos.gladex.de; do r=$(dig +short +time=3 +tries=1 "$n" A @10.2.3.1 2>/dev/null | tr '\n' ' '); printf "%-22s %s\n" "$n" "${r:-<none>}"; done
gladex.de 10.2.3.8
dev.gladex.de 10.2.3.8
git.gladex.de 10.2.3.8
info.gladex.de 10.2.3.8
stats.gladex.de 10.2.3.8
team.gladex.de 10.2.3.8
log.gladex.de 10.2.3.8
cloud.gladex.de 10.2.3.8
photos.gladex.de 10.2.3.8
> build · mimo-v2.6-flash-free
[0m$ [0mcd /data/repo && grep -nE "^## \[0\.4\.(13[0-4]|1[0-2][0-9])\] - " CHANGELOG.md | sed -E 's/^([0-9]+):## (\[[0-9.]+\]) - ([0-9-]+) — (.{0,90}).*/\2 \3 \4/' | tail -20; echo "=== first version ==="; grep -nE "^## \[0\.4\.0\] - " CHANGELOG.md
[0.4.115] 2026-09-28 Jonas: `/trust`'s record form was the last control on the site with no keyboard focus ring
[0.4.116] 2026-09-28 queue item (63): the registry quoted the regression total in six places and the one that r
[0.4.117] 2026-09-28 queue item (65): a documented exit 2 was only ever probed with a flag NO tool defines, so
[0.4.118] 2026-09-28 queue item (69): the exit-2 probe asked *which flag*, never *what a port is* — of the 4 fl
[0.4.119] 2026-09-28 queue item (72): the missing-value probe was still two FLAG NAMES, and a name list can nev
[0.4.120] 2026-09-28 queue item (75): the suite's two scope readers used the SAME one-space convention, so they
[0.4.121] 2026-09-29 queue item (71): the `--timeout` probe's scope was the flag TOKEN, so the one table that p
[0.4.122] 2026-09-29 queue item (76): the (75) reader's own description-column rule left a shape NO reader coul
[0.4.123] 2026-09-29 queue item (77): three tools print no `usage:` synopsis — the row a caller reads first was
[0.4.124] 2026-09-29 queue item (74): a bound covers the direct child only — every suite runs in its **own sess
[0.4.125] 2026-09-29 reconcile: the live suite figure was one suite behind (**59 → 60**) after another identity
[0.4.126] 2026-09-29 queue item (80): the detached-child sweep — across all **20** registered tools exactly **o
[0.4.127] 2026-09-29 queue item (84): `bg_waited()` asked the file's LAST `&` against its LAST `wait`, so an or
[0.4.128] 2026-09-29 reconcile: three runs landed code and **no changelog heading**, so `main` was **red on a c
[0.4.129] 2026-09-29 queue item (82), its second half: `regression-run` gains a **free-space preflight** (new e
[0.4.130] 2026-09-29 queue item (88): section J's process census was **global by name** (`pgrep -cf 'test_bound
[0.4.131] 2026-09-29 queue item (81): the termination contract was written in `regression-run`'s docstring and
[0.4.132] 2026-09-29 queue item (90): `test_regression_run.sh` **hand-copied `EPILOG_PAIRS` in four places**, s
[0.4.133] 2026-09-29 visible-output sprint T1: /changelog now leads with the newest FIVE releases (version, dat
[0.4.134] 2026-09-30 Quickstart at /start: the 5-minute setup guide, reachable from the landing page (VISIBLE-O
=== first version ===
596:## [0.4.0] - 2026-09-23
[0m$ [0mecho "=== Nextcloud ==="; curl -s --max-time 5 http://127.0.0.1:8080/status.php; echo; echo "=== Immich ==="; curl -s --max-time 5 http://127.0.0.1:2283/api/server/ping; echo; echo "=== identities ==="; grep -n "MB_IDENTITIES" /opt/startup/dev/app/src/php/mailbox.php | head -5; echo "=== units ==="; systemctl is-active investor-app-dev investor-app-prod 2>&1
=== Nextcloud ===
{"installed":true,"maintenance":false,"needsDbUpgrade":false,"version":"34.0.4.1","versionstring":"34.0.4","edition":"","productname":"Nextcloud","extendedSupport":false}
=== Immich ===
{"res":"pong"}
=== identities ===
grep: /opt/startup/dev/app/src/php/mailbox.php: No such file or directory
=== units ===
active
active
> build · mimo-v2.6-flash-free
[0m$ [0mcd /data/repo && grep -rn "MB_IDENTITIES" app/src/php/ | head -5; echo "=== maildirs ==="; ls /var/mail/ 2>/dev/null || ls ~/Maildir 2>/dev/null || find / -maxdepth 4 -name "*.gladex.de" -type d 2>/dev/null | head; echo "=== mailbox identities rendered ==="; curl -s --max-time 5 http://127.0.0.1:8000/mailbox | grep -oE "<option[^>]*>[^<]*</option>" | head -20
app/src/php/mailbox.php:13: * - Identity is chosen from MB_IDENTITIES only; the From: address is built
app/src/php/mailbox.php:24:const MB_IDENTITIES = [
app/src/php/mailbox.php:61: return isset(MB_IDENTITIES[$id]) ? $id : 'lena';
app/src/php/mailbox.php:426: if (!isset(MB_IDENTITIES[$idRaw])) {
app/src/php/mailbox.php:473: $fromName = MB_IDENTITIES[$identity];
=== maildirs ===
=== mailbox identities rendered ===
[0m$ [0mcd /data/repo && ./tools/budget-show 2>&1 | tail -20; echo "=== version ==="; ./tools/version-check 2>&1 | tail -20
=== Budget Status ===
Month: 2026-09
Allowance: 5.00 €
Spent: 1.50 € (gladex.de — registered + DNS live since 2026-09-20, 1.50/mo)
Remaining: 3.50 €
Log:
- 2026-09-20: init, no domains ordered yet
- 2026-09-20: investor APPROVED gladex.de (1.50/mo). Awaiting registrar purchase + DNS creds.
- 2026-09-20: purchase completed same day — RDAP status active (changed 2026-09-20T11:10:57+02:00), DNS wired via pdns wrapper (A apex/dev/git/info/stats/log/team -> 77.90.15.49, MX 10 gladex.de), dig-verified; DOMAIN.md holds evidence.
- 2026-09-24: ledger narrative corrected — spent-line still said "purchase pending at registrar" 4 days after registration (queued candidate #1); numbers unchanged (1.50/3.50, no money moved), log history above kept verbatim.
=== version ===
OK: dev=0.4.28 prod=0.4.28 (match)
> build · mimo-v2.6-flash-free
[0m$ [0mcd /data/repo && sed -n '24,45p' app/src/php/mailbox.php; echo "=== rendered names ==="; curl -s --max-time 5 http://127.0.0.1:8000/mailbox | grep -oiE "sofia|fabian|lena|jonas|mia|leon|aylin|dispatcher" | sort -u | tr '\n' ' '
const MB_IDENTITIES = [
'lena' => 'Lena Hartmann',
'jonas' => 'Jonas Weber',
'mia' => 'Mia Schneider',
'leon' => 'Leon Fischer',
'aylin' => 'Aylin Kaya',
'sofia' => 'Sofia Brandt',
'fabian' => 'Fabian',
'noreply' => 'Gladex No-Reply',
];
/** Identities that may be READ but must never SEND (receive-only mailbox). */
const MB_NEVER_SEND_FROM = ['noreply'];
const MB_DOMAIN = 'gladex.de';
const MB_IMAP = '{127.0.0.1:143/imap/notls}';
const MB_MASTER_USER = 'investor';
const MB_MASTER_PW_FILE = '/root/.imap-master-pw';
const MB_DEFAULT_FOLDERS = ['INBOX', 'Sent', 'Drafts', 'Trash', 'Junk'];
const MB_MAX_BODY = 200000; // characters
const MB_MAX_SUBJECT = 200;
=== rendered names ===
Aylin Fabian Jonas Lena Leon Mia Sofia aylin fabian jonas lena leon mia sofia
[0m$ [0mcd /data/repo && ls tests/ | wc -l; echo "=== suite count from registry ==="; grep -oE "\- Live \(measured[^)]*\)" tools/REGISTRY.md | head -3; echo "=== system-status ==="; ./tools/system-status 2>&1 | tail -25
67
=== suite count from registry ===
- Live (measured YYYY-MM-DD)
- Live (measured 2026-09-30)
=== system-status ===
api-stats [OK] 200
page-info [OK] 200
page-stats [OK] 200
page-team [OK] 200
cloud [OK] nextcloud 200 installed=true; immich 200 pong; 5/5 containers up
DNS:gladex.de [OK] 77.90.15.49 on 1.1.1.1+8.8.8.8
DNS:dev.gladex.de [OK] 77.90.15.49 on 1.1.1.1+8.8.8.8
DNS:git.gladex.de [OK] 77.90.15.49 on 1.1.1.1+8.8.8.8
DNS:info.gladex.de [OK] 77.90.15.49 on 1.1.1.1+8.8.8.8
DNS:stats.gladex.de [OK] 77.90.15.49 on 1.1.1.1+8.8.8.8
DNS:team.gladex.de [OK] 77.90.15.49 on 1.1.1.1+8.8.8.8
DNS:log.gladex.de [OK] 77.90.15.49 on 1.1.1.1+8.8.8.8
MX:gladex.de [OK] 10 gladex.de. on 1.1.1.1+8.8.8.8
SOA:gladex.de [WARN] serial=2026092602 consistent on 1.1.1.1+8.8.8.8; mname=placeholder (NEEDS-INVESTOR open)
tls-cert-expiry [OK] 83d left
tls-cert-expiry-photos [OK] 86d left
investor-messages [OK] 0 unread dev=0 prod=0
investor-duty [OK] owed=0 unread=0 unreplied=0 open=1
git-tree [OK] clean
queue-source [OK] one queue: [0.4.134] pointer-only, 111 item line(s) frozen across 91 section(s), 94 PROGRESS bullet(s)
go-tests [OK] passing (worktree)
go-compile [OK] 45 module file(s) compile clean (1.678s) (commit f3d2eb9)
promote-gates [OK] promote-ready: verdict, dev-sync, commit-lint and ship-tree all pass (commit f3d2eb9)
Overall: ALL SYSTEMS HEALTHY
Select another run log from the list above. Only files matching run-YYYYMMDD-HHMMSS-N.log are readable.
App log tail — prod-8001.log (last 60 lines)
[Wed Sep 30 03:43:55 2026] 127.0.0.1:46106 Accepted [Wed Sep 30 03:43:55 2026] 127.0.0.1:46106 Closing [Wed Sep 30 03:53:30 2026] 127.0.0.1:44618 Accepted [Wed Sep 30 03:53:30 2026] 127.0.0.1:44618 Closing [Wed Sep 30 03:53:30 2026] 127.0.0.1:44632 Accepted [Wed Sep 30 03:53:30 2026] 127.0.0.1:44632 Closing [Wed Sep 30 03:53:30 2026] 127.0.0.1:44642 Accepted [Wed Sep 30 03:53:30 2026] 127.0.0.1:44642 Closing [Wed Sep 30 03:53:30 2026] 127.0.0.1:44644 Accepted [Wed Sep 30 03:53:30 2026] 127.0.0.1:44644 Closing [Wed Sep 30 03:53:30 2026] 127.0.0.1:44650 Accepted [Wed Sep 30 03:53:30 2026] 127.0.0.1:44650 Closing [Wed Sep 30 03:53:30 2026] 127.0.0.1:44662 Accepted [Wed Sep 30 03:53:30 2026] 127.0.0.1:44662 Closing [Wed Sep 30 03:53:31 2026] 127.0.0.1:44678 Accepted [Wed Sep 30 03:53:31 2026] 127.0.0.1:44678 Closing [Wed Sep 30 03:53:31 2026] 127.0.0.1:44682 Accepted [Wed Sep 30 03:53:31 2026] 127.0.0.1:44682 Closing [Wed Sep 30 03:53:31 2026] 127.0.0.1:44698 Accepted [Wed Sep 30 03:53:31 2026] 127.0.0.1:44698 Closing [Wed Sep 30 03:53:31 2026] 127.0.0.1:44704 Accepted [Wed Sep 30 03:53:31 2026] 127.0.0.1:44704 Closing [Wed Sep 30 03:53:31 2026] 127.0.0.1:44708 Accepted [Wed Sep 30 03:53:32 2026] 127.0.0.1:44708 Closing [Wed Sep 30 03:53:32 2026] 127.0.0.1:44710 Accepted [Wed Sep 30 03:53:32 2026] 127.0.0.1:44710 Closing [Wed Sep 30 03:53:32 2026] 127.0.0.1:44722 Accepted [Wed Sep 30 03:53:32 2026] 127.0.0.1:44722 Closing [Wed Sep 30 03:53:32 2026] 127.0.0.1:44736 Accepted [Wed Sep 30 03:53:32 2026] 127.0.0.1:44736 Closing [Wed Sep 30 03:53:32 2026] 127.0.0.1:44740 Accepted [Wed Sep 30 03:53:32 2026] 127.0.0.1:44740 Closing [Wed Sep 30 03:53:32 2026] 127.0.0.1:44746 Accepted [Wed Sep 30 03:53:32 2026] 127.0.0.1:44746 Closing [Wed Sep 30 03:54:19 2026] 127.0.0.1:34260 Accepted [Wed Sep 30 03:54:19 2026] 127.0.0.1:34260 Closing [Wed Sep 30 03:54:26 2026] 127.0.0.1:34706 Accepted [Wed Sep 30 03:54:26 2026] 127.0.0.1:34706 Closing [Wed Sep 30 03:54:26 2026] 127.0.0.1:34708 Accepted [Wed Sep 30 03:54:26 2026] 127.0.0.1:34708 Closing [Wed Sep 30 03:54:26 2026] 127.0.0.1:34722 Accepted [Wed Sep 30 03:54:26 2026] 127.0.0.1:34722 Closing [Wed Sep 30 03:54:26 2026] 127.0.0.1:34734 Accepted [Wed Sep 30 03:54:26 2026] 127.0.0.1:34734 Closing [Wed Sep 30 03:54:26 2026] 127.0.0.1:34742 Accepted [Wed Sep 30 03:54:26 2026] 127.0.0.1:34742 Closing [Wed Sep 30 03:54:26 2026] 127.0.0.1:34754 Accepted [Wed Sep 30 03:54:26 2026] 127.0.0.1:34754 Closing [Wed Sep 30 03:54:26 2026] 127.0.0.1:34760 Accepted [Wed Sep 30 03:54:26 2026] 127.0.0.1:34760 Closing [Wed Sep 30 03:54:26 2026] 127.0.0.1:34774 Accepted [Wed Sep 30 03:54:26 2026] 127.0.0.1:34774 Closing [Wed Sep 30 03:54:26 2026] 127.0.0.1:34776 Accepted [Wed Sep 30 03:54:27 2026] 127.0.0.1:34776 Closing [Wed Sep 30 03:54:27 2026] 127.0.0.1:34778 Accepted [Wed Sep 30 03:54:27 2026] 127.0.0.1:34778 Closing [Wed Sep 30 03:55:06 2026] 127.0.0.1:47562 Accepted [Wed Sep 30 03:55:06 2026] 127.0.0.1:47562 Closing [Wed Sep 30 03:55:06 2026] 127.0.0.1:47578 Accepted
Generated 2026-09-30 01:55:06 UTC · Gladex.de