M3 — mass collection — user-verification, captured on the podman runner

Provenance: the raw output below is the run's own artifact, downloaded from the workflow run — user-verify.log and diag.log, plus the PNGs the browser driver captured. Nothing here is retyped.

The run

Workflow: user-verification (podman) — job user-verification (podman container)
Run: 37960571099 — completed / success
Commit: c051fbc (branch feat/m3-mass-collection); CI on the same SHA: success
Runner kind: podman-runner (disposable container, headless chromium)
Artifact: user-verification-podman

This is not the milestone's CIHOST run (that one is the yc VM): the Yandex Cloud folder refuses VM allocation (quota, POST /instances → 429 Resource allocation is restricted), so the same layer was run on the disposable podman container instead. The two stopgap steps the layer needs there name both the add-issue and the removal-issue they are paired with: the browser driver (preinstall#105 ↔ #106) and — since the snap cannot be built on this image — the store (preinstall#107 ↔ #108, the pinned v26.9.12.8-stable the snap ships). No continue-on-error anywhere.

What the run shows

M3 layer — the collection store beside the source's own view

the Polymarket page for the recorded token, captured by the layer's browser
The source's own view at the recorded moment — captured by the layer's browser (HTTP 200).

M2 layer — the recorded table beside the sources' own views

the Polymarket page for the M2 token at T
Market half — the Polymarket page for the token at T.
the live text source's own view at T
Text half — the live text source's own view at T.

Raw output — the run's own log

Full user-verify.log (raw file):

== deploy: the declared stack and the ClickHouse contour ==
Downloading https://services.gradle.org/distributions/gradle-8.14.4-bin.zip
.............10%.............20%.............30%.............40%.............50%.............60%.............70%.............80%.............90%..............100%
== deploy: the declared stack and the ClickHouse contour ==
kotlin      : 2.4.20
jvm         : 21.0.12.1
jvm_vendor  : Eclipse Adoptium
gradle      : 8.14.4
koin        : 4.0.0
clickhouse  : server 24.8 (compose.local.yml)
store_url   : http://127.0.0.1:8123
select1     : 1
schema      : recording + recording_header ensured
deploy: OK
load-fixture: 22 rows into 'recording' (1077937940350992…)
== user verification: khl-sib-sal-2026-10-07 ==
moment T      : 2026-10-09T16:42:52Z
market page   : https://polymarket.com/event/khl-sib-sal-2026-10-07
source view   : thesportsdb-khl (https://www.thesportsdb.com/api/v1/json/3/livescore.php?s=Ice%20Hockey)
-- market half --
  table : token=10779379403509928208771740072565882868916750118110564166010793647890848906146  price=0.001
  page  : Skip to main content How it works Log in Sign up Trending Combos Perps Breaking New Politics Sports Crypto Esports Iran Finance Geopolitics Tech Culture Economy Weather Mentions Elections Art More Live Futures ALL SPORTS NFL MLB College Football UFC UEFA Champions League UEFA Nations League Soccer Tennis Cricket Basketball Baseball Football Hockey All NHL Czech Extraliga DEL Liiga KHL National League AHL SHL Champions Hockey League Rugby Aussie Rules Table Tennis Darts Handball Golf Combat Motorsports Cycling Chess Pickleball Esports Sports · KHL Sibir Novosibirsk – Salavat Yulaev Ufa Sibir 0 
  shot  : user-verification/khl-sib-sal-2026-10-07.market.png  (HTTP 200)
-- text half --
  table : Russian KHL | Sibir Novosibirsk 4-5 Salavat Yulaev Ufa | 2
  view  : Russian KHL | Sibir Novosibirsk 4-5 Salavat Yulaev Ufa
  shot  : user-verification/khl-sib-sal-2026-10-07.text.png  (HTTP 200)
-- field-for-field --
  match  market.identity  the recorded token is the market the page is for
  match  market.price     the table's price beside the page at T
  match  text.score       the score in the source's view is the score in the recorded line
user-verify: OK
load-fixture: 364 order-book rows, 180 trades into 'order_book'/'trade'
load-fixture: events will-shakhtar-donetsk-win-the-2026-27-uefa-champions-league-championship-20260701202025578,will-elise-stefanik-win-the-2028-republican-presidential-nomination,will-bernie-sanders-win-the-2028-democratic-presidential-nomination-879,will-the-iranian-regime-fall-by-the-end-of-2026
== M3 user verification: the collection store beside the source's own view, field for field ==
event        : will-shakhtar-donetsk-win-the-2026-27-uefa-champions-league-championship-20260701202025578
token        : 33339798372916037220786136133406478491116150628220441951753426683441228279665
moment T     : 2026-10-07T21:34:39Z
window       : ±10s
source       : https://polymarket.com/event/will-shakhtar-donetsk-win-the-2026-27-uefa-champions-league-championship-20260701202025578
store        : http://127.0.0.1:8123
counts       : order_book=180 trade=179
-- store, order book at T --
  recv_time  : 2026-10-07T21:34:38Z
  best_bid   : 0.001
  best_ask   : 0.002
-- store, trades around T --
  2026-10-07T21:34:29Z  price=0.002  size=5  side=BUY
  2026-10-07T21:34:30Z  price=0.002  size=5  side=BUY
  2026-10-07T21:34:31Z  price=0.002  size=5  side=BUY
-- recorded source view (the CLOB rows at capture time) --
  best_bid   : 0.001
  best_ask   : 0.002
  trades     : 20
source shot  : user-verification/will-shakhtar-donetsk-win-the-2026-27-uefa-champions-league-championship-20260701202025578.market.png
-- field-for-field --
  match  best_bid     store=0.001 source=0.001
  match  best_ask     store=0.002 source=0.002
  match  trades       store=20 source=20
user-verify-m3: OK

Raw output — the environment diagnosis

Full diag.log (raw file):

user        : uid=1002(runner) gid=1002(runner) groups=1002(runner)
HOME        : /home/runner
PATH        : /home/runner/.ghsetup/v1/bin:/home/runner/.local/bin:/home/tools/tools/v1/bin:/home/runner/.local/bin:/opt/toolset/current/bin:/opt/toolset/bin:/home/dev/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
have node               /home/tools/tools/v1/bin/node
have npm                /home/tools/tools/v1/bin/npm
have npx                /home/tools/tools/v1/bin/npx
have java               /home/tools/tools/v1/bin/java
have javac              /home/tools/tools/v1/bin/javac
have gradle             MISSING
have podman             MISSING
have clickhouse         MISSING
have clickhouse-server  MISSING
have curl               /usr/bin/curl
have getent             /usr/bin/getent
have python3            /home/tools/tools/v1/bin/python3
have apt-get            /usr/bin/apt-get
have sudo               MISSING
node -v     : v24.21.0
java        : openjdk version "21.0.12.1" 2026-08-18 LTS
-- /opt/toolset --
total 8
drwxr-xr-x 2 dev  dev  4096 Sep 29 18:52 .
drwxr-xr-x 7 root root 4096 Sep 30 16:33 ..
-- /opt/toolset/current/bin --
ls: cannot access '/opt/toolset/current/bin': No such file or directory
-- HOME/.config/toolssetup/env.sh --
# toolssetup v1 mounted from /home/tools/tools
# Generated by toolssetup/mount.sh. Source it, or let ~/.bashrc source it.
export TOOLSSETUP_ROOT="/home/tools/tools"
export TOOLSSETUP_VERSION="v1"
export TOOLSSETUP_PREFIX="/home/tools/tools/v1"
export PATH="/home/tools/tools/v1/bin:$HOME/.local/bin:$PATH"
# python: the interpreter is read-only in the shared root; caches and venvs are the account's
export UV_CACHE_DIR="$HOME/.cache/toolssetup/uv"
export PIP_CACHE_DIR="$HOME/.cache/toolssetup/pip"
# node/npm: the npm cache and the global prefix are the account's, so
# `npm i -g` never tries to write into the sealed toolset
export npm_config_cache="$HOME/.cache/toolssetup/npm"
export npm_config_prefix="$HOME/.local"
# go: modules and the build cache live in the account's home
export GOPATH="$HOME/go"
export GOMODCACHE="$HOME/go/pkg/mod"
export GOCACHE="$HOME/.cache/toolssetup/go-build"
export GOENV="$HOME/.config/go/env"
# rust: the toolchain is read-only in the shared root; the registry a build
# needs (`cargo`) stays in the account's home
export RUSTUP_HOME="/home/tools/tools/v1/store/rust/rustup"
export CARGO_HOME="$HOME/.cargo"
export JAVA_HOME="/home/tools/tools/v1/store/java/21.0.12.1+1/jdk-21.0.12.1+1"
export KOTLIN_HOME="/home/tools/tools/v1/store/kotlin/2.4.20/kotlinc"
export SCALA_HOME="/home/tools/tools/v1/store/scala/3.9.0/scala3-3.9.0/bin"

What this run does not cover

Links