Commit graph

80 commits

Author SHA1 Message Date
Snider
31a151d23c feat(proxy): implement RFC test coverage and AX usage-example comments
Add missing Good/Bad/Ugly test triplets per RFC section 22:
- stats_test.go: OnAccept/OnReject/Tick/OnLogin/OnClose tests with
  concurrency race test and top-10 diff slot verification
- ratelimit_test.go: full Good/Bad/Ugly set including ban persistence
  and disabled-limiter edge case
- customdiff_test.go: renamed to Apply_Good/Bad/Ugly convention per RFC
- storage_test.go: full Add_Good/Bad/Ugly set including 256-slot fill,
  overflow rejection, and dead-slot reclamation via SetJob
- job_test.go: added Good/Bad/Ugly for BlobWithFixedByte, DifficultyFromTarget,
  and IsValid

Add Miner.Diff() public getter for the last difficulty sent to miner.

Add AX-compliant usage-example comments (principle 2) to all Miner
accessors, Proxy query methods, EffectiveShareDifficulty, targetFromDifficulty,
MinerSnapshot, and RateLimiter.IsActive.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-05 07:02:54 +01:00
Virgil
6f0747abc2 fix(reload): apply custom diff updates to active miners
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-05 03:49:05 +00:00
Virgil
711c4259f7 refactor(proxy): unify monitoring auth checks
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-05 03:44:35 +00:00
Virgil
8cf01f2618 refactor(proxy): rename server TLS config field
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-05 03:42:05 +00:00
Virgil
b6b44b1f7b refactor(proxy): name miner timeouts and password mask
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-05 03:39:19 +00:00
Virgil
ea378354de chore(proxy): clarify watcher and limiter names 2026-04-05 03:34:07 +00:00
Virgil
8a9046356e refactor(proxy): centralise monitoring API contract values
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-05 03:30:40 +00:00
Virgil
d1a899805e perf(proxy): reuse miner send buffer for writes
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-05 03:25:39 +00:00
Virgil
01a0cc5907 fix(proxy): drain submits before shutdown
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-05 03:15:17 +00:00
Virgil
75d151b4e5 refactor(proxy): clarify miner login callback naming
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-05 03:07:41 +00:00
Virgil
af96bfce94 docs: align public API comments with AX guidance
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-05 02:58:56 +00:00
Virgil
1ae781608c fix(api): honour unrestricted monitoring methods
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-05 02:55:36 +00:00
Virgil
1f8ff58b20 fix(login): defer login events until assignment succeeds
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-05 02:48:03 +00:00
Virgil
bc6113c80d fix(api): enforce GET on monitoring routes
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-05 02:43:49 +00:00
Virgil
30ff013158 docs(proxy): sharpen AX usage examples
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-05 02:34:53 +00:00
Virgil
be47d7afde fix(proxy): align config and login parsing with rfc
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-05 02:31:37 +00:00
Virgil
0a7c99264b refactor(errors): add scoped proxy failures
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-05 02:18:05 +00:00
Virgil
7dd9807a6e chore: improve proxy api comments 2026-04-05 01:46:41 +00:00
Virgil
7b2a7ccd88 docs(proxy): align public AX comments
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-05 01:43:31 +00:00
Virgil
b5e4a6499f docs(proxy): improve AX usage comments
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-05 01:33:13 +00:00
Virgil
2a49caca03 docs(ax): add codex conventions
Clarify reload behaviour for immutable splitter wiring.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-05 01:12:06 +00:00
Virgil
3cd0909d74 feat(proxy): add share sink fanout
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-05 01:08:23 +00:00
Virgil
d8b4bf2775 refactor(proxy): clarify internal helper naming
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-05 00:52:34 +00:00
Virgil
3debd08a64 fix(api): enforce monitoring auth on exported routes
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-05 00:49:26 +00:00
Virgil
eabe9b521d fix(proxy): harden hot-reload config access
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-05 00:45:39 +00:00
Virgil
8ad123ecab refactor(proxy): improve splitter registry naming
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-05 00:36:29 +00:00
Virgil
9460f82738 Align monitoring route handling 2026-04-05 00:21:42 +00:00
Virgil
bbdff60580 Honor worker mode changes on reload 2026-04-05 00:11:43 +00:00
Virgil
a76e6be1c7 docs(proxy): align public entry points with AX examples
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-05 00:07:27 +00:00
Virgil
ad069a45d5 fix(proxy): harden monitoring helpers against nil config
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 23:58:09 +00:00
Virgil
fd88492b00 fix(proxy): honour monitoring restriction flag
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 23:51:37 +00:00
Virgil
fd76640d69 refactor(proxy): clarify monitoring HTTP helpers
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 23:42:26 +00:00
Virgil
fb5453c097 fix(api): enforce GET on monitoring endpoints
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 23:39:29 +00:00
Virgil
4e5311215d refactor(proxy): centralise invalid share classification
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 23:33:21 +00:00
Virgil
e2bd10c94f docs(proxy): sharpen AX usage examples
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 23:28:35 +00:00
Virgil
1e6ba01d03 fix(api): mask miner passwords in miners document
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 23:25:46 +00:00
Virgil
c0efdfb0ca refactor(api): unify monitoring documents for AX 2026-04-04 23:23:13 +00:00
Virgil
167ecc2bdc refactor(proxy): clarify agent-facing names
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 23:10:35 +00:00
Virgil
0bb5ce827b fix(proxy): fail fast on HTTP bind errors
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 23:07:43 +00:00
Virgil
6f0f695054 fix(proxy): separate HTTP auth and method errors
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 23:05:18 +00:00
Virgil
84362d9dc5 fix(reload): reconnect upstreams on pool config changes
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 22:52:01 +00:00
Virgil
4006f33c1e fix(proxy): reload watcher on watch config changes
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 22:41:16 +00:00
Virgil
0c746e4ea7 fix(proxy): support OpenSSL TLS cipher aliases
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 22:26:42 +00:00
Virgil
187a366d74 refactor(proxy): align aggregate field names with RFC
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 22:20:39 +00:00
Virgil
5ba21cb9bf fix(proxy): align miner success wire format
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 22:17:31 +00:00
Virgil
2b8bba790c refactor(proxy): align login flow with RFC order
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 22:13:10 +00:00
Virgil
cfd669e4d2 refactor(proxy): clarify config parameter names
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 22:09:58 +00:00
Virgil
6422a948bf refactor(proxy): clarify runtime config naming
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 22:06:18 +00:00
Virgil
8bde2c14d0 fix(proxy): dispatch login events before splitter assignment
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 22:02:25 +00:00
Virgil
a79b35abaf Improve public API usage examples 2026-04-04 21:58:37 +00:00