mirror of
https://github.com/jhd3197/ServerKit.git
synced 2026-10-30 00:27:11 +09:00
The capture tool shipped with two targets and had evidently never been run past them — every one of them failed for reasons the tool could not report. Three bugs, in the order they bit: - login filled the first `input[type="text"]` on the page, which is a 2FA digit box rendered above the real form. The credential form stayed empty, so every target then timed out waiting for content on a page that was still /login. Target #email/#password, and fail loudly rather than silently proceeding unauthenticated. - The API client clears both tokens from localStorage whenever any request 401s, and one admin-only endpoint doing so was enough to bounce every later target back to /login. The captured tokens are now re-seeded before app code runs on each navigation, with a re-auth-and-retry as backstop. - A bare "waitForSelector timeout" hid all of the above. Failures now say which cause applies: bounced to /login, root selector absent, or the page rendered its empty state. Targets grew to services and domains alongside ssl and wordpress-list. /templates is deliberately excluded: its catalog measures ~975 bones over 5700px — a skeleton nobody scrolls, at a node count costing more to animate than the page costs to load. A MAX_BONES cap now rejects that class of capture outright, pointing at the PageSkeleton archetypes, and the target list documents that a page only qualifies once the dev database reliably has rows for it — bones measured from an empty page would predict that nothing is coming. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>