-
8b2dcf0d56
fix: convert zpub to xpub version bytes — bitcore-lib-ltc only understands standard xpub
M1
2026-03-18 23:22:37 +0400
-
2bd6adc090
fix: use static bs58check import, not dynamic await import
M1
2026-03-18 23:19:48 +0400
-
91c24b20f7
fix: convert zpub to Ltub before LTC HD derivation
M1
2026-03-18 23:18:49 +0400
-
bc0f7715da
fix: pin @sinclair/typebox ^0.34 in pay app to match elysia requirements
M1
2026-03-18 23:16:43 +0400
-
7d1a350f86
feat: instant payment detection via Freedom.st SSE on backend and frontend
nate
2026-03-18 23:06:57 +0400
-
c9130243e8
feat: crypto payment system with HD wallets, Freedom.st integration, and checkout UI
nate
2026-03-18 23:04:17 +0400
-
bead49b870
fix: replace error() with set.status across all API routes (fixes undefined error helper)
nate
2026-03-18 22:46:57 +0400
-
c89b63bd97
feat: implement free/pro plan system with monitor and interval limits
nate
2026-03-18 22:40:45 +0400
-
11e6c593ad
chore: limit pro plan to 500 monitors on landing page
nate
2026-03-18 22:33:43 +0400
-
a829c4507c
update: footer text
nate
2026-03-18 21:23:00 +0400
-
3e6e758648
chore: replace footer credit with standard copyright
nate
2026-03-18 21:19:22 +0400
-
fad343c85a
fix: default to all regions enabled for new monitors
nate
2026-03-18 21:12:30 +0400
-
56114a3852
fix: enable pgcrypto extension for gen_random_bytes in monitor IDs
nate
2026-03-18 21:08:19 +0400
-
2075de164d
update: use short 16-char hex IDs for new monitors instead of UUIDs
nate
2026-03-18 21:05:01 +0400
-
e4895afe8e
update: default ping interval to 30s, update free tier limit to match
nate
2026-03-18 21:01:41 +0400
-
fd821acec2
update: default ping interval to 10s
nate
2026-03-18 20:59:50 +0400
-
5295fcfe79
chore: move TOS to /terms, remove from header, remove pricing from footer
nate
2026-03-18 20:59:23 +0400
-
3b79e8d589
fix: typo in terms
nate
2026-03-18 20:55:00 +0400
-
c74e2d3b58
chore: add more timeout options, default to 10s
nate
2026-03-18 20:50:16 +0400
-
0d059a0112
chore: set 2s minimum interval, update marketing and docs to match
nate
2026-03-18 20:47:11 +0400
-
86d36a87fc
fix: refresh chart tooltip on live updates while hovering
nate
2026-03-18 20:40:07 +0400
-
dae1d5f77a
fix: poll coordinator every 500ms to reduce jitter on 1s intervals
nate
2026-03-18 20:33:36 +0400
-
f9826fbbe4
update
nate
2026-03-18 20:29:35 +0400
-
13beacbc5a
chore: remove us-east and ap-southeast regions from UI
nate
2026-03-18 20:20:25 +0400
-
2d46491dee
chore: remove us-east region from UI, charts, and region selectors
nate
2026-03-18 20:13:11 +0400
-
cbb1a26582
fix: trim chart runs in place and reduce to 25 to match SSR density
nate
2026-03-18 20:06:23 +0400
-
f2fcf1a0b9
fix: evenly space chart runs at fixed width and trim initial data to match
nate
2026-03-18 20:02:48 +0400
-
766d1094ad
fix: evict oldest chart runs as a group instead of individual pings
nate
2026-03-18 20:00:11 +0400
-
993e6bb1df
fix: show full run_id instead of truncating to 8 chars
nate
2026-03-18 19:57:41 +0400
-
e9ca90324b
fix: align chart points by run_id avg time so regions stack vertically
nate
2026-03-18 19:55:48 +0400
-
1706e83a3f
fix: reduce chart spline tension to prevent jittery overshoot
nate
2026-03-18 19:52:46 +0400
-
59861651bd
feat: interactive canvas latency chart with hover tooltips and smooth curves
nate
2026-03-18 19:49:44 +0400
-
df22029755
fix: no region text
nate
2026-03-18 19:43:28 +0400
-
f013890c40
refactor: extract monitor form into shared partial for create and edit
nate
2026-03-18 19:41:31 +0400
-
5b7a211c21
fix: show latest latency from fastest region instead of average on home
nate
2026-03-18 19:36:24 +0400
-
688245b0c2
fix: match client-side sparkline behavior to SSR region-aware rendering
nate
2026-03-18 19:31:41 +0400
-
6beb7f8039
update: tos
nate
2026-03-18 19:27:10 +0400
-
5be1f85365
fix: run cert expiry check concurrently to avoid delaying results
nate
2026-03-18 19:04:30 +0400
-
42024a9fc3
fix: use monitor-side checked_at timestamp instead of coordinator arrival time
nate
2026-03-18 18:50:16 +0400
-
425bfbfc39
perf: optimize monitor runner, fix SSE leak, deduplicate shared utils
nate
2026-03-18 18:44:08 +0400
-
980261632e
fix: deserialize scheduled_at_ms as string or number (postgres bigint serializes as string)
M1
2026-03-18 17:17:29 +0400
-
c5eb514990
feat: lookahead scheduling — API returns scheduled_at_ms, nodes sleep-until for tight coordination
M1
2026-03-18 17:14:28 +0400
-
7b98ae78e5
fix: run_id = hash(monitor_id, interval_bucket) — unique per window, consistent across regions
M1
2026-03-18 17:03:17 +0400
-
b6a66ddb21
fix: run_id derived from scheduled_at bucket so all regions share same ID per window
M1
2026-03-18 16:46:30 +0400
-
77534a037c
feat: show run_id (first 8 chars) in recent pings table
M1
2026-03-18 16:42:50 +0400
-
f7ab3b96b2
feat: per-region due scheduling + run_id to group pings across regions
M1
2026-03-18 16:36:35 +0400
-
e057a65535
fix: avgLatency NaN — extract .latency_ms from ping objects
M1
2026-03-18 16:31:08 +0400
-
07648672ad
feat: per-region chart lines and lowest-avg sparkline
M1
2026-03-18 16:25:47 +0400
-
e1bb39431d
fix: use URL.searchParams to parse region query param in /internal/due
M1
2026-03-18 16:21:24 +0400
-
8c39fb45c1
feat: add region selector to monitor edit form
M1
2026-03-18 16:15:19 +0400
-
93db31db3b
feat: multi-region monitor support — region selector in UI, region flag on pings
M1
2026-03-18 16:08:39 +0400
-
52f7f8102b
feat: update user-agent to Mozilla-compatible string
M1
2026-03-18 14:43:33 +0400
-
957674fca4
fix: clear in-flight after post_result to prevent double-pings, revert poll to 50ms
M1
2026-03-18 14:29:37 +0400
-
d3ee0ef9d5
fix: revert grace period, increase poll interval to 500ms to prevent doubles without adding jitter
M1
2026-03-18 14:27:38 +0400
-
5836c44228
fix: add 200ms grace period to due query to prevent double-pings
M1
2026-03-18 14:21:21 +0400
-
6882162d7f
fix: use system CA store for ureq TLS to verify Cloudflare-issued certs
M1
2026-03-18 14:10:28 +0400
-
1b8cbc6e23
fix: force ureq to use ring crypto provider to match main.rs init
M1
2026-03-18 14:05:04 +0400
-
f17bfbfd4b
fix: switch ureq from native-tls to rustls (bundled roots)
M1
2026-03-18 13:54:39 +0400
-
3fa624eff8
fix: replace curl subprocess with ureq blocking client in std::thread
M1
2026-03-18 13:40:28 +0400
-
6b8e1fc9d9
cleanup: remove debug warn logs from monitor runner
M1
2026-03-18 13:30:19 +0400
-
6e1d642c77
fix: allow null status_code in ingest schema; check HTTP status in post_result
M1
2026-03-18 13:28:42 +0400
-
5037222846
fix: add 10s timeout to post_result to prevent hung API calls
M1
2026-03-18 13:24:52 +0400
-
3ce89a88bf
debug: log post_result calls
M1
2026-03-18 13:22:35 +0400
-
749a06b9d7
debug: log check errors and trace post_result calls
M1
2026-03-18 13:19:35 +0400
-
cb8d0f81b1
debug: add warn logs to curl thread, fix temp file uniqueness
M1
2026-03-18 13:17:11 +0400
-
556729b881
fix: use std::thread + tokio oneshot for curl — fully decoupled from tokio thread pool
M1
2026-03-18 13:10:04 +0400
-
5e76b2212f
fix: use std::process::Command+spawn_blocking+temp file to avoid all pipe/async hang issues
M1
2026-03-18 13:08:08 +0400
-
289ec8e038
fix: hard task-level timeout as failsafe so in-flight lock always clears
M1
2026-03-18 13:05:43 +0400
-
0edce8c555
fix: use spawn+manual read+wait instead of output() to avoid stdout pipe hang
M1
2026-03-18 13:03:06 +0400
-
94200b430f
fix: set kill_on_drop and explicit stdio pipes so curl doesn't inherit parent fds
M1
2026-03-18 12:59:34 +0400
-
79bf7d9295
fix: wrap curl output() in tokio timeout in case process hangs on stdout
M1
2026-03-18 12:58:12 +0400
-
554d95cfb4
fix: correctly handle curl non-zero exit codes as errors
M1
2026-03-18 12:55:00 +0400
-
5730a3cb83
fix: replace reqwest with curl subprocess for reliable hard timeouts
M1
2026-03-18 12:52:17 +0400
-
c68700da46
fix: use blocking reqwest in spawn_blocking for reliable OS-level timeout
M1
2026-03-18 12:48:30 +0400
-
4035a3b215
fix: switch reqwest to native-tls so connect_timeout covers TLS handshake
M1
2026-03-18 12:45:52 +0400
-
5b0bce65c6
fix: pre-flight TCP connect check with hard tokio timeout before reqwest attempt
M1
2026-03-18 12:43:27 +0400
-
b8b0a9d5e2
fix: per-check client with connect_timeout to guarantee OS-level TCP timeout
M1
2026-03-18 12:42:09 +0400
-
7905a8003b
fix: clean up cert check - only runs after successful response, no more borrow errors
M1
2026-03-18 12:40:03 +0400
-
de6e24e973
fix: move cert check to after successful HTTP response, never runs on down/timeout hosts
M1
2026-03-18 12:39:18 +0400
-
d49cfa70f5
fix: add connect_timeout to reqwest client to prevent indefinite TCP SYN hangs
M1
2026-03-18 12:37:09 +0400
-
68093131fa
fix: spawn cert check as independent task, never blocks main request timeout
M1
2026-03-18 12:35:58 +0400
-
dbbc9c00cc
fix: run cert check concurrently with request so a hanging TCP connect can't block the timeout
M1
2026-03-18 12:33:22 +0400
-
b41faff2ad
fix: move timeout definition before cert check
M1
2026-03-18 12:27:00 +0400
-
81ac8f0c20
fix: apply timeout to cert check — was hanging indefinitely before request even started
M1
2026-03-18 12:26:27 +0400
-
05c60db605
fix: wrap full request+body read in timeout to catch slow response bodies
M1
2026-03-18 12:17:55 +0400
-
baea9f8e7e
fix: sub-key notice as separate card below account section
M1
2026-03-18 12:05:24 +0400
-
6d057d5797
fix: move sub-key notice inside account section
M1
2026-03-18 12:04:40 +0400
-
988c43090b
fix: make sub-key notice match page style
M1
2026-03-18 12:03:02 +0400
-
a9a1e43146
feat: add sub-key notice banner on settings page
M1
2026-03-18 12:01:35 +0400
-
f7d6eff972
fix: block sub-keys from accessing/modifying email, account key, and other sub-keys
M1
2026-03-18 11:51:52 +0400
-
eeb0318c4d
fix: hide login key and sub-keys from sub-key sessions
M1
2026-03-18 11:48:51 +0400
-
c56af82053
fix: increase key input maxlength to 64 for new key format
M1
2026-03-18 11:45:31 +0400
-
1a7bc4dfa5
fix: sameSite=none for cross-origin cookie (pingql.com → api.pingql.com)
M1
2026-03-18 11:41:00 +0400
-
5a0cf5033b
fix: harden auth, SSRF, query engine, and cookie security
nate
2026-03-18 11:37:33 +0400
-
d278ab0458
fix: use credentials:include for cross-origin API requests
M1
2026-03-18 09:44:50 +0400
-
641af86779
fix: separate jsHash for app.js cache busting
M1
2026-03-18 09:43:11 +0400
-
fa8ff8b361
fix: explicit OPTIONS handler for CORS preflight
M1
2026-03-18 09:41:25 +0400
-
7a9417297f
fix: add preflight CORS options for api.pingql.com
M1
2026-03-18 09:41:09 +0400
-
9fb90d9ea8
fix: point dashboard API calls to api.pingql.com
M1
2026-03-18 09:39:07 +0400
-
841a852491
feat: split web and api into separate apps
M1
2026-03-18 09:33:46 +0400