chore: point the free tier at freeseek.1lm.io - #2
Conversation
Review + test reportTested against the live deployment rather than reading the transcript: every functional claim in the description holds. One blocking defect, and it is the reason CI is already red. Blocking:
|
| enrol | 20 bits, 315k hashes, subject issued |
chat |
public path works · 90 in · 29 out · ~$0.000021 |
anthropic |
OK · 85 in · 17 out |
models |
["deepseek-v4-flash"] — filtered, pro not advertised |
| pro request | refused with the bring-your-own-key message, exit 1, not downgraded |
Metering is right, which is the part worth checking rather than assuming: after those calls free status reported 2 billable requests — the refused pro request was rejected before upstream and not charged, and models cost nothing. Deployed limits match the documented ones exactly (30 / 60000 / 20000).
CORS confirmed from the real origin, including the exposed quota headers:
access-control-allow-origin: https://thevibeworks.github.io
access-control-expose-headers: X-Free-Requests-Remaining, X-Free-Input-Tokens-Remaining, ...
And the full browser path, driven through the shipped playground on the live site with dsplay.gateway pointed at the new host — so this is the real page, real origin, real gateway:
enrol solved in 3.1s (1,004,171 hashes) — token dsf_…
send "playground path works" · flash · 90 in · 20 out (15 think) · ~$0.000018 · 1.43s
Streaming, reasoning and the usage line all arrive.
Two notes, neither blocking
http://localhost:*is not in the CORS allowlist — the preflight returns 204 with noaccess-control-allow-origin, so a locally served playground cannot talk to the hosted gateway. Fine as a policy (there is thedsplay.gatewayoverride andDEEPSEEK_FREE_URL), but worth knowing before someone spends an afternoon on it.- The branch is 4 commits behind
main. No conflicts in these four files, but it predates both fix(gateway): pin the MAC length, and stop refunding the credit pool #1 and the site rework.
Verdict
Approve on the substance — the deployment is real, correct, and metered as documented, and the ordering call about landing after #1 was right. Needs the one-line site/build.py change before merge, or CI stays red and the site reverts itself on the next build.
The hosted gateway now runs at freeseek.1lm.io. Updated in the four places the old host was named: the CLI default, the README's `deepseek free` transcript, the site's copy of that transcript, and the browser playground's default. DEEPSEEK_FREE_URL still overrides it, so anyone running their own deployment is unaffected. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
18fe749 to
63e1611
Compare
The hosted gateway is now deployed and serving at https://freeseek.1lm.io.
Updated in the four places the old host was named:
internal/deepseek/free.goDefaultGatewayURL— whatdeepseek freeenrols againstREADME.mddeepseek freetranscriptsite/index.htmlsite/playground.jsDEFAULT_GATEWAYfor the browser playgroundDEEPSEEK_FREE_URLstill overrides it, so anyone running their own deployment is unaffected.Verified against the live deployment
Enrolment, both wire formats, the model filter, and the policy refusal, all through the public URL:
CORS is enabled server-side for
https://thevibeworks.github.io, so the playground works against it:Note on ordering
This should land after #1. That PR fixes a token forgery in
token.split()— a one-byte MAC verified against one byte of the real one, so 256 guesses mint a token for an attacker-chosen subject with no knowledge of the signing secret. Pointing the published default at a gateway without that fix would aim every new user at a free tier whose proof-of-work can be skipped outright. The deployment behind this URL already runs the patched build.🤖 Generated with Claude Code