Skip to content
/changelog

Changelog

This website is versioned like software.

  1. v1.9.0

    2026-10-29

    • New work entry: prindeck, an open-source Linux control panel for the Brother MFC-L2710DW: SNMP status and toner, eSCL scanning, CUPS printing in one native window, open protocols only and no vendor drivers, built in three evenings
    • Case study at /work/prindeck in both locales: why Brother's Linux downloads stop at drivers, how one batched SNMP GET and the public eSCL spec replace them, the four device quirks the discovery spike caught (150 dpi silently becomes 300, BlackAndWhite1 with JPEG answers 409, an ADF stack arrives as one PDF, a tray icon needs a menu), and the honest one-printer scope with the star-gated roadmap
    • The new case study is registered in the sitemap, llms.txt and the Playwright e2e sweep; its card joins the Selected work grid next to searxng-mcp-server
  2. v1.8.0

    2026-10-18

    • Positioning rework in both locales: titles, hero lines and the What I build section now lead with Automation & AI Agents; the eyebrow names Software Developer plus specialization and Hamburg; Backends & APIs replaces the BaaS Products card; About and Contact state the independent developer working for companies across Germany
    • Entity and schema hardening: Person jobTitle, localized knowsAbout (AI agents, LLM integrations, MCP), areaServed Germany and addressLocality Hamburg; ProfilePage on the landing page; BreadcrumbList on articles; real word counts and real case-study publication dates instead of derived or hardcoded values
    • Technical SEO: www.dimitripisarev.com now 308-redirects to the apex host, x-default unified to the German URLs, sitemap lastmod only where real content dates exist, bilingual OG image with the corrected domain (dimitripisarev.com), proper OG tags on imprint and privacy pages, invalid twitter:site removed, llms.txt rewritten to the new service hierarchy
  3. v1.7.0

    2026-10-09

    • New work entry: Schwärzwerk, German DSGVO PII detection and redaction: a hybrid of a 14-group regex layer over official German ID formats and a fine-tuned GLiNER2 model (17 PII types); regex wins on overlap
    • Case study at /work/schwaerzwerk in both locales: why generic detectors fail on German (Presidio F1 0.14 per PIIBench 2026), why the LLM decides nothing and every regex pattern was verified by hand, 50,000+ synthetic training examples, five-epoch training runs on Kaggle T4 GPUs, and the measured F1 0.916 with the weak spots on the record
    • The new case study is registered in the sitemap, llms.txt and the Playwright e2e sweep; its card takes the second slot in the Selected work grid
  4. v1.6.0

    2026-10-06

    • New work entry: Outreach Engine, a five-stage outreach pipeline on local SQLite (ingestion, matching, enrichment, delivery, reply triage), zero runtime dependencies: SMTP, IMAP, ZIP, DOCX and XLSX hand-rolled
    • Case study at /work/outreach-engine in both locales: the five-stage architecture, measured numbers from the live database (20,180 records, 5,153 organizations, 100 deliveries in the first 48 hours), data sovereignty notes, and what the same funnel means for companies
    • The new case study is registered in the sitemap, llms.txt and the Playwright e2e sweep; its card joins the Selected work grid as the widest card
  5. v1.5.0

    2026-09-30

    • Full-text feeds rebuilt from scratch: per-locale RSS 2.0 (/en/feed.xml, /de/feed.xml) and JSON Feed (/en/feed.json, /de/feed.json) with complete article content, category and tech tags, and separate publish/updated dates; the old excerpt-only /feed.xml is retired, subscribe at the locale feeds
    • Feeds are prerendered at build time and advertised through autodiscovery links on every page
  6. v1.4.0

    2026-09-27

    • Two new Laravel articles (EN/DE): a first-person account of what database-per-tenant multitenancy actually cost on a production SaaS (PostgreSQL's PUBLIC CONNECT default, stale scheduler context, Pennant cache bleeds, per-tenant payment webhooks and dunning) and a Laravel 13 status piece as of late September: what the release and its minors delivered, plus the support deadline for Laravel 12
    • Reciprocal cross-link shipped into the CDN caching article with its updated date bumped in both locales
  7. v1.3.0

    2026-09-25

    • Three new articles (EN/DE): how autonomous AI agents broke into dozens of online shops for about $25 a target and what a small shop changes; goals and workflows across Claude Code, Codex, and ZCode, told through this week's production 500; and what OpenAI's GPT-6 Cyber preview means for agent builders
    • Reciprocal cross-links shipped into seven adjacent articles with updated dates bumped in both locales
  8. v1.2.1

    2026-09-23

    • Crawl fixes: the two empty category hubs (product, lessons) returned HTTP 500 in production. They now 404 at the CDN level, and both dynamic routes refuse on-demand renders for slugs that were never prerendered
    • The sitemap now covers the category hubs that actually have posts in both locales (the German hubs were missing entirely), and llms.txt links only hubs that exist. The sitemap grows from 58 to 62 URLs, all valid
  9. v1.2.0

    2026-09-22

    • Three new articles on the September 22 news, each EN and DE: Opus 5.5 and GPT-6 Sol/Luna price cuts read through agent unit economics (the cached prefix is the bill, cache reads down 60% to $0.20 per million), JetBrains Air and the Agent Client Protocol read from an MCP author's seat (ACP carries IDE to agent, MCP stays the tools layer), and the Gemini sandbox breakout at Irregular (four labs, one failure shape, why self-stopping is not a control)
    • Reciprocal cross-links added: the support-agent cost article now points at the price cuts, the searxng-mcp-server build log at the Air/ACP piece, and the fetch-security walkthrough at the Gemini breakout
    • Humanizer discipline: three audit passes per language version against the avoid-ai-writing and humanizer-de catalogs before the gates; check:text stays at zero patterns and zero warnings across all content
  10. v1.1.0

    2026-09-20

    • New work entry: searxng-mcp-server, an open-source MCP server on npm that gives AI coding clients web, image, news, video and music search over a self-hosted SearXNG instance
    • Case study at /work/searxng-mcp-server: architecture, per-redirect-hop SSRF guards, prompt-injection wrapping, provenance-attested npm publishing, with a social-card OG preview
    • Work cards can carry labeled GitHub and npm links next to the internal link
    • Work case-study pages are in the sitemap and llms.txt in both locales (the AI support agent page was missing from both)
    • Two new articles: the searxng-mcp-server build log (self-hosted search for agents, npm supply chain) and a fetch-security walkthrough (SSRF per redirect hop, DNS rebinding, prompt injection), each in EN and DE
    • Backfill of shipped work: llms-full.txt, security.txt, MCP/llms-full discovery, IndexNow pings, sidenotes inline at all widths, @dimitrideveloperbot avatar
    • New guardian: Playwright e2e (npm run test:e2e) sweeps 10 pages across 5 viewports (320 to 1920) for horizontal overflow and clipped elements, plus content checks for the work card links and the OG preview
    • searxng-mcp-server 0.2.0 and 0.3.0 shipped on npm: seventh tool list_engines (engine and category discovery for the connected instance) and an opt-in Streamable HTTP transport with bearer auth; case study and articles updated
  11. v1.0.0

    2026-09-16

    • Initial release: landing page, bilingual DE/EN, blog with filters and reading experience
    • Live API probe in the hero: the site queries its own /api/v1/now endpoint
    • Command palette (⌘K), status-page Now section, changelog, colophon
    • RSS, llms.txt, hreflang alternates, JSON-LD
    • Röstwerk Shop demo: scripted Telegram shop (chat + Mini App) in the /build section: auto-plays once, then fully interactive
    • Live-bot foundation for @roestwerk_bot added to the repo (grammY + Hono + SQLite, Mini App storefront): goes live with the VPS deploy
    • TG Shop Engine work card now links to the bot
    • Light theme with sun/moon toggle (header + command palette), follows system preference
    • Blog filters: wrapped rows on desktop, disclosure panel on mobile: no horizontal scrolling
    • Impressum and privacy policy (German law), footer links on every page
    • One mobile CTA rule: full-width centered buttons below sm across the whole site
    • Now section rebuilt as a git log with commit graph and HEAD pulse
    • Shop demo links straight into the Mini App product card (t.me deep link ?startapp)
    • @roestwerk_bot 2026 feature pass: Telegram Stars checkout with one-tap refunds, monthly Kaffee-Abo subscription (BotSubscriptionUpdated), live order status edited in place, inline product sharing, ☕ emoji status: all verified against current Bot API 10.3 docs
    • TG Shop Engine card updated: Stars payments, subscriptions, inline sharing
    • Eight technical articles, all first-hand: Telegram shop bot anatomy, Mini App initData validation, guest mode, WireGuard site-to-site VPN, Livewire vs React SPA, Telegram notifications in Laravel, CDN caching with Cloudflare, and the Next.js 16 performance pass
    • All articles marked demo: false with direct-answer leads, dated, category-mapped, cross-linked, and cited against primary docs
    • Placeholder demo articles removed: the blog ships only real, hands-on material
    • Beta showcase pass for @roestwerk_bot: /demo self-playing order (~20 s), live-typing confirmations via sendMessageDraft, confetti/fireworks effects, guest-mode answers in groups it was never added to
    • Playwright e2e: 108 checks across 9 device profiles (320 to 1920, Chromium + WebKit): overflow, breakpoint grid, checkout bar, deep links, i18n persistence
    • 404 rebuilt as a failed git checkout: the visited path echoes into the git output, nearest routes listed as a git log with a pulsing HEAD; fully responsive across desktop, tablet, and mobile
    • New guardian: npm run check:links verifies every internal href in the prerendered build against real routes
    • Command palette: the header button opens it on click again, rows restack on narrow screens, and the trigger now exists on mobile too
    • Now section git rows restack on narrow screens: labels sit above values, hashes yield to the text, nothing clips
    • Card checkout for @roestwerk_bot: hosted Stripe Checkout (test mode, EUR): payment-method picker in the chat, card button in the Mini App, signed webhook fulfillment, refunds through the Stripe API; the Stars checkout stays, card payments switch on once STRIPE_SECRET_KEY is set
    • Röstwerk pickup promise: Friday roast day replaced with roasted-to-order, ready in ~15 minutes: About, description, status line, and the landing demo all tell the same story; the living status now flips to ready at ~10 minutes
    • Imprint hardened against scraping: street address entity-encoded with hidden decoys, tax ID XOR-gated behind hydration (bots without JS never see it), email only as XOR codes; 16 AI crawlers get a 403 on the imprint via proxy and robots rules
    • Live on the VPS: dimitripisarev.com behind Traefik and Cloudflare, certificates issued via DNS-01; site and bot run as labeled containers on the shared proxy network
    • @roestwerk_bot in webhook mode with the Mini App storefront at roestwerk-bot.dimitripisarev.com
    • Node 24 LTS base images for site and bot; this version is the production baseline
    • Röstwerk AI Support Agent: a live support-agent demo on the landing page. Ask a customer question and watch the agent work: intent, tool calls with latency, token cost, grounded answer
    • gpt-5-nano via the OpenAI Responses API with strict Structured Outputs; four read-only shop tools (order status, stock, refund policy, FAQ), every boundary Zod-validated
    • Hardening for a public LLM endpoint: per-IP sliding-window rate limit, daily spend cap in USD across input and output tokens with scripted-provider fallback, three-tool-round limit, deterministic no-key mode for dev and tests
    • The same tools exposed as a public MCP server at /api/mcp (spec 2026-07-28, Streamable HTTP, stateless, read-only), connectable from Claude as a custom connector
    • Case study at /work/ai-support-agent: architecture, guardrails and evals, measured cost and latency, GDPR notes, EU AI Act risk classification
    • Privacy policy updated: AI demo processing section (no storage, no training, demo data only)
    • Agent core is a pure TypeScript library with unit tests (vitest): schemas, tools, loop, trace, hardening