<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>LifeLog — Samuel Medeiros</title><description>Jornada de aprendizado de Samuel Medeiros</description><link>https://lifelog-sepia.vercel.app/</link><item><title>Do Docker ao k3s — a decisão de usar Kubernetes de verdade</title><link>https://lifelog-sepia.vercel.app/post/arachne-do-docker-ao-k3s/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/arachne-do-docker-ao-k3s/</guid><description>O Arachne rodava 10 serviços em Docker Compose. Kubernetes aparecia no meu CV como keyword desejada — mas eu não usava. Em vez de mentir, decidi adotar k3s de verdade: single-node, com plano em fases, rollback garantido e métricas de RAM como critério de parada.</description><pubDate>Tue, 11 Aug 2026 17:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/arachne-do-docker-ao-k3s.webp" type="image/webp"/><project>arachne</project><accent>#7c3aed</accent></item><item><title>From Docker to k3s — the decision to use Kubernetes for real</title><link>https://lifelog-sepia.vercel.app/post/en/arachne-do-docker-ao-k3s/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/arachne-do-docker-ao-k3s/</guid><description>Arachne ran 10 services on Docker Compose. Kubernetes showed up on my resume as a desired keyword — but I didn&apos;t use it. Instead of lying, I decided to adopt k3s for real: single-node, with a phased plan, guaranteed rollback, and RAM metrics as the stopping criterion.</description><pubDate>Tue, 11 Aug 2026 17:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/arachne-do-docker-ao-k3s.webp" type="image/webp"/><project>arachne</project><accent>#7c3aed</accent></item><item><title>The 61 vulnerabilities that became 2 — the art of the surgical override</title><link>https://lifelog-sepia.vercel.app/post/en/portfolio-61-vulnerabilidades-para-2-com-overrides/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/portfolio-61-vulnerabilidades-para-2-com-overrides/</guid><description>pnpm audit on the Portfólio screamed 61 vulnerabilities. Instead of updating dependency by dependency or trusting audit fix, I solved it with 5 lines of pnpm.overrides in package.json. Result: 61 → 2, with the remaining 2 having no published fix at all.</description><pubDate>Tue, 11 Aug 2026 15:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/portfolio-61-vulnerabilidades-para-2-com-overrides.webp" type="image/webp"/><project>portfolio</project><accent>#00d4ff</accent></item><item><title>As 61 vulnerabilidades que viraram 2 — a arte do override cirúrgico</title><link>https://lifelog-sepia.vercel.app/post/portfolio-61-vulnerabilidades-para-2-com-overrides/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/portfolio-61-vulnerabilidades-para-2-com-overrides/</guid><description>O pnpm audit do Portfólio gritava 61 vulnerabilidades. Em vez de sair atualizando dependência por dependência ou confiar no audit fix, resolvi com 5 linhas de pnpm.overrides no package.json. Resultado: 61 → 2, com as 2 restantes sem correção publicada nem pra dependência direta.</description><pubDate>Tue, 11 Aug 2026 15:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/portfolio-61-vulnerabilidades-para-2-com-overrides.webp" type="image/webp"/><project>portfolio</project><accent>#00d4ff</accent></item><item><title>AI Jail in practice — the sandbox that learned with us</title><link>https://lifelog-sepia.vercel.app/post/en/seguranca-ai-jail-na-pratica/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/seguranca-ai-jail-na-pratica/</guid><description>From the day we installed ai-jail (bubblewrap + Landlock + Seccomp) to it becoming routine: what changed when every command started running isolated — and the lessons real usage taught (slow Landlock, worker mode, per-command mounts).</description><pubDate>Mon, 10 Aug 2026 03:30:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/seguranca-ai-jail-na-pratica.webp" type="image/webp"/><project>seguranca</project><accent>#ef4444</accent></item><item><title>AI Jail na prática — o sandbox que aprendeu com a gente</title><link>https://lifelog-sepia.vercel.app/post/seguranca-ai-jail-na-pratica/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/seguranca-ai-jail-na-pratica/</guid><description>Do dia em que instalamos o ai-jail (bubblewrap + Landlock + Seccomp) até ele virar rotina: o que mudou quando cada comando passou a rodar isolado — e as lições que o uso real ensinou (Landlock lento, worker mode, mounts por comando).</description><pubDate>Mon, 10 Aug 2026 03:30:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/seguranca-ai-jail-na-pratica.webp" type="image/webp"/><project>seguranca</project><accent>#ef4444</accent></item><item><title>O teste que caça texto fujão — como automatizei a auditoria de tradução do Portfólio</title><link>https://lifelog-sepia.vercel.app/post/descobertas-o-teste-que-caca-texto-tradutor-fujao/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/descobertas-o-teste-que-caca-texto-tradutor-fujao/</guid><description>Depois de achar 28 textos PT hardcoded espalhados pelo Portfólio (botões, aria-labels, modais, tracking), criei um teste de auditoria que varre os componentes e falha o CI se qualquer texto português aparecer fora do t(). A lição: os testes antigos estavam ancorados no bug — buscavam o texto PT literal em vez do contrato i18n.</description><pubDate>Sun, 09 Aug 2026 19:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/descobertas-o-teste-que-caca-texto-tradutor-fujao.webp" type="image/webp"/><project>descobertas</project><accent>#38bdf8</accent></item><item><title>The test that hunts runaway text — how I automated the Portfolio translation audit</title><link>https://lifelog-sepia.vercel.app/post/en/descobertas-o-teste-que-caca-texto-tradutor-fujao/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/descobertas-o-teste-que-caca-texto-tradutor-fujao/</guid><description>After finding 28 hardcoded PT texts scattered across the Portfolio (buttons, aria-labels, modals, tracking), I created an audit test that scans components and fails CI if any Portuguese text appears outside t(). The lesson: old tests were anchored to the bug — they searched for literal PT text instead of the i18n contract.</description><pubDate>Sun, 09 Aug 2026 19:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/descobertas-o-teste-que-caca-texto-tradutor-fujao.webp" type="image/webp"/><project>descobertas</project><accent>#38bdf8</accent></item><item><title>LifeLog — why cards now show the publish date</title><link>https://lifelog-sepia.vercel.app/post/en/lifelog-pubdate-nos-cards/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/lifelog-pubdate-nos-cards/</guid><description>Home cards used to show the historical event date — and the order looked messy (07, 09, 09, 06). The change: show the publish date (pubDate). The story of a detail that changes how the blog is perceived.</description><pubDate>Sun, 09 Aug 2026 19:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/lifelog-pubdate-nos-cards.webp" type="image/webp"/><project>lifelog</project><accent>#a855f7</accent></item><item><title>Capivara — the day the dashboard stopped lying (and the dead sections fell)</title><link>https://lifelog-sepia.vercel.app/post/en/nova-historia-capivara-2026-08-09/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/nova-historia-capivara-2026-08-09/</guid><description>Stripe with dead DNS 500s, a Portifolio Staging that no longer existed, a rate limit that blocked the wrong IP. The surgical cleanup that made the Capivara dashboard tell the truth again — and the CF-Connecting-IP that actually fixed the rate limit.</description><pubDate>Sun, 09 Aug 2026 19:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/nova-historia-capivara-2026-08-09.webp" type="image/webp"/><project>capivara</project><accent>#f59e0b</accent></item><item><title>LifeLog — por que os cards agora mostram a data de publicação</title><link>https://lifelog-sepia.vercel.app/post/lifelog-pubdate-nos-cards/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/lifelog-pubdate-nos-cards/</guid><description>Os cards da home mostravam a data histórica do evento — e a ordem parecia bagunçada (07, 09, 09, 06). A mudança: exibir a data de publicação (pubDate). A história de um detalhe que muda como o blog é percebido.</description><pubDate>Sun, 09 Aug 2026 19:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/lifelog-pubdate-nos-cards.webp" type="image/webp"/><project>lifelog</project><accent>#a855f7</accent></item><item><title>Capivara — o dia em que o painel parou de mentir (e as seções mortas caíram)</title><link>https://lifelog-sepia.vercel.app/post/nova-historia-capivara-2026-08-09/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/nova-historia-capivara-2026-08-09/</guid><description>Stripe com 500 DNS morto, Staging do Portifólio que não existia mais, rate limit que bloqueava o IP errado. A limpeza cirúrgica que fez o dashboard do Capivara voltar a dizer a verdade — e o CF-Connecting-IP que consertou o rate limit de verdade.</description><pubDate>Sun, 09 Aug 2026 19:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/nova-historia-capivara-2026-08-09.webp" type="image/webp"/><project>capivara</project><accent>#f59e0b</accent></item><item><title>O lock que nasceu no loop errado — e o browser pool que dizia &apos;não disponível neste worker&apos;</title><link>https://lifelog-sepia.vercel.app/post/arachne-o-lock-que-nasceu-no-loop-errado/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/arachne-o-lock-que-nasceu-no-loop-errado/</guid><description>De madrugada, o Arachne acordava intermitente: o workflow de scraping falhava com &apos;browser agent não disponível neste worker&apos;. O journal mostrava um RuntimeError enigmático: o lock do browser pool estava preso a um event loop que não era o do worker. A causa: asyncio.Lock() criado no import. O fix: lazy init — nascer dentro do loop certo.</description><pubDate>Sun, 09 Aug 2026 15:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/arachne-o-lock-que-nasceu-no-loop-errado.webp" type="image/webp"/><project>arachne</project><accent>#7c3aed</accent></item><item><title>The lock born in the wrong loop — and the browser pool that said &apos;not available in this worker&apos;</title><link>https://lifelog-sepia.vercel.app/post/en/arachne-o-lock-que-nasceu-no-loop-errado/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/arachne-o-lock-que-nasceu-no-loop-errado/</guid><description>In the early hours, Arachne woke up intermittent: the scraping workflow failed with &apos;browser agent not available in this worker&apos;. The journal showed a cryptic RuntimeError: the browser pool lock was bound to an event loop that wasn&apos;t the worker&apos;s. The cause: asyncio.Lock() created at import time. The fix: lazy init — born inside the right loop.</description><pubDate>Sun, 09 Aug 2026 15:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/arachne-o-lock-que-nasceu-no-loop-errado.webp" type="image/webp"/><project>arachne</project><accent>#7c3aed</accent></item><item><title>The semantic punishment that taught the agent to behave</title><link>https://lifelog-sepia.vercel.app/post/en/tatuengine-a-punicao-semantica-que-ensinou-o-agente-a-se-comportar/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/tatuengine-a-punicao-semantica-que-ensinou-o-agente-a-se-comportar/</guid><description>TatuEngine got a punishment layer v3: progressive fines for repeat offenses, partial cold restart, automatic tool denial and output reprimand. The idea: instead of only rewarding good behavior, punish bad behavior with growing intensity — like an immune system that learns from every mistake.</description><pubDate>Sun, 09 Aug 2026 15:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/tatuengine-a-punicao-semantica-que-ensinou-o-agente-a-se-comportar.webp" type="image/webp"/><project>tatuengine</project><accent>#14b8a6</accent></item><item><title>A punição semântica que ensinou o agente a se comportar</title><link>https://lifelog-sepia.vercel.app/post/tatuengine-a-punicao-semantica-que-ensinou-o-agente-a-se-comportar/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/tatuengine-a-punicao-semantica-que-ensinou-o-agente-a-se-comportar/</guid><description>O TatuEngine ganhou uma camada de punição v3: multa progressiva por reincidência, cold restart parcial, tool deny automático e reprimenda no output. A ideia: em vez de só recompensar o bom comportamento, punir o mau com intensidade crescente — como um sistema imunológico que aprende a cada erro.</description><pubDate>Sun, 09 Aug 2026 15:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/tatuengine-a-punicao-semantica-que-ensinou-o-agente-a-se-comportar.webp" type="image/webp"/><project>tatuengine</project><accent>#14b8a6</accent></item><item><title>O dashboard que encolheu 74% — e o bundle que caiu 64% sem perder nada</title><link>https://lifelog-sepia.vercel.app/post/capivara-dashboard-994-linhas-para-262/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/capivara-dashboard-994-linhas-para-262/</guid><description>O Dashboard do Capivara tinha 994 linhas e era impossível de manter. Refatorado pra 262 (-74%), o bundle inicial caiu de 668 kB pra 238 kB (-64%) com React Router + lazy loading. A lição: componente gigante não é feature — é dívida técnica disfarçada.</description><pubDate>Sat, 08 Aug 2026 19:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/capivara-dashboard-994-linhas-para-262.webp" type="image/webp"/><project>capivara</project><accent>#f59e0b</accent></item><item><title>The dashboard that shrank 74% — and the bundle that dropped 64% without losing anything</title><link>https://lifelog-sepia.vercel.app/post/en/capivara-dashboard-994-linhas-para-262/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/capivara-dashboard-994-linhas-para-262/</guid><description>The Capivara Dashboard had 994 lines and was impossible to maintain. Refactored to 262 (-74%), the initial bundle dropped from 668 kB to 238 kB (-64%) with React Router + lazy loading. The lesson: a giant component isn&apos;t a feature — it&apos;s disguised technical debt.</description><pubDate>Sat, 08 Aug 2026 19:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/capivara-dashboard-994-linhas-para-262.webp" type="image/webp"/><project>capivara</project><accent>#f59e0b</accent></item><item><title>O pool de conexões que exauriu — e as 38 conexões órfãs que fizeram o hub renderizar vazio</title><link>https://lifelog-sepia.vercel.app/post/arachne-o-pool-de-conexoes-que-exauriu/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/arachne-o-pool-de-conexoes-que-exauriu/</guid><description>O Arachne respondia 200, mas as rotas autenticadas renderizavam vazio. Um Bug Hunter encontrou 1.239 erros de QueuePool no journal desde as 02:57. A causa: um generator de sessão que nunca era fechado — cada request vazava uma transação idle in transaction até o pool de 30 conexões estourar.</description><pubDate>Sat, 08 Aug 2026 15:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/arachne-o-pool-de-conexoes-que-exauriu.webp" type="image/webp"/><project>arachne</project><accent>#7c3aed</accent></item><item><title>The connection pool that ran dry — and the 38 orphaned connections that made the hub render empty</title><link>https://lifelog-sepia.vercel.app/post/en/arachne-o-pool-de-conexoes-que-exauriu/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/arachne-o-pool-de-conexoes-que-exauriu/</guid><description>Arachne responded 200, but authenticated routes rendered empty. A Bug Hunter found 1,239 QueuePool errors in the journal since 02:57. The cause: a session generator that was never closed — each request leaked an idle-in-transaction connection until the 30-connection pool exploded.</description><pubDate>Sat, 08 Aug 2026 15:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/arachne-o-pool-de-conexoes-que-exauriu.webp" type="image/webp"/><project>arachne</project><accent>#7c3aed</accent></item><item><title>O WebSocket que não apertava a mão — e os 5 endpoints que ficaram mudos</title><link>https://lifelog-sepia.vercel.app/post/dogwalk-o-websocket-que-nao-apertava-a-mao/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/dogwalk-o-websocket-que-nao-apertava-a-mao/</guid><description>Todos os WebSockets do Dogwalk retornavam HTTP 500 no handshake. O app rodava, o banco respondia, mas o login em tempo real, o chat e o rastreamento de passeios simplesmente não conectavam. A causa: um receive_text() chamado sem o accept() que o Starlette exige.</description><pubDate>Fri, 07 Aug 2026 21:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/dogwalk-o-websocket-que-nao-apertava-a-mao.webp" type="image/webp"/><project>dogwalk</project><accent>#22c55e</accent></item><item><title>The WebSocket that never shook hands — and the 5 endpoints that went silent</title><link>https://lifelog-sepia.vercel.app/post/en/dogwalk-o-websocket-que-nao-apertava-a-mao/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/dogwalk-o-websocket-que-nao-apertava-a-mao/</guid><description>All Dogwalk WebSockets returned HTTP 500 on handshake. The app ran, the database responded, but real-time login, chat and walk tracking simply wouldn&apos;t connect. The cause: a receive_text() called without the accept() Starlette requires.</description><pubDate>Fri, 07 Aug 2026 21:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/dogwalk-o-websocket-que-nao-apertava-a-mao.webp" type="image/webp"/><project>dogwalk</project><accent>#22c55e</accent></item><item><title>The theme animation saga — when the circle just wouldn&apos;t start where I clicked</title><link>https://lifelog-sepia.vercel.app/post/en/lifelog-a-saga-da-animacao-de-tema/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/lifelog-a-saga-da-animacao-de-tema/</guid><description>Five days trying to make a circle of light start exactly where the finger touches. The CSS looked right, CI passed, but the user saw stutter, wrong origin, and content wiping out. The root cause wasn&apos;t the code — it was the interaction between the View Transitions API, Chromium blend modes, and a ghost node_modules.</description><pubDate>Fri, 07 Aug 2026 20:30:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/lifelog-a-saga-da-animacao-de-tema.webp" type="image/webp"/><project>lifelog</project><accent>#a855f7</accent></item><item><title>A saga da animação de tema — quando o círculo simplesmente não começava de onde eu clicava</title><link>https://lifelog-sepia.vercel.app/post/lifelog-a-saga-da-animacao-de-tema/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/lifelog-a-saga-da-animacao-de-tema/</guid><description>Cinco dias tentando fazer um círculo de luz nascer exatamente de onde o dedo toca. O CSS parecia certo, o CI passava, mas o usuário via stutter, origem errada e conteúdo apagando. A causa raiz não era o código — era a interação entre View Transitions API, blend modes do Chromium e um node_modules fantasma.</description><pubDate>Fri, 07 Aug 2026 20:30:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/lifelog-a-saga-da-animacao-de-tema.webp" type="image/webp"/><project>lifelog</project><accent>#a855f7</accent></item><item><title>O node_modules fantasma que sequestrava os builds — e como um npm install na home quebrou 4 projetos</title><link>https://lifelog-sepia.vercel.app/post/descobertas-o-node-modules-fantasma-que-sequestrava-builds/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/descobertas-o-node-modules-fantasma-que-sequestrava-builds/</guid><description>O build do LifeLog quebrou com um erro misterioso de &apos;Named export parseCookie not found&apos;. O código estava certo, o CI passava, mas local falhava. A causa: um node_modules de 253MB na ~/ com cookie@0.7.2 sequestrava a resolução de módulos de TODOS os projetos Node do WSL.</description><pubDate>Thu, 06 Aug 2026 20:15:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/descobertas-o-node-modules-fantasma-que-sequestrava-builds.webp" type="image/webp"/><project>descobertas</project><accent>#38bdf8</accent></item><item><title>The ghost node_modules that hijacked every build — how an npm install in ~/ broke 4 projects</title><link>https://lifelog-sepia.vercel.app/post/en/descobertas-o-node-modules-fantasma-que-sequestrava-builds/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/descobertas-o-node-modules-fantasma-que-sequestrava-builds/</guid><description>The LifeLog build failed with a mysterious &apos;Named export parseCookie not found&apos; error. The code was right, the CI passed, but local builds broke. The cause: a 253MB node_modules in ~/ with cookie@0.7.2 hijacking module resolution for EVERY Node project on the WSL.</description><pubDate>Thu, 06 Aug 2026 20:15:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/descobertas-o-node-modules-fantasma-que-sequestrava-builds.webp" type="image/webp"/><project>descobertas</project><accent>#38bdf8</accent></item><item><title>The police arrived at TatuEngine — security as a process, not a document</title><link>https://lifelog-sepia.vercel.app/post/en/tatuengine-seguranca-como-processo/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/tatuengine-seguranca-como-processo/</guid><description>The autopoietic agent with ToolUse, an MCP server and a hybrid sandbox is the biggest attack surface in my ecosystem. On 2026-08-05 TatuEngine got what the other projects already had: SEGURANCA.md v1.0, a 24h watchdog, and a rule that changes how the project is developed.</description><pubDate>Wed, 05 Aug 2026 20:45:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/tatuengine-seguranca-como-processo.webp" type="image/webp"/><project>tatuengine</project><accent>#14b8a6</accent></item><item><title>A polícia chegou no TatuEngine — segurança como processo, não documento</title><link>https://lifelog-sepia.vercel.app/post/tatuengine-seguranca-como-processo/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/tatuengine-seguranca-como-processo/</guid><description>O agente autopoiético com ToolUse, MCP server e sandbox é a maior superfície de ataque do meu ecossistema. Em 05/08/2026 o TatuEngine ganhou o que os outros projetos já tinham: SEGURANCA.md v1.0, watchdog 24h e uma regra que muda como o projeto é desenvolvido.</description><pubDate>Wed, 05 Aug 2026 20:45:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/tatuengine-seguranca-como-processo.webp" type="image/webp"/><project>tatuengine</project><accent>#14b8a6</accent></item><item><title>The ghost of mobile cache — bfcache, pageshow, and the tab that refused to update</title><link>https://lifelog-sepia.vercel.app/post/en/portifolio-fantasma-cache-mobile/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/portifolio-fantasma-cache-mobile/</guid><description>Portfolio was 100% functional, 218 tests passing, zero CI errors. But mobile Chrome users saw old versions when restoring tabs. The cause: Chrome&apos;s bfcache ignores HTTP headers — and the fix came cross-project from LifeLog.</description><pubDate>Tue, 04 Aug 2026 15:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/portifolio-fantasma-cache-mobile.webp" type="image/webp"/><project>portfolio</project><accent>#00d4ff</accent></item><item><title>O fantasma do cache mobile — bfcache, pageshow e a aba que se recusava a atualizar</title><link>https://lifelog-sepia.vercel.app/post/portifolio-fantasma-cache-mobile/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/portifolio-fantasma-cache-mobile/</guid><description>O Portfólio estava 100% funcional, 218 testes passando, zero erros no CI. Mas usuários de mobile Chrome viam versões antigas ao restaurar abas. A causa: o bfcache do Chrome ignora headers HTTP — e a solução veio cruzada de outro projeto.</description><pubDate>Tue, 04 Aug 2026 15:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/portifolio-fantasma-cache-mobile.webp" type="image/webp"/><project>portfolio</project><accent>#00d4ff</accent></item><item><title>As 4 armadilhas do pipeline — o dia em que automatizar quase virou caos</title><link>https://lifelog-sepia.vercel.app/post/descobertas-as-4-armadilhas-do-pipeline/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/descobertas-as-4-armadilhas-do-pipeline/</guid><description>Automatizar posts narrativos parecia simples: um cron, um script, um preview. No mesmo dia, o pipeline esbarrou em 4 paredes — pnpm bloqueado pelo guard do gateway, MDX quebrando build com &apos;&lt;&apos;, capa de 0 bytes e sessão interrompida. Cada parede virou uma regra.</description><pubDate>Tue, 04 Aug 2026 00:30:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/descobertas-as-4-armadilhas-do-pipeline.webp" type="image/webp"/><project>descobertas</project><accent>#38bdf8</accent></item><item><title>The 4 traps of the pipeline — the day automation almost became chaos</title><link>https://lifelog-sepia.vercel.app/post/en/descobertas-as-4-armadilhas-do-pipeline/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/descobertas-as-4-armadilhas-do-pipeline/</guid><description>Automating narrative posts seemed simple: a cron, a script, a preview. On the same day, the pipeline hit 4 real walls — pnpm blocked by the gateway guard, MDX breaking the build with &apos;&lt;&apos;, a 0-byte cover and an interrupted session. Each wall became a rule.</description><pubDate>Tue, 04 Aug 2026 00:30:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/descobertas-as-4-armadilhas-do-pipeline.webp" type="image/webp"/><project>descobertas</project><accent>#38bdf8</accent></item><item><title>Operation Convergence — when TatuEngine decided to teach itself</title><link>https://lifelog-sepia.vercel.app/post/en/tatuengine-operacao-convergencia-mestre-aprendiz/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/tatuengine-operacao-convergencia-mestre-aprendiz/</guid><description>After learning to infer (252× GPU speedup), TatuEngine went for the Master-Apprentice cycle: a Qwen2.5-3B teacher with LoRA distilling structured reasoning ([THOUGHT]/[ANSWER]) into the BitMamba-2 1B student. Six versions in one day (v0.17→v0.22.2), 381 examples, and the convergence that wouldn&apos;t come until the system message fix.</description><pubDate>Mon, 03 Aug 2026 23:30:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/tatuengine-operacao-convergencia-mestre-aprendiz.webp" type="image/webp"/><project>tatuengine</project><accent>#14b8a6</accent></item><item><title>A Operação Convergência — quando o TatuEngine resolveu se ensinar</title><link>https://lifelog-sepia.vercel.app/post/tatuengine-operacao-convergencia-mestre-aprendiz/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/tatuengine-operacao-convergencia-mestre-aprendiz/</guid><description>Depois de aprender a inferir (GPU 252×), o TatuEngine partiu pro ciclo Mestre-Aprendiz: um teacher Qwen2.5-3B com LoRA destilando raciocínio estruturado ([THOUGHT]/[ANSWER]) pro student BitMamba-2 1B. Seis versões num dia (v0.17→v0.22.2), 381 exemplos e a convergência que não vinha até o fix do system message.</description><pubDate>Mon, 03 Aug 2026 23:30:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/tatuengine-operacao-convergencia-mestre-aprendiz.webp" type="image/webp"/><project>tatuengine</project><accent>#14b8a6</accent></item><item><title>The deploy that broke on its own — pnpm, audit fix and ERR_PNPM_EEXIST</title><link>https://lifelog-sepia.vercel.app/post/en/portifolio-o-deploy-que-quebrava-sozinho/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/portifolio-o-deploy-que-quebrava-sozinho/</guid><description>Nobody touched the code, yet Vercel kept rejecting the build: ERR_PNPM_EEXIST. The cause: a security cron ran pnpm audit fix with the Windows pnpm, regenerated a v10 lockfile while packageManager declared 9.12.3 — the saga of aligning local pnpm, packageManager and CI.</description><pubDate>Mon, 03 Aug 2026 23:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/portifolio-o-deploy-que-quebrava-sozinho.webp" type="image/webp"/><project>portfolio</project><accent>#00d4ff</accent></item><item><title>O deploy que quebrava sozinho — pnpm, audit fix e o ERR_PNPM_EEXIST</title><link>https://lifelog-sepia.vercel.app/post/portifolio-o-deploy-que-quebrava-sozinho/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/portifolio-o-deploy-que-quebrava-sozinho/</guid><description>Ninguém tocava no código, mas a Vercel recusava o build: ERR_PNPM_EEXIST. A causa: um cron de segurança rodava pnpm audit fix com o pnpm do Windows, regenerava o lockfile v10 e o packageManager declarava 9.12.3 — a saga de alinhar pnpm local, packageManager e CI.</description><pubDate>Mon, 03 Aug 2026 23:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/portifolio-o-deploy-que-quebrava-sozinho.webp" type="image/webp"/><project>portfolio</project><accent>#00d4ff</accent></item><item><title>O Capivara que não cai — espelho no Douglas e o failover que funcionou sozinho</title><link>https://lifelog-sepia.vercel.app/post/capivara-espelho-douglas-failover-real/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/capivara-espelho-douglas-failover-real/</guid><description>O hub pessoal devolvia 502 intermitente no tunnel. A solução: espelhar o Capivara no Douglas (fallback) com sync one-way e healthcheck — e provar com um teste de failover real: cloudflared do Samuel parado 40s, site 5/5 = 200, Douglas assumiu sozinho.</description><pubDate>Mon, 03 Aug 2026 22:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/capivara-espelho-douglas-failover-real.webp" type="image/webp"/><project>capivara</project><accent>#f59e0b</accent></item><item><title>The Capivara that never falls — mirror on Douglas and the failover that worked on its own</title><link>https://lifelog-sepia.vercel.app/post/en/capivara-espelho-douglas-failover-real/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/capivara-espelho-douglas-failover-real/</guid><description>The personal hub was returning intermittent 502s on the tunnel. The fix: mirror Capivara to Douglas (fallback) with one-way sync and healthcheck — and prove it with a real failover test: Samuel&apos;s cloudflared stopped for 40s, site 5/5 = 200, Douglas took over by itself.</description><pubDate>Mon, 03 Aug 2026 22:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/capivara-espelho-douglas-failover-real.webp" type="image/webp"/><project>capivara</project><accent>#f59e0b</accent></item><item><title>A história das Descobertas — MCP, FTS5, ai-jail e as lições que viraram regras</title><link>https://lifelog-sepia.vercel.app/post/a-historia-do-descobertas/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/a-historia-do-descobertas/</guid><description>MCP virou o conector universal (publicado no registry oficial), FTS5+vetorial virou busca híbrida com RRF, ai-jail isolou o agente e Ollama trouxe a IA pra casa — e as lições viraram regras: docs first, plan first, parar e perguntar.</description><pubDate>Mon, 03 Aug 2026 18:30:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/a-historia-do-descobertas.webp" type="image/webp"/><project>descobertas</project><accent>#38bdf8</accent></item><item><title>The story of the Discoveries — MCP, FTS5, ai-jail and the lessons that became rules</title><link>https://lifelog-sepia.vercel.app/post/en/a-historia-do-descobertas/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/a-historia-do-descobertas/</guid><description>MCP became the universal connector (published on the official registry), FTS5+vector became hybrid search with RRF, ai-jail isolated the agent and Ollama brought AI home — and the lessons became rules: docs first, plan first, stop and ask.</description><pubDate>Mon, 03 Aug 2026 18:30:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/a-historia-do-descobertas.webp" type="image/webp"/><project>descobertas</project><accent>#38bdf8</accent></item><item><title>A história do TatuEngine — dos RT Cores dos sonhos ao agente autopoiético com 252× de speedup</title><link>https://lifelog-sepia.vercel.app/post/a-historia-do-tatuengine/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/a-historia-do-tatuengine/</guid><description>Nasceu da pergunta absurda &apos;e se usássemos RT Cores pra processar redes neurais?&apos;, matou o sonho no WSL2, e virou um motor híbrido CPU/GPU com BitMamba-2 1B, 114× de compressão, agente com 8 subsistemas e sandbox de segurança — 302 commits depois.</description><pubDate>Mon, 03 Aug 2026 17:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/a-historia-do-tatuengine.webp" type="image/webp"/><project>tatuengine</project><accent>#14b8a6</accent></item><item><title>The story of TatuEngine — from dream RT Cores to an autopoietic agent with 252× speedup</title><link>https://lifelog-sepia.vercel.app/post/en/a-historia-do-tatuengine/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/a-historia-do-tatuengine/</guid><description>Born from the absurd question &apos;what if we used RT Cores to process neural networks?&apos;, killed the dream on WSL2, and became a hybrid CPU/GPU engine with BitMamba-2 1B, 114× compression, an agent with 8 subsystems and a security sandbox — 302 commits later.</description><pubDate>Mon, 03 Aug 2026 17:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/a-historia-do-tatuengine.webp" type="image/webp"/><project>tatuengine</project><accent>#14b8a6</accent></item><item><title>A história do Portfólio — da Mission Control ao sci-fi com 529 commits e 218 testes</title><link>https://lifelog-sepia.vercel.app/post/a-historia-do-portfolio/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/a-historia-do-portfolio/</guid><description>529 commits, 218 testes, 5 mini-games, parallax scene multicamada, terminal interativo com 15+ comandos, i18n PT/EN — a jornada de um portfólio que virou vitrine interativa.</description><pubDate>Sun, 02 Aug 2026 19:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/a-historia-do-portfolio.webp" type="image/webp"/><project>portfolio</project><accent>#00d4ff</accent></item><item><title>The story of the Portfolio — from Mission Control to sci-fi with 529 commits and 218 tests</title><link>https://lifelog-sepia.vercel.app/post/en/a-historia-do-portfolio/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/a-historia-do-portfolio/</guid><description>529 commits, 218 tests, 5 mini-games, multi-layer parallax scene, interactive terminal with 15+ commands, full PT/EN i18n — the journey of a portfolio that became an interactive showcase.</description><pubDate>Sun, 02 Aug 2026 19:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/a-historia-do-portfolio.webp" type="image/webp"/><project>portfolio</project><accent>#00d4ff</accent></item><item><title>A história do Capivara — do hub bagunçado ao painel central com 396 testes</title><link>https://lifelog-sepia.vercel.app/post/a-historia-do-capivara/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/a-historia-do-capivara/</guid><description>107 commits, 131 testes backend + 248 frontend, 2FA TOTP, RAG local com ChromaDB, backup R2 e D1 disaster recovery — a saga de transformar um painel pessoal em infraestrutura confiável.</description><pubDate>Sun, 02 Aug 2026 15:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/a-historia-do-capivara.webp" type="image/webp"/><project>capivara</project><accent>#f59e0b</accent></item><item><title>The story of Capivara — from messy hub to central dashboard with 396 tests</title><link>https://lifelog-sepia.vercel.app/post/en/a-historia-do-capivara/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/a-historia-do-capivara/</guid><description>107 commits, 131 backend tests + 248 frontend, 2FA TOTP, local RAG with ChromaDB, R2 backup and D1 disaster recovery — the saga of turning a personal dashboard into reliable infrastructure.</description><pubDate>Sun, 02 Aug 2026 15:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/a-historia-do-capivara.webp" type="image/webp"/><project>capivara</project><accent>#f59e0b</accent></item><item><title>A história do Arachne — do scraper iMasters ao Knowledge OS com 42 ferramentas</title><link>https://lifelog-sepia.vercel.app/post/a-historia-do-arachne/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/a-historia-do-arachne/</guid><description>777 commits, 2818 testes, RAG híbrido, ReAct Agent com 42 tools, MCP server, e a evolução de um scraper simples pra uma plataforma de conhecimento.</description><pubDate>Sat, 01 Aug 2026 19:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/a-historia-do-arachne.webp" type="image/webp"/><project>arachne</project><accent>#7c3aed</accent></item><item><title>The Arachne story — from iMasters scraper to Knowledge OS with 42 tools</title><link>https://lifelog-sepia.vercel.app/post/en/a-historia-do-arachne/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/a-historia-do-arachne/</guid><description>777 commits, 2818 tests, hybrid RAG, ReAct Agent with 42 tools, MCP server, and the evolution from a simple scraper to a knowledge platform.</description><pubDate>Sat, 01 Aug 2026 19:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/a-historia-do-arachne.webp" type="image/webp"/><project>arachne</project><accent>#7c3aed</accent></item><item><title>A história do Dogwalk — do marketplace de pets ao CI/CD com 1456 testes</title><link>https://lifelog-sepia.vercel.app/post/a-historia-do-dogwalk/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/a-historia-do-dogwalk/</guid><description>970 commits, 1456 testes, Stripe Connect, Open Design, e a saga de transformar um marketplace de pets em uma plataforma que não quebra no deploy.</description><pubDate>Sat, 01 Aug 2026 15:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/a-historia-do-dogwalk.webp" type="image/webp"/><project>dogwalk</project><accent>#22c55e</accent></item><item><title>The Dogwalk story — from pet marketplace to CI/CD with 1456 tests</title><link>https://lifelog-sepia.vercel.app/post/en/a-historia-do-dogwalk/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/a-historia-do-dogwalk/</guid><description>970 commits, 1456 tests, Stripe Connect, Open Design, and the saga of turning a pet marketplace into a platform that doesn&apos;t break on deploy.</description><pubDate>Sat, 01 Aug 2026 15:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/a-historia-do-dogwalk.webp" type="image/webp"/><project>dogwalk</project><accent>#22c55e</accent></item><item><title>A história do LifeLog — como nasceu o blog que documenta tudo</title><link>https://lifelog-sepia.vercel.app/post/a-historia-do-lifelog/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/a-historia-do-lifelog/</guid><description>158 commits, 49 posts bilíngues, 4 engines de tema, 59 capas AI, e uma decisão que mudou tudo: matar o robô que escrevia posts sozinho.</description><pubDate>Fri, 31 Jul 2026 17:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/a-historia-do-lifelog.webp" type="image/webp"/><project>lifelog</project><accent>#a855f7</accent></item><item><title>The LifeLog story — how the blog that documents everything was born</title><link>https://lifelog-sepia.vercel.app/post/en/a-historia-do-lifelog/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/a-historia-do-lifelog/</guid><description>158 commits, 50 bilingual posts, 4 theme engines, 59 AI covers, and a decision that changed everything: killing the bot that wrote posts on its own.</description><pubDate>Fri, 31 Jul 2026 17:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/a-historia-do-lifelog.webp" type="image/webp"/><project>lifelog</project><accent>#a855f7</accent></item><item><title>The potential of computer use in Hermes — what July&apos;s commits promise</title><link>https://lifelog-sepia.vercel.app/post/en/hermes-computer-use-cua-driver/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/hermes-computer-use-cua-driver/</guid><description>In July, 8 commits improved Hermes&apos; computer use: permission modes, desktop control, voice barge-in. The code exists — but on WSL, an X11 server is still needed to actually run it.</description><pubDate>Fri, 31 Jul 2026 01:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/hermes-computer-use-cua-driver.webp" type="image/webp"/><project>descobertas</project><accent>#38bdf8</accent></item><item><title>O potencial do computer use no Hermes — o que os commits de julho prometem</title><link>https://lifelog-sepia.vercel.app/post/hermes-computer-use-cua-driver/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/hermes-computer-use-cua-driver/</guid><description>Em julho, 8 commits melhoraram o computer use do Hermes: permission modes, desktop control, voice barge-in. O código existe — mas no WSL ainda falta um servidor X11 pra rodar de verdade.</description><pubDate>Fri, 31 Jul 2026 01:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/hermes-computer-use-cua-driver.webp" type="image/webp"/><project>descobertas</project><accent>#38bdf8</accent></item><item><title>TatuEngine — the engine that never stops</title><link>https://lifelog-sepia.vercel.app/post/en/tatuengine-o-motor-que-nao-para/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/tatuengine-o-motor-que-nao-para/</guid><description>298 commits, zero new features in 30 days, and an SSM inference engine that runs unsupervised. The TatuEngine doesn&apos;t need changes — it just works.</description><pubDate>Thu, 30 Jul 2026 01:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/tatuengine-o-motor-que-nao-para.webp" type="image/webp"/><project>tatuengine</project><accent>#14b8a6</accent></item><item><title>TatuEngine — o motor que não para</title><link>https://lifelog-sepia.vercel.app/post/tatuengine-o-motor-que-nao-para/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/tatuengine-o-motor-que-nao-para/</guid><description>298 commits, zero novas features em 30 dias, e um motor de inferência SSM que roda sem supervisão. O TatuEngine não precisa de mudanças — ele só funciona.</description><pubDate>Thu, 30 Jul 2026 01:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/tatuengine-o-motor-que-nao-para.webp" type="image/webp"/><project>tatuengine</project><accent>#14b8a6</accent></item><item><title>Sandbox Híbrido — como evitar que uma IA exploda seu sistema</title><link>https://lifelog-sepia.vercel.app/post/2026-07-29-sandbox-hibrido-tatuengine/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/2026-07-29-sandbox-hibrido-tatuengine/</guid><description>Quando sua engine executa código gerado por IA, você precisa de um sandbox que não atrapalhe o desenvolvimento mas também não deixe passar path traversal.</description><pubDate>Thu, 30 Jul 2026 00:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/2026-07-29-sandbox-hibrido-tatuengine.webp" type="image/webp"/><project>tatuengine</project><accent>#14b8a6</accent></item><item><title>Hybrid Sandbox — how to prevent an AI from blowing up your system</title><link>https://lifelog-sepia.vercel.app/post/en/2026-07-29-hybrid-sandbox-tatuengine/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/2026-07-29-hybrid-sandbox-tatuengine/</guid><description>When your engine runs AI-generated code, you need a sandbox that doesn&apos;t hinder development but won&apos;t let path traversal slip through.</description><pubDate>Thu, 30 Jul 2026 00:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/2026-07-29-sandbox-hibrido-tatuengine.webp" type="image/webp"/><project>tatuengine</project><accent>#14b8a6</accent></item><item><title>A Semana da Qualidade — 10 correções que o portfólio merecia</title><link>https://lifelog-sepia.vercel.app/post/2026-07-28-semana-da-qualidade-portfolio/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/2026-07-28-semana-da-qualidade-portfolio/</guid><description>Pix BR Code quebrado, focus trap roubando o teclado, scroll que pulava seção — uma auditoria profunda resolveu tudo de uma vez.</description><pubDate>Wed, 29 Jul 2026 09:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/2026-07-28-semana-da-qualidade-portfolio.webp" type="image/webp"/><project>portfolio</project><accent>#00d4ff</accent></item><item><title>The Quality Week — 10 fixes my portfolio deserved</title><link>https://lifelog-sepia.vercel.app/post/en/2026-07-28-quality-week-portfolio/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/2026-07-28-quality-week-portfolio/</guid><description>Broken Pix BR Code, focus trap stealing keyboard input, scroll jumping sections — a deep audit fixed everything at once.</description><pubDate>Wed, 29 Jul 2026 09:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/2026-07-28-semana-da-qualidade-portfolio.webp" type="image/webp"/><project>portfolio</project><accent>#00d4ff</accent></item><item><title>Portfolio — the July audit that turned into spring cleaning</title><link>https://lifelog-sepia.vercel.app/post/en/portfolio-auditoria-faxina-julho-2026/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/portfolio-auditoria-faxina-julho-2026/</guid><description>July 2026 was the month my portfolio stopped getting new features and started fixing the ones it already had. A deep audit revealed 10 problems — from Pix to focus trap — and by the end, deployment was more automated than ever.</description><pubDate>Wed, 29 Jul 2026 01:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/portfolio-auditoria-faxina-julho-2026.webp" type="image/webp"/><project>portfolio</project><accent>#00d4ff</accent></item><item><title>Portfolio — a auditoria que virou faxina de julho</title><link>https://lifelog-sepia.vercel.app/post/portfolio-auditoria-faxina-julho-2026/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/portfolio-auditoria-faxina-julho-2026/</guid><description>Julho de 2026 foi o mês em que o portfólio parou de ganhar features novas e começou a corrigir as que já tinha. Uma auditoria profunda revelou 10 problemas — do Pix ao focus trap — e no fim o deploy ficou mais automático do que nunca.</description><pubDate>Wed, 29 Jul 2026 01:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/portfolio-auditoria-faxina-julho-2026.webp" type="image/webp"/><project>portfolio</project><accent>#00d4ff</accent></item><item><title>Ollama Truncation Loop — or: How 4096 Context Tokens Cost Me 2 Hours of Debugging</title><link>https://lifelog-sepia.vercel.app/post/en/ollama-truncation-loop-4096/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/ollama-truncation-loop-4096/</guid><description>Hermes kept entering a continuation loop 4 times before giving up. The cause: Ollama, by default, only allocates 4096 context tokens — regardless of the model supporting 262K. The hard way: num_ctx of the model ≠ num_ctx of the inference slot.</description><pubDate>Tue, 28 Jul 2026 13:30:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/ollama-truncation-loop-4096.webp" type="image/webp"/><project>estudos</project><accent>#3b82f6</accent></item><item><title>Ollama Truncation Loop — ou: como 4096 tokens de contexto me fizeram perder 2h de debug</title><link>https://lifelog-sepia.vercel.app/post/ollama-truncation-loop-4096/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/ollama-truncation-loop-4096/</guid><description>O Hermes entrava em loop de continuation 4x seguidas antes de desistir. A causa: o Ollama, por padrão, só aloca 4096 tokens de contexto — independente do modelo suportar 262K. Aprendi na marra que num_ctx do modelo ≠ num_ctx do slot.</description><pubDate>Tue, 28 Jul 2026 13:30:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/ollama-truncation-loop-4096.webp" type="image/webp"/><project>estudos</project><accent>#3b82f6</accent></item><item><title>Blindando o Hermes — ai-jail, bwrap e o dia que os secrets pararam de vazar</title><link>https://lifelog-sepia.vercel.app/post/blindando-hermes-ai-jail/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/blindando-hermes-ai-jail/</guid><description>Meu assistente Hermes tem acesso a tudo: tokens de API, chaves Stripe, credenciais de banco. Um comando errado no terminal() e vazava tudo. A solução: um sandbox em Rust que isola cada execução com bubblewrap, Landlock e Seccomp.</description><pubDate>Tue, 28 Jul 2026 13:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/blindando-hermes-ai-jail.webp" type="image/webp"/><project>seguranca</project><accent>#ef4444</accent></item><item><title>Hardening Hermes — ai-jail, bwrap, and the Day Secrets Stopped Leaking</title><link>https://lifelog-sepia.vercel.app/post/en/blindando-hermes-ai-jail/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/blindando-hermes-ai-jail/</guid><description>My Hermes agent has access to everything: API tokens, Stripe keys, database credentials. One wrong terminal() command and it all leaks. The fix: a Rust sandbox that isolates every execution with bubblewrap, Landlock, and Seccomp.</description><pubDate>Tue, 28 Jul 2026 13:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/blindando-hermes-ai-jail.webp" type="image/webp"/><project>seguranca</project><accent>#ef4444</accent></item><item><title>The QR Code That Didn&apos;t Pay — String.fromCharCode, Control Codepoints, and an Invisible Pix</title><link>https://lifelog-sepia.vercel.app/post/en/pix-br-code-stringfromcharcode/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/pix-br-code-stringfromcharcode/</guid><description>I added Pix to my portfolio with BR Code generation. Only the QR Code didn&apos;t work in any banking app. The culprit: String.fromCharCode generating control characters instead of decimal digits in EMV 2022 length fields.</description><pubDate>Tue, 28 Jul 2026 13:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/pix-br-code-stringfromcharcode.webp" type="image/webp"/><project>portfolio</project><accent>#00d4ff</accent></item><item><title>O Pix que não Pixava — String.fromCharCode, codepoints de controle e um BR Code invisível</title><link>https://lifelog-sepia.vercel.app/post/pix-br-code-stringfromcharcode/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/pix-br-code-stringfromcharcode/</guid><description>Implementei Pix no portfólio com pagamento via BR Code. Só que o QR Code não funcionava em nenhum app de banco. O culpado: String.fromCharCode gerando caracteres de controle em vez de dígitos decimais nos campos de tamanho.</description><pubDate>Tue, 28 Jul 2026 13:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/pix-br-code-stringfromcharcode.webp" type="image/webp"/><project>portfolio</project><accent>#00d4ff</accent></item><item><title>Dogwalk — 3 Bugs, 1 Commit, 1379 Testes</title><link>https://lifelog-sepia.vercel.app/post/dogwalk-3-bugs-1-commit-1379-testes/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/dogwalk-3-bugs-1-commit-1379-testes/</guid><description>Como um endpoint público que dava 401, um bundle que crashava e 42 erros no console viraram um commit só</description><pubDate>Sat, 25 Jul 2026 03:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/dogwalk-3-bugs-1-commit.webp" type="image/webp"/><project>dogwalk</project><accent>#22c55e</accent></item><item><title>Dogwalk — 3 Bugs, 1 Commit, 1379 Tests</title><link>https://lifelog-sepia.vercel.app/post/en/dogwalk-3-bugs-1-commit-1379-testes/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/dogwalk-3-bugs-1-commit-1379-testes/</guid><description>How a public endpoint that returned 401, a bundle that crashed, and 42 console errors became a single commit</description><pubDate>Sat, 25 Jul 2026 03:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/dogwalk-3-bugs-1-commit.webp" type="image/webp"/><project>dogwalk</project><accent>#22c55e</accent></item><item><title>Restaurando o circular reveal do tema — a escolha entre remover e otimizar</title><link>https://lifelog-sepia.vercel.app/post/2026-07-24-tema-circular-reveal-restaurado-otimizado/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/2026-07-24-tema-circular-reveal-restaurado-otimizado/</guid><description>Em vez de substituir o circular reveal por crossfade básico, corrigi a causa raiz do stutter em GPU low-end. VT clip-path + fallback limpo.</description><pubDate>Fri, 24 Jul 2026 16:52:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/2026-07-24-tema-circular-reveal-restaurado-otimizado.webp" type="image/webp"/><project>lifelog</project><accent>#a855f7</accent></item><item><title>Restoring the Theme Circle Reveal — The Choice Between Remove and Optimize</title><link>https://lifelog-sepia.vercel.app/post/en/2026-07-24-tema-circular-reveal-restaurado-otimizado/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/2026-07-24-tema-circular-reveal-restaurado-otimizado/</guid><description>Instead of replacing the circular reveal with basic crossfade, I fixed the root cause of stutter on low-end GPUs. VT clip-path + clean fallback.</description><pubDate>Fri, 24 Jul 2026 16:52:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/2026-07-24-tema-circular-reveal-restaurado-otimizado.webp" type="image/webp"/><project>lifelog</project><accent>#a855f7</accent></item><item><title>De auto-post a narrativa — porque matei o cron diário</title><link>https://lifelog-sepia.vercel.app/post/de-auto-post-a-narrativa-pq-matei-cron-diario/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/de-auto-post-a-narrativa-pq-matei-cron-diario/</guid><description>O momento em que percebi que meu blog de devlogs estava produzindo relatórios, não histórias — e como resolvi isso matando o robô que escrevia posts sozinho.</description><pubDate>Fri, 24 Jul 2026 03:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/de-auto-post-a-narrativa-pq-matei-cron-diario.webp" type="image/webp"/><project>lifelog</project><accent>#a855f7</accent></item><item><title>From auto-post to narrative — why I killed the daily cron</title><link>https://lifelog-sepia.vercel.app/post/en/de-auto-post-a-narrativa-pq-matei-cron-diario/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/de-auto-post-a-narrativa-pq-matei-cron-diario/</guid><description>The moment I realized my devlog blog was producing reports, not stories — and how I fixed it by killing the robot that wrote posts on its own.</description><pubDate>Fri, 24 Jul 2026 03:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/de-auto-post-a-narrativa-pq-matei-cron-diario.webp" type="image/webp"/><project>lifelog</project><accent>#a855f7</accent></item><item><title>Overhaul de animações — micro-interações, stagger nos cards e scroll shadow</title><link>https://lifelog-sepia.vercel.app/post/2026-07-23-animacao-overhaul-micro-interacoes-stagger/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/2026-07-23-animacao-overhaul-micro-interacoes-stagger/</guid><description>Sistematei as animações do LifeLog: stagger nos cards, scroll shadow no navbar, micro-interações em tags/pills/search, e uma easing curve única pra tudo.</description><pubDate>Thu, 23 Jul 2026 15:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/animacao-overhaul-micro-interacoes-stagger.webp" type="image/webp"/><project>lifelog</project><accent>#a855f7</accent></item><item><title>Animation Overhaul — Micro-interactions, Card Stagger, and Scroll Shadow</title><link>https://lifelog-sepia.vercel.app/post/en/2026-07-23-animacao-overhaul-micro-interacoes-stagger/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/2026-07-23-animacao-overhaul-micro-interacoes-stagger/</guid><description>Systematized LifeLog&apos;s animations: stagger on timeline cards, scroll shadow on navbar, micro-interactions on tags/pills/search, and a single easing curve for everything.</description><pubDate>Thu, 23 Jul 2026 15:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/animacao-overhaul-micro-interacoes-stagger.webp" type="image/webp"/><project>lifelog</project><accent>#a855f7</accent></item><item><title>Tema animação simplificada — adeus clip-path circular, olá crossfade</title><link>https://lifelog-sepia.vercel.app/post/2026-07-22-tema-animacao-simplificada-crossfade/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/2026-07-22-tema-animacao-simplificada-crossfade/</guid><description>Removi a animação circular com clip-path que vivia dando stutter e simplifiquei pra crossfade puro no tema do LifeLog.</description><pubDate>Wed, 22 Jul 2026 15:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/tema-animacao-simplificada-crossfade.webp" type="image/webp"/><project>lifelog</project><accent>#a855f7</accent></item><item><title>Theme Animation Simplified — Goodbye Circular Clip-Path, Hello Crossfade</title><link>https://lifelog-sepia.vercel.app/post/en/2026-07-22-tema-animacao-simplificada-crossfade/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/2026-07-22-tema-animacao-simplificada-crossfade/</guid><description>Removed the circular clip-path animation that kept stuttering and simplified to a pure crossfade for the LifeLog theme switcher.</description><pubDate>Wed, 22 Jul 2026 15:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/tema-animacao-simplificada-crossfade.webp" type="image/webp"/><project>lifelog</project><accent>#a855f7</accent></item><item><title>Dogwalk — a saga de debug do CI/CD</title><link>https://lifelog-sepia.vercel.app/post/2026-07-21-dogwalk-ci-debug-spiral/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/2026-07-21-dogwalk-ci-debug-spiral/</guid><description>Indentação YAML, dependência faltando, testes que precisam de servidor — a clássica espiral de debug de pipeline.</description><pubDate>Tue, 21 Jul 2026 15:07:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/2026-07-21-dogwalk-ci-debug-spiral.webp" type="image/webp"/><project>dogwalk</project><accent>#22c55e</accent></item><item><title>Dogwalk — the CI/CD debugging spiral</title><link>https://lifelog-sepia.vercel.app/post/en/2026-07-21-dogwalk-ci-debug-spiral/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/2026-07-21-dogwalk-ci-debug-spiral/</guid><description>YAML indentation, missing dependencies, tests that need a running server — the classic pipeline debugging spiral.</description><pubDate>Tue, 21 Jul 2026 15:07:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/2026-07-21-dogwalk-ci-debug-spiral.webp" type="image/webp"/><project>dogwalk</project><accent>#22c55e</accent></item><item><title>LifeLog — o dia do refactor arquitetural</title><link>https://lifelog-sepia.vercel.app/post/2026-07-20-lifelog-refactor-arquitetura-componentes/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/2026-07-20-lifelog-refactor-arquitetura-componentes/</guid><description>TagCloud, PostLayout compartilhado, FilterBar turbinada com Fuse.js e tema arrumado — um dia inteiro de melhorias na base do blog.</description><pubDate>Mon, 20 Jul 2026 15:11:27 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/lifelog-refactor-arquitetura-componentes.webp" type="image/webp"/><project>lifelog</project><accent>#a855f7</accent></item><item><title>LifeLog — the architecture refactor day</title><link>https://lifelog-sepia.vercel.app/post/en/2026-07-20-lifelog-refactor-arquitetura-componentes/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/2026-07-20-lifelog-refactor-arquitetura-componentes/</guid><description>TagCloud, shared PostLayout, Fuse.js-powered FilterBar, and theme fixes — a full day of housekeeping on the blog&apos;s foundation.</description><pubDate>Mon, 20 Jul 2026 15:11:27 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/lifelog-refactor-arquitetura-componentes.webp" type="image/webp"/><project>lifelog</project><accent>#a855f7</accent></item><item><title>LifeLog — the daily rhythm and the AI cover system</title><link>https://lifelog-sepia.vercel.app/post/en/lifelog-ritmo-diario-capa-ai/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/lifelog-ritmo-diario-capa-ai/</guid><description>Establishing daily posting frequency and solving the AI cover generation pipeline with Cloudflare Workers + FLUX.1 Schnell.</description><pubDate>Sun, 19 Jul 2026 15:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/lifelog-ritmo-diario-capa-ai.webp" type="image/webp"/><project>lifelog</project><accent>#a855f7</accent></item><item><title>LifeLog — o ritmo diário e o sistema de capas AI</title><link>https://lifelog-sepia.vercel.app/post/lifelog-ritmo-diario-capa-ai/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/lifelog-ritmo-diario-capa-ai/</guid><description>Estabelecendo a frequência de postagens diárias e resolvendo o pipeline de geração de capas por IA com Cloudflare Workers + FLUX.1 Schnell.</description><pubDate>Sun, 19 Jul 2026 15:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/lifelog-ritmo-diario-capa-ai.webp" type="image/webp"/><project>lifelog</project><accent>#a855f7</accent></item><item><title>Capivara — as histórias que a refatoração não contou</title><link>https://lifelog-sepia.vercel.app/post/capivara-updates-2026-07-17/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/capivara-updates-2026-07-17/</guid><description>Debaixo dos panos da refatoração de 83% do frontend: Ghost Components, schema drift silencioso, a guerra dos dois systemd, o proxy fantasma do Umami e outras dores que não cabem num changelog.</description><pubDate>Sat, 18 Jul 2026 03:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/capivara-updates-2026-07-17.webp" type="image/webp"/><project>capivara</project><accent>#f59e0b</accent></item><item><title>Capivara — The Stories the Refactoring Didn&apos;t Tell</title><link>https://lifelog-sepia.vercel.app/post/en/capivara-updates-2026-07-17/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/capivara-updates-2026-07-17/</guid><description>Under the hood of an 83% frontend refactoring: Ghost Components, silent schema drift, the two-systemd war, the phantom Umami proxy, and other pains that don&apos;t fit in a changelog.</description><pubDate>Sat, 18 Jul 2026 03:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/capivara-updates-2026-07-17.webp" type="image/webp"/><project>capivara</project><accent>#f59e0b</accent></item><item><title>Capivara — updates e próximos passos</title><link>https://lifelog-sepia.vercel.app/post/capivara-updates-e-proximos-passos/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/capivara-updates-e-proximos-passos/</guid><description>Explorando estado atual do Capivara — aprendizados, desafios e descobertas.</description><pubDate>Sat, 18 Jul 2026 02:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/capivara-updates-e-proximos-passos.webp" type="image/webp"/><project>capivara</project><accent>#f59e0b</accent></item><item><title>Capivara — Updates and Next Steps</title><link>https://lifelog-sepia.vercel.app/post/en/capivara-updates-e-proximos-passos/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/capivara-updates-e-proximos-passos/</guid><description>Exploring the current state of Capivara — learnings, challenges and discoveries.</description><pubDate>Sat, 18 Jul 2026 02:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/capivara-updates-e-proximos-passos.webp" type="image/webp"/><project>capivara</project><accent>#f59e0b</accent></item><item><title>TatuEngine — updates and next steps</title><link>https://lifelog-sepia.vercel.app/post/en/tatuengine-updates-and-next-steps/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/tatuengine-updates-and-next-steps/</guid><description>Exploring the current state of TatuEngine — lessons, challenges, and discoveries.</description><pubDate>Sat, 18 Jul 2026 01:37:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/tatuengine-updates-and-next-steps.webp" type="image/webp"/><project>tatuengine</project><accent>#14b8a6</accent></item><item><title>TatuEngine — updates e próximos passos</title><link>https://lifelog-sepia.vercel.app/post/tatuengine-updates-e-proximos-passos/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/tatuengine-updates-e-proximos-passos/</guid><description>Explorando estado atual do TatuEngine — aprendizados, desafios e descobertas.</description><pubDate>Sat, 18 Jul 2026 01:37:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/tatuengine-updates-e-proximos-passos.webp" type="image/webp"/><project>tatuengine</project><accent>#14b8a6</accent></item><item><title>Dogwalk — updates e próximos passos</title><link>https://lifelog-sepia.vercel.app/post/dogwalk-updates-e-proximos-passos/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/dogwalk-updates-e-proximos-passos/</guid><description>Explorando estado atual do Dogwalk — aprendizados, desafios e descobertas.</description><pubDate>Fri, 17 Jul 2026 01:02:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/dogwalk-updates-e-proximos-passos.webp" type="image/webp"/><project>dogwalk</project><accent>#22c55e</accent></item><item><title>Dogwalk — updates and next steps</title><link>https://lifelog-sepia.vercel.app/post/en/dogwalk-updates-e-proximos-passos/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/dogwalk-updates-e-proximos-passos/</guid><description>Exploring the current state of Dogwalk — lessons learned, challenges and discoveries.</description><pubDate>Fri, 17 Jul 2026 01:02:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/dogwalk-updates-e-proximos-passos.webp" type="image/webp"/><project>dogwalk</project><accent>#22c55e</accent></item><item><title>Arachne — o ecossistema de MCP tools, visão multimodal e o que vem por aí</title><link>https://lifelog-sepia.vercel.app/post/arachne-updates-e-proximos-passos/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/arachne-updates-e-proximos-passos/</guid><description>25 ferramentas MCP, visão multimodal com IA local, observabilidade, billing e o sandbox que tornou o Arachne uma plataforma — o estado atual do projeto em julho de 2026.</description><pubDate>Thu, 16 Jul 2026 21:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/arachne-updates-e-proximos-passos.webp" type="image/webp"/><project>arachne</project><accent>#7c3aed</accent></item><item><title>Arachne — The MCP Tools Ecosystem, Multimodal Vision and What&apos;s Next</title><link>https://lifelog-sepia.vercel.app/post/en/arachne-updates-e-proximos-passos/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/arachne-updates-e-proximos-passos/</guid><description>25 MCP tools, multimodal vision with local AI, observability, billing, and the sandbox that made Arachne a platform — the current state of the project in July 2026.</description><pubDate>Thu, 16 Jul 2026 21:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/arachne-updates-e-proximos-passos.webp" type="image/webp"/><project>arachne</project><accent>#7c3aed</accent></item><item><title>LifeLog is born — the blog that documents the journey</title><link>https://lifelog-sepia.vercel.app/post/en/lifelog-nasce-o-blog-que-documenta-a-jornada/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/lifelog-nasce-o-blog-que-documenta-a-jornada/</guid><description>Why I created a personal blog in 2026, the Astro choice, and what to expect going forward.</description><pubDate>Thu, 16 Jul 2026 20:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/lifelog-nasce-o-blog-que-documenta-a-jornada.webp" type="image/webp"/><project>lifelog</project><accent>#a855f7</accent></item><item><title>LifeLog nasce — o blog que documenta a jornada</title><link>https://lifelog-sepia.vercel.app/post/lifelog-nasce-o-blog-que-documenta-a-jornada/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/lifelog-nasce-o-blog-que-documenta-a-jornada/</guid><description>Por que criei um blog pessoal em 2026, a escolha do Astro, e o que esperar daqui pra frente.</description><pubDate>Thu, 16 Jul 2026 20:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/lifelog-nasce-o-blog-que-documenta-a-jornada.webp" type="image/webp"/><project>lifelog</project><accent>#a855f7</accent></item><item><title>The Ecosystem Today — 5 Projects, One Brain, and a Plan</title><link>https://lifelog-sepia.vercel.app/post/en/o-ecossistema-hoje/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/o-ecossistema-hoje/</guid><description>From 3 projects in June to 5 in July, the Samuel ecosystem now has 2,396 commits, 3,647+ tests, and one agent orchestrating it all.</description><pubDate>Thu, 16 Jul 2026 17:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/o-ecossistema-hoje.webp" type="image/webp"/><project>descobertas</project><accent>#38bdf8</accent></item><item><title>O ecossistema hoje — 5 projetos, um cérebro, e um plano</title><link>https://lifelog-sepia.vercel.app/post/o-ecossistema-hoje/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/o-ecossistema-hoje/</guid><description>De 3 projetos em junho pra 5 em julho, o ecossistema Samuel agora tem 2.396 commits, 3.647+ testes, e um agente orquestrando tudo.</description><pubDate>Thu, 16 Jul 2026 17:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/o-ecossistema-hoje.webp" type="image/webp"/><project>descobertas</project><accent>#38bdf8</accent></item><item><title>5 jogos melhorados — o dia que o portfólio virou vitrine</title><link>https://lifelog-sepia.vercel.app/post/5-jogos-melhorados-o-dia-que-o-portfolio-virou-vitrine/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/5-jogos-melhorados-o-dia-que-o-portfolio-virou-vitrine/</guid><description>Explorando jogos do portfolio — aprendizados, desafios e descobertas.</description><pubDate>Thu, 16 Jul 2026 12:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/5-jogos-melhorados-o-dia-que-o-portfolio-virou-vitrine.webp" type="image/webp"/><project>portfolio</project><accent>#00d4ff</accent></item><item><title>5 improved games — the day the portfolio became a showcase</title><link>https://lifelog-sepia.vercel.app/post/en/5-jogos-melhorados-o-dia-que-o-portfolio-virou-vitrine/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/5-jogos-melhorados-o-dia-que-o-portfolio-virou-vitrine/</guid><description>Exploring the portfolio games — lessons learned, challenges and discoveries.</description><pubDate>Thu, 16 Jul 2026 12:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/5-jogos-melhorados-o-dia-que-o-portfolio-virou-vitrine.webp" type="image/webp"/><project>portfolio</project><accent>#00d4ff</accent></item><item><title>TatuEngine SFT — Adafactor and the 4 NaN fixes</title><link>https://lifelog-sepia.vercel.app/post/en/tatuengine-sft-adafactor-and-the-4-nan-fixes/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/tatuengine-sft-adafactor-and-the-4-nan-fixes/</guid><description>The saga of making Student BitMamba-1B learn without exploding: Adafactor vs AdamW, saving 4 GB of VRAM, and the 4 bugs that produced NaN during bf16 training.</description><pubDate>Wed, 15 Jul 2026 20:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/tatuengine-sft-adafactor-and-the-4-nan-fixes.webp" type="image/webp"/><project>tatuengine</project><accent>#14b8a6</accent></item><item><title>SFT do TatuEngine — Adafactor e os 4 fixes do NaN</title><link>https://lifelog-sepia.vercel.app/post/sft-do-tatuengine-adafactor-e-os-4-fixes-do-nan/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/sft-do-tatuengine-adafactor-e-os-4-fixes-do-nan/</guid><description>A saga de fazer o Student BitMamba-1B aprender sem explodir: Adafactor vs AdamW, a economia de 4 GB de VRAM, e os 4 bugs que produziam NaN no treinamento em bf16.</description><pubDate>Wed, 15 Jul 2026 20:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/sft-do-tatuengine-adafactor-e-os-4-fixes-do-nan.webp" type="image/webp"/><project>tatuengine</project><accent>#14b8a6</accent></item><item><title>FTS5 + sqlite-vec — hybrid search in Arachne</title><link>https://lifelog-sepia.vercel.app/post/en/fts5-sqlite-vec-hybrid-search-in-arachne/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/fts5-sqlite-vec-hybrid-search-in-arachne/</guid><description>Exploring hybrid search — lessons, challenges, and discoveries.</description><pubDate>Wed, 15 Jul 2026 03:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/fts5-sqlite-vec-hybrid-search-in-arachne.webp" type="image/webp"/><project>arachne</project><accent>#7c3aed</accent></item><item><title>FTS5 + sqlite-vec — busca híbrida no Arachne</title><link>https://lifelog-sepia.vercel.app/post/fts5-sqlite-vec-busca-h%C3%ADbrida-no-arachne/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/fts5-sqlite-vec-busca-h%C3%ADbrida-no-arachne/</guid><description>Explorando busca híbrida — aprendizados, desafios e descobertas.</description><pubDate>Wed, 15 Jul 2026 03:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/fts5-sqlite-vec-busca-híbrida-no-arachne.webp" type="image/webp"/><project>arachne</project><accent>#7c3aed</accent></item><item><title>Descobertas de Julho — ferramentas que mudaram meu fluxo</title><link>https://lifelog-sepia.vercel.app/post/descobertas-de-julho-ferramentas-que-mudaram-meu-fluxo/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/descobertas-de-julho-ferramentas-que-mudaram-meu-fluxo/</guid><description>Explorando ferramentas de julho — aprendizados, desafios e descobertas.</description><pubDate>Wed, 15 Jul 2026 01:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/descobertas-de-julho-ferramentas-que-mudaram-meu-fluxo.webp" type="image/webp"/><project>descobertas</project><accent>#38bdf8</accent></item><item><title>July discoveries — tools that changed my flow</title><link>https://lifelog-sepia.vercel.app/post/en/july-discoveries-tools-that-changed-my-flow/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/july-discoveries-tools-that-changed-my-flow/</guid><description>Exploring July&apos;s tools — lessons, challenges, and discoveries.</description><pubDate>Wed, 15 Jul 2026 01:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/july-discoveries-tools-that-changed-my-flow.webp" type="image/webp"/><project>descobertas</project><accent>#38bdf8</accent></item><item><title>BitMamba 1B — treinando o primeiro modelo SSM</title><link>https://lifelog-sepia.vercel.app/post/bitmamba-1b-treinando-o-primeiro-modelo-ssm/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/bitmamba-1b-treinando-o-primeiro-modelo-ssm/</guid><description>A jornada (e as crateras) de treinar um Mamba-2 de 1.4B parâmetros do zero numa RTX 3060 — warmup, SFT, eval catastrófico e a Fase 4 da ressurreição.</description><pubDate>Tue, 14 Jul 2026 21:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/bitmamba-1b-treinando-o-primeiro-modelo-ssm.webp" type="image/webp"/><project>tatuengine</project><accent>#14b8a6</accent></item><item><title>BitMamba 1B — training the first SSM model</title><link>https://lifelog-sepia.vercel.app/post/en/bitmamba-1b-training-the-first-ssm-model/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/bitmamba-1b-training-the-first-ssm-model/</guid><description>The journey (and the craters) of training a Mamba-2 with 1.4B parameters from scratch on an RTX 3060 — warmup, SFT, catastrophic eval, and Phase 4 of the resurrection.</description><pubDate>Tue, 14 Jul 2026 21:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/bitmamba-1b-training-the-first-ssm-model.webp" type="image/webp"/><project>tatuengine</project><accent>#14b8a6</accent></item><item><title>D1 Sync — levando dados do Capivara pro Cloudflare</title><link>https://lifelog-sepia.vercel.app/post/d1-sync-levando-dados-do-capivara-pro-cloudflare/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/d1-sync-levando-dados-do-capivara-pro-cloudflare/</guid><description>Explorando D1 sync — aprendizados, desafios e descobertas.</description><pubDate>Tue, 14 Jul 2026 03:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/d1-sync-levando-dados-do-capivara-pro-cloudflare.webp" type="image/webp"/><project>capivara</project><accent>#f59e0b</accent></item><item><title>D1 Sync — Taking Capivara Data to Cloudflare</title><link>https://lifelog-sepia.vercel.app/post/en/d1-sync-levando-dados-do-capivara-pro-cloudflare/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/d1-sync-levando-dados-do-capivara-pro-cloudflare/</guid><description>Exploring D1 sync — learnings, challenges and discoveries.</description><pubDate>Tue, 14 Jul 2026 03:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/d1-sync-levando-dados-do-capivara-pro-cloudflare.webp" type="image/webp"/><project>capivara</project><accent>#f59e0b</accent></item><item><title>Capivara: hub pessoal contra a bagunça financeira</title><link>https://lifelog-sepia.vercel.app/post/capivara-hub-pessoal-bagunca-financeira/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/capivara-hub-pessoal-bagunca-financeira/</guid><description>Como o Capivara resolveu a bagunça financeira de múltiplas contas, planilhas e categorias — unificando tudo em um dashboard.</description><pubDate>Tue, 14 Jul 2026 02:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/capivara-hub-pessoal-bagunca-financeira.webp" type="image/webp"/><project>capivara</project><accent>#f59e0b</accent></item><item><title>Dogwalk amadurece — testes Playwright como backbone de qualidade</title><link>https://lifelog-sepia.vercel.app/post/dogwalk-amadurece-testes-playwright/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/dogwalk-amadurece-testes-playwright/</guid><description>De zero testes a 853: como os testes Playwright viraram o backbone de qualidade do Dogwalk/PataPass, os aprendizados e o que mudou no processo.</description><pubDate>Tue, 14 Jul 2026 02:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/dogwalk-amadurece-testes-playwright.webp" type="image/webp"/><project>dogwalk</project><accent>#22c55e</accent></item><item><title>Dogwalk: primeiros componentes de autenticação</title><link>https://lifelog-sepia.vercel.app/post/dogwalk-primeiros-componentes-auth/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/dogwalk-primeiros-componentes-auth/</guid><description>JWT, Supabase, OAuth, refresh token, rotas protegidas e layout condicional — a história da autenticação no Dogwalk.</description><pubDate>Tue, 14 Jul 2026 02:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/dogwalk-primeiros-componentes-auth.webp" type="image/webp"/><project>dogwalk</project><accent>#22c55e</accent></item><item><title>Capivara: Personal Hub Against Financial Chaos</title><link>https://lifelog-sepia.vercel.app/post/en/capivara-hub-pessoal-bagunca-financeira/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/capivara-hub-pessoal-bagunca-financeira/</guid><description>How Capivara solved the financial mess of multiple accounts, spreadsheets and categories — unifying everything in one dashboard.</description><pubDate>Tue, 14 Jul 2026 02:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/capivara-hub-pessoal-bagunca-financeira.webp" type="image/webp"/><project>capivara</project><accent>#f59e0b</accent></item><item><title>Dogwalk matures — Playwright tests as the quality backbone</title><link>https://lifelog-sepia.vercel.app/post/en/dogwalk-amadurece-testes-playwright/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/dogwalk-amadurece-testes-playwright/</guid><description>From zero tests to 853: how Playwright tests became the quality backbone of Dogwalk/PataPass, what we learned and what changed in the process.</description><pubDate>Tue, 14 Jul 2026 02:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/dogwalk-amadurece-testes-playwright.webp" type="image/webp"/><project>dogwalk</project><accent>#22c55e</accent></item><item><title>Dogwalk: first authentication components</title><link>https://lifelog-sepia.vercel.app/post/en/dogwalk-primeiros-componentes-auth/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/dogwalk-primeiros-componentes-auth/</guid><description>JWT, Supabase, OAuth, refresh token, protected routes and conditional layout — the story of authentication in Dogwalk.</description><pubDate>Tue, 14 Jul 2026 02:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/dogwalk-primeiros-componentes-auth.webp" type="image/webp"/><project>dogwalk</project><accent>#22c55e</accent></item><item><title>TatuEngine — first experiments with wave field theory</title><link>https://lifelog-sepia.vercel.app/post/en/tatuengine-first-experiments-with-wave-field-theory/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/tatuengine-first-experiments-with-wave-field-theory/</guid><description>Exploring the beginnings of TatuEngine — lessons, challenges, and discoveries.</description><pubDate>Tue, 14 Jul 2026 01:46:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/tatuengine-first-experiments-with-wave-field-theory.webp" type="image/webp"/><project>tatuengine</project><accent>#14b8a6</accent></item><item><title>TatuEngine — primeiros experimentos com wave field theory</title><link>https://lifelog-sepia.vercel.app/post/tatuengine-primeiros-experimentos-com-wave-field-theory/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/tatuengine-primeiros-experimentos-com-wave-field-theory/</guid><description>Explorando começo da TatuEngine — aprendizados, desafios e descobertas.</description><pubDate>Tue, 14 Jul 2026 01:46:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/tatuengine-primeiros-experimentos-com-wave-field-theory.webp" type="image/webp"/><project>tatuengine</project><accent>#14b8a6</accent></item><item><title>Arachne — o scraper que virou plataforma</title><link>https://lifelog-sepia.vercel.app/post/arachne-o-scraper-que-virou-plataforma/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/arachne-o-scraper-que-virou-plataforma/</guid><description>A história real de como um scraper Python de 200 linhas virou uma plataforma com 740+ arquivos, RAG, pipelines visuais e 36 ferramentas ReAct.</description><pubDate>Tue, 14 Jul 2026 01:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/arachne-o-scraper-que-virou-plataforma.webp" type="image/webp"/><project>arachne</project><accent>#7c3aed</accent></item><item><title>Capivara cresce — dashboard, analytics e controle</title><link>https://lifelog-sepia.vercel.app/post/capivara-cresce-dashboard-analytics-e-controle/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/capivara-cresce-dashboard-analytics-e-controle/</guid><description>Das planilhas bagunçadas a um dashboard completo com health checks em tempo real, integração Umami e analytics financeiros com categorias de gasto. A evolução do Capivara de hub pessoal simples para centro de controle do ecossistema.</description><pubDate>Tue, 14 Jul 2026 01:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/capivara-cresce-dashboard-analytics-e-controle.webp" type="image/webp"/><project>capivara</project><accent>#f59e0b</accent></item><item><title>Arachne — the Scraper That Became a Platform</title><link>https://lifelog-sepia.vercel.app/post/en/arachne-o-scraper-que-virou-plataforma/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/arachne-o-scraper-que-virou-plataforma/</guid><description>The real story of how a 200-line Python scraper became a platform with 740+ files, RAG, visual pipelines and 36 ReAct tools.</description><pubDate>Tue, 14 Jul 2026 01:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/arachne-o-scraper-que-virou-plataforma.webp" type="image/webp"/><project>arachne</project><accent>#7c3aed</accent></item><item><title>Capivara Grows — Dashboard, Analytics and Control</title><link>https://lifelog-sepia.vercel.app/post/en/capivara-cresce-dashboard-analytics-e-controle/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/capivara-cresce-dashboard-analytics-e-controle/</guid><description>From messy spreadsheets to a full dashboard with real-time health checks, Umami integration, and financial analytics with spending categories. The evolution of Capivara from a simple personal hub to the ecosystem&apos;s control center.</description><pubDate>Tue, 14 Jul 2026 01:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/capivara-cresce-dashboard-analytics-e-controle.webp" type="image/webp"/><project>capivara</project><accent>#f59e0b</accent></item><item><title>First tests with Crawl4AI — Sidecar and Docker</title><link>https://lifelog-sepia.vercel.app/post/en/first-tests-with-crawl4ai-sidecar-and-docker/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/first-tests-with-crawl4ai-sidecar-and-docker/</guid><description>Experimenting with Crawl4AI in Arachne: Docker Sidecar, Python SDK, comparison with Trafilatura, and the decision to use automatic fallback between engines.</description><pubDate>Mon, 13 Jul 2026 13:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/first-tests-with-crawl4ai-sidecar-and-docker.webp" type="image/webp"/><project>arachne</project><accent>#7c3aed</accent></item><item><title>Primeiros testes com Crawl4AI — Sidecar e Docker</title><link>https://lifelog-sepia.vercel.app/post/primeiros-testes-com-crawl4ai-sidecar-e-docker/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/primeiros-testes-com-crawl4ai-sidecar-e-docker/</guid><description>Experimentando Crawl4AI no Arachne: sidecar Docker, SDK Python, comparação com Trafilatura e a decisão de usar fallback automático entre engines.</description><pubDate>Mon, 13 Jul 2026 13:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/primeiros-testes-com-crawl4ai-sidecar-e-docker.webp" type="image/webp"/><project>arachne</project><accent>#7c3aed</accent></item><item><title>Portfolio v3 — Vue 3.5 + Vite 8, the rebuild I needed</title><link>https://lifelog-sepia.vercel.app/post/en/portfolio-v3-vue-35-vite-8-o-rebuild-que-eu-precisava/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/portfolio-v3-vue-35-vite-8-o-rebuild-que-eu-precisava/</guid><description>Exploring the portfolio rebuild — lessons learned, challenges and discoveries.</description><pubDate>Mon, 13 Jul 2026 09:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/portfolio-v3-vue-35-vite-8-o-rebuild-que-eu-precisava.webp" type="image/webp"/><project>portfolio</project><accent>#00d4ff</accent></item><item><title>Portfolio v3 — Vue 3.5 + Vite 8, o rebuild que eu precisava</title><link>https://lifelog-sepia.vercel.app/post/portfolio-v3-vue-35-vite-8-o-rebuild-que-eu-precisava/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/portfolio-v3-vue-35-vite-8-o-rebuild-que-eu-precisava/</guid><description>Explorando rebuild do portfolio — aprendizados, desafios e descobertas.</description><pubDate>Mon, 13 Jul 2026 09:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/portfolio-v3-vue-35-vite-8-o-rebuild-que-eu-precisava.webp" type="image/webp"/><project>portfolio</project><accent>#00d4ff</accent></item><item><title>E2E tests with Playwright — the quality turnaround</title><link>https://lifelog-sepia.vercel.app/post/en/e2e-tests-with-playwright-the-quality-turnaround/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/e2e-tests-with-playwright-the-quality-turnaround/</guid><description>How end-to-end tests transformed quality and confidence in Dogwalk&apos;s development — the real story of a stack that learned to test itself.</description><pubDate>Mon, 13 Jul 2026 03:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/e2e-tests-with-playwright-the-quality-turnaround.webp" type="image/webp"/><project>dogwalk</project><accent>#22c55e</accent></item><item><title>Multi-engine pipeline in Arachne — 4 fallback layers</title><link>https://lifelog-sepia.vercel.app/post/en/pipeline-multi-engine-in-arachne-4-fallback-layers/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/pipeline-multi-engine-in-arachne-4-fallback-layers/</guid><description>The architecture that actually solves web data extraction: Trafilatura, Crawl4AI SDK, Docker Sidecar, and Camoufox — how each layer works, the fallback criteria, and what I learned along the way.</description><pubDate>Mon, 13 Jul 2026 03:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/pipeline-multi-engine-in-arachne-4-fallback-layers.webp" type="image/webp"/><project>arachne</project><accent>#7c3aed</accent></item><item><title>Pipeline multi-engine no Arachne — 4 camadas de fallback</title><link>https://lifelog-sepia.vercel.app/post/pipeline-multi-engine-no-arachne-4-camadas-de-fallback/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/pipeline-multi-engine-no-arachne-4-camadas-de-fallback/</guid><description>A arquitetura que realmente resolve extração de dados na web: Trafilatura, Crawl4AI SDK, Sidecar Docker e Camoufox — como cada camada funciona, os critérios de fallback, e o que aprendi no caminho.</description><pubDate>Mon, 13 Jul 2026 03:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/pipeline-multi-engine-no-arachne-4-camadas-de-fallback.webp" type="image/webp"/><project>arachne</project><accent>#7c3aed</accent></item><item><title>Testes E2E com Playwright — a virada de qualidade</title><link>https://lifelog-sepia.vercel.app/post/testes-e2e-com-playwright-a-virada-de-qualidade/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/testes-e2e-com-playwright-a-virada-de-qualidade/</guid><description>Como os testes end-to-end transformaram a qualidade e confiança no desenvolvimento do Dogwalk — a história real de uma stack que aprendeu a se testar sozinha.</description><pubDate>Mon, 13 Jul 2026 03:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/testes-e2e-com-playwright-a-virada-de-qualidade.webp" type="image/webp"/><project>dogwalk</project><accent>#22c55e</accent></item><item><title>O Arachne nasceu de uma frustração — scrapers quebrados e dados perdidos</title><link>https://lifelog-sepia.vercel.app/post/arachne-nasceu-frustracao-scrapers/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/arachne-nasceu-frustracao-scrapers/</guid><description>Cansado de scrapers que quebravam do nada e serviços caros de terceiros, resolvi construir minha própria plataforma de extração de dados.</description><pubDate>Sun, 12 Jul 2026 03:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/arachne-nasceu-frustracao-scrapers.webp" type="image/webp"/><project>arachne</project><accent>#7c3aed</accent></item><item><title>Arachne cresce — pipeline multi-engine e cache inteligente</title><link>https://lifelog-sepia.vercel.app/post/arachne-pipeline-multi-engine-cache/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/arachne-pipeline-multi-engine-cache/</guid><description>O scraper simples virou uma plataforma. Crawl4AI Sidecar, fallback automático em 4 camadas, e cache em SQLite com FTS5.</description><pubDate>Sun, 12 Jul 2026 03:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/arachne-pipeline-multi-engine-cache.webp" type="image/webp"/><project>arachne</project><accent>#7c3aed</accent></item><item><title>O ecossistema toma forma — backups, segurança e automatização</title><link>https://lifelog-sepia.vercel.app/post/ecossistema-backups-seguranca-automacao/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/ecossistema-backups-seguranca-automacao/</guid><description>Com 3 projetos rodando, a infraestrutura precisava ser robusta. Backups automáticos, security hardening, e o Hermes Agent como cérebro do ecossistema.</description><pubDate>Sun, 12 Jul 2026 03:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/ecossistema-backups-seguranca-automacao.webp" type="image/webp"/><project>descobertas</project><accent>#38bdf8</accent></item><item><title>Arachne Was Born from Frustration — Broken Scrapers and Lost Data</title><link>https://lifelog-sepia.vercel.app/post/en/arachne-nasceu-frustracao-scrapers/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/arachne-nasceu-frustracao-scrapers/</guid><description>Tired of scrapers that broke out of nowhere and expensive third-party services, I decided to build my own data extraction platform.</description><pubDate>Sun, 12 Jul 2026 03:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/arachne-nasceu-frustracao-scrapers.webp" type="image/webp"/><project>arachne</project><accent>#7c3aed</accent></item><item><title>Arachne Grows — Multi-Engine Pipeline and Smart Cache</title><link>https://lifelog-sepia.vercel.app/post/en/arachne-pipeline-multi-engine-cache/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/arachne-pipeline-multi-engine-cache/</guid><description>The simple scraper became a platform. Crawl4AI Sidecar, automatic 4-layer fallback, and SQLite cache with FTS5.</description><pubDate>Sun, 12 Jul 2026 03:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/arachne-pipeline-multi-engine-cache.webp" type="image/webp"/><project>arachne</project><accent>#7c3aed</accent></item><item><title>The ecosystem takes shape — backups, security, and automation</title><link>https://lifelog-sepia.vercel.app/post/en/ecossistema-backups-seguranca-automacao/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/ecossistema-backups-seguranca-automacao/</guid><description>With 3 projects running, the infrastructure needed to be robust. Automated backups, security hardening, and the Hermes Agent as the ecosystem&apos;s brain.</description><pubDate>Sun, 12 Jul 2026 03:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/ecossistema-backups-seguranca-automacao.webp" type="image/webp"/><project>descobertas</project><accent>#38bdf8</accent></item><item><title>Samuel&apos;s Portfolio — the redesign that sought identity</title><link>https://lifelog-sepia.vercel.app/post/en/portifolio-samuel-redesign-identidade/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/portifolio-samuel-redesign-identidade/</guid><description>After building tools for others, I decided to dedicate time to my own space. A portfolio that is more than a resume.</description><pubDate>Sun, 12 Jul 2026 03:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/portifolio-samuel-redesign-identidade.webp" type="image/webp"/><project>portfolio</project><accent>#00d4ff</accent></item><item><title>First steps — infrastructure and the first lines of code</title><link>https://lifelog-sepia.vercel.app/post/en/primeiros-passos-infra-dogwalk/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/primeiros-passos-infra-dogwalk/</guid><description>After the idea came the hardest part: getting your hands dirty. How I chose React, Vite and FastAPI to build Dogwalk.</description><pubDate>Sun, 12 Jul 2026 03:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/primeiros-passos-infra-dogwalk.webp" type="image/webp"/><project>dogwalk</project><accent>#22c55e</accent></item><item><title>Portifolio Samuel — o redesign que buscou identidade</title><link>https://lifelog-sepia.vercel.app/post/portifolio-samuel-redesign-identidade/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/portifolio-samuel-redesign-identidade/</guid><description>Depois de construir ferramentas para os outros, resolvi dedicar tempo ao meu próprio espaço. Um portfólio que fosse mais que um currículo.</description><pubDate>Sun, 12 Jul 2026 03:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/portifolio-samuel-redesign-identidade.webp" type="image/webp"/><project>portfolio</project><accent>#00d4ff</accent></item><item><title>Primeiros passos — infraestrutura e as primeiras linhas de código</title><link>https://lifelog-sepia.vercel.app/post/primeiros-passos-infra-dogwalk/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/primeiros-passos-infra-dogwalk/</guid><description>Depois da ideia, veio a parte mais difícil: colocar a mão na massa. Como escolhi React, Vite e FastAPI para construir o Dogwalk.</description><pubDate>Sun, 12 Jul 2026 03:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/primeiros-passos-infra-dogwalk.webp" type="image/webp"/><project>dogwalk</project><accent>#22c55e</accent></item><item><title>FastAPI + React — why I chose this stack for Dogwalk</title><link>https://lifelog-sepia.vercel.app/post/en/fastapi-react-por-que-escolhi-essa-stack-pro-dogwalk/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/fastapi-react-por-que-escolhi-essa-stack-pro-dogwalk/</guid><description>Exploring the stack choice — lessons learned, challenges and discoveries.</description><pubDate>Wed, 08 Jul 2026 03:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/fastapi-react-por-que-escolhi-essa-stack-pro-dogwalk.webp" type="image/webp"/><project>dogwalk</project><accent>#22c55e</accent></item><item><title>First Dogwalk deploy — Vite + Cloudflare Pages</title><link>https://lifelog-sepia.vercel.app/post/en/primeiro-deploy-do-dogwalk-vite-cloudflare-pages/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/primeiro-deploy-do-dogwalk-vite-cloudflare-pages/</guid><description>After weeks of coding, it was time to put Dogwalk online. The first deploy was a mix of euphoria and frustration — Vite + Cloudflare Pages.</description><pubDate>Wed, 08 Jul 2026 03:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/primeiro-deploy-do-dogwalk-vite-cloudflare-pages.webp" type="image/webp"/><project>dogwalk</project><accent>#22c55e</accent></item><item><title>FastAPI + React — por que escolhi essa stack pro Dogwalk</title><link>https://lifelog-sepia.vercel.app/post/fastapi-react-por-que-escolhi-essa-stack-pro-dogwalk/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/fastapi-react-por-que-escolhi-essa-stack-pro-dogwalk/</guid><description>Explorando escolha da stack — aprendizados, desafios e descobertas.</description><pubDate>Wed, 08 Jul 2026 03:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/fastapi-react-por-que-escolhi-essa-stack-pro-dogwalk.webp" type="image/webp"/><project>dogwalk</project><accent>#22c55e</accent></item><item><title>Primeiro deploy do Dogwalk — Vite + Cloudflare Pages</title><link>https://lifelog-sepia.vercel.app/post/primeiro-deploy-do-dogwalk-vite-cloudflare-pages/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/primeiro-deploy-do-dogwalk-vite-cloudflare-pages/</guid><description>Depois de semanas codando, chegou a hora de colocar o Dogwalk no ar. O primeiro deploy foi uma mistura de euforia e frustration — Vite + Cloudflare Pages.</description><pubDate>Wed, 08 Jul 2026 03:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/primeiro-deploy-do-dogwalk-vite-cloudflare-pages.webp" type="image/webp"/><project>dogwalk</project><accent>#22c55e</accent></item><item><title>Capivara nasce — preciso de um hub pessoal seguro</title><link>https://lifelog-sepia.vercel.app/post/capivara-nasce-preciso-de-um-hub-pessoal-seguro/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/capivara-nasce-preciso-de-um-hub-pessoal-seguro/</guid><description>Precisava de um centro de controle unificado e seguro para meus projetos, dados e acesso. O Capivara nasceu como um hub pessoal e virou o cérebro administrativo do ecossistema.</description><pubDate>Thu, 28 May 2026 03:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/capivara-nasce-preciso-de-um-hub-pessoal-seguro.webp" type="image/webp"/><project>capivara</project><accent>#f59e0b</accent></item><item><title>Capivara is Born — I Needed a Secure Personal Hub</title><link>https://lifelog-sepia.vercel.app/post/en/capivara-nasce-preciso-de-um-hub-pessoal-seguro/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/capivara-nasce-preciso-de-um-hub-pessoal-seguro/</guid><description>I needed a unified and secure control center for my projects, data, and access. Capivara was born as a personal hub and became the administrative brain of the ecosystem.</description><pubDate>Thu, 28 May 2026 03:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/capivara-nasce-preciso-de-um-hub-pessoal-seguro.webp" type="image/webp"/><project>capivara</project><accent>#f59e0b</accent></item><item><title>The beginning of Dogwalk — when I decided to create a pet marketplace</title><link>https://lifelog-sepia.vercel.app/post/en/inicio-dogwalk-marketplace-pets/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/en/inicio-dogwalk-marketplace-pets/</guid><description>It all started with a simple need: finding trusted dog walkers for my own dog. That&apos;s how the idea for Dogwalk was born, a pet marketplace that now serves hundreds of tutors.</description><pubDate>Fri, 24 Apr 2026 03:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/inicio-dogwalk-marketplace-pets.webp" type="image/webp"/><project>dogwalk</project><accent>#22c55e</accent></item><item><title>O início do Dogwalk — quando resolvi criar um marketplace de pets</title><link>https://lifelog-sepia.vercel.app/post/inicio-dogwalk-marketplace-pets/</link><guid isPermaLink="true">https://lifelog-sepia.vercel.app/post/inicio-dogwalk-marketplace-pets/</guid><description>Tudo começou com uma necessidade simples: encontrar passeadores de confiança para minha própria dog. Foi assim que surgiu a ideia do Dogwalk, um marketplace de pets que hoje atende centenas de tutores.</description><pubDate>Fri, 24 Apr 2026 03:00:00 GMT</pubDate><enclosure url="https://lifelog-sepia.vercel.app/covers/inicio-dogwalk-marketplace-pets.webp" type="image/webp"/><project>dogwalk</project><accent>#22c55e</accent></item></channel></rss>