<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: codeCrack-01</title>
    <description>The latest articles on DEV Community by codeCrack-01 (@codecrack01).</description>
    <link>https://dev.to/codecrack01</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1914665%2F2c49f355-8329-4008-9395-0d1d4f709802.jpeg</url>
      <title>DEV Community: codeCrack-01</title>
      <link>https://dev.to/codecrack01</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/codecrack01"/>
    <language>en</language>
    <item>
      <title>A tiny TypeError. A 3-day cloud bill. Three bugs hiding in plain sight.</title>
      <dc:creator>codeCrack-01</dc:creator>
      <pubDate>Mon, 17 Aug 2026 12:12:19 +0000</pubDate>
      <link>https://dev.to/codecrack01/a-tiny-typeerror-a-3-day-cloud-bill-three-bugs-hiding-in-plain-sight-1mfj</link>
      <guid>https://dev.to/codecrack01/a-tiny-typeerror-a-3-day-cloud-bill-three-bugs-hiding-in-plain-sight-1mfj</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for &lt;a href="https://dev.to/bugsmash"&gt;DEV's Summer Bug Smash: Smash Stories&lt;/a&gt; powered by &lt;a href="https://sentry.io/" rel="noopener noreferrer"&gt;Sentry&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We had a little cleanup worker whose job was simple:&lt;/p&gt;

&lt;p&gt;Create an ephemeral DigitalOcean droplet → use it → destroy it after ~45 minutes.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Except one of those droplets didn't get the memo.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It survived for 3 days.&lt;/p&gt;

&lt;p&gt;The weird part?&lt;br&gt;
&lt;em&gt;Nothing crashed.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Our cleanup loop was still running normally. But a tiny Python TypeError was being swallowed by broad exception handling.&lt;/p&gt;

&lt;p&gt;The timestamp calculation failed.&lt;br&gt;
The fallback value became 0.&lt;br&gt;
And suddenly, a 3-day-old droplet looked like it was 0 seconds old.&lt;/p&gt;

&lt;p&gt;So the reaper happily decided:&lt;br&gt;
Nothing to clean up here.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;But that wasn't the only bug.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Once we dug deeper, we found three separate failure modes:&lt;br&gt;
→ A datetime / str mismatch hidden by broad exception handling&lt;br&gt;
→ Cloud resources being removed from our tracking state even when destruction failed&lt;br&gt;
→ In-memory state being treated as the source of truth, meaning a restart could orphan resources&lt;/p&gt;

&lt;p&gt;The bill?&lt;br&gt;
&lt;strong&gt;About $5.&lt;/strong&gt;&lt;br&gt;
Not catastrophic.&lt;br&gt;
But the failure mode could have been.&lt;/p&gt;

&lt;p&gt;And that's what made this bug worth writing about.&lt;/p&gt;

&lt;p&gt;The biggest lesson wasn't:&lt;br&gt;
"Be careful with Python types."&lt;br&gt;
It was:&lt;br&gt;
Never let your cleanup system silently fail closed when the thing you're cleaning up costs money.&lt;/p&gt;

&lt;p&gt;We wrote up the complete incident, including the failure chain, fixes, and the architectural lessons we took away:&lt;br&gt;
👉 &lt;a href="https://vergate.dev/blog/2026-08-17-how-a-typeerror-cost-us-cloud-credits?utm_source=devto&amp;amp;utm_medium=community&amp;amp;utm_campaign=bugsmashed_smash_stories" rel="noopener noreferrer"&gt;How a TypeError Cost us Cloud Credits&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you're running ephemeral infrastructure, background workers, or anything that creates cloud resources dynamically, this is the kind of bug worth finding before your cloud credits do.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>bugsmash</category>
      <category>devops</category>
      <category>cloud</category>
    </item>
    <item>
      <title>How a Silent Python TypeError Left Our Cloud Worker Running for 3 Days</title>
      <dc:creator>codeCrack-01</dc:creator>
      <pubDate>Mon, 17 Aug 2026 11:58:30 +0000</pubDate>
      <link>https://dev.to/codecrack01/how-a-silent-python-typeerror-left-our-cloud-worker-running-for-3-days-32d9</link>
      <guid>https://dev.to/codecrack01/how-a-silent-python-typeerror-left-our-cloud-worker-running-for-3-days-32d9</guid>
      <description>&lt;p&gt;I thought our cloud cleanup worker was working.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It wasn't.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A small Python "TypeError" caused one of our ephemeral DigitalOcean droplets to survive for 3 days instead of ~45 minutes.&lt;/p&gt;

&lt;p&gt;The weird part? Nothing crashed.&lt;/p&gt;

&lt;p&gt;The cleanup loop was still running. It just silently treated the failed timestamp calculation as "0" seconds of age — so the droplet looked perfectly healthy.&lt;/p&gt;

&lt;p&gt;And that wasn't even the only bug.&lt;/p&gt;

&lt;p&gt;We eventually found three separate failure modes:&lt;/p&gt;

&lt;p&gt;→ A "datetime"/"str" mismatch hidden by broad exception handling&lt;br&gt;
→ Cloud resources being deleted from our tracking state even when destruction failed&lt;br&gt;
→ In-memory state being used as the source of truth, meaning a restart could orphan resources&lt;/p&gt;

&lt;p&gt;The bill?&lt;/p&gt;

&lt;p&gt;About $5.&lt;/p&gt;

&lt;p&gt;Not catastrophic. But the failure mode could have been.&lt;/p&gt;

&lt;p&gt;The biggest lesson wasn't "be careful with Python types."&lt;/p&gt;

&lt;p&gt;It was:&lt;/p&gt;

&lt;p&gt;Never let your cleanup system silently fail closed when the thing you're cleaning up costs money.&lt;/p&gt;

&lt;p&gt;We wrote up the entire incident, including the failure chain, what we changed, and the architecture lessons:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://vergate.dev/blog/2026-08-17-how-a-typeerror-cost-us-cloud-credits?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=cloud_typeerror_post" rel="noopener noreferrer"&gt;How a TypeError Costed us Cloud Credits&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you're running ephemeral infrastructure, background workers, or anything that creates cloud resources dynamically, this is the kind of bug worth finding before your credits do.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>python</category>
      <category>cloud</category>
    </item>
    <item>
      <title>We scanned our own production site and found 8 vulnerabilities. Here’s the list.</title>
      <dc:creator>codeCrack-01</dc:creator>
      <pubDate>Sun, 16 Aug 2026 15:15:13 +0000</pubDate>
      <link>https://dev.to/codecrack01/we-scanned-our-own-production-site-and-found-8-vulnerabilities-heres-the-list-5c50</link>
      <guid>https://dev.to/codecrack01/we-scanned-our-own-production-site-and-found-8-vulnerabilities-heres-the-list-5c50</guid>
      <description>&lt;p&gt;Building software in 2026 feels surreal. With LLMs handling boilerplate, we ship features in hours that used to take weeks.&lt;/p&gt;

&lt;p&gt;But fast shipping has a nasty side effect: &lt;strong&gt;it breeds overconfidence.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A few days ago, we ran an automated check against our own live marketing site (&lt;a href="https://vergate.dev?utm_source=dev.to&amp;amp;utm_medium=referral&amp;amp;utm_campaign=backlinks&amp;amp;utm_content=article-slug"&gt;vergate.dev&lt;/a&gt;). We build security and diagnostic tools for a living, so we expected a clean bill of health.&lt;/p&gt;

&lt;p&gt;We were wrong. Our scanner flagged &lt;strong&gt;8 real issues&lt;/strong&gt; in production—including missing security headers that left us exposed to basic cross-site attacks.&lt;/p&gt;

&lt;p&gt;Dogfooding your own tool isn't a marketing gimmick. Sometimes, it's just plain embarrassing. But it taught us a crucial lesson: &lt;strong&gt;you can’t fix what you don't automatically measure.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What our scan actually found
&lt;/h2&gt;

&lt;p&gt;Here is the exact breakdown of what slipped past us into production (and what probably exists in your current deployment right now):&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Zero Security Headers Enabled
&lt;/h3&gt;

&lt;p&gt;Our hosting provider’s default CDN edge rules didn't set baseline headers. We were shipping without:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;Content-Security-Policy&lt;/code&gt; (CSP):&lt;/strong&gt; Left us open to inline script injection.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;Strict-Transport-Security&lt;/code&gt; (HSTS):&lt;/strong&gt; Didn't force browsers to enforce HTTPS strictly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;X-Content-Type-Options&lt;/code&gt;:&lt;/strong&gt; Allowed MIME-type sniffing on static assets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;X-Frame-Options&lt;/code&gt;:&lt;/strong&gt; Rendered our pages vulnerable to clickjacking IFrames.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Why this happens:&lt;/em&gt; Framework defaults (like Next.js, Nuxt, or Astro) often expect your proxy or CDN edge (Vercel, Cloudflare, Nginx) to handle headers. If you forget to configure the edge, your app runs bare.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Sensitive Meta &amp;amp; Server Leakage
&lt;/h3&gt;

&lt;p&gt;Our response headers explicitly broadcast our server stack and proxy details. Attackers use automated scanners like Shodan or Censys to query these specific signatures and exploit target-specific CVEs in seconds.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Cookie Missing &lt;code&gt;SameSite&lt;/code&gt; &amp;amp; &lt;code&gt;Secure&lt;/code&gt; Flags
&lt;/h3&gt;

&lt;p&gt;A tracking cookie set on a subroute wasn't explicitly flagged as &lt;code&gt;SameSite=Lax&lt;/code&gt; or &lt;code&gt;HttpOnly&lt;/code&gt;, leaving a window open for CSRF-style cross-domain requests.&lt;/p&gt;




&lt;h2&gt;
  
  
  How we fixed it (in under 10 minutes)
&lt;/h2&gt;

&lt;p&gt;Fixing these issues wasn't complex—it was just &lt;strong&gt;easy to forget&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of writing custom middleware for every header, we passed the scan findings context straight into our IDE:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Edge Headers:&lt;/strong&gt; Added a centralized header manifest in our deployment config to enforce &lt;code&gt;HSTS&lt;/code&gt; and &lt;code&gt;CSP&lt;/code&gt; globally.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cookie Sanitization:&lt;/strong&gt; Updated our cookie handler to strictly attach &lt;code&gt;Secure; HttpOnly; SameSite=Lax&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automated Gatekeeping:&lt;/strong&gt; Wired the engine directly into our local setup so we can't merge broken configs to staging again.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Why "Vibe Shipping" Needs Automated Guardrails
&lt;/h2&gt;

&lt;p&gt;When you’re moving fast or prompting AI assistants to generate full codebases, you review the UI, test the main user flow, and hit deploy. Nobody manually inspects raw HTTP response headers or cookie flags on every push.&lt;/p&gt;

&lt;p&gt;If you want to read the full, unfiltered breakdown of our self-audit and what we learned about host edge defaults, check out our writeup: &lt;strong&gt;&lt;a href="https://vergate.dev/blog/2026-08-20-dogfooding-vergate-scan-own-site?utm_source=dev.to&amp;amp;utm_medium=referral&amp;amp;utm_campaign=backlinks&amp;amp;utm_content=article-slug"&gt;We scanned our own site and found real problems. Here's everything&lt;/a&gt;&lt;/strong&gt; on the Vergate Blog.&lt;/p&gt;

&lt;p&gt;Don't assume your deployment provider handles security defaults for you. Run a passive check on your app before your users—or an attacker—do it for you.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What’s the most embarrassing misconfiguration you’ve accidentally shipped to production? Let’s talk in the comments.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>security</category>
      <category>devops</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>I built a website scanner because I got tired of manually checking websites</title>
      <dc:creator>codeCrack-01</dc:creator>
      <pubDate>Sat, 15 Aug 2026 15:25:32 +0000</pubDate>
      <link>https://dev.to/codecrack01/i-built-a-website-scanner-because-i-got-tired-of-manually-checking-websites-5g08</link>
      <guid>https://dev.to/codecrack01/i-built-a-website-scanner-because-i-got-tired-of-manually-checking-websites-5g08</guid>
      <description>&lt;p&gt;I've been building websites for a while, and I kept running into the same annoying problem:&lt;/p&gt;

&lt;p&gt;A site can &lt;em&gt;look&lt;/em&gt; completely fine while quietly having:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;broken SEO metadata&lt;/li&gt;
&lt;li&gt;missing security headers&lt;/li&gt;
&lt;li&gt;accessibility issues&lt;/li&gt;
&lt;li&gt;bad performance&lt;/li&gt;
&lt;li&gt;indexability problems&lt;/li&gt;
&lt;li&gt;missing structured data&lt;/li&gt;
&lt;li&gt;AEO/AI-search issues&lt;/li&gt;
&lt;li&gt;dozens of other small problems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I built &lt;strong&gt;Vergate&lt;/strong&gt; — a website scanner that puts these checks into one report.&lt;/p&gt;

&lt;p&gt;You give it a URL and it analyzes the site across things like &lt;strong&gt;SEO, security, performance, accessibility, and AI-search readiness&lt;/strong&gt;, then tells you what needs fixing.&lt;/p&gt;

&lt;p&gt;The part I care about most is that it's not supposed to be another dashboard where you get 47/100 and have no idea what to do next.&lt;/p&gt;

&lt;p&gt;The goal is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scan → understand the problem → fix it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I'm an indie developer and this is my first serious attempt at turning one of my projects into a real SaaS, so I'm currently trying to get it in front of actual developers and get brutally honest feedback.&lt;/p&gt;

&lt;p&gt;If you build websites, I'd genuinely love to know:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What are the website checks you always do before shipping that you wish were automated?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can try Vergate here:&lt;br&gt;
&lt;a href="https://vergate.dev/?utm_source=dev_community&amp;amp;utm_medium=community&amp;amp;utm_campaign=launch&amp;amp;utm_content=website_scanner_post" rel="noopener noreferrer"&gt;Vergate.dev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feedback—especially criticism—is welcome.&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>tools</category>
      <category>webdev</category>
      <category>website</category>
    </item>
    <item>
      <title>Stop babysitting your AI agents in the terminal — NockIt sends push alerts straight to your phone (Nockit)</title>
      <dc:creator>codeCrack-01</dc:creator>
      <pubDate>Wed, 05 Aug 2026 08:14:17 +0000</pubDate>
      <link>https://dev.to/codecrack01/stop-babysitting-your-ai-agents-in-the-terminal-nockit-sends-push-alerts-straight-to-your-phone-3406</link>
      <guid>https://dev.to/codecrack01/stop-babysitting-your-ai-agents-in-the-terminal-nockit-sends-push-alerts-straight-to-your-phone-3406</guid>
      <description>&lt;p&gt;If you're running autonomous AI agents, fine-tuning scripts, or long background jobs, you know the drill: you hit &lt;code&gt;enter&lt;/code&gt;, switch to another tab to work on something else, and then spend the next hour periodically flipping back to the terminal just to check if:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;It finished.&lt;/li&gt;
&lt;li&gt;It hit an unhandled exception 30 seconds after you looked away.&lt;/li&gt;
&lt;li&gt;It's waiting on user input or a permission prompt.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Watching lines of terminal output scroll by isn't a good use of anyone's time.&lt;/p&gt;

&lt;p&gt;To solve this for my own workflow, I built &lt;strong&gt;NockIt&lt;/strong&gt;—a free, open-source, plug-and-play notification utility that hooks into your local or remote AI agents and pushes real-time alerts directly to your phone or desktop via &lt;strong&gt;&lt;code&gt;ntfy&lt;/code&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn More:&lt;/strong&gt; &lt;a href="https://www.google.com/search?q=https://nockit.uk" rel="noopener noreferrer"&gt;https://nockit.uk&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  What it does
&lt;/h3&gt;

&lt;p&gt;NockIt provides a simple, zero-bloat bridge between your autonomous dev pipelines and your devices.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔌 &lt;strong&gt;Plug &amp;amp; Play Integration:&lt;/strong&gt; Add it to your execution loops or script completion hooks with minimal lines of code.&lt;/li&gt;
&lt;li&gt;📱 &lt;strong&gt;Powered by &lt;code&gt;ntfy&lt;/code&gt;:&lt;/strong&gt; Uses lightweight pub/sub push notifications—no clunky enterprise webhooks or complex bot setups required.&lt;/li&gt;
&lt;li&gt;⚡ &lt;strong&gt;Instant Event Pings:&lt;/strong&gt; Receive push notifications for task completions, script failures, token budget limits, or required human-in-the-loop actions.&lt;/li&gt;
&lt;li&gt;🔓 &lt;strong&gt;100% Free &amp;amp; Open Source:&lt;/strong&gt; Keep your tooling local and transparent.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Test Example
&lt;/h3&gt;

&lt;p&gt;Instead of keeping your terminal pinned to your screen while your agent runs through an multi-step workflow, you can trigger a push alert when key state changes happen:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;notify_dev&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;title&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;priority&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;default&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://ntfy.sh/your_custom_nockit_topic&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;encode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;utf-8&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Title&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;title&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Priority&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;priority&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Tags&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;robot,warning&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Inside your agent's execution loop:
&lt;/span&gt;&lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run_task&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="nf"&gt;notify_dev&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Agent Finished!&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Task completed successfully without errors.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="nb"&gt;Exception&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;notify_dev&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Agent Crashed 🚨&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Error encountered: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;priority&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;high&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;Ofc, no one wants to write such long code! Just set it up via a single command (requires Node Js installed):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx &lt;span class="nt"&gt;-y&lt;/span&gt; nockit-mcp@latest setup
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Give it a try
&lt;/h3&gt;

&lt;p&gt;I'd love for the community to test it out and share feedback!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live Site:&lt;/strong&gt; &lt;a href="https://www.google.com/search?q=https://nockit.uk" rel="noopener noreferrer"&gt;https://nockit.uk&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Drop a comment below and share your experience—what's your current setup for monitoring long-running background tasks or AI scripts, and what features would make your workflow easier?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>automation</category>
      <category>news</category>
    </item>
    <item>
      <title>Flask</title>
      <dc:creator>codeCrack-01</dc:creator>
      <pubDate>Tue, 26 Nov 2024 12:27:33 +0000</pubDate>
      <link>https://dev.to/codecrack01/flask-3hei</link>
      <guid>https://dev.to/codecrack01/flask-3hei</guid>
      <description></description>
      <category>flask</category>
    </item>
  </channel>
</rss>
