Gladex Agent Logs
Agent run logs & app logs · env: prod · LAN-only investor surface
Overview
| Run logs | 1567 files, 109.2 MB |
| Latest run log | run-20261013-171515-1101.log |
| Log directory | /data/agent-logs |
| App log directory | /opt/startup/prod/logs |
Run logs (newest first, last 50)
Tail — run-20261013-171515-1101.log (last 200 lines)
[output truncated; full output saved to: /root/.local/share/opencode/shell/fa3e85b2145a60c127b5c9261e76a7ba6d520299/sh_135f189ec001TW0TCcuYIGm9oO.out]
> build · mimo-v2.6-flash-free
[0m$ [0mcd /data/repo; awk '/^## shift-tally$/{i=1} i&&/^## /&&!/^## shift-tally$/{exit} i{print NR": "$0}' tools/REGISTRY.md | head -80
8263: ## shift-tally
8264:
8265: **Purpose**: Read-only summariser over the persona transcripts' shift footers
8266: (`agent-logs/identity-<name>.md`, one append-only log per persona runner): a
8267: per-model and a per-identity table of total / `exit=0` / `exit=1` / failure
8268: rate, using the marker shape the live `failed-units` row reads. It is the
8269: durable form of run 917's throwaway measurement (430 counted shifts over 19
8270: days) and the reader behind the standing census that both red identity units
8271: ran `ling-3.1-flash-free`: it turns that one-off number into something any run
8272: can re-read. No write mode, no truncate, no unlink, no network, no child
8273: process — the transcripts are the persona runners' own logs and this tool never
8274: writes one.
8275:
8276: **Location**: `/data/repo/tools/shift-tally`
8277:
8278: **Usage**:
8279: ```
8280: shift-tally [--format {json,human}] [--dedup {file,global,both}]
8281: ```
8282:
8283: **Options**:
8284: - `--format {json,human}` - Output format (default: human)
8285: - `--dedup {file,global,both}` - Which de-duplication level(s) to report (default: both)
8286: - `--help` - Show this help message
8287:
8288: **Marker + gates**: `===== shift <date -Is> model=<model> exit=<n> =====`,
8289: **anchored** (nothing else on the line), the timestamp parsable, and not more
8290: than **300 s** ahead of the clock — the `[0.4.307]` hardened shape and gates
8291: 1–3 verbatim, so the tool counts the same population the live read counts. A
8292: line containing `===== shift ` that does not match the shape is counted in
8293: `not_anchored` (the exclusion class `[0.4.307]` already makes, surfaced rather
8294: than silent) and skipped; an unparsable timestamp is `bad_ts`, a future-dated
8295: one `future_ts`.
8296:
8297: **De-duplication**: `file` keeps the last marker per timestamp inside each
8298: transcript; `global` additionally de-duplicates on `(ts, model, code)` across
8299: all transcripts (the conservative read, which absorbs a persona quoting another
8300: identity's marker); `both` prints both. The two agree to within ~2 points on
8301: every model — the reason both are offered rather than one being chosen silently.
8302:
8303: **Exit codes**:
8304: - `0` - ok: the transcript directory was read and summarised
8305: - `1` - unexpected internal error
8306: - `2` - invalid arguments: unknown flag, missing value, `--format` outside json|human, or `--dedup` outside file|global|both — argparse validates before any I/O
8307: - `3` - cannot verify: the transcript directory is missing or holds no persona transcript — never a pass; the refusal rides in the exit code. Scope of 3: it is per directory, the single unit this tool reads.
8308:
8309: **JSON keys** (one object per requested de-duplication level): `tool`, `ts`, `dir`, `dedup`, `ok`, `files`, `shift_lines`, `anchored`, `not_anchored`, `bad_ts`, `future_ts`, `total`, `exit0`, `exit1`, `rate`, `first_ts`, `last_ts`, `models`, `identities`, `errors`.
8310:
8311: **File selection**: a persona transcript is `identity-<name>.md` with a single
8312: lowercase word for the name; a dated/hyphenated sibling
8313: (`identity-shift-red-modes-...md`) is a report, not a transcript, and is
8314: excluded by that line rather than a hand list (measured 2026-10-12: it holds
8315: **0** anchored markers, so the rule and the content agree).
8316:
8317: **Test hook**: `GLADEX_SHIFT_TALLY_DIR` — reads `<DIR>/identity-*.md` instead
8318: of `/data/repo/agent-logs`. It is an environment variable rather than a flag
8319: pair on purpose: the advertised option surface stays the two pairs above, which
8320: is the surface `tests/test_registry_coverage.sh` probes. Unset in normal use.
8321:
8322: **Verification (2026-10-12, run 918)**: run against the live seven transcripts
8323: it reproduces run 917's `agent-logs/model-tally-2026-10-12.md` exactly — the
8324: `file` read is that document's Table A (**452 shifts / 363 ok / 89 fail /
8325: 19.69 %**, `nemotron-3-ultra` 190/176/14 = 7.37 %, `ling-3.1` 76/54/22 =
8326: 28.95 %, `mimo` 50/26/24 = 48.00 %) and the `global` read its Table B (**430 /
8327: 346 / 84 / 19.53 %**, `nemotron-3-ultra` 186/172/14 = 7.53 %, `ling-3.1`
8328: 74/54/20 = 27.03 %), window `2026-09-23T20:11:29+02:00 … 2026-10-12T14:17:48+02:00`,
8329: corpus **1,488** shift-token lines / **1,060** anchored / **428** not-anchored /
8330: **0** bad-ts / **0** future-ts. A dedicated `tests/` suite is a deliberate
8331: follow-up (it would be the 104th and would move the `- Live:` figure); this
8332: run's step is the reader, the registry section and the C28g scope refresh.
8333: *(That follow-up landed the same day: `tests/test_shift_tally.sh`, the 104th
8334: suite, moved the `- Live:` figure **103 → 104** and is documented in
8335: `[0.4.319]`.)*
8336:
8337: **Dependencies**: python3 (stdlib only: argparse, datetime, glob, json, os, re,
8338: sys).
8339:
8340: **Status**: Built ✅ 2026-10-12 (a sibling desk's work, swept into `main` by
8341: `8fb4270` at 16:51 CEST and documented in `[0.4.318]`, which takes run 917's
8342: queued durable-tally follow-up) — registers with that suite's C28g option-list scope
> build · mimo-v2.6-flash-free
[0m$ [0mcd /data/repo; grep -n 'C28g\|cl_other\|option-list scope' tests/test_registry_coverage.sh | head -40; echo ===; grep -c '' tests/test_registry_coverage.sh
174:# declared, counted in `cl_other`, and printed in the SUMMARY.
179:# parent assertions and a control (C32) — and `cl_other` drops 25 → 22 because
196:# + cl_declared + cl_other` must equal the scope G14 recounts with its own
199:# disappearing, and `cl_other` is printed so the declared-out remainder is a
288:# lost its flag reddens instead of shrinking the scope. `cl_other` — the pairs
685: local cl_num=0 cl_num_ok=0 cl_other=0 cl_declared=0 cl_declared_ok=0
731: # through to `cl_other` exactly as it did before this item existed.
1141: cl_other=$((cl_other + 1))
1634: echo "SUMMARY tools=$tools_n registered=$reg_n test_sections=$test_n help_run=$help_run help_ok=$help_ok badarg_run=$arg_run badarg_ok=$arg_ok ec_run=$ec_run ec_ok=$ec_ok fmt_n=$fmt_n fmt_value_ok=$fmtv_ok fmt_missing_ok=$fmtm_ok timeout_n=$to_n timeout_ok=$to_ok port_n=$port_n port_value_ok=$portv_ok port_missing_ok=$portm_ok miss_n=$miss_n miss_missing_ok=$missm_ok conv_pairs=$conv_pairs conv_extra=$conv_extra fig_disc=$fig_disc fig_live=$fig_live_n fig_claim=${fig_claim:-none} fig_stale=$fig_stale_n fig_undated=$fig_undated_n fig_head=$fig_head fig_src=$fig_src syn_n=$syn_n syn_ok=$syn_ok synp_n=$synp_n synp_ok=$synp_ok cl_scope=$cl_scope cl_fmt=$cl_fmt cl_port=$cl_port cl_enum=$cl_enum cl_enum_ok=$cl_enum_ok cl_num=$cl_num cl_num_ok=$cl_num_ok cl_declared=$cl_declared cl_declared_ok=$cl_declared_ok cl_declared_seen=${cl_declared_seen:-none} cl_other=$cl_other live_re_sites=$live_re_sites gloss_sites=$gloss_sites fmt_claim_pairs=$fmtcp fmt_claim_mismatch=$fmtcm allflag_pairs=$afcp allflag_mismatch=$afcm allflag_numeq=$afnq violations=$v"
2761:assert_eq "C28g scope now 27 tools that print an option list (pdns-api.py out; 23 -> 24 with cache-show; 24 -> 25 with tmp-lock; 25 -> 26 with download-stats; 26 -> 27 with shift-tally)" \
2842: "$(( $(sget cl_fmt) + $(sget cl_port) + $(sget cl_enum) + $(sget cl_num) + $(sget cl_declared) + $(sget cl_other) ))"
3014: "$(( $(sget cl_fmt) + $(sget cl_port) + $(sget cl_enum) + $(sget cl_num) + $(sget cl_declared) + $(sget cl_other) ))"
4457: "$(( $(sget_live cl_fmt) + $(sget_live cl_port) + $(sget_live cl_enum) + $(sget_live cl_num) + $(sget_live cl_declared) + $(sget_live cl_other) ))"
4459: 20 "$(sget_live cl_other)"
4482:# code DECLARED_PAIRS pins, and `cl_other` really lost those three instead of
4491:# A scope CLAIM about this tree, not a constant — the same ruling C28g makes:
4496:# `cl_other`, so a deliberate growth is a refresh and a SHRINK would be the
4499:assert_eq "G38 and the three left cl_other rather than being counted twice (25 non-classified pairs: 22 before cache-show, 24 with it, 25 with tmp-lock)" \
4500: 25 "$(sget_live cl_other)"
===
4592
> build · mimo-v2.6-flash-free
[0m→ [0mRead repo/tests/test_registry_coverage.sh [90m[offset=660, limit=240][0m
> build · mimo-v2.6-flash-free
[0m$ [0mcd /data/repo; grep -n 'sget cl_fmt\|sget fmt_claim_pairs\|sget fmt_claim_mismatch\|sget_live cl_fmt\|sget_live fmt\|cl_fmt' tests/test_registry_coverage.sh | head -40; echo ===; grep -n 'C28g\|C28f\|C28e' tests/test_registry_coverage.sh | head
195:# The partition is asserted, not assumed: `cl_fmt + cl_port + cl_enum + cl_num
684: local cl_scope=0 cl_fmt=0 cl_port=0 cl_enum=0 cl_enum_ok=0
1083: cl_fmt=$((cl_fmt + 1)); continue
1634: echo "SUMMARY tools=$tools_n registered=$reg_n test_sections=$test_n help_run=$help_run help_ok=$help_ok badarg_run=$arg_run badarg_ok=$arg_ok ec_run=$ec_run ec_ok=$ec_ok fmt_n=$fmt_n fmt_value_ok=$fmtv_ok fmt_missing_ok=$fmtm_ok timeout_n=$to_n timeout_ok=$to_ok port_n=$port_n port_value_ok=$portv_ok port_missing_ok=$portm_ok miss_n=$miss_n miss_missing_ok=$missm_ok conv_pairs=$conv_pairs conv_extra=$conv_extra fig_disc=$fig_disc fig_live=$fig_live_n fig_claim=${fig_claim:-none} fig_stale=$fig_stale_n fig_undated=$fig_undated_n fig_head=$fig_head fig_src=$fig_src syn_n=$syn_n syn_ok=$syn_ok synp_n=$synp_n synp_ok=$synp_ok cl_scope=$cl_scope cl_fmt=$cl_fmt cl_port=$cl_port cl_enum=$cl_enum cl_enum_ok=$cl_enum_ok cl_num=$cl_num cl_num_ok=$cl_num_ok cl_declared=$cl_declared cl_declared_ok=$cl_declared_ok cl_declared_seen=${cl_declared_seen:-none} cl_other=$cl_other live_re_sites=$live_re_sites gloss_sites=$gloss_sites fmt_claim_pairs=$fmtcp fmt_claim_mismatch=$fmtcm allflag_pairs=$afcp allflag_mismatch=$afcm allflag_numeq=$afnq violations=$v"
2842: "$(( $(sget cl_fmt) + $(sget cl_port) + $(sget cl_enum) + $(sget cl_num) + $(sget cl_declared) + $(sget cl_other) ))"
3014: "$(( $(sget cl_fmt) + $(sget cl_port) + $(sget cl_enum) + $(sget cl_num) + $(sget cl_declared) + $(sget cl_other) ))"
4355: 10 "$(sget_live fmt_n)"
4357: "$(sget_live fmt_n)" "$(sget_live fmt_value_ok)"
4359: "$(sget_live fmt_n)" "$(sget_live fmt_missing_ok)"
4404: "$scope_total" "$(( $(sget_live miss_n) + $(sget_live fmt_n) + $(sget_live port_n) ))"
4457: "$(( $(sget_live cl_fmt) + $(sget_live cl_port) + $(sget_live cl_enum) + $(sget_live cl_num) + $(sget_live cl_declared) + $(sget_live cl_other) ))"
4530: 15 "$(sget_live fmt_claim_pairs)"
4532: 0 "$(sget_live fmt_claim_mismatch)"
===
2758: && ok "C28e VIOLATION synopsis_flags verify-landing" \
2759: || fail "C28e VIOLATION synopsis_flags verify-landing"
2760:assert_eq "C28f exactly one violation - the plant, and nothing else" 1 "$(sget violations)"
2761:assert_eq "C28g scope now 27 tools that print an option list (pdns-api.py out; 23 -> 24 with cache-show; 24 -> 25 with tmp-lock; 25 -> 26 with download-stats; 26 -> 27 with shift-tally)" \
4491:# A scope CLAIM about this tree, not a constant — the same ruling C28g makes:
> build · mimo-v2.6-flash-free
[0m→ [0mRead repo/tests/test_registry_coverage.sh [90m[offset=4320, limit=240][0m
> build · mimo-v2.6-flash-free
[0m$ [0mcd /data/repo; grep -n 'sget tools\|sget registered\|sget test_sections\|sget help_run\|sget ec_run\|sget ec_ok\|sget fmt_n\|sget cl_scope\|sget syn_n\|sget synp_n\|sget conv_pairs\|sget miss_n' tests/test_registry_coverage.sh | head -60
2494: "$(( $(sget miss_n) - 1 ))" "$(sget miss_missing_ok)"
2559: "$(sget miss_n)" "$(sget miss_missing_ok)"
2561: "$(sget_live conv_pairs)" "$(sget conv_pairs)"
2675: "$(sget miss_n)" "$(sget miss_missing_ok)"
2677: "$(( $(sget_live miss_n) - 1 ))" "$(sget miss_n)"
2679: "$(sget_live conv_pairs)" "$(sget conv_pairs)"
2762: 27 "$(sget syn_n)"
2764: "$(( $(sget syn_n) - 1 ))" "$(sget syn_ok)"
2841: "$(sget cl_scope)" \
2906: "$(sget syn_n)" "$(sget syn_ok)"
2908: "$(( $(sget synp_n) - 1 ))" "$(sget synp_ok)"
2910: "$(sget_live synp_n)" "$(sget synp_n)"
3013: "$(sget cl_scope)" \
3760: "$(( $(sget_live test_sections) - 1 ))" "$(sget test_sections)"
> build · mimo-v2.6-flash-free
[0m$ [0mcd /data/repo; grep -n 'B1 \|B2 \|B3 \|B4 \|B5 \|registered\|tools_n' tests/test_registry_coverage.sh | sed -n '1,80p'
5:# supports --help and is registered in tools/REGISTRY.md by name, purpose,
19:# Queue item (64), [0.4.114] — the FOUR fields being registered was only ever
206:# word was written, same scope as (77) (21 of the 22 registered tools,
668: local tools_n=0 reg_n=0 test_n=0 help_run=0 help_ok=0 v=0
753: tools_n=$((tools_n + 1))
757: if [ "$tools_n" -lt 1 ]; then
763: # sed output (measured 2026-09-28: it reported all 20 tools unregistered
770: # Every registered section: does such a file still exist, and does the
784: # Only a real tool gets a --help probe: a registered suite's contract is
889: # `--format`/`--dedup`; this reads it across every registered tool:
1247: # Reverse direction: a tool nobody registered.
1339: for b in $unreg; do echo "VIOLATION unregistered $b"; v=$((v + 1)); done
1634: echo "SUMMARY tools=$tools_n registered=$reg_n test_sections=$test_n help_run=$help_run help_ok=$help_ok badarg_run=$arg_run badarg_ok=$arg_ok ec_run=$ec_run ec_ok=$ec_ok fmt_n=$fmt_n fmt_value_ok=$fmtv_ok fmt_missing_ok=$fmtm_ok timeout_n=$to_n timeout_ok=$to_ok port_n=$port_n port_value_ok=$portv_ok port_missing_ok=$portm_ok miss_n=$miss_n miss_missing_ok=$missm_ok conv_pairs=$conv_pairs conv_extra=$conv_extra fig_disc=$fig_disc fig_live=$fig_live_n fig_claim=${fig_claim:-none} fig_stale=$fig_stale_n fig_undated=$fig_undated_n fig_head=$fig_head fig_src=$fig_src syn_n=$syn_n syn_ok=$syn_ok synp_n=$synp_n synp_ok=$synp_ok cl_scope=$cl_scope cl_fmt=$cl_fmt cl_port=$cl_port cl_enum=$cl_enum cl_enum_ok=$cl_enum_ok cl_num=$cl_num cl_num_ok=$cl_num_ok cl_declared=$cl_declared cl_declared_ok=$cl_declared_ok cl_declared_seen=${cl_declared_seen:-none} cl_other=$cl_other live_re_sites=$live_re_sites gloss_sites=$gloss_sites fmt_claim_pairs=$fmtcp fmt_claim_mismatch=$fmtcm allflag_pairs=$afcp allflag_mismatch=$afcm allflag_numeq=$afnq violations=$v"
1649:every registered section names a file that still exists, every tool answers
1769: two flags; this reads it across every registered tool, scope = the
1811:# tests/ tree the registered sections name. The WHOLE tree is copied, not just
1904:assert_ge "B1 non-vacuity: at least 10 tools enumerated" 10 "$(sget_live tools)"
1905:assert_eq "B2 tools counted == tools independently enumerated" "$live_tools" "$(sget_live tools)"
1906:assert_eq "B3 sections counted == headings independently counted" \
1907: "$live_sections" "$(sget_live registered)"
1908:assert_eq "B4 registered minus suite sections == tool sections" \
1909: "$live_tool_sections" "$(( $(sget_live registered) - $(sget_live test_sections) ))"
1910:assert_eq "B5 every tool section probed for --help" "$live_tool_sections" "$(sget_live help_run)"
1913:assert_ge "B7 non-vacuity: at least 4 registered test-suite sections" 4 "$(sget_live test_sections)"
1922:# --- C1 an unregistered tool ------------------------------------------------
1934:assert_eq "C1c an unregistered tool -> exit 1" 1 "$RC"
1935:has_v unregistered brand-new-tool \
1936: && ok "C1d VIOLATION unregistered brand-new-tool" \
1937: || fail "C1d VIOLATION unregistered brand-new-tool"
1940:# --- C2 a registered tool whose section was deleted -------------------------
1955:has_v unregistered budget-show \
1956: && ok "C2d VIOLATION unregistered budget-show" \
1957: || fail "C2d VIOLATION unregistered budget-show"
1973:# --- C4 a registered suite section whose file was renamed -------------------
2688:# --- the other side: the sandbox still holds 25 registered tools while `syn_n`
2696:# --- for (22 registered tools, 21 in scope, `syn_ok` still one below), and a
2698:# --- shape (23 registered tools, 22 in scope, `syn_ok` still one below), and a
2699:# --- fourth later the same day when `red-watch` landed (24 registered tools,
2701:# --- `cache-show` landed with the same shape (25 registered tools, 24 in
2703:# --- `download-stats` landed with the same shape (26 registered tools, 25 in
2707:# --- landed (27 registered tools, 26 in scope, `syn_ok` still one below — its
4423:# counted as covered. The floor is the MEASURED scope (20 of the 21 registered
4514:# every registered tool, scope = the INTERSECTION of the two claim sites (a
> build · mimo-v2.6-flash-free
[0m→ [0mRead repo/tests/test_registry_coverage.sh [90m[limit=180, offset=2640][0m
> build · mimo-v2.6-flash-free
[0m→ [0mRead repo/tests/test_registry_coverage.sh [90m[limit=130, offset=1020][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)
[Tue Oct 13 17:40:45 2026] 127.0.0.1:50180 Accepted [Tue Oct 13 17:40:45 2026] 127.0.0.1:50180 Closing [Tue Oct 13 17:40:45 2026] 127.0.0.1:50184 Accepted [Tue Oct 13 17:40:45 2026] 127.0.0.1:50184 Closing [Tue Oct 13 17:40:49 2026] 127.0.0.1:50200 Accepted [Tue Oct 13 17:40:49 2026] 127.0.0.1:50200 Closing [Tue Oct 13 17:42:25 2026] 127.0.0.1:46030 Accepted [Tue Oct 13 17:42:25 2026] 127.0.0.1:46030 Closing [Tue Oct 13 17:42:45 2026] 127.0.0.1:60120 Accepted [Tue Oct 13 17:42:45 2026] 127.0.0.1:60120 Closing [Tue Oct 13 17:42:53 2026] 127.0.0.1:60122 Accepted [Tue Oct 13 17:42:53 2026] 127.0.0.1:60122 Closing [Tue Oct 13 17:42:53 2026] 127.0.0.1:60126 Accepted [Tue Oct 13 17:42:53 2026] 127.0.0.1:60126 Closing [Tue Oct 13 17:42:53 2026] 127.0.0.1:60142 Accepted [Tue Oct 13 17:42:53 2026] 127.0.0.1:60142 Closing [Tue Oct 13 17:43:19 2026] 127.0.0.1:60194 Accepted [Tue Oct 13 17:43:19 2026] 127.0.0.1:60194 Closing [Tue Oct 13 17:45:20 2026] 127.0.0.1:42086 Accepted [Tue Oct 13 17:45:20 2026] 127.0.0.1:42086 Closing [Tue Oct 13 17:45:20 2026] 127.0.0.1:42088 Accepted [Tue Oct 13 17:45:20 2026] 127.0.0.1:42088 Closing [Tue Oct 13 17:45:20 2026] 127.0.0.1:42094 Accepted [Tue Oct 13 17:45:20 2026] 127.0.0.1:42094 Closing [Tue Oct 13 17:45:20 2026] 127.0.0.1:42102 Accepted [Tue Oct 13 17:45:20 2026] 127.0.0.1:42102 Closing [Tue Oct 13 17:45:20 2026] 127.0.0.1:42114 Accepted [Tue Oct 13 17:45:20 2026] 127.0.0.1:42114 Closing [Tue Oct 13 17:45:20 2026] 127.0.0.1:42126 Accepted [Tue Oct 13 17:45:20 2026] 127.0.0.1:42126 Closing [Tue Oct 13 17:45:20 2026] 127.0.0.1:42140 Accepted [Tue Oct 13 17:45:21 2026] 127.0.0.1:42140 Closing [Tue Oct 13 17:45:21 2026] 127.0.0.1:42150 Accepted [Tue Oct 13 17:45:21 2026] 127.0.0.1:42150 Closing [Tue Oct 13 17:45:21 2026] 127.0.0.1:42154 Accepted [Tue Oct 13 17:45:21 2026] 127.0.0.1:42154 Closing [Tue Oct 13 17:45:21 2026] 127.0.0.1:42168 Accepted [Tue Oct 13 17:45:21 2026] 127.0.0.1:42168 Closing [Tue Oct 13 17:46:23 2026] 127.0.0.1:50824 Accepted [Tue Oct 13 17:46:23 2026] 127.0.0.1:50824 Closing [Tue Oct 13 17:46:23 2026] 127.0.0.1:50840 Accepted [Tue Oct 13 17:46:23 2026] 127.0.0.1:50840 Closing [Tue Oct 13 17:46:23 2026] 127.0.0.1:50848 Accepted [Tue Oct 13 17:46:23 2026] 127.0.0.1:50848 Closing [Tue Oct 13 17:46:23 2026] 127.0.0.1:50852 Accepted [Tue Oct 13 17:46:23 2026] 127.0.0.1:50852 Closing [Tue Oct 13 17:46:23 2026] 127.0.0.1:50864 Accepted [Tue Oct 13 17:46:23 2026] 127.0.0.1:50864 Closing [Tue Oct 13 17:46:23 2026] 127.0.0.1:50876 Accepted [Tue Oct 13 17:46:23 2026] 127.0.0.1:50876 Closing [Tue Oct 13 17:46:23 2026] 127.0.0.1:50886 Accepted [Tue Oct 13 17:46:23 2026] 127.0.0.1:50886 Closing [Tue Oct 13 17:46:24 2026] 127.0.0.1:50896 Accepted [Tue Oct 13 17:46:24 2026] 127.0.0.1:50896 Closing [Tue Oct 13 17:46:24 2026] 127.0.0.1:50902 Accepted [Tue Oct 13 17:46:24 2026] 127.0.0.1:50902 Closing [Tue Oct 13 17:46:24 2026] 127.0.0.1:50906 Accepted [Tue Oct 13 17:46:24 2026] 127.0.0.1:50906 Closing [Tue Oct 13 17:48:45 2026] 127.0.0.1:43786 Accepted
Other app logs: downloads.log
Generated 2026-10-13 15:48:45 UTC · Gladex.de