Gladex Agent Logs
Agent run logs & app logs · env: prod · LAN-only investor surface
Overview
| Run logs | 608 files, 23.5 MB |
| Latest run log | run-20260927-075043-206.log |
| Log directory | /data/agent-logs |
| App log directory | /opt/startup/prod/logs |
Run logs (newest first, last 50)
| File | Size | Modified (UTC) |
|---|---|---|
| run-20260927-075043-206.log | 141 KB | 2026-09-27 05:54:02 |
| run-20260927-070048-205.log | 398 KB | 2026-09-27 05:40:43 |
| run-20260927-060824-204.log | 396 KB | 2026-09-27 04:50:48 |
| run-20260927-051844-203.log | 421 KB | 2026-09-27 03:58:24 |
| run-20260927-040036-202.log | 687 KB | 2026-09-27 03:08:44 |
| run-20260927-031532-201.log | 117 KB | 2026-09-27 01:50:36 |
| run-20260927-020118-200.log | 492 KB | 2026-09-27 01:05:32 |
| run-20260927-015118-199.log | 153 B | 2026-09-26 23:51:18 |
| run-20260927-014117-198.log | 153 B | 2026-09-26 23:41:18 |
| run-20260927-013116-197.log | 153 B | 2026-09-26 23:31:17 |
| run-20260927-012116-196.log | 153 B | 2026-09-26 23:21:16 |
| run-20260927-011115-195.log | 153 B | 2026-09-26 23:11:16 |
| run-20260927-010114-194.log | 153 B | 2026-09-26 23:01:15 |
| run-20260927-005114-193.log | 153 B | 2026-09-26 22:51:14 |
| run-20260927-004113-192.log | 153 B | 2026-09-26 22:41:14 |
| run-20260927-003112-191.log | 153 B | 2026-09-26 22:31:13 |
| run-20260927-002111-190.log | 153 B | 2026-09-26 22:21:12 |
| run-20260927-001111-189.log | 153 B | 2026-09-26 22:11:11 |
| run-20260927-000110-188.log | 153 B | 2026-09-26 22:01:11 |
| run-20260926-235109-187.log | 153 B | 2026-09-26 21:51:10 |
| run-20260926-234108-186.log | 153 B | 2026-09-26 21:41:09 |
| run-20260926-233108-185.log | 153 B | 2026-09-26 21:31:08 |
| run-20260926-232107-184.log | 153 B | 2026-09-26 21:21:08 |
| run-20260926-231106-183.log | 153 B | 2026-09-26 21:11:07 |
| run-20260926-230105-182.log | 190 B | 2026-09-26 21:01:06 |
| run-20260926-225105-181.log | 153 B | 2026-09-26 20:51:05 |
| run-20260926-224104-180.log | 153 B | 2026-09-26 20:41:05 |
| run-20260926-223103-179.log | 153 B | 2026-09-26 20:31:04 |
| run-20260926-222103-178.log | 190 B | 2026-09-26 20:21:03 |
| run-20260926-221102-177.log | 153 B | 2026-09-26 20:11:03 |
| run-20260926-220101-176.log | 190 B | 2026-09-26 20:01:02 |
| run-20260926-215100-175.log | 153 B | 2026-09-26 19:51:01 |
| run-20260926-214100-174.log | 153 B | 2026-09-26 19:41:00 |
| run-20260926-213059-173.log | 153 B | 2026-09-26 19:31:00 |
| run-20260926-212058-172.log | 153 B | 2026-09-26 19:20:59 |
| run-20260926-205455-171.log | 133 KB | 2026-09-26 19:10:58 |
| run-20260926-202137-170.log | 215 KB | 2026-09-26 18:44:55 |
| run-20260926-194055-169.log | 257 KB | 2026-09-26 18:11:37 |
| run-20260926-191403-168.log | 160 KB | 2026-09-26 17:30:55 |
| run-20260926-180537-167.log | 281 KB | 2026-09-26 17:04:03 |
| run-20260926-170523-166.log | 164 KB | 2026-09-26 15:55:37 |
| run-20260926-162230-165.log | 178 KB | 2026-09-26 14:55:23 |
| run-20260926-154050-164.log | 198 KB | 2026-09-26 14:12:30 |
| run-20260926-153049-163.log | 153 B | 2026-09-26 13:30:50 |
| run-20260926-152049-162.log | 153 B | 2026-09-26 13:20:49 |
| run-20260926-151048-161.log | 153 B | 2026-09-26 13:10:49 |
| run-20260926-150047-160.log | 153 B | 2026-09-26 13:00:48 |
| run-20260926-145046-159.log | 153 B | 2026-09-26 12:50:47 |
| run-20260926-144046-158.log | 153 B | 2026-09-26 12:40:46 |
| run-20260926-143045-157.log | 153 B | 2026-09-26 12:30:46 |
Tail — run-20260927-075043-206.log (last 200 lines)
hostage to CONCURRENT shifts: mid-edit files make them falsely red.
repo-lint reads `git show <sha>:<path>` for a pinned revision (default
HEAD): it reports exactly what a checkout of that commit would contain,
immune to uncommitted work in the tree, and it can lint any historical
commit (bisect-style: `repo-lint --sha 219fd8f` still flags that test).
env:
GLADEX_REPO_DIR repo to lint (default: this script's parent repo,
realpath'd so the documented /data/tools symlink
resolves to /data/repo - same trap as
source-sync-check)
GLADEX_GO_GOPATH GOPATH for the compile gate (default /tmp/gopath,
shared with system-status so the module cache is
warm); GOMODCACHE is $GLADEX_GO_GOPATH/pkg/mod
GLADEX_GO_GOCACHE build cache for the compile gate (default /tmp/gocache)
The gate always runs with GOPROXY=off: a cold or
wiped cache fails CLOSED (exit 3), never offline-red.
examples:
repo-lint # lint HEAD, human output
repo-lint --format json # machine-readable single JSON object
repo-lint --sha 219fd8f # lint a historical commit
repo-lint --sha 395b9b5 # that commit's broken Go test package
rc=0
=== json help
usage: repo-lint [-h] [--sha SHA] [--format {human,json}] [--timeout TIMEOUT]
[--go-timeout GO_TIMEOUT]
Parse-check every lintable file of a COMMITTED tree (git blobs, not the working tree).
options:
-h, --help show this help message and exit
--sha SHA git revision to lint (default: HEAD); any rev git
accepts
--format {human,json}
output format (default: human)
--timeout TIMEOUT per-command timeout in seconds (default: 10)
--go-timeout GO_TIMEOUT
timeout for the Go compile gate in seconds (default:
120; compile-only, so a real run is a couple of
seconds)
exit codes:
0 - every linted file parses cleanly (and the committed Go module compiles
and every changelog version it cites exists in the committed
CHANGELOG.md)
1 - at least one committed file fails to parse, a committed Go file does
not compile, or the committed CHANGELOG.md repeats a version token,
or a committed file cites a version CHANGELOG.md never wrote
(see failures[])
2 - invalid arguments; under `--format json` that is still ONE JSON object
on stdout (exit_code 2, error naming the bad argument) - never empty
stdin for a machine reader - while human mode keeps argparse's usage
prose on stderr exactly as before
3 - cannot verify: not a git repo, unknown revision, a linter binary
missing/timed out, or a docstring section this epilog is built from
that is missing or empty (a lint that did not run is never a pass)
languages:
.php php -l | .sh bash -n | .py compile()
.go gofmt (parse only; unformatted != broken)
.json json.loads
Extensionless files are dispatched by shebang (python/bash/sh); binaries
(NUL byte in the first 8 KiB), symlinks, submodule gitlinks, empty files
and unsupported types are COUNTED and reported under skipped - never
silently ignored.
go compile gate:
gofmt runs on STDIN with no file args, so it exits 0 for anything
PARSEABLE - a parse gate is structurally blind to a file that parses
but does not build. On 2026-09-24 commit 395b9b5 shipped
app/src/go/cmd/gladex/commands/status_test.go with `import "json"`:
repo-lint answered "all 105 linted file(s) parse clean (exit 0)" for
that exact commit while `go test` could not build the package at all
(`package json is not in std ... FAIL [setup failed]`). It sat in main
for an hour because NO check in this repo compiled Go.
So: when the committed tree contains a go.mod, the Go module is
REBUILT FROM GIT BLOBS (never the worktree) into a temp dir outside
the repo and compiled with
go test -exec=true ./... -run '^$' -count=1
i.e. every test binary is BUILT and LINKED but never executed - a
compile, not a test run. Results are attributed ONLY to files this
commit actually ships: a failure naming a dependency, the go toolchain
or a temp path is "cannot verify" (exit 3), never a verdict on a file
we did not write. go.mod/go.sum count as module files; a .go tree with
no go.mod is not a module and is reported as such, not guessed.
changelog version gate:
`version` is the identity /api/changelog hands its consumers, and
several identities append to CHANGELOG.md, so a remembered rule cannot
hold: on 2026-09-25 commit 6c98b18 published `## [0.4.49]` at 11:07 and
6e61874 appended a SECOND `## [0.4.49]` at 13:17. 55 entries yielded 54
keys - one entry unreachable BY VERSION, the victim decided by file
order - and every suite stayed green, because the suite's own reference
parse carried the same duplicate (both sides wrong, equally) while its
keyed lookups only targeted 0.4.11/0.4.12. The guard existed as a TEST;
nothing at run time checked the commit. So the COMMITTED CHANGELOG.md
blob is scanned too: every repeated `## [x.y.z]` token is a failure
(exit 1) blamed on the LATER heading's line, with "first at line N"
pointing at the earlier one. A `##` heading that does not parse as a
version is COUNTED (`unparseable`), never entered and never a verdict -
the changelog API skips such headings too. A tree with no CHANGELOG.md
is `attempted: false, reason: no_changelog`: not a pass for a check
that never ran, and not a failure either.
The same blob is also the RULEBOOK for prose elsewhere in the tree: a
committed file that cites `[x.y.z]` in a series this CHANGELOG has an
entry for, when that exact token is not one of its headings, is a
failure (exit 1) blamed on the citing file's line - a claim that
version N exists cannot outlive the entry nobody wrote. The incident:
on 2026-09-26 a test header cited a version no heading had yet, and
nothing could notice, because prose existence was checked by nobody.
SCOPE is the judgment call: the rule governs only series the changelog
itself has headings for (its `series` list), because committed test
fixtures are full of version-shaped tokens that are not ours - a
throwaway repo's `## [1.0.0]` and the suite's own `[9.9.9]` are not
citations of this file. A citation in a series no heading belongs to
(a first 0.5.0 written before the first 0.5 entry) is therefore out
of scope by construction: counted in `citations_seen`, never a verdict.
Citations are collected from EVERY committed text blob, BEFORE the
extension dispatch, so `.md` prose that is never linted as code is in
scope too - and with no CHANGELOG.md to compare against, the tokens are
still counted while nothing is judged.
reads GIT BLOBS:
Every other check in this repo lints files ON DISK, which is blind to the
state of the commit itself. On 2026-09-24 a shift auto-commit landed
tests/test_mailbox_a11y.php with a PHP parse error (unexpected "," on line
208, commit 219fd8f) while the working tree was ALREADY fixed - HEAD was
broken and every worktree-based suite still passed. Disk lints are also
hostage to CONCURRENT shifts: mid-edit files make them falsely red.
repo-lint reads `git show <sha>:<path>` for a pinned revision (default
HEAD): it reports exactly what a checkout of that commit would contain,
immune to uncommitted work in the tree, and it can lint any historical
commit (bisect-style: `repo-lint --sha 219fd8f` still flags that test).
env:
GLADEX_REPO_DIR repo to lint (default: this script's parent repo,
realpath'd so the documented /data/tools symlink
resolves to /data/repo - same trap as
source-sync-check)
GLADEX_GO_GOPATH GOPATH for the compile gate (default /tmp/gopath,
shared with system-status so the module cache is
warm); GOMODCACHE is $GLADEX_GO_GOPATH/pkg/mod
GLADEX_GO_GOCACHE build cache for the compile gate (default /tmp/gocache)
The gate always runs with GOPROXY=off: a cold or
wiped cache fails CLOSED (exit 3), never offline-red.
examples:
repo-lint # lint HEAD, human output
repo-lint --format json # machine-readable single JSON object
repo-lint --sha 219fd8f # lint a historical commit
repo-lint --sha 395b9b5 # that commit's broken Go test package
rc=0
> build · mimo-v2.6-flash-free
[0m$ [0mcd /data/repo && grep -n "LINE_RE\|cmd = \|def lint\|errors\.append\|exit_code\|cannot verify\|_SYNTAX_LANGS\|EXT_LANG\|SHEBANG_LANG" tools/repo-lint | head -80
41: or a temp path is "cannot verify" (exit 3), never a verdict on a file
116: on stdout (exit_code 2, error naming the bad argument) - never empty
119: 3 - cannot verify: not a git repo, unknown revision, a linter binary
159:main() reports it through die() with exit_code 2, so "you typed a bad flag"
188:EXT_LANG = {
197:SHEBANG_LANG = {
205:LINE_RE = {
215:# we cannot attribute to a committed file is "cannot verify", not a verdict.
321:def die(p, repo, message, sha_requested, args_format, exit_code=EXIT_CANNOT):
332: `exit_code` exists for ONE caller: a usage error is the same non-verdict
358: "exit_code": exit_code,
365: return exit_code
525: printing - main() turns the exception into die()'s object with exit_code
670: for name, lang in SHEBANG_LANG.items():
676:def lint(lang, blob, path, timeout):
707: cmd = {
737: m = LINE_RE[lang].search(msg)
763: broken toolchain (exit 3 - cannot verify, never a
826: cmd = ["go", "test", "-exec=true", "./...", "-run", "^$", "-count=1"]
858: # path): we have no right to a verdict -> cannot verify.
1043:# promote-dev-to-prod calls `_SYNTAX_LANGS` when it words the refusal this
1048:_SYNTAX_LANGS = frozenset({"php", "bash", "python", "json", "go", "go-compile"})
1051:def _result_line(failures, exit_code, n_linted) -> str:
1089: if all(k in _SYNTAX_LANGS for k in kinds):
1092: f"(exit {exit_code})"
1096: f"({', '.join(kinds)}) (exit {exit_code})"
1141: exit_code=EXIT_USAGE,
1149: # exit 3 (cannot verify), distinct from 1 (verified and broken). No
1210: errors.append({"path": path, "lang": None, "error": f"git failed: {e}"})
1213: errors.append({"path": path, "lang": None, "error": str(e)})
1237: lang = EXT_LANG.get(ext)
1260: errors.append(info)
1308: exit_code = 3 if errors else (1 if failures else 0)
1327: "ok": exit_code == 0,
1328: "exit_code": exit_code,
1333: return exit_code
1361: f"result: cannot verify - {len(errors)} lint error(s) "
1362: f"(exit {exit_code})"
1365: print(_result_line(failures, exit_code, n_linted))
1366: return exit_code
> build · mimo-v2.6-flash-free
[0m→ [0mRead repo/tools/repo-lint [90m[offset=660, limit=120][0m
[0m→ [0mRead repo/tools/repo-lint [90m[offset=1180, limit=140][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 Sep 27 07:31:39 2026] 127.0.0.1:33680 Accepted [Sun Sep 27 07:31:39 2026] 127.0.0.1:33680 Closing [Sun Sep 27 07:31:39 2026] 127.0.0.1:33684 Accepted [Sun Sep 27 07:31:39 2026] 127.0.0.1:33684 Closing [Sun Sep 27 07:31:42 2026] 127.0.0.1:33692 Accepted [Sun Sep 27 07:31:42 2026] 127.0.0.1:33692 Closing [Sun Sep 27 07:31:42 2026] 127.0.0.1:33700 Accepted [Sun Sep 27 07:31:42 2026] 127.0.0.1:33700 Closing [Sun Sep 27 07:31:42 2026] 127.0.0.1:33704 Accepted [Sun Sep 27 07:31:42 2026] 127.0.0.1:33704 Closing [Sun Sep 27 07:31:42 2026] 127.0.0.1:33710 Accepted [Sun Sep 27 07:31:42 2026] 127.0.0.1:33710 Closing [Sun Sep 27 07:31:42 2026] 127.0.0.1:33714 Accepted [Sun Sep 27 07:31:42 2026] 127.0.0.1:33714 Closing [Sun Sep 27 07:31:57 2026] 127.0.0.1:55704 Accepted [Sun Sep 27 07:31:57 2026] 127.0.0.1:55704 Closing [Sun Sep 27 07:31:58 2026] 127.0.0.1:55712 Accepted [Sun Sep 27 07:31:58 2026] 127.0.0.1:55712 Closing [Sun Sep 27 07:31:58 2026] 127.0.0.1:55728 Accepted [Sun Sep 27 07:31:58 2026] 127.0.0.1:55728 Closing [Sun Sep 27 07:31:58 2026] 127.0.0.1:55742 Accepted [Sun Sep 27 07:31:58 2026] 127.0.0.1:55742 Closing [Sun Sep 27 07:31:58 2026] 127.0.0.1:55746 Accepted [Sun Sep 27 07:31:58 2026] 127.0.0.1:55746 Closing [Sun Sep 27 07:31:58 2026] 127.0.0.1:55752 Accepted [Sun Sep 27 07:31:58 2026] 127.0.0.1:55752 Closing [Sun Sep 27 07:31:58 2026] 127.0.0.1:55756 Accepted [Sun Sep 27 07:31:58 2026] 127.0.0.1:55756 Closing [Sun Sep 27 07:31:58 2026] 127.0.0.1:55762 Accepted [Sun Sep 27 07:31:59 2026] 127.0.0.1:55762 Closing [Sun Sep 27 07:31:59 2026] 127.0.0.1:55766 Accepted [Sun Sep 27 07:31:59 2026] 127.0.0.1:55766 Closing [Sun Sep 27 07:31:59 2026] 127.0.0.1:55782 Accepted [Sun Sep 27 07:31:59 2026] 127.0.0.1:55782 Closing [Sun Sep 27 07:31:59 2026] 127.0.0.1:55792 Accepted [Sun Sep 27 07:31:59 2026] 127.0.0.1:55792 Closing [Sun Sep 27 07:31:59 2026] 127.0.0.1:55796 Accepted [Sun Sep 27 07:31:59 2026] 127.0.0.1:55796 Closing [Sun Sep 27 07:31:59 2026] 127.0.0.1:55810 Accepted [Sun Sep 27 07:31:59 2026] 127.0.0.1:55810 Closing [Sun Sep 27 07:31:59 2026] 127.0.0.1:55820 Accepted [Sun Sep 27 07:31:59 2026] 127.0.0.1:55820 Closing [Sun Sep 27 07:31:59 2026] 127.0.0.1:55834 Accepted [Sun Sep 27 07:31:59 2026] 127.0.0.1:55834 Closing [Sun Sep 27 07:37:49 2026] 127.0.0.1:47342 Accepted [Sun Sep 27 07:37:49 2026] 127.0.0.1:47342 Closing [Sun Sep 27 07:37:57 2026] 127.0.0.1:36418 Accepted [Sun Sep 27 07:37:57 2026] 127.0.0.1:36418 Closing [Sun Sep 27 07:47:34 2026] 127.0.0.1:37974 Accepted [Sun Sep 27 07:47:34 2026] 127.0.0.1:37974 Closing [Sun Sep 27 07:51:09 2026] 127.0.0.1:43548 Accepted [Sun Sep 27 07:51:09 2026] 127.0.0.1:43548 Closing [Sun Sep 27 07:52:05 2026] 127.0.0.1:40948 Accepted [Sun Sep 27 07:52:05 2026] 127.0.0.1:40948 Closing [Sun Sep 27 07:52:05 2026] 127.0.0.1:40950 Accepted [Sun Sep 27 07:52:05 2026] 127.0.0.1:40950 Closing [Sun Sep 27 07:55:17 2026] 127.0.0.1:38486 Accepted [Sun Sep 27 07:55:17 2026] 127.0.0.1:38486 Closing [Sun Sep 27 07:55:18 2026] 127.0.0.1:38500 Accepted
Generated 2026-09-27 05:55:18 UTC · Gladex.de