Perf: returning sign-in to usable terminal takes ~5 s #52
Open
opened 2026-10-07 07:17:44 +00:00 by kayg
·
22 comments
No Branch/Tag specified
main
j470b-server-mesh-rejoin
mesh-compat-382
j444b-d381-key-wins-flood
j461b-macos-utun-reader-thread
j475b-remove-host-motion
fix-reconnect-new-link
j481-d380
dev
j479-mesh-soak
fix/j476-host-facts
j475-motion-pill-split
j470-mac-node-join
root-upgrade-d376
j474-review-merge
latency-targets-120hz
nightly-suite-shards
gotatun-pin-j469
macos-utun-reader-thread
fix-flood-echo-stall
wip/j416
motion-fast-ease-out
mesh-addhost-j259
takeover-close-terminals-d368
kbd-instant-followups
fix-trust-key-double-click
nightly-suite-partial-report
appwin-icons-j207
rusqlite-slice1
swipe-content-first-d374
mesh-mtu-381
addhost-instant-open
glass-contrast-d365-mock
glass-contrast-d365
signout-followups-442
fix-startup-toast-red
research-gotatun-matrix-j317
themes-sync-j304
fix-load-flakes
fix-nix-zig-patch
fix-compute01-browser-baseline
ratchet-size-baseline-419
predict-auto-d130
revoke-coverage-d367
nightly-suite-queue-timeout
nightly-browser-suite
fix-rustsec-2026-0459
fonts-ioskeley-obel
log-retention-d375
fix-kbd-no-anim-427
fix-dev-red-specs-2
takeover-proof-305-j205
wip/j410-server-pump
ui-consistency-d372
fix-osc52-clipboard
libghostty-vt-1.0
forget-retired-host-d369
j404-merge-426
fix-setup-lock-race
fix-touch-select-426
revoke-access-report-ui
fix-predictive-echo-specs
fix-selinux-agent-exec
wip/j395-checkpoint2
wip/j395
j391-review-scratch
ui-consistency-j195-deferred-rebased
fix-rustc-paths-421
decisions-wording-341
fix-install-suite-red
fix-dev-rtt-specs
fix-pending-removal-align
fix-privileged-skip
fix-install-suite-404
review-j368
mesh-dns-j254
revoke-access-report-d356b
revoke-privilege-round5
fix-removal-confirm
review-j360
gotatun-rotation-367
deps-refresh-340
review-j354
review-J351
review-j350
addhost-takeover-d359
revoke-report-items-347
revoke-end-sessions-d362
review-j348
size-mesh-ssh-346
size-trim-337
revoke-access-diff-d356
j259-pre-rebase-b06c5a6
j305-ended-at-start-spec
addhost-sudo-consent
fix-layout-real-specs-411
fix-shell-open-411
fix-console-hosts-373
fix-shell-exit
fuzz-host-name-353
fix-host-details-410
macos-filter-j197
research-gotatun-tricks
revoke-p3-j216l
stale-state-pill
revoke-followups-j216k
revoke-progress-j216e
backup/macos01-20261106/lume/j197
backup/macos01-20261106/lume/appwin-icons-j207-stash0
backup/macos01-20261106/claude/stash-0
backup/macos01-20261106/claude/stash-1
backup/macos01-20261106/claude/J80-macos-s1
backup/macos01-20261106/claude/J80
backup/macos01-20261106/claude/J80-slice1-20261102
backup/macos01-20261106/claude/J16b-appwin-on-dev
backup/macos01-20261106/claude/appwin-launch-idle-146
backup/macos01-20261106/claude/J80-s1-run
wip/j259
trust-285-p3c
runtime-lock-j216f
mesh-ssh-p3-j175
tun-proof-p3b
trust-285-p3
terminal-polish-j271
tun-proof-p3
ssh-install-flakes-j216i
fuzz-fixes-j264
trust-285-a
trust-285-b
restart-oversized-fixture-j198
backup/macos01-20261106/lume/appwin-icons-j207
restart-bound-j216h
up-preflight-p3-j198
backup/macos01-20261106/lume/j251
up-preflight-j198
wip/up-preflight-j198-j245-p2
wip/up-preflight-j198-j245-p1
agent-fsync-offloop-j196
wip/up-preflight-j198-j245
settings-offscreen-j231
wip/up-preflight-j198-j226-inspection
wip/j103f
themes-j206
wip/up-preflight-j198-j226
flakes-j216c
backup/macos01-20261106/claude/j197
flakes-j216b
backup/macos01-20261106/claude/j197-red
wip/up-preflight-j198-review
flakes-j216
backup/macos01-20261106/claude/appwin-icons-j207
engineering-j208b
appwin-mock-j209
toast-stack-j165
engineering-j208
decisions-d351
decisions-d350
decisions-d349
appearance-presets-mock-j129
decisions-d348
docs-audit-spec
doc-coverage-baseline-raise
decisions-d347
decisions-d346b
decisions-d346
j88h-profile
ui-consistency-j195-deferred
ui-consistency-j195
engineering-practices-j194
preferred-login-ui-j166
signin-pools-263-j174
macos-node-265-s1
decisions-d345
decisions-d344
proxy-cgroup-j164
verify-quick-fuzz-329
proxy-start-io-j168
timing-flakes-j163
up-263-s1
mcp-events-j147
verify-quick-fuzz-j158
proxy-p3-j159
agent-resource-j157-detect
wip/j103d-final
remote-cancel-hang-j155
proxy-traefik-281-j62d
j149-verify-quick
proxy-traefik-281-j62b
j150-drop-unnamed
wip/j79d-red-r4
wip/j103d-d332
rootless-toast-j142
wip/j103d-head
wip/j103d
j125c-mcp
macos-build-j136
backup/macos01-20261106/claude/j136
wip/j79d-red-cli
wip/j79d-red-server
j121-link-liveness
j118c-tracer-failures
wip/j79c-head
release-desktop-j131
j124c-signed-macos
wip/j79c-red-p3
wip/j79c-red-p23
wip/j79c-red-p22
merge-j128-check
perf-deferred-j128
sidebar-toggle-260
j127-shortcut-changed-dot
j125-mcp
j118-tracer-failures
j126-account-summary
settings-sections-mock-j92
j120-pinch-lock
sidebar-292
backup/macos01-20261106/claude/j120
taste-2026-11-03
row-actions-242-215
backup/macos01-20261106/claude/stash-0-untracked
backup/macos01-20261106/claude/J80-265-s1-run
backup/macos01-20261106/claude/J80-macos-s1-20261102
j112-canvas-commands
ui-no-overshoot-scroll
fix-recovery-restart
backup/macos01-20261106/claude/stash-1-untracked
taste-2026-11-02
size-baseline-ratchet
machine-cards-structure-j108
j109-boot-copy-mockups
fix-dev-red
wip/up-263-s1
j95b-settings-rows
proxy-traefik-281
j95-option-rows
docs-human-j91
docs-keys-palette
fix-flood-1013-270-j38d
mesh-ssh-s1
mesh-ssh-s0
addhost-d291-tunnel
test-stability-load
mesh-relay-220
repro-296
shim-thp-off-24
mesh-pins-258-v2
mesh-dns
signin-d311-merged
docs-pages
ui-size-283
fix-ui-batch-specs
wip/j12b-edge-update
gate-on-arm
fix-rename-sync-293
trust-285-j60b
fix-focus-ring-clip
integ-ui-1101
edge-update-v2
signin-d311
taste-2026-11-01
layout-per-tab-250
ui-approved-splitopt-224
ui-approved-splitopt-224-on-dev
icon-text-centre-282
ui-approved-189-212-216
research-reverse-proxy
transfer-budget-320
review-mesh-pins-258-r2
sidebar-pill-259
review-mesh-relay-220
wip/j12-edge-update-v2
nix-package
status-crash-loop-237
fix-dev-test-failures
fix-fixture-socket-path
wip/mesh-relay-220-pre-dev-advance-rebase
fix-canvas-side-clip
research-head-to-head
frosted-real-256
review-mesh-pins-258
wip/mesh-relay-220-pre-final-rebase
review-layout-per-tab-250-r2
broad-suite-triage
nix-devshell
review-status-crash-loop-237-r3
wip/nix-devshell-pre-p3
taste-frosted-real
wip/code-serve-demo-2026-10-30
wip/code-serve-glass-2026-10-30
wip/code-serve-clusters-2026-10-30
wip/code-merge-release94-dev-2026-10-30
wip/rproxy-delta-scratch-2026-10-30
wip/stale-note-257-staged-2026-10-30
wip/d241-size-staged-2026-10-30
review-broad-suite-207
wip/mesh-pins-258-pre-split
wip/mesh-relay-220-pre-rebase
mesh-measure-220
plan-211-update
review-edge-autoupdate-r3
perf24-reconnect
review-stale-note-r2
release-prod-live
d241-shell-marker
review-mesh-pins-server-258
review-revocation-r3
review-setup-token-r2
review-sync-journal-r3
wip/review-mesh-pins-258-prune-review-1995fee46
frosted-scroll-256
sync-journal-r3
revocation-per-account-wip
review-tokio-asyncfd-0386
review-sync-p3s
wip/stash-8by64-stash0-2026-10-30
mesh-drag-r2
setup-token-data-wip
release-9-4
auth-busy-1013
mesh-view-overlap
sync-p3s
review-auth-busy-wake
review-readd-r8-wip
mesh-drag-bounds
audit-auth-93
app-windows-stream-start
review-authority-cap-r3
app-windows-r7-measure
readd-minimal-r6
readd-minimal-r5
app-windows-r7-soak
readd-minimal-r4
app-windows-r7
app-windows-r6
readd-minimal-r3
readd-minimal-r2
readd-minimal
merge-release8-dev
review-busy-page-liveness-r2
review-busy-page-liveness
mesh-view-trim
review-authority-read-retry-r2
review-remove-uninstall-r2
release-retry-reattach
release-retry
review-remove-uninstall
review-authority-read-retry
app-windows-ship
mesh-autoswitch-p2
mesh-ssh
mesh-relay
mesh-macos-node
screen-and-control
session-labels
review-real-logins-r5
review-real-logins-r4
review-real-logins-r3
shim-memory-r2
review-real-logins-r2
shim-memory
shadow-addhost-instant
shadow-real-logins
shadow-same-session-flood
shadow-prod-perf-fix
hosts-from-server
app-windows-real
app-windows-transport
release-prod-6w
mesh-policy-verify
quiet-close-toast
dev-merge-r4
review-mesh-agent-transport
review-app-windows-transport
settings-roundtrip
review-release-pipeline-r4
mesh-agent-transport
ended-strip-fix
review-audit-ca-update-d244
settings-rows
phone-width
signout-clear
fix-restart-tests
dev-merge-rp
signer-hardening
review-audit-ca-update
terminal-fidelity
review-audit-ca-update-wip
mesh-integrate
review-mesh-agent-transport-515d3712
review-mesh-dataplane-feec1988
mesh-dataplane
signout
research-canvas-node
wip/review-renderer-cost
wip/review-terminal-fidelity
padlock-glyph
review-release-pipeline-2e95b689
phone-polish
sidebar-polish
inbox-generic
review-mesh-dataplane-378d4055
prod-batch
ui-inbox
ui-ca-unlock
ui-machine-sections
review-mesh-dataplane-a5f744fb
tls-session-prod
session-bounds-prod
fix-dead-session
session-bounds
tls-session
palette-polish
shortcuts-d222
research-appmeta
phone-gutter
ui-centre-button
wip/ui-centre-button
wip/tls-session
review-addhost-breakit
ui-platform
renderer-cost
remote-agents
mesh-api
ssh-bootstrap
prod-hotfix2
prod-fixes
review-remote-agents
review-mesh-dataplane
session-life
research-browser
review-mesh-api
research-capture
review-mesh-api-round3
review-mesh-api-round1
gate-stability
review-gate-stability
review-relay-direct
review-mesh-api-findings
proto-sessions
font-picker
proto-addhost
proto-windows
mesh-core
latency-gate
research-bsd
research-discovery
keytray-mods
mock-core
ui-tweaks
fix-motion-sel
fix-motion
integrate2
fix-robust
t-web
t-server
vt-ghostty
fix-snap-echo
t-web-auth
review-vt2
t-agent
lane-protocol
lane-shim
lane-auth
s1-base
s1-contracts
s1-workspace
No results found.
No labels
launch-qa
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set
Reference
kayg/infraternal#52
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Owner (2026-10-07): returning sign-in takes about 5 s from 'Continue with passkey' to a usable terminal; it should be much faster. The first sign-in (welcome glitch) may stay longer on purpose (the wow moment). DECISIONS 122: optimise for the India↔Germany round trip (about 150–200 ms). Step 1: measure the waterfall (measure-only job). Step 2: fix (prefetch, parallelise, fewer round trips, remove artificial waits) after mobile-recovery merges.
Start: detached checkout (no named branch), deployed base/HEAD
191c2830c6; clean worktree. Measure-only per D122; no product edits.Step complete at base SHA
191c2830c6: Bun 1.4.2 frozen install, tracer TypeScript check, and production build all passed. The real dist contains main.js, six code chunks, and two workers. No product source changed; release server build is in progress.Step complete at base SHA
191c2830c6: the x86_64-unknown-linux-musl release server built successfully in 4m26s; reports static-PIE, stripped, 16,120,912 bytes. Production tracer check/build passed; the CDP harness is uncommitted at scripts/browser-auth/measure-returning-signin.mjs. Next: fresh-server enrollment and 30 returning sign-ins.Correction to the prior build note: file confirms the release binary is static-PIE and stripped; stat reports 16,120,912 bytes.
Harness debug, no product finding: the fresh owner enrolled on
191c283, but the smoke run timed out before sampling because the paint hook watched WebGL. The production Ghostty chunk apps/tracer/dist/chunk-rq18a73n.js uses Canvas2D (2 getContext("2d") call sites; no WebGL draw method names). The init-script hook now observes Canvas2D and WebGL and accepts the first Snapshot or Output frame. Re-running; no product files changed.Harness finding: the real release server enrolled the virtual owner but the embedded PTY shim returned [1mterminal open refused[0m. A direct shim probe identified the cause: its Unix socket path exceeded SUN_LEN because XDG_RUNTIME_DIR was nested under target/ (error: path must be shorter than SUN_LEN). I’m moving only the temporary runtime dir to the one-character worktree path /r; resulting session socket path is 105 bytes. No product code changed.
Harness finding updated: the nested XDG runtime path caused the shim to reject its Unix socket as longer than SUN_LEN. After moving the temporary runtime directory to worktree/r, a direct static-release shim probe created its session socket successfully; measured socket pathname is 105 bytes. This is harness setup only; no product changes.
Capture milestone: 0 ms one-way, cold-cache trial 1: click-to-terminal-paint 693.7 ms; click-to-passkey-request 11.8 ms; virtual passkey duration 2.3 ms. login-start/finish, unlock-session, wraps, unlock-finish and session response-header times were 8.8/14.5/11.3/7.1/6.3/10.0 ms. Cold core chunk transferred 681,136 bytes in 216.5 ms and Geist Sans 69,952 bytes in 209.9 ms. Warm trial 2 painted in 212.2 ms; keydown-to-echo-paint 25.3 ms. Full groups are running with source-admission pacing.
First completed group: 0 ms one-way, 10 runs: click-to-terminal-paint p50 212.2 ms / p99 693.7 ms; passkey-resolved-to-paint 192.4 / 679.6 ms; keydown-to-echo-paint 11.5 / 25.3 ms. p99 is the maximum of 10 samples. The 100 ms one-way cold trial 1 painted in 2,361.8 ms; each of its six post-click auth calls took 202.4–207.0 ms, and the core chunk and Geist Sans each took about 210 ms concurrently. Continuing 100/200 ms groups.
Measurement method finding: under CDP's 100 ms one-way emulation, local WebSocket Hello→Welcome and Attach→Output frames still arrived in about 2–10 ms, so CDP did not shape established WebSocket traffic. I will not use those 100/200 ms samples as end-to-end latency results. I’m adding one-way delay to each direction in the test-only local WebSocket bridge while retaining CDP shaping for HTTP, then rerunning all groups. The 0 ms group is unaffected.
WebSocket emulation smoke passed at 100 ms one-way: constructor→open 245.4 ms, Hello→Welcome 205.8 ms, Attach→first terminal frame 236.1 ms, and keydown→echo paint 218.9 ms. These are one-run method checks only. The harness now checkpoints samples without recording inline WASM data; starting the 10-run groups.
Corrected full capture, 0 ms one-way group (n=10): click-to-terminal-paint p50/p99 337.2/1,418.9 ms; passkey p50/p99 3.3/24.6 ms; passkey-resolved-to-paint 318.9/1,389.3 ms; keydown-to-echo-paint 12.4/22.0 ms; WebSocket open 78.9/122.2 ms. Three trials had an extra 431–444 ms between AttachTerm and first output; group-start load average was 13.89 on the 8-core host. At 100 ms one-way, cold trial 1 was 3,193.4 ms; the six auth calls took 202–215 ms each, Hello→Welcome 201.7 ms, Attach→output 619.1 ms (including a 419 ms gap). p99 is max of 10. Continuing the group.
Corrected full capture, 100 ms one-way group (n=10): click-to-terminal-paint p50/p99 2,120.7/3,193.4 ms; passkey-resolved-to-paint 1,898.6/2,985.1 ms; keydown-to-echo-paint 202.3/219.4 ms; Hello→Welcome 201.2/220.1 ms; Attach→first frame 219.1/633.8 ms; WebSocket constructor→open 204.6/261.3 ms. Each HTTP auth endpoint response p50 was 202–204 ms. Cold trial is included; p99 is max of 10. Group load average moved 4.32→9.03 on the 8-core host. The 200 ms group is running.
200 ms one-way run, trials 1–5: HTTP calls are ~403–422 ms each and WS upgrade ~405–426 ms; Hello→Welcome ~404–470 ms. Cold trial click→paint 5,836 ms with 4 cold assets (8.1 KB, 22.4 KB, 69.9 KB font, 681.1 KB core chunk); warm trials are 3,806–4,477 ms. Attach→first terminal frame includes repeated extra 400–470 ms gaps (417–873 ms total), beyond the injected ~400 ms one-way-trip. Five trials remain.
200 ms group complete, n=10: click→passkey request p50/p99 407.5/439.8 ms; virtual passkey 2.1/8.8 ms; click→terminal paint 4,123.4/5,836.2 ms; passkey-resolved→paint 3,715.7/5,395.2 ms; keydown→echo 402.2/432.9 ms. HTTP medians by step are 405–406 ms; WS open 410.3 ms, Hello→Welcome 403.9 ms, Attach→first frame 814.3 ms (p99 873.4), WASM compile+instantiate 3.1 ms. p99 is max for n=10. Full group data: target/signin-waterfall-results.json (ignored build output).
Final measurement report for dev
191c2830c6. Built the x86_64-musl release binary and production tracer dist; fresh local data dir; local release server; Chromium 149.0.7827.55 with virtual resident UV authenticator and PRF; saved public terminal ID; 10 runs at each setting. CDP request latency was 0/200/400 ms for 0/100/200 ms one-way, unlimited throughput; WebSocket application frames were delayed one-way in each direction. Host: Intel i9-9900K, 8 CPUs; loadavg varied 4.32–13.89. p99 is nearest-rank max for n=10. One cache-cold run per group; the other nine use warm browser cache. Full sanitized marks/network evidence: target/signin-waterfall-results.json.Waterfall p50/p99 ms:
CDP request→response-header p50/p99 ms, by latency:
Findings and cuts (estimates at 200 ms one-way; overlapping savings are not additive):
Timer/gate review: onboarding gives the loading counter a 400 ms display threshold but does not await it. The 2,600 ms Welcome timer is first-setup-only. Backdrop start is delayed 600 ms and stop removes it after a 260 ms timer, but neither fade nor removal is awaited by showTerminal. No transitionend/animationend gate was found. Startup races Geist Mono load against an 800 ms timeout; core-screen mount awaits Geist Sans, so the cold 431 ms font request gates first terminal paint. Ghostty render-idle 700 ms occurs after attach/output. Returning login uses firstSetup=false and skips Welcome.
Round trips and proposed budget: warm 200 ms path is about 9 RTT-equivalents after passkey (5 sequential auth HTTP calls + WS upgrade + Hello/Welcome + roughly two RTTs to first Output), about 10 including click→passkey challenge. The cold p99 is about 13.5 RTT-equivalents after passkey / 14.5 from click because of four asset RTTs; browser startup adds two pre-click RTTs. Practical target: 5 RTT + 150 ms after passkey (2.15 s at 200 ms one-way): 3 auth turns after parallelizing identity/wrap fetch and removing the final session read, plus a 2-turn WS upgrade/Hello+Attach path, with assets prefetched. A 2-RTT target (950 ms at 200 ms one-way including 150 ms local work) needs a larger auth/socket protocol change: pre-open an unauthenticated socket, return wraps with assertion verification in turn one, then combine unlock completion and Attach in turn two. Current /v1/ws requires an unlocked cookie, so this is for owner/orchestrator review, not a selected design.
Finished the measure-only run. HEAD SHA:
191c2830c6. No tracked files changed; the only untracked file is scripts/browser-auth/measure-returning-signin.mjs. Sanitized per-run evidence remains at target/signin-waterfall-results.json. The measurement server and runtime state are stopped/removed. scripts/verify fast exited 0.Verbatim final gate summary output:
+---------------------------+--------------+
| Rust gate | Result |
+---------------------------+--------------+
| fmt | PASS |
| VT native fmt | PASS |
| clippy | PASS |
| test | PASS |
| cargo-deny | PASS |
| static builds | PASS |
+---------------------------+--------------+
==> Vendored Ghostty artifact checksums
dist/ghostty-web.js: OK
dist/ghostty-vt.wasm: OK
dist/index.d.ts: OK
==> TypeScript protocol compiler
==> Rust stream oracle (for the differential test)
==> TypeScript protocol tests
bun test v1.4.2 (744846f84)
src/codec.test.ts:
(pass) wire protocol golden vectors > encodes and decodes each frame exactly as the shared manifest describes [5.99ms]
(pass) wire protocol golden vectors > returns borrowed payload views and writes into reusable buffers [0.17ms]
(pass) wire protocol golden vectors > decodes muxed messages split across WebSocket messages [0.76ms]
(pass) wire protocol golden vectors > rejects oversized, non-canonical, unknown, and malformed frame bytes [0.18ms]
(pass) split mux header preserves trailing Close [0.15ms]
src/stream.test.ts:
(pass) Rust and TypeScript preserve every frame at all boundaries and random multi-splits [2571.88ms]
stream differential: 134 streams, 11439 schedules, zero divergences
(pass) maximum frame size and fragmented oversized prefix obey the allocation boundary [9.63ms]
7 pass
0 fail
34390 expect() calls
Ran 7 tests across 2 files. [2.59s]
Split by owner decision: phase A # (5 RTT + 150 ms, no protocol change, now), then phase B # (2 RTT + 150 ms, combined auth/attach protocol).
Split by owner decision: phase A #66 (5 RTT + 150 ms, no protocol change, now), then phase B #67 (2 RTT + 150 ms, combined auth/attach protocol).
#55 measurement on infraternal-dev, x86_64, 8 cores, tracer-browser load 14.31/16.38/15.76: production-build returning sign-in to usable terminal n=10, p50 3952.40 ms, p99 5102.00 ms; 300 ms RTT, ±30 ms jitter, budget 5000 ms: FAIL. Measured by scripts/verify latency with TRACER_TEST_PORT=4621. Evidence source: apps/tracer/test/terminal.spec.ts; run log: latency-profile.log in the latency-gate scratch directory.
Latest production-build latency profile on infraternal-dev (x86_64, 8 cores; tracer-browser phase load 17.73 10.48 10.96): returning sign-in to usable terminal, n=10, p50=3963.90 ms, p99=4987.10 ms, 5000 ms budget PASS. Prior run p99 was 5102.00 ms. Full run is recorded on #55.
Latest production latency run on infraternal-dev (x86_64, 8 cores; tracer-browser load 8.84/9.29/7.19), 300 ms RTT ±30 ms:
METRIC name=returning_signin_terminal_usable source=tracer-production-build n=10 p50_ms=3956.40 p99_ms=5024.70 budget_ms=5000 result=FAIL. The onboarding browser scenario also timed out after 5000 ms waiting for the test double to reconnect after sign-in. Full profile log was$HOME/.cache/codex-scratch/latency-gate/latency-final.log; test output is inapps/tracer/test-results/.kayg referenced this issue2026-10-28 17:53:55 +00:00
kayg referenced this issue2026-10-28 17:53:56 +00:00