Files
wiki/memory/2026-06-02.md
2026-06-02 09:40:26 +03:00

4.0 KiB

2026-06-02 — Daily Log

ET-009: GPS Sources (EnduroRussia + Wikiloc) — Pipeline Completed 🎉

Pipeline stages (all passed):

  1. analysis — analyst (Sonnet), produced BRD, TRZ, acceptance criteria, test plans
  2. architecture — architect v2 (Opus 4.7), ADRs + infrastructure requirements
  3. development — developer (Opus 4.7 1M), 19 files, 1287 lines. Commit 3577ff3
  4. review — reviewer (Opus), found P1 bugs F-01, F-02
  5. development fix — developer (Sonnet), commit fc03746: 159 lines in gps_tracks.js
  6. review round 2 — reviewer (Opus), APPROVED, only P3 minors remain
  7. testing — tester (Sonnet), 25/25 pytest + 24/24 js tests PASS
  8. deploy — deployer (Sonnet), PR #16 merged, image rebuilt, collector running

Key results:

  • EnduroRussia parser: enduro_russia.py — scraping + GPX parsing
  • Wikiloc parser: wikiloc.py — Wikiloc GPX integration
  • Dynamic source filters (F-01): _buildGpsFiltersUI pulls source_id from /api/gps-tracks/health.tracks_by_source
  • Attribution fix (F-02): attribution set at addSource time via _ensureGpsSources(map, attribution), not by mutating src.attribution (MapLibre AttributionControl issue)
  • Collector running: 305 EnduroRussia tracks, fetching one per 5s, 34+ already in DB
  • Commits: eaa6b4c (analyst), 4be7fbf (architect), 3577ff3 (dev), fc03746 (dev fix)
  • PR: #16 merged → main at b5ba7b2

Known issues:

  • Nginx 502 on external URL (port 5556 routing) — not ET-009 specific, needs nginx config fix
  • gps_sources.yaml — ADR files inside Docker image (not volume), old image had proposed; fixed by rebuilding image

Orchestrator Issues Discovered

Critical bug: Launcher Popen broken inside container

  • All Claude processes (claude.exe) become zombies when launched via orchestrator's Python subprocess
  • Root cause: docker binary not available inside container, Popen flags wrong
  • Workaround established: base64-encode Python launch script → ssh to host → decode → docker cp → docker exec python3
  • This pattern avoids shell quoting hell

Other orchestrator bugs:

  • .task-arch.md, .task-dev.md, .task-review.md not regenerated per-stage (carry over from previous task)
  • Workaround: manually rewrite these files before each stage launch
  • No CI configured in Gitea → every commit triggers false "CI failed" webhook alert
  • Tokenator API: all 8 models down for maintenance (June 1, still down June 2 morning)

Agent launch manual pattern:

# 1. Base64-encode the Python launch script
cat launch_script.py | base64 -w0

# 2. SSH to host, decode, cp to container, exec
ssh slin@82.22.50.71 "
  echo 'BASE64_STRING' | base64 -d > /tmp/launch.py
  docker cp /tmp/launch.py orchestrator:/tmp/launch.py
  docker exec orchestrator python3 /tmp/launch.py
"

Models Configuration Changes

  • DeepSeek V4 models added to openclaw.json:
    • openrouter/deepseek/deepseek-v4
    • openrouter/deepseek/deepseek-v4-pro
    • openrouter/deepseek/deepseek-v4-flash
  • Current model for main agent: openrouter/deepseek/deepseek-v4-pro

User Preferences (re-confirmed during ET-009)

  • User wants visibility at each pipeline stage — frustrated by silent automated advances
  • User wants to approve before advancing: analyst → :approved: → architect → developer → reviewer → tester → deployer
  • Only analyst requires manual :approved:; architect, reviewer, tester should auto-advance but notify
  • Deployer should ask before deploying

ET-009 Artifacts

  • Plane issue: 64e98247-509f-4c30-9955-a5531ab7d1ee (sequence #5)
  • Plane workspace: ag_proj, project 7a79f0a9-5278-49cd-9007-9a338f238f9c
  • Orchestrator DB: task_id=16
  • Repo: /home/slin/repos/enduro-trails on mva154
  • Docs: docs/work-items/ET-009/ — 00 through 14 (BRD, TRZ, acceptance, tests, ADRs, infra, data, risks, review, test report, deploy)
  • Docker: container enduro-trails, image rebuilt with new ADR files, collector running