1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
WVMQWENWS_6D91C42F
source=WEBVM
time=2026-11-12T16:38:01+00:00
stage=PI_HEARTBEAT
[2026-11-12T16:31:10+00:00] PI_WRAPPER_STARTED tag=WVMQWENWS_6D91C42F script=pi.py
[2026-11-12T16:31:16+00:00] PROXY_STARTING mode=in-process (handled by pi_impl.main)
[2026-11-12T16:31:19+00:00] PI_IMPL_FETCHED source=main characters=81436
[2026-11-12T16:31:20+00:00] booting.
[2026-11-12T16:31:21+00:00] LAUNCHER_FETCHED source=main characters=40911
[2026-11-12T16:31:21+00:00] WRAPPER_STARTED_IN_THREAD port=28082 (CheerpX-compatible)
[2026-11-12T16:31:22+00:00] FORWARD_PROXY_STARTED port=28081 (pure-python)
[2026-11-12T16:31:23+00:00] TLS_FILE_FETCHED name=dev-proxy-ca.crt bytes=1204
[2026-11-12T16:31:23+00:00] TLS_FILE_FETCHED name=dev-proxy-server.crt bytes=1273
[2026-11-12T16:31:24+00:00] TLS_FILE_FETCHED name=dev-proxy-server.key bytes=1675
[2026-11-12T16:31:24+00:00] [WEB_ADJUSTER] TLS_WRAPPER_LISTENING bind=0.0.0.0 port=28443 cert=/tmp/webvm-proxy-tls/dev-proxy-server.crt
[2026-11-12T16:31:24+00:00] TLS_PROXY_STARTED port=28443
[2026-11-12T16:31:25+00:00] TELNET_SHELL_FETCHED source=main characters=3935
[2026-11-12T16:31:26+00:00] TELNET_SHELL_LISTENING host=0.0.0.0 port=2323
[2026-11-12T16:31:26+00:00] WEB_ADJUSTER_ONLY_MODE — Kaggle code disabled for proxy testing
[2026-11-12T16:31:26+00:00] Wrapper: http://0.0.0.0:28082/
[2026-11-12T16:31:26+00:00] Forward proxy: http://0.0.0.0:28081/ (pure-python, no adjuster package)
[2026-11-12T16:31:26+00:00] Telnet shell: 0.0.0.0:2323 (plink.exe -raw -P 2323 <tailscale-ip>)
[2026-11-12T16:31:26+00:00] ENDPOINT_TEST skipped reason=set_WEBVM_SELFTEST=1_to_enable
[2026-11-12T16:31:26+00:00] Tailing /tmp/web-adjuster.log ...
[2026-11-12T16:33:14+00:00] TELNET_SHELL_CONNECTED client=0.0.0.0:2323
[2026-11-12T16:33:15+00:00] TELNET_SHELL_DISCONNECTED client=0.0.0.0:2323
[2026-11-12T16:33:17+00:00] [WEB_ADJUSTER] BAD_REQUEST error=empty request
[2026-11-12T16:33:25+00:00] [WEB_ADJUSTER] BAD_REQUEST error=empty request
[2026-11-12T16:33:25+00:00] [WEB_ADJUSTER] REQUEST method=GET target=/health client=0.0.0.0:28081
[2026-11-12T16:33:25+00:00] [WEB_ADJUSTER] SEND_START status=200 bytes=269 client=0.0.0.0:28081
[2026-11-12T16:33:25+00:00] [WEB_ADJUSTER] SEND_OK status=200 bytes=269
[2026-11-12T16:33:25+00:00] [WEB_ADJUSTER] REQUEST method=GET target=/proxy-status client=0.0.0.0:28081
[2026-11-12T16:33:25+00:00] [WEB_ADJUSTER] SEND_START status=200 bytes=422 client=0.0.0.0:28081
[2026-11-12T16:33:25+00:00] [WEB_ADJUSTER] SEND_OK status=200 bytes=422
[2026-11-12T16:33:25+00:00] [WEB_ADJUSTER] REQUEST method=GET target=/health client=0.0.0.0:28082
[2026-11-12T16:33:25+00:00] [WEB_ADJUSTER] SEND_START status=200 bytes=269 client=0.0.0.0:28082
[2026-11-12T16:33:25+00:00] [WEB_ADJUSTER] SEND_OK status=200 bytes=269
[2026-11-12T16:33:25+00:00] [WEB_ADJUSTER] REQUEST method=GET target=/proxy-status client=0.0.0.0:28082
[2026-11-12T16:33:25+00:00] [WEB_ADJUSTER] SEND_START status=200 bytes=422 client=0.0.0.0:28082
[2026-11-12T16:33:25+00:00] [WEB_ADJUSTER] SEND_OK status=200 bytes=422
[2026-11-12T16:33:25+00:00] TAILSCALE_IP_NOT_FOUND timeout=120s
[2026-11-12T16:33:35+00:00] [WEB_ADJUSTER] REQUEST method=GET target=/proxy/https%3A%2F%2Fexample.com%2F client=0.0.0.0:28082
[2026-11-12T16:33:35+00:00] [WEB_ADJUSTER] UPSTREAM_PHASE url_connect host=example.com port=443 ok
[2026-11-12T16:33:36+00:00] [WEB_ADJUSTER] UPSTREAM_PHASE tls_done host=example.com port=443
[2026-11-12T16:33:38+00:00] [WEB_ADJUSTER] UPSTREAM_TIMING url=https://example.com/ reused=False status=200 bytes=577 total_ms=2691
[2026-11-12T16:33:38+00:00] [WEB_ADJUSTER] PROXIED status=200 url=https://example.com/ bytes=1106
[2026-11-12T16:33:38+00:00] [WEB_ADJUSTER] SEND_START status=200 bytes=1651 client=0.0.0.0:28082
[2026-11-12T16:33:38+00:00] [WEB_ADJUSTER] SEND_OK status=200 bytes=1651
[2026-11-12T16:34:57+00:00] [WEB_ADJUSTER] REQUEST method=GET target=/?target=https%3A%2F%2Fwww.kaggle.com%2F client=0.0.0.0:28082
[2026-11-12T16:35:00+00:00] [WEB_ADJUSTER] SEND_START status=200 bytes=3318 client=0.0.0.0:28082
[2026-11-12T16:35:00+00:00] [WEB_ADJUSTER] SEND_OK status=200 bytes=3318
[2026-11-12T16:35:00+00:00] [WEB_ADJUSTER] REQUEST method=GET target=/proxy/https%3A%2F%2Fwww.kaggle.com%2F client=0.0.0.0:28082
[2026-11-12T16:35:00+00:00] [WEB_ADJUSTER] UPSTREAM_PHASE url_connect host=www.kaggle.com port=443 ok
[2026-11-12T16:35:00+00:00] [WEB_ADJUSTER] UPSTREAM_PHASE tls_done host=www.kaggle.com port=443
[2026-11-12T16:35:00+00:00] [WEB_ADJUSTER] UPSTREAM_TIMING url=https://www.kaggle.com/ reused=False status=200 bytes=2712 total_ms=2142
[2026-11-12T16:35:00+00:00] [WEB_ADJUSTER] PROXIED status=200 url=https://www.kaggle.com/ bytes=7161
[2026-11-12T16:35:00+00:00] [WEB_ADJUSTER] SEND_START status=200 bytes=9767 client=0.0.0.0:28082
[2026-11-12T16:35:00+00:00] [WEB_ADJUSTER] SEND_OK status=200 bytes=9767
[2026-11-12T16:35:00+00:00] [WEB_ADJUSTER] REQUEST method=GET target=/proxy/https%3A%2F%2Faccounts.google.com%2Fgsi%2Fclient client=0.0.0.0:28082
[2026-11-12T16:35:00+00:00] [WEB_ADJUSTER] REQUEST method=GET target=/proxy/https%3A%2F%2Ffonts.googleapis.com%2Fcss2%3Ffamily%3DGoogle%2BSans%2BCode%3Aital%2Cwght%2CMONO%400%2C300..800%2C1%3B1%2C300..800%2C1% client=0.0.0.0:28082
[2026-11-12T16:35:00+00:00] [WEB_ADJUSTER] REQUEST method=GET target=/proxy/https%3A%2F%2Ffonts.googleapis.com%2Fcss2%3Ffamily%3DGoogle%2BSymbols%3AFILL%2Cwght%400..1%2C200..700%26display%3Dblock client=0.0.0.0:28082
[2026-11-12T16:35:00+00:00] [WEB_ADJUSTER] UPSTREAM_PHASE url_connect host=accounts.google.com port=443 ok
[2026-11-12T16:35:00+00:00] [WEB_ADJUSTER] REQUEST method=GET target=/static/assets/app.css?v=e31a0a53cbc22063 client=0.0.0.0:28082
[2026-11-12T16:35:00+00:00] [WEB_ADJUSTER] SEND_START status=404 bytes=284 client=0.0.0.0:28082
[2026-11-12T16:35:00+00:00] [WEB_ADJUSTER] SEND_OK status=404 bytes=284
[2026-11-12T16:35:00+00:00] [WEB_ADJUSTER] REQUEST method=GET target=/static/assets/runtime.js?v=ba718654d39e64ba client=0.0.0.0:28082
[2026-11-12T16:35:00+00:00] [WEB_ADJUSTER] SEND_START status=404 bytes=284 client=0.0.0.0:28082
[2026-11-12T16:35:00+00:00] [WEB_ADJUSTER] SEND_OK status=404 bytes=284
[2026-11-12T16:35:00+00:00] [WEB_ADJUSTER] REQUEST method=GET target=/static/assets/vendor.js?v=d65bb8768740f992 client=0.0.0.0:28082
[2026-11-12T16:35:00+00:00] [WEB_ADJUSTER] SEND_START status=404 bytes=284 client=0.0.0.0:28082
[2026-11-12T16:35:00+00:00] [WEB_ADJUSTER] SEND_OK status=404 bytes=284
[2026-11-12T16:35:01+00:00] [WEB_ADJUSTER] REQUEST method=GET target=/static/assets/app.js?v=4b5a7e1fe58cdf18 client=0.0.0.0:28082
[2026-11-12T16:35:01+00:00] [WEB_ADJUSTER] SEND_START status=404 bytes=284 client=0.0.0.0:28082
[2026-11-12T16:35:01+00:00] [WEB_ADJUSTER] SEND_OK status=404 bytes=284
[2026-11-12T16:35:01+00:00] [WEB_ADJUSTER] REQUEST method=GET target=/proxy/https%3A%2F%2Fwww.google.com%2Frecaptcha%2Fenterprise.js%3Frender%3D6LcVUOAUAAAAAP8nMSGuW46uJC5Zf6-PCYKN5xxv client=0.0.0.0:28082
[2026-11-12T16:35:01+00:00] [WEB_ADJUSTER] REQUEST method=GET target=/proxy/https%3A%2F%2Fapis.google.com%2Fjs%2Fapi.js client=0.0.0.0:28082
[2026-11-12T16:35:01+00:00] [WEB_ADJUSTER] REQUEST method=GET target=/proxy/https%3A%2F%2Fwww.googletagmanager.com%2Fgtag%2Fjs%3Fid%3DG-T7QHS60L4Q client=0.0.0.0:28082
[2026-11-12T16:35:02+00:00] [WEB_ADJUSTER] UPSTREAM_PHASE tls_done host=accounts.google.com port=443
[2026-11-12T16:35:03+00:00] [WEB_ADJUSTER] UPSTREAM_TIMING url=https://accounts.google.com/gsi/client reused=False status=200 bytes=106309 total_ms=2872
[2026-11-12T16:35:03+00:00] [WEB_ADJUSTER] PROXIED status=200 url=https://accounts.google.com/gsi/client bytes=285286
[2026-11-12T16:35:03+00:00] [WEB_ADJUSTER] SEND_START status=200 bytes=286614 client=0.0.0.0:28082
[2026-11-12T16:35:03+00:00] [WEB_ADJUSTER] SEND_OK status=200 bytes=286614
[2026-11-12T16:35:03+00:00] [WEB_ADJUSTER] UPSTREAM_PHASE url_connect host=fonts.googleapis.com port=443 ok
[2026-11-12T16:35:04+00:00] [WEB_ADJUSTER] UPSTREAM_PHASE tls_done host=fonts.googleapis.com port=443
[2026-11-12T16:35:05+00:00] [WEB_ADJUSTER] UPSTREAM_TIMING url=https://fonts.googleapis.com/css2?family=Google+Sans+Code:ital,wght,MONO@0,300..800,1;1,300..800,1&family=Google+Sans+Flex:opsz,wght@6..144,1..1000&display=swap reused=False status=200 bytes=2240 total_ms=4807
[2026-11-12T16:35:05+00:00] [WEB_ADJUSTER] PROXIED status=200 url=https://fonts.googleapis.com/css2?family=Google+Sans+Code:ital,wght,MONO@0,300..800,1;1,300..800,1&family=Google+Sans+Flex:opsz,wght@6..144,1..1000&display=swap bytes=20313
[2026-11-12T16:35:05+00:00] [WEB_ADJUSTER] SEND_START status=200 bytes=21256 client=0.0.0.0:28082
[2026-11-12T16:35:05+00:00] [WEB_ADJUSTER] SEND_OK status=200 bytes=21256
[2026-11-12T16:35:06+00:00] [WEB_ADJUSTER] UPSTREAM_TIMING url=https://fonts.googleapis.com/css2?family=Google+Symbols:FILL,wght@0..1,200..700&display=block reused=True status=200 bytes=429 total_ms=5378
[2026-11-12T16:35:06+00:00] [WEB_ADJUSTER] PROXIED status=200 url=https://fonts.googleapis.com/css2?family=Google+Symbols:FILL,wght@0..1,200..700&display=block bytes=713
[2026-11-12T16:35:06+00:00] [WEB_ADJUSTER] SEND_START status=200 bytes=1654 client=0.0.0.0:28082
[2026-11-12T16:35:06+00:00] [WEB_ADJUSTER] SEND_OK status=200 bytes=1654
[2026-11-12T16:35:06+00:00] [WEB_ADJUSTER] UPSTREAM_PHASE url_connect host=www.google.com port=443 ok
[2026-11-12T16:35:06+00:00] [WEB_ADJUSTER] UPSTREAM_PHASE tls_done host=www.google.com port=443
[2026-11-12T16:35:07+00:00] [WEB_ADJUSTER] UPSTREAM_TIMING url=https://www.google.com/recaptcha/enterprise.js?render=6LcVUOAUAAAAAP8nMSGuW46uJC5Zf6-PCYKN5xxv reused=False status=200 bytes=1059 total_ms=6622
[2026-11-12T16:35:07+00:00] [WEB_ADJUSTER] PROXIED status=200 url=https://www.google.com/recaptcha/enterprise.js?render=6LcVUOAUAAAAAP8nMSGuW46uJC5Zf6-PCYKN5xxv bytes=1731
[2026-11-12T16:35:07+00:00] [WEB_ADJUSTER] SEND_START status=200 bytes=2610 client=0.0.0.0:28082
[2026-11-12T16:35:07+00:00] [WEB_ADJUSTER] SEND_OK status=200 bytes=2610
[2026-11-12T16:35:08+00:00] [WEB_ADJUSTER] UPSTREAM_PHASE url_connect host=apis.google.com port=443 ok
[2026-11-12T16:35:09+00:00] [WEB_ADJUSTER] UPSTREAM_PHASE tls_done host=apis.google.com port=443
[2026-11-12T16:35:10+00:00] [WEB_ADJUSTER] UPSTREAM_TIMING url=https://apis.google.com/js/api.js reused=False status=200 bytes=5867 total_ms=8853
[2026-11-12T16:35:10+00:00] [WEB_ADJUSTER] PROXIED status=200 url=https://apis.google.com/js/api.js bytes=14576
[2026-11-12T16:35:10+00:00] [WEB_ADJUSTER] SEND_START status=200 bytes=15622 client=0.0.0.0:28082
[2026-11-12T16:35:10+00:00] [WEB_ADJUSTER] SEND_OK status=200 bytes=15622
[2026-11-12T16:35:10+00:00] [WEB_ADJUSTER] UPSTREAM_PHASE url_connect host=www.googletagmanager.com port=443 ok
[2026-11-12T16:35:11+00:00] [WEB_ADJUSTER] UPSTREAM_PHASE tls_done host=www.googletagmanager.com port=443
[2026-11-12T16:35:12+00:00] [WEB_ADJUSTER] UPSTREAM_TIMING url=https://www.googletagmanager.com/gtag/js?id=G-T7QHS60L4Q reused=False status=200 bytes=182184 total_ms=11072
[2026-11-12T16:35:12+00:00] [WEB_ADJUSTER] PROXIED status=200 url=https://www.googletagmanager.com/gtag/js?id=G-T7QHS60L4Q bytes=544668
[2026-11-12T16:35:12+00:00] [WEB_ADJUSTER] SEND_START status=200 bytes=545460 client=0.0.0.0:28082
[2026-11-12T16:35:12+00:00] [WEB_ADJUSTER] SEND_OK status=200 bytes=545460
[2026-11-12T16:38:01+00:00] [WEB_ADJUSTER] REQUEST method=GET target=/health client=0.0.0.0:28082
|