Skip to content

v1.9.6 — Gemini defaults: flash-lite + thinkingBudget=0

Latest

Choose a tag to compare

@Gonzalez8 Gonzalez8 released this 22 May 18:44
· 35 commits to main since this release

Tuned against a real CheckJC captcha

Tested the LLM solver against the same composite image the human
flow sends via Telegram, with all four models we have in the
dropdown. Findings:

Model Result
gemini-2.5-flash-lite ✅ 100% accurate, free tier, cheapest
gemini-2.5-flash ⚠️ Truncates ("0") unless we disable its thinking mode
gemini-2.5-pro ❌ HTTP 429 — free tier quota is 0
gemini-2.0-flash ❌ HTTP 429 — legacy, existing customers only

Changes:

  • Default model is now gemini-2.5-flash-lite (was 2.5-flash).
    Cheapest of the four, works on the free tier without tuning.
  • Request body now always sends thinkingConfig: {thinkingBudget: 0}. This makes gemini-2.5-flash answer correctly (it's a
    thinking model — without this it spends the output budget reasoning
    and returns truncated text). Other models ignore the field
    harmlessly.
  • maxOutputTokens bumped from 32 to 64. 16 digits is ~10 tokens,
    so 64 leaves comfortable headroom at no measurable extra cost.
  • Profile dropdown order updated to put the recommended option
    first, with help text flagging which models need a paid plan.
  • The standalone debug script (tests/debug_gemini_solver.py) is
    updated to match the same defaults.

Image

ghcr.io/gonzalez8/checktime:1.9.6 / :1.9 / :latest

Upgrade

sed -i 's/^CHECK_TIME_VERSION=.*/CHECK_TIME_VERSION=1.9.6/' stack.env
docker compose pull app
docker compose up -d app

After the deploy, new users who paste a Gemini API key without
touching the dropdown will use gemini-2.5-flash-lite automatically.
Existing users keep whatever model they previously selected.

Verify locally

python tests/debug_gemini_solver.py --api-key YOUR_KEY --image /path/to/composite.png
# Should print "SUCCESS: Gemini returned a well-formed 16-digit reply."