← back to Wallco Ai
data/yolo-overnight/baseline-20260525-0201.md
86 lines
# Wallco-AI Overnight Baseline — 2026-05-25 02:01 PDT
Working dir: `/root/public-projects/wallco-ai` (the `/root/Projects/wallco-ai` path is an empty placeholder — only `data/seam-fix/`).
## 1. PM2 — Wallco Services
All wallco services **online**. No errored services found, nothing to restart.
| PM2 Name | Status | Restarts (cum.) | Uptime | Port | CWD |
|--------------------|--------|-----------------|---------|------|--------------------------------------|
| wallco | online | 0 | ~4.5 d | — | /root/Projects/wallco |
| wallco-ai | online | 119 (cum.) | ~39 min | 9905 | /root/public-projects/wallco-ai |
| wallco-hot-or-not | online | 0 | ~4.5 d | 9794 | /root/public-projects/wallco-ai |
**Note on 119 restarts:** This is the *cumulative* pm2 counter, NOT crash-loop flapping.
The pm2 stdout log shows the most recent restarts at 07:56, 08:01, 08:21 UTC (5–20 min
apart), and the latest healthy log line ("file-cache refreshed: 72741 files on disk")
is at 09:01 UTC — so the process has been steady for the past ~40+ min. Restart counter
has not been reset since pm2 daemon start; not a current incident.
## 2. /api/designs total
**Heads-up:** The task said port 9877, but `127.0.0.1:9877` is the **paint-visualizer-agent**
(per the most recent commit `4fcbef909` that bound it to `127.0.0.1` to dodge the
tailscaled wildcard-bind conflict). It returns 401 even with admin creds.
The real wallco-ai port is **9905** (per `pm2 env` and `ss -tlnp`). Hit it with admin auth:
```
$ curl -s 'http://127.0.0.1:9905/api/designs?limit=1'
```
```json
{ "ok": true, "total": 26709, "page": 1, "pages": 26709, "items": [...] }
```
- **Total designs: 26,709** (publishable; 1,282 blank-guarded out of the 27,217 cache,
plus user_removed filtering — both confirmed in startup log).
## 3. Git status + last 3 commits
`/root/public-projects/wallco-ai` is **NOT a git repository** (`fatal: not a git repository`).
No `.git` dir at the project root or any parent up the tree. Nothing to `git status` or
`git log`. **The auto-commit step at the end of this task therefore can't run** — the
report is being saved but not committed. Flag for Steve: if these baselines are meant to
be tracked, the directory needs `git init` + an `origin`.
Recent change to the wallco-ai stack (from the parent `DW-Agents` repo, commit `4fcbef909`):
> fix paint-visualizer-agent + marburg-live-viewer EADDRINUSE flap — bind 127.0.0.1
> (tailscaled already holds tailnet IP:9877 + :9661); was flapping 35k+ restarts each at
> ~2s cycle.
This is the reason port 9877 now answers 401 from a non-wallco service.
## 4. Log tail — `logs/server.out.log`
The path `logs/server.out.log` does **not exist** in the repo. Wallco-ai logs go to
pm2 paths (`/root/.pm2/logs/wallco-ai-{out,error}.log`). Last 40 lines reviewed:
- **Stdout:** Clean startup sequence on each restart — Marketplace webhook, Chat,
Review, Admin, Marketplace, Social, Fliepaper-bugs, Library (57,417 rows from cache),
Trade-user tables, Audit-log tables, devlogin disabled (correct for prod), then
`wallco.ai production server → http://0.0.0.0:9905`, `Designs loaded: 27217`,
`GA4: G-6V7HSH6K1M`. Latest line: `[api/designs] file-cache refreshed: 72741 files
on disk` — healthy.
- **Stderr:** Only PostgreSQL `NOTICE: relation "..." already exists, skipping`
notices from idempotent `CREATE TABLE IF NOT EXISTS` migrations. Not errors. The
one repeated warning worth noting:
`[marketplace.db] ignoring non-URL DATABASE_URL/MARKETPLACE_DB_URL ("dw_unified") —
falling through to PGHOST/PGDATABASE defaults`
→ cosmetic; service still connects correctly via PGHOST defaults, but a future
cleanup should either set a proper `postgresql://…` URL or stop logging it as a
pseudo-error.
## Summary
- All wallco PM2 services online; nothing to restart.
- API healthy at `127.0.0.1:9905`; 26,709 designs.
- Task spec port `9877` is wrong — that's paint-visualizer-agent now (recent bind fix).
- No git repo at the wallco-ai path, so the "and commit" step is a no-op; reporting
this here instead of escalating since it's a write-only blocker (nothing destructive,
no decision needed).
- No unusual errors in logs; only benign `IF NOT EXISTS` notices and one cosmetic
marketplace DB warning.