-
4cec734d63
fix: pause button not working
nate
2026-03-19 15:28:39 +0400
-
f9c835f591
fix: bad syntax
nate
2026-03-19 15:25:04 +0400
-
723708cf8b
fix: bad syntax
nate
2026-03-19 15:24:13 +0400
-
4149a4753e
feat: add tooltip to status history blips
nate
2026-03-19 15:22:33 +0400
-
6f0499d34b
feat: combine status blips by run id
nate
2026-03-19 15:18:16 +0400
-
eae2b3869d
attempt: minify invoice html
nate
2026-03-19 14:01:31 +0400
-
dad663b5e3
fix: receipt location
nate
2026-03-19 13:59:02 +0400
-
9881d4f681
feat: auto-generate receipts
nate
2026-03-19 13:56:14 +0400
-
113c1101c4
feat: add receipts to the payment service
nate
2026-03-19 13:40:17 +0400
-
a7f56c69d3
update: payment link
nate
2026-03-19 12:55:20 +0400
-
9cf70ab8dd
fix: confirming state, hide amt, addr
nate
2026-03-19 12:50:55 +0400
-
7ba11614e7
fix: qr base64 > qr uri
nate
2026-03-19 12:46:03 +0400
-
ae9c18b771
improve: checkout
nate
2026-03-19 12:40:03 +0400
-
31c349e6f1
update
nate
2026-03-19 12:35:11 +0400
-
9937272ba3
style: remove gradient buttons, use flat blue
Nate
2026-03-19 12:32:10 +0400
-
f4282bac58
update: deploy
nate
2026-03-19 12:22:24 +0400
-
096bd186ea
style: bolder visual refresh — lighter card surfaces, visible borders, blue glow accents
Nate
2026-03-19 12:21:43 +0400
-
c1392a7dd9
test: improve css
nate
2026-03-19 12:08:06 +0400
-
437b493567
fix: can't edit monitors
nate
2026-03-19 11:43:23 +0400
-
63cd0c7af5
update: lower pricing
nate
2026-03-19 11:35:11 +0400
-
e19e723d49
update: lower pricing to $12
nate
2026-03-19 11:32:34 +0400
-
d52026f787
bump max runs
nate
2026-03-19 11:20:45 +0400
-
b1dce432a5
test: ssr graphs
nate
2026-03-19 11:17:05 +0400
-
d62f776f7b
test: ssr graphs
nate
2026-03-19 11:14:30 +0400
-
164b7f65f8
remove js
nate
2026-03-19 10:23:22 +0400
-
57bf994926
fix: more nojs
nate
2026-03-19 10:18:31 +0400
-
b6fa544d5e
fix: uncentered box
nate
2026-03-19 10:13:34 +0400
-
96a58233fd
fix: flashbang
nate
2026-03-19 10:08:20 +0400
-
d8d1952304
fix: elysia issues 2
nate
2026-03-19 10:06:14 +0400
-
03fe13e707
fix: elysia issues
nate
2026-03-19 10:00:30 +0400
-
61560ae521
feat: no-JS support for all core UI — registration, settings, monitor CRUD, logout
nate
2026-03-19 09:55:08 +0400
-
632f006988
refactor: simplify payment gateway, single evaluatePayment function, clean landing page pricing
nate
2026-03-19 09:42:03 +0400
-
df638c94f1
update: ...........
nate
2026-03-19 01:14:17 +0400
-
e62b60e0fd
update: .......
nate
2026-03-19 01:07:49 +0400
-
955b26f942
update: ....
nate
2026-03-19 01:02:52 +0400
-
1e6739b42a
update: hopefully......
nate
2026-03-19 00:53:20 +0400
-
8a24b30b2a
update: hopefully....
nate
2026-03-19 00:49:32 +0400
-
7e55b2ad95
fix: hopefully..
nate
2026-03-19 00:43:26 +0400
-
2554321183
fix: single raw SSE connection with no query filter, always on from boot
nate
2026-03-19 00:36:43 +0400
-
2dbf85652b
fix: backend SSE uses fetch streaming (EventSource not available in Bun), bulk lookup fallback
nate
2026-03-19 00:29:42 +0400
-
0854914411
fix: use native EventSource for SSE instead of fetch with manual parsing
nate
2026-03-19 00:24:16 +0400
-
c3103f06ce
feat: invoices section on settings page, show paid and active payments
nate
2026-03-19 00:16:33 +0400
-
81f1e1585e
fix: use raw SSE with local matching, bulk polling, block-based confirmations, and multi-tx support
nate
2026-03-19 00:04:46 +0400
-
d02b27bc16
fix: frontend SSE also uses 'crypto' not 'chain'
M1
2026-03-18 23:50:13 +0400
-
b46c3c618e
feat: update URL to /checkout/:id after creation, auto-load existing invoice on load
M1
2026-03-18 23:43:03 +0400
-
63c7d7c1d7
fix: SSE filter uses 'crypto' not 'chain' per Freedom.st API docs
M1
2026-03-18 23:41:21 +0400
-
36a7d309fa
feat: /dashboard/checkout/:id route so invoices survive refresh
M1
2026-03-18 23:37:20 +0400
-
1cbbd65adb
fix: compare floats to floats in checkPending — was comparing sats vs floats, always false
M1
2026-03-18 23:33:47 +0400
-
4cdd4b5343
fix: derive LTC as P2WPKH (native segwit ltc1q) not legacy P2PKH
M1
2026-03-18 23:24:17 +0400
-
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