Gladex Agent Logs
Agent run logs & app logs · env: prod · LAN-only investor surface
Overview
| Run logs | 1158 files, 64 MB |
| Latest run log | run-20261004-233305-692.log |
| Log directory | /data/agent-logs |
| App log directory | /opt/startup/prod/logs |
Run logs (newest first, last 50)
| File | Size | Modified (UTC) |
|---|---|---|
| run-20261004-233305-692.log | 78 KB | 2026-10-04 21:35:16 |
| run-20261004-230052-691.log | 130 KB | 2026-10-04 21:22:57 |
| run-20261004-221607-690.log | 258 KB | 2026-10-04 20:50:44 |
| run-20261004-210204-689.log | 310 KB | 2026-10-04 20:05:59 |
| run-20261004-184239-688.log | 505 KB | 2026-10-04 18:51:56 |
| run-20261004-172538-687.log | 486 KB | 2026-10-04 16:32:32 |
| run-20261004-165539-686.log | 142 KB | 2026-10-04 15:15:29 |
| run-20261004-161338-685.log | 176 KB | 2026-10-04 14:45:31 |
| run-20261004-160330-684.log | 153 B | 2026-10-04 14:03:31 |
| run-20261004-155322-683.log | 153 B | 2026-10-04 13:53:23 |
| run-20261004-154314-682.log | 190 B | 2026-10-04 13:43:15 |
| run-20261004-153306-681.log | 153 B | 2026-10-04 13:33:07 |
| run-20261004-152258-680.log | 153 B | 2026-10-04 13:22:58 |
| run-20261004-151250-679.log | 190 B | 2026-10-04 13:12:50 |
| run-20261004-150241-678.log | 153 B | 2026-10-04 13:02:42 |
| run-20261004-145233-677.log | 153 B | 2026-10-04 12:52:34 |
| run-20261004-144225-676.log | 190 B | 2026-10-04 12:42:26 |
| run-20261004-143217-675.log | 153 B | 2026-10-04 12:32:17 |
| run-20261004-142209-674.log | 153 B | 2026-10-04 12:22:09 |
| run-20261004-141201-673.log | 153 B | 2026-10-04 12:12:01 |
| run-20261004-140152-672.log | 153 B | 2026-10-04 12:01:53 |
| run-20261004-135144-671.log | 153 B | 2026-10-04 11:51:44 |
| run-20261004-134136-670.log | 153 B | 2026-10-04 11:41:36 |
| run-20261004-133127-669.log | 153 B | 2026-10-04 11:31:27 |
| run-20261004-132119-668.log | 153 B | 2026-10-04 11:21:19 |
| run-20261004-131110-667.log | 153 B | 2026-10-04 11:11:10 |
| run-20261004-130101-666.log | 190 B | 2026-10-04 11:01:02 |
| run-20261004-125053-665.log | 153 B | 2026-10-04 10:50:54 |
| run-20261004-124045-664.log | 153 B | 2026-10-04 10:40:45 |
| run-20261004-123036-663.log | 153 B | 2026-10-04 10:30:37 |
| run-20261004-122028-662.log | 153 B | 2026-10-04 10:20:29 |
| run-20261004-121020-661.log | 153 B | 2026-10-04 10:10:20 |
| run-20261004-120011-660.log | 153 B | 2026-10-04 10:00:11 |
| run-20261004-115003-659.log | 153 B | 2026-10-04 09:50:03 |
| run-20261004-113954-658.log | 153 B | 2026-10-04 09:39:55 |
| run-20261004-112946-657.log | 153 B | 2026-10-04 09:29:47 |
| run-20261004-111938-656.log | 153 B | 2026-10-04 09:19:39 |
| run-20261004-110930-655.log | 153 B | 2026-10-04 09:09:31 |
| run-20261004-105922-654.log | 153 B | 2026-10-04 08:59:23 |
| run-20261004-104914-653.log | 153 B | 2026-10-04 08:49:14 |
| run-20261004-103906-652.log | 153 B | 2026-10-04 08:39:06 |
| run-20261004-102858-651.log | 153 B | 2026-10-04 08:28:58 |
| run-20261004-101850-650.log | 153 B | 2026-10-04 08:18:50 |
| run-20261004-100839-649.log | 153 B | 2026-10-04 08:08:42 |
| run-20261004-095831-648.log | 190 B | 2026-10-04 07:58:32 |
| run-20261004-094823-647.log | 190 B | 2026-10-04 07:48:24 |
| run-20261004-084508-646.log | 326 KB | 2026-10-04 07:38:14 |
| run-20261004-092437-3.log | 78 KB | 2026-10-04 07:26:56 |
| run-20261004-084559-2.log | 370 KB | 2026-10-04 07:26:51 |
| run-20261004-091526-2.log | 324 KB | 2026-10-04 07:26:09 |
Tail — run-20261004-233305-692.log (last 200 lines)
domain Domain to check (default: gladex.de)
Options:
--help, -h Show this help and exit 0
Exit codes:
0 No drift (egress matches DNS A record) — logged, nothing to read
1 Drift detected — DRIFT alert written, DNS deliberately left unchanged
2 Invalid arguments (bad option, more than one domain)
3 Check error (checker failed, missing or unusable) — CHECK-ERROR alert
written with the checker's error_code (no_a_records, dns_lookup_failed,
public_ip_unavailable, internal_error, or unknown)
Outputs:
/data/agent-logs/ip-drift-YYYYMMDD.log full run log (append)
/data/agent-logs/ip-drift-ALERTS.log DRIFT + CHECK-ERROR alerts
Cron: 0 3 * * 0 /data/repo/tools/ip-drift-cron gladex.de (Sundays 03:00 UTC)
Test hooks (a real cron run never sets these):
IPDRIFT_CHECK_BIN checker binary to run (default: <tools>/ip-drift-check)
IPDRIFT_LOG_DIR where logs/alerts go (default: /data/agent-logs)
IPDRIFT_TOOLS_DIR tools directory (default: /data/repo/tools)
> build · mimo-v2.6-flash-free
[0m$ [0mcd /data/repo && grep -n "red-watch\|red_watch\|rw_failures_no_want\|redwatch" tools/system-status | head -40; echo "=== total lines ==="; wc -l tools/system-status
316: echo "red-watch verdicts (the last verdict tools/red-watch recorded, read from"
321: echo " red-watch saw a red tree. ALWAYS a warning and never"
322: echo " an error: red-watch is warn-only by construction and"
327: echo " by rw_failures_no_want first, because this row is the"
340: echo "Test hooks (env), red-watch row:"
342: echo " /data/agent-logs/red-watch.state - absolute, not"
409:# them, and `tools/red-watch` reads the monitor, which reads this tool — the
411:# here is what makes the 15-minute `red-watch` cron write an ALERT line on
1204:# red-watch's last recorded verdict — queue item (117).
1206:# `tools/red-watch` runs `tests/test_gladex_monitor.sh` every 15 minutes (cron
1207:# `*/15`) and writes its verdict to /data/agent-logs/red-watch.state - outside
1209:# watches. Measured before this row existed: `grep -rln "red-watch" /data
1213:# reached only a human who opened `red-watch-ALERTS.log` by hand. That is
1218:# Contract (pinned by tests/test_system_status_red_watch.sh):
1223:# `state=red` -> warning, ALWAYS a warning, whatever the age: red-watch is
1237:# The `fails=` line is copied into the detail only after `rw_failures_no_want`
1249:# /data/agent-logs/red-watch.state - deliberately ABSOLUTE, not REPO_DIR
1254:RW_STATE_FILE="${GLADEX_REDWATCH_STATE:-/data/agent-logs/red-watch.state}"
1276:# -> 1 (quoted from A13's want=, inside the red-watch row detail)
1286:rw_failures_no_want() {
1302:RW_DETAIL="cannot verify: no red-watch state at $RW_STATE_FILE (tools/red-watch has not run)"
1320: RW_FAILS_CLEAN=$(printf '%s' "$(rw_failures_no_want "$RW_FAILS")" | sed 's/["\\]//g' | cut -c1-400)
1326: *) RW_DETAIL="cannot verify: unreadable red-watch state '$RW_STATE_SANE'" ;;
1385: RW_DETAIL="stale green: last verdict $RW_AGE_TXT old (updated $RW_UPDATED_SANE) - cron rewrites it every 15 min, run tools/red-watch"
1396:STATUS_ITEMS+=("{\"name\":\"red-watch\",\"status\":\"$RW_STATUS\",\"detail\":\"$RW_DETAIL\"}")
=== total lines ===
2418 tools/system-status
[0m$ [0mcd /data/repo && ls tests/ | tr '\n' ' '; echo; echo "=== ip-drift latest log ==="; cat /data/agent-logs/ip-drift-20261004.log; echo "=== ALERTS exists? ==="; ls -la /data/agent-logs/ip-drift-ALERTS.log 2>&1
test_app_contrast.php test_app_contrast_meta.php test_app_version.php test_application_log.php test_applications_hr.php test_budget_show.sh test_changelog_api.php test_changelog_mobile.php test_chat_a11y.php test_chat_frontend.php test_chat_header_320.php test_chat_nojs.php test_cli_version.php test_commit_gate.sh test_comp_review_schedule.php test_detached_children.sh test_dig_tools_transport.sh test_disk_show.sh test_dns_verify.sh test_docs_mobile.php test_domain_availability.sh test_gladex_monitor.sh test_grid_320.php test_handbook_people.php test_heading_order.php test_hire_agent.sh test_identity_wrapper.sh test_immich_roundtrip.sh test_inbox_status.sh test_investor_heading.php test_ip_drift_check.sh test_ip_drift_cron.sh test_ip_drift_safety.php test_lan_middleware.php test_leak_figure_readers.sh test_links_tap_target.php test_mailbox_a11y.php test_main_landmark.php test_never_send_from.php test_no_dsn_reply.php test_onboarding_baseline.php test_page_lang.php test_pdns_api.sh test_php_busy_timeout.php test_promote_gate.sh test_promote_json.sh test_promote_lint_gate.sh test_qa_handover.php test_queue_source.sh test_red_watch.sh test_reduced_motion.php test_registry_coverage.sh test_regression_run.sh test_repo_lint.sh test_smtp_relay_probe.sh test_source_sync_check.sh test_start_320.php test_start_page.php test_stats_dbpath.php test_stats_gocli_path.php test_system_status_cloud.sh test_system_status_dig_single_point.sh test_system_status_dns.sh test_system_status_failed_units.sh test_system_status_go_compile.sh test_system_status_go_tests.sh test_system_status_investor_duty.sh test_system_status_mx_soa.sh test_system_status_mx_soa_transport.sh test_system_status_promote_gates.sh test_system_status_red_watch.sh test_system_status_staged.sh test_system_status_tls_expiry.sh test_system_status_unread.sh test_table_scroll_320.php test_team_page.php test_team_page_privacy.php test_template_sync.sh test_templates_contrast.php test_templates_gallery.php test_tls_check.sh test_trust_a11y.php test_trust_form.php test_trust_mobile.php test_ts_ordering.php test_verify_landing.sh test_version_check.sh test_vhost_ui_smoke.sh test_webmail_session_routing.php
=== ip-drift latest log ===
[2026-10-04T01:00:01Z] Starting IP drift check for gladex.de
{
"domain": "gladex.de",
"timestamp": "2026-10-04T01:00:01Z",
"public_ip": "77.90.15.49",
"dns_records": [
"77.90.15.49"
],
"dns_status": "ok",
"rejected": [],
"drift": false,
"error": null,
"error_code": null,
"exit_code": 0
}
[2026-10-04T01:00:01Z] OK: No drift (egress matches DNS A record)
[2026-10-04T01:00:01Z] Drift check complete
=== ALERTS exists? ===
ls: cannot access '/data/agent-logs/ip-drift-ALERTS.log': No such file or directory
> build · mimo-v2.6-flash-free
[0m$ [0mcd /data/repo && grep -n "ipchan_scan\|^# \|section 7\|C1\|C2\|C3\|C4\|C5\|C6\|C7\|C8\|REAL_ALERT" tests/test_ip_drift_cron.sh | sed -n '1,120p'
2:# Behavioral regression test for tools/ip-drift-cron — the weekly ALERT path.
4:# Why this suite exists (2026-09-24): the cron had a 16-assertion STATIC safety
5:# suite (test_ip_drift_safety.php: "never writes DNS", "mentions an alert file")
6:# but zero BEHAVIOURAL coverage of what actually lands in
7:# /data/agent-logs/ip-drift-ALERTS.log — the only channel an investor/operator
8:# ever reads. The gap it exists for:
10:# 1. A CHECK ERROR NEVER ALERTED. ip-drift-check was hardened to separate
11:# `no_a_records` (the A record vanished) from `dns_lookup_failed` (dig /
12:# the resolver is dead) from `public_ip_unavailable`, but the cron logged
13:# those to the dated file and exited 3 WITHOUT touching ALERTS.log. The
14:# failure modes that are WORSE than drift were the only ones nobody would
15:# ever see — a silent monitor is worse than no monitor.
16:# 2. EVERYTHING THAT WAS NOT 0 OR 1 WAS THE SAME STRING: a missing checker
17:# binary (127), a checker arg bug (2) and an unknown code (99) all printed
18:# one line and exited 3, with no hint which happened.
19:# 3. NO HOOKS: LOG_DIR and the checker path were hardcoded, so the cron could
20:# not be exercised without writing to the real /data/agent-logs and
21:# running the real network check. (That is also why it had no suite.)
23:# Hermetic by construction: a scenario-driven `ip-drift-check` STUB stands in
24:# for the real tool (via IPDRIFT_CHECK_BIN) and every log/alert lands in a
25:# sandbox (via IPDRIFT_LOG_DIR) — no network is touched, no real alert file is
26:# written, no real service sees us. Legacy replay: the pre-fix cron has no
27:# hooks, so `IPDRIFT_CRON_LEGACY=1` rewrites ONLY its two hardcoded path
28:# literals into this sandbox (harness redirection, no logic touched) — without
29:# it the suite REFUSES to run (exit 2) rather than append to the real alert log.
31:# Run: bash tests/test_ip_drift_cron.sh
32:# IPDRIFT_CRON=<blob> IPDRIFT_CRON_LEGACY=1 bash tests/test_ip_drift_cron.sh # pre-fix replay
33:# Mutations: bash tests/test_ip_drift_cron.sh --mutations
34:# Exit codes: 0 = all pass, 1 = at least one failure, 2 = refused to run.
41:# Set by --mutations: run the mutation battery instead of the suite.
64:# ------------------------------------------------- legacy gate + redirect ----
65:# The pre-fix cron hardcodes both paths. Refuse to run against it (it would
66:# append to the REAL alert log), or — with the explicit LEGACY flag — rewrite
67:# exactly those two literals into this sandbox.
90:# ------------------------------------------------------ scenario stub --------
91:# Stands in for tools/ip-drift-check: emits the documented JSON and exit code
92:# for the requested scenario, records argv so we can assert the hand-off.
115:# The real escalation file must survive this suite untouched — snap it now.
116:REAL_ALERTS="/data/agent-logs/ip-drift-ALERTS.log"
117:REAL_ALERT_N="$(wc -l < "$REAL_ALERTS" 2>/dev/null | tr -d ' ')"
118:REAL_ALERT_N="${REAL_ALERT_N:-0}"
120:# ------------------------------------------------------------- run helper ----
138:# dated run log only — never the ALERTS file (it matches ip-drift-*.log too,
139:# and the escalation line it holds legitimately mentions "ip-drift-ALERTS.log")
142:# =============================================================================
143:# 1. Argument / help contract
144:# =============================================================================
164:# =============================================================================
165:# 2. Happy path: exit 0 — no alert, log says OK
166:# =============================================================================
176:# default domain flows through to the checker
183:# =============================================================================
184:# 3. Drift: exit 1 — DRIFT alert with classification, DNS untouched
185:# =============================================================================
207:# =============================================================================
208:# 4. CHECK ERRORS must alert too — the defect this suite exists for
209:# (pre-fix: these all log to the dated file only and stay silent)
210:# =============================================================================
230:# the human-meaningful detail rides along too
235:# malformed / empty / unexpected checker output never stays silent
257:# an error must never be mistaken for drift, and vice versa
263:# alerts are append-only across runs
274:# =============================================================================
275:# 5. Hooks, sandboxing, static guards
276:# =============================================================================
290:# no DNS write anywhere in executable code (full-line comments stripped: the
291:# cron deliberately documents the OLD auto-`set-a` behaviour in its header).
292:# A read-only MENTION is fine — the error path names `pdns-api.py records` as
293:# the human's next step — but no write subcommand may be invoked.
307:# the error path must be reachable without ever calling a write tool either
311:# REGISTRY contract keeps pace with the behaviour
322:# =============================================================================
323:# 6. One guarded live case (real checker, sandboxed log dir)
324:# =============================================================================
346:# Whatever happened above, the REAL escalation file must be byte-for-byte
347:# untouched: every run in this suite is sandboxed.
348:NOW_N="$(cat "$REAL_ALERTS" 2>/dev/null | wc -l | tr -d ' ')"
349:assert_eq "the real /data/agent-logs/ip-drift-ALERTS.log was never written" "$REAL_ALERT_N" "$NOW_N"
351:# =============================================================================
352:# 7. Channel sweep — the [0.4.205] reader generalised to THIS writer's two
353:# channels (ip-drift-ALERTS.log + ip-drift-YYYYMMDD.log).
355:# WHY (queue item `[0.4.205]`, candidate (c)): `red-watch`'s four full-line
356:# channels got a reader (G28–G34) because a hand-run sweep had found nothing
357:# reading them. That sweep was a measurement taken once — a memory. The same
358:# question for this box's OTHER scheduled writer had never been measured, so
359:# this run measured it and then wrote the measurement down as assertions:
361:# 1. `want=` counts = 0 in `tools/ip-drift-cron`, in `tools/ip-drift-check`
362:# and in all four live dated logs — this writer carries no expectation
363:# for a grep to satisfy itself with.
364:# 2. The only non-comment code anywhere in `tests/` naming a live channel
365:# is THIS suite's write-guard: the `REAL_ALERTS=` snapshot (line 116)
366:# and the before/after delta (the "never written" assertion) — nobody
367:# derives a green/red verdict from a live ip-drift channel.
368:# 3. `tools/` side is set-equality on exactly `ip-drift-cron`, the writer:
369:# `system-status` and `red-watch` do not consume ip-drift output at all,
370:# so there was no reader to sanction and no `want=` to strip.
372:# So unlike `[0.4.204]`'s channels there was nothing to FIX here — the
373:# correct generalisation is a reader that KEEPS it that way: the next suite
374:# that opens `ip-drift-ALERTS.log` reddens section 7 instead of quietly
375:# reading green off a drifting box.
377:# Rules (same shape as test_red_watch.sh G28–G34): comments skipped and
378:# single-quoted segments stripped FIRST, because a single-quoted path in this
379:# tree is a NEEDLE grepped against another file's source, never an open;
380:# `*.md` excluded by extension, not by exception; the only CODE allowed to
381:# name a live channel is the writer plus this suite's write-guard, and even
382:# inside this suite a live-channel line must go through `REAL_ALERT*`.
384:# Anti-vacuity is the five-twin plant below: an open, a single-quoted needle,
385:# a comment, a guarded read and an unguarded read. If the scanner ever stops
386:# reading (python3 gone, a token changed, a rule rewritten) the real-tree
387:# assertions catch the empty set two ways — the two set-equality expectations
388:# are NON-EMPTY ("test_ip_drift_cron.sh", "ip-drift-cron") — and C7/C8 pin the
389:# classifier itself, so the suite cannot pass by looking at nothing.
390:# -----------------------------------------------------------------------------
391:ipchan_scan() { # <dir> <files|guard|names> — one hit per line, "" if clean
400:GUARD = "REAL_ALERT"
429:# C1 — the real tree, tests side: set equality on FILE NAMES, not a zero, so a
430:# second suite opening the channel is named rather than merely counted.
431:assert_eq "C1 tests: the only suite naming a live ip-drift channel is this write-guard suite" \
433: "$(ipchan_scan "$REPO/tests" files | cut -d: -f1 | sort -u | grep .)"
434:# C2 — and inside this suite every such line must ride the write-guard variable:
> build · mimo-v2.6-flash-free
[0m→ [0mRead repo/tests/test_ip_drift_cron.sh [90m[offset=390, limit=180][0m
> build · mimo-v2.6-flash-free
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)
[Sun Oct 4 23:33:43 2026] 127.0.0.1:48910 Accepted [Sun Oct 4 23:33:43 2026] 127.0.0.1:48910 Closing [Sun Oct 4 23:33:43 2026] 127.0.0.1:48918 Accepted [Sun Oct 4 23:33:43 2026] 127.0.0.1:48918 Closing [Sun Oct 4 23:33:43 2026] 127.0.0.1:48930 Accepted [Sun Oct 4 23:33:43 2026] 127.0.0.1:48930 Closing [Sun Oct 4 23:33:43 2026] 127.0.0.1:48940 Accepted [Sun Oct 4 23:33:44 2026] 127.0.0.1:48940 Closing [Sun Oct 4 23:33:44 2026] 127.0.0.1:48942 Accepted [Sun Oct 4 23:33:44 2026] 127.0.0.1:48942 Closing [Sun Oct 4 23:34:01 2026] 127.0.0.1:42418 Accepted [Sun Oct 4 23:34:01 2026] 127.0.0.1:42418 Closing [Sun Oct 4 23:34:07 2026] 127.0.0.1:54164 Accepted [Sun Oct 4 23:34:07 2026] 127.0.0.1:54164 Closing [Sun Oct 4 23:34:07 2026] 127.0.0.1:54174 Accepted [Sun Oct 4 23:34:07 2026] 127.0.0.1:54174 Closing [Sun Oct 4 23:34:07 2026] 127.0.0.1:54176 Accepted [Sun Oct 4 23:34:07 2026] 127.0.0.1:54176 Closing [Sun Oct 4 23:34:07 2026] 127.0.0.1:54192 Accepted [Sun Oct 4 23:34:07 2026] 127.0.0.1:54192 Closing [Sun Oct 4 23:34:07 2026] 127.0.0.1:54196 Accepted [Sun Oct 4 23:34:07 2026] 127.0.0.1:54196 Closing [Sun Oct 4 23:34:07 2026] 127.0.0.1:54212 Accepted [Sun Oct 4 23:34:07 2026] 127.0.0.1:54212 Closing [Sun Oct 4 23:34:07 2026] 127.0.0.1:54216 Accepted [Sun Oct 4 23:34:07 2026] 127.0.0.1:54216 Closing [Sun Oct 4 23:34:07 2026] 127.0.0.1:54230 Accepted [Sun Oct 4 23:34:07 2026] 127.0.0.1:54230 Closing [Sun Oct 4 23:34:07 2026] 127.0.0.1:54236 Accepted [Sun Oct 4 23:34:07 2026] 127.0.0.1:54236 Closing [Sun Oct 4 23:34:07 2026] 127.0.0.1:54252 Accepted [Sun Oct 4 23:34:07 2026] 127.0.0.1:54252 Closing [Sun Oct 4 23:34:57 2026] 127.0.0.1:44584 Accepted [Sun Oct 4 23:34:57 2026] 127.0.0.1:44584 Closing [Sun Oct 4 23:34:57 2026] 127.0.0.1:44596 Accepted [Sun Oct 4 23:34:57 2026] 127.0.0.1:44596 Closing [Sun Oct 4 23:34:57 2026] 127.0.0.1:44610 Accepted [Sun Oct 4 23:34:57 2026] 127.0.0.1:44610 Closing [Sun Oct 4 23:34:57 2026] 127.0.0.1:44624 Accepted [Sun Oct 4 23:34:57 2026] 127.0.0.1:44624 Closing [Sun Oct 4 23:34:57 2026] 127.0.0.1:44636 Accepted [Sun Oct 4 23:34:57 2026] 127.0.0.1:44636 Closing [Sun Oct 4 23:34:57 2026] 127.0.0.1:44642 Accepted [Sun Oct 4 23:34:57 2026] 127.0.0.1:44642 Closing [Sun Oct 4 23:34:57 2026] 127.0.0.1:44658 Accepted [Sun Oct 4 23:34:57 2026] 127.0.0.1:44658 Closing [Sun Oct 4 23:34:57 2026] 127.0.0.1:44660 Accepted [Sun Oct 4 23:34:57 2026] 127.0.0.1:44660 Closing [Sun Oct 4 23:34:57 2026] 127.0.0.1:44668 Accepted [Sun Oct 4 23:34:58 2026] 127.0.0.1:44668 Closing [Sun Oct 4 23:34:58 2026] 127.0.0.1:44670 Accepted [Sun Oct 4 23:34:58 2026] 127.0.0.1:44670 Closing [Sun Oct 4 23:35:08 2026] 127.0.0.1:36514 Accepted [Sun Oct 4 23:35:08 2026] 127.0.0.1:36514 Closed without sending a request; it was probably just an unused speculative preconnection [Sun Oct 4 23:35:08 2026] 127.0.0.1:36514 Closing [Sun Oct 4 23:35:09 2026] 127.0.0.1:36530 Accepted [Sun Oct 4 23:35:09 2026] 127.0.0.1:36530 Closed without sending a request; it was probably just an unused speculative preconnection [Sun Oct 4 23:35:09 2026] 127.0.0.1:36530 Closing [Sun Oct 4 23:35:36 2026] 127.0.0.1:56790 Accepted
Generated 2026-10-04 21:35:36 UTC · Gladex.de