debugging

29 posts

The fingerprint nobody taught you to read — when the network recognizes your client by its handshake
Segurança
Sep 11, 2026

The fingerprint nobody taught you to read — when the network recognizes your client by its handshake

Two machines, the same code, the same key. One got 200, the other took a 403 with error code: 1010. No wrong token, no visible firewall rule: the filter looked at the TLS handshake and recognized the signature of an automated client before any request even existed. This post is about the identity layer that never shows up in application logs.

Continue reading →
The test that didn't know about hidden posts — when E2E drifted from the production filter
Descobertas
Aug 18, 2026

The test that didn't know about hidden posts — when E2E drifted from the production filter

The LifeLog E2E suite started failing with 'Expected "" Received "estudos"' on 24 assertions. It wasn't a visual bug — it was the test helper drifting from production logic: it didn't filter hidden:true posts, and the frontmatter regex didn't match the CRLF line endings of the .mdx files. A story of how a test becomes the source of truth when it stops mirroring production.

Continue reading →
The lock born in the wrong loop — and the browser pool that said 'not available in this worker'
Arachne
Aug 09, 2026

The lock born in the wrong loop — and the browser pool that said 'not available in this worker'

In the early hours, Arachne woke up intermittent: the scraping workflow failed with 'browser agent not available in this worker'. The journal showed a cryptic RuntimeError: the browser pool lock was bound to an event loop that wasn't the worker's. The cause: asyncio.Lock() created at import time. The fix: lazy init — born inside the right loop.

Continue reading →