Skip to content

v1.7.4 — Try login form before deciding the body is lite

Choose a tag to compare

@Gonzalez8 Gonzalez8 released this 18 May 16:59
· 46 commits to main since this release

Fix: avoid unnecessary retries on small bodies that actually work

v1.7.3 introduced lite-variant retries based on body size: any response
under 20 KB was assumed to be the anti-bot variant where the form is
unusable, so login() went straight to sleep+retry without trying.

Production showed this was too aggressive. On 2026-05-18 18:47–18:51,
Jose's check-in went through this sequence:

Attempt Time Body Tried to find form? Result
1 18:47 7778 B skipped 120 s sleep
2 18:49 7098 B skipped 120 s sleep
3 18:51 7608 B tried (last attempt fallthrough) found, login OK

The third attempt's body was the same size as the previous two but the
form WAS usable. Most likely cause: the same BrowserContext keeps
cookies and asset cache across retries, so once Stencil's JS bundle is
cached the components hydrate even when CheckJC keeps returning the
stripped HTML.

Change

login() now always calls _find_login_elements right after the
goto, regardless of body size. Only enters the sleep+retry branch if
the search actually fails AND the body was under 20 KB. With Jose's
18:47 scenario this would have succeeded on attempt 1 instead of
waiting 4 minutes.

Body normal + form not found still propagates immediately — that
signals a real DOM change, which isn't fixed by waiting.

Image

ghcr.io/gonzalez8/checktime:1.7.4 / :1.7 / :latest

No schema changes. Same env vars as v1.7.3.

Upgrade

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