<?php
// Feedback form handler - saves suggestions to markdown file
if ($_SERVER['REQUEST_METHOD'] === 'POST' && !empty($_POST['suggestion'])) {
    $suggestion = htmlspecialchars(trim($_POST['suggestion']));
    $digestDate = basename(__DIR__);
    $timestamp = date('Y-m-d H:i:s');

    $entry = "\n## From digest: $digestDate\n";
    $entry .= "**Submitted:** $timestamp\n\n";
    $entry .= "$suggestion\n\n---\n";

    // Path: from digest-archive/date/ to project root
    file_put_contents(__DIR__ . '/../../SUGGESTIONS-FROM-USER.MD', $entry, FILE_APPEND | LOCK_EX);
    $submitted = true;
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Digest — May 30, 2026</title>
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Figtree:wght@300;400;500;600&display=swap" rel="stylesheet">
    <link rel="stylesheet" href="../../WEB/css/styles.css">
    <link rel="icon" type="image/png" href="../../WEB/assets/favicon.png">
</head>
<body>
    <div class="container">
        <div class="main-card">

            <header class="page-header content-item">
                <span class="page-header__date">May 30, 2026</span>
                <span class="page-header__credits">AI-DIGEST BY MAURO SICARD</span>
            </header>

            <!-- ==================== PRODUCT HUNT ==================== -->
            <div class="source-header content-item">
                <img src="../../WEB/assets/producthunt-logo.svg" alt="Product Hunt" class="source-header__logo">
                <span class="source-header__label">From Product Hunt</span>
            </div>

            <div class="source-tags content-item">
                <a href="https://producthunt.com" class="source-tag">Product Hunt</a>
            </div>

            <p class="section-intro content-item">AI desktops, MCP testing, open-weight models, and security tooling — strong dev tools day.</p>

            <a href="https://wandesk.ai" class="card card--ph content-item">
                <img class="card__favicon" data-size="32" alt="">
                <div class="card__content">
                    <span class="card__title">Wandesk — Build Your Own AI Desktop</span>
                    <span class="card__desc">AI desktop where you build apps by describing them. Multi-app workspace with shared context and memory. Supports Claude Code, Codex, DeepSeek, OpenAI — anything OpenAI-compatible. 100% local, free, no signup.</span>
                    <div class="card--ph__meta">
                        <span class="card--ph__votes">&#9650; 371</span>
                        <span>·</span>
                        <span>wandesk.ai</span>
                    </div>
                </div>
            </a>

            <a href="https://www.openstatus.dev/play/mcp-health" class="card card--ph content-item">
                <img class="card__favicon" data-size="32" alt="">
                <div class="card__content">
                    <span class="card__title">OpenStatus MCP Health Checker — Test MCP servers like a real AI client</span>
                    <span class="card__desc">Protocol-level MCP server testing — initialize, ping, and tools/list sequence, not just an HTTP ping. Inspect JSON-RPC payloads, negotiated versions, and session IDs. Open source.</span>
                    <div class="card--ph__meta">
                        <span class="card--ph__votes">&#9650; 178</span>
                        <span>·</span>
                        <span>openstatus.dev</span>
                    </div>
                </div>
            </a>

            <a href="https://static.stepfun.com/blog/step-3.7-flash/" class="card card--ph content-item">
                <img class="card__favicon" data-size="32" alt="">
                <div class="card__content">
                    <span class="card__title">Step 3.7 Flash — Open-weight multimodal agent model</span>
                    <span class="card__desc">Apache 2.0 open-weight model from StepFun. 196B total / 11B active params. Vision + tool use + 256K context. Up to 400 TPS. SWE-Bench Pro 56.3%. Available via OpenRouter, NVIDIA NIM, and HuggingFace.</span>
                    <div class="card--ph__meta">
                        <span class="card--ph__votes">&#9650; 161</span>
                        <span>·</span>
                        <span>stepfun.com</span>
                    </div>
                </div>
            </a>

            <a href="https://github.com/Yatsuiii/llmtrace" class="card card--ph content-item">
                <img class="card__favicon" data-size="32" alt="">
                <div class="card__content">
                    <span class="card__title">LLMTrace — Know which commit blew up your LLM bill</span>
                    <span class="card__desc">Self-hosted Go proxy for Anthropic/OpenAI calls. Logs every request with cost, user, and deploy SHA into Postgres. Anomaly detection with rolling 7-day baseline. Docker-compose in 5 minutes.</span>
                    <div class="card--ph__meta">
                        <span class="card--ph__votes">&#9650; 7</span>
                        <span>·</span>
                        <span>github.com</span>
                    </div>
                </div>
            </a>

            <!-- ==================== AI & LLMs ==================== -->
            <div class="source-header content-item">
                <img src="../../WEB/assets/reddit-logo.svg" alt="Reddit" class="source-header__logo">
                <span class="source-header__label">From Reddit</span>
            </div>

            <div class="source-tags content-item">
                <a href="https://reddit.com/r/anthropic" class="source-tag">r/anthropic</a>
                <a href="https://reddit.com/r/openai" class="source-tag">r/openai</a>
                <a href="https://reddit.com/r/LocalLLaMA" class="source-tag">r/LocalLLaMA</a>
            </div>

            <p class="section-intro content-item">Anthropic's Glasswing project drops staggering vulnerability numbers, Microsoft previews Build 2026, and MCP gets its biggest protocol revision yet.</p>

            <a href="https://www.anthropic.com/research/glasswing-initial-update" class="card card--featured content-item">
                <div class="card--featured__header">
                    <img class="card__favicon" data-size="28" alt="">
                    <span class="card--featured__title">Claude Mythos Found 10,000+ Critical Vulnerabilities in 30 Days</span>
                </div>
                <div class="card--featured__body">
                    <p>Anthropic's Project Glasswing update: Claude Mythos Preview and ~50 partners identified 10,000+ high/critical-severity vulnerabilities across 1,000+ open-source projects with a 90.6% true positive rate.</p>
                    <p>Found a 27-year-old remote crash flaw in OpenBSD, a 16-year-old bug in FFmpeg that automated tools hit 5 million times without catching, and a certificate-forging vulnerability in wolfSSL (CVSS 9.1). "Progress on software security used to be limited by how quickly we could find vulnerabilities. Now it's limited by how quickly we can patch them."</p>
                </div>
                <div class="card--featured__meta">
                    <span>anthropic.com</span> · <span>r/anthropic</span>
                </div>
            </a>

            <a href="https://windowsnews.ai/article/microsoft-build-2026-windows-becomes-the-platform-for-ai-agents.420503" class="card card--link content-item">
                <img class="card__favicon" data-size="18" alt="">
                <div class="card__content">
                    <span class="card__title">Microsoft Build 2026: Windows Becomes the AI Agent Platform</span>
                    <span class="card__desc">June 2-3 in San Francisco. Windows Agent Framework with new APIs for autonomous agents in the Windows shell and task scheduler. Agent Store marketplace. Copilot Agent Mode for multi-step coding in VS Code. WAF to be open-sourced under MIT.</span>
                </div>
            </a>

            <a href="https://blog.modelcontextprotocol.io/posts/2026-07-28-release-candidate/" class="card card--link content-item">
                <img class="card__favicon" data-size="18" alt="">
                <div class="card__content">
                    <span class="card__title">MCP Goes Stateless — Largest Protocol Revision Since Launch</span>
                    <span class="card__desc">The MCP release candidate drops session state from the protocol layer entirely. No more sticky routing for horizontal deployments. New MCP Apps feature lets servers ship interactive HTML UIs in sandboxed iframes. Final spec publishes July 28.</span>
                </div>
            </a>

            <p class="section-intro content-item">Quick hits — tooling and policy updates.</p>

            <a href="https://blog.jetbrains.com/teamcity/2026/05/teamcity-20261/" class="card card--link is-compact content-item">
                <img class="card__favicon" data-size="18" alt="">
                <div class="card__content">
                    <span class="card__title">TeamCity 2026.1 adds MCP for AI agents</span>
                    <span class="card__desc">JetBrains TeamCity now supports MCP, letting AI agents analyze and fix build failures. New CLI tool brings TeamCity to your terminal.</span>
                </div>
            </a>

            <a href="https://www.transparencycoalition.ai/news/ai-legislative-update-may29-2026" class="card card--link is-compact content-item">
                <img class="card__favicon" data-size="18" alt="">
                <div class="card__content">
                    <span class="card__title">California passes 30 AI bills before crossover deadline</span>
                    <span class="card__desc">Nearly all of California's 30 AI-related bills approved by their chamber of origin ahead of the May 29 crossover deadline.</span>
                </div>
            </a>

            <!-- ==================== APPS & SOFTWARE ==================== -->
            <div class="source-header content-item">
                <img src="../../WEB/assets/reddit-logo.svg" alt="Reddit" class="source-header__logo">
                <span class="source-header__label">From Reddit</span>
            </div>

            <div class="source-tags content-item">
                <a href="https://reddit.com/r/selfhosted" class="source-tag">r/selfhosted</a>
                <a href="https://reddit.com/r/macapps" class="source-tag">r/macapps</a>
            </div>

            <p class="section-intro content-item">Self-hosted finds — media monitoring, server panels, and lightweight frontends.</p>

            <a href="https://github.com/connorgallopo/Tracearr" class="card card--link content-item">
                <img class="card__favicon" data-size="18" alt="">
                <div class="card__content">
                    <span class="card__title">Tracearr — Tautulli Alternative for Plex, Jellyfin & Emby</span>
                    <span class="card__desc">Self-hosted monitoring for all three major media servers in one dashboard. Real-time session tracking, geolocation stream map, account sharing detection with impossible travel alerts, and Discord notifications. AGPL-3.0, Docker-based.</span>
                </div>
            </a>

            <a href="https://github.com/1Panel-dev/1Panel" class="card card--link content-item">
                <img class="card__favicon" data-size="18" alt="">
                <div class="card__content">
                    <span class="card__title">1Panel — Open Source VPS Control Panel with AI Support</span>
                    <span class="card__desc">Modern cPanel alternative with native AI agent support. Run Ollama models, deploy agents, manage Docker containers, and install from 165+ apps with one click. Built-in firewall, fail2ban, and WAF. Free and open source.</span>
                </div>
            </a>

            <a href="https://github.com/homarr-labs/homarr" class="card card--link is-compact content-item">
                <img class="card__favicon" data-size="18" alt="">
                <div class="card__content">
                    <span class="card__title">Homarr v1.62.0 — Major memory improvements</span>
                    <span class="card__desc">Self-hosted dashboard app significantly reduced its memory footprint after community feedback. Clean UI for organizing all your services.</span>
                </div>
            </a>

            <a href="https://github.com/rramiachraf/dumb" class="card card--link is-compact content-item">
                <img class="card__favicon" data-size="18" alt="">
                <div class="card__content">
                    <span class="card__title">dumb — Privacy-focused Genius lyrics frontend</span>
                    <span class="card__desc">Self-hosted alternative frontend for Genius lyrics. No tracking, no JavaScript required, lightweight.</span>
                </div>
            </a>

            <!-- ==================== FEEDBACK ==================== -->
            <?php if (!empty($submitted)): ?>
                <div class="feedback feedback--success content-item" style="text-align: center; padding: 2rem;">
                    <div style="font-size: 2.5rem; margin-bottom: 0.5rem;">&#10003;</div>
                    <p style="margin: 0; font-weight: 500;">Thanks! Your suggestion has been saved.</p>
                    <p style="margin: 0.5rem 0 0; opacity: 0.7; font-size: 0.875rem;">I'll review it for tomorrow's digest.</p>
                </div>
            <?php else: ?>
                <form method="POST" class="feedback content-item" data-feedback>
                    <button type="button" class="feedback__trigger" data-feedback-trigger>
                        Tell me what to change for tomorrow
                    </button>
                    <div class="feedback__content" data-feedback-content>
                        <textarea name="suggestion" class="feedback__textarea" placeholder="What would you like me to change? More of something, less of another, different topics..."></textarea>
                        <div class="feedback__actions">
                            <button type="button" class="btn btn--secondary" data-feedback-cancel>Cancel</button>
                            <button type="submit" class="btn btn--primary">Send</button>
                        </div>
                    </div>
                </form>
            <?php endif; ?>

        </div>
    </div>
    <script src="../../WEB/js/app.js"></script>
</body>
</html>
