<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://shafthq.github.io/blog</id>
    <title>SHAFT User Guide Blog</title>
    <updated>2026-06-23T00:00:00.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://shafthq.github.io/blog"/>
    <subtitle>SHAFT User Guide Blog</subtitle>
    <icon>https://shafthq.github.io/img/shaft.ico</icon>
    <entry>
        <title type="html"><![CDATA[🚀 SHAFT 10.2.20260623: What's New and Why You Should Upgrade Today]]></title>
        <id>https://shafthq.github.io/blog/release-10.2.20260623</id>
        <link href="https://shafthq.github.io/blog/release-10.2.20260623"/>
        <updated>2026-06-23T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Hey there, SHAFT community! 👋]]></summary>
        <content type="html"><![CDATA[<p>Hey there, SHAFT community! 👋</p>
<p>A fresh release just dropped and it's packed with improvements you don't want to miss. <strong>SHAFT 10.2.20260623</strong> is here, and whether you're a seasoned SHAFT user or just getting started, there's something in this release for you.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-what-changed">⚡ What Changed?<a href="https://shafthq.github.io/blog/release-10.2.20260623#-what-changed" class="hash-link" aria-label="Direct link to ⚡ What Changed?" title="Direct link to ⚡ What Changed?" translate="no">​</a></h2>
<ul>
<li class="">Auto-generated release notes are included below. Users upgrading from</li>
<li class="">SHAFTENGINE should read the</li>
<li class="">modular SHAFT upgrade guide.</li>
<li class="">SHAFT Pilot adds deterministic Capture, TestNG generation, Doctor diagnosis,</li>
<li class="">reviewed repair proposals, and MCP interoperability. AI is optional, disabled</li>
</ul>
<p>👉 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/releases/tag/10.2.20260623" target="_blank" rel="noopener noreferrer" class="">View the full release on GitHub</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-changelog">📋 Changelog<a href="https://shafthq.github.io/blog/release-10.2.20260623#-changelog" class="hash-link" aria-label="Direct link to 📋 Changelog" title="Direct link to 📋 Changelog" translate="no">​</a></h2>
<h1>SHAFT 10.2.20260623</h1>
<p>Auto-generated release notes are included below. Users upgrading from
<code>SHAFT_ENGINE</code> should read the
<a href="https://shafthq.github.io/docs/start/upgrade" target="_blank" rel="noopener noreferrer" class="">modular SHAFT upgrade guide</a>.</p>
<p>SHAFT Pilot adds deterministic Capture, TestNG generation, Doctor diagnosis,
reviewed repair proposals, and MCP interoperability. AI is optional, disabled
by default, and direct OpenAI, Anthropic, Gemini, or Ollama access requires
explicit enablement and consent. Microsoft/GitHub Copilot integrates through
MCP rather than a generic provider API-key adapter.</p>
<p>See the <a href="https://shafthq.github.io/docs/agentic/pilot" target="_blank" rel="noopener noreferrer" class="">SHAFT Pilot guide</a>
for installation, configuration, privacy, troubleshooting, and usage examples.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-changed">What's Changed<a href="https://shafthq.github.io/blog/release-10.2.20260623#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed" translate="no">​</a></h2>
<ul>
<li class="">Relax iPhone Playwright user-agent assertion by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3004" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3004</a></li>
<li class="">Fix numeric comparison tolerance in JavaHelper for devicePixelRatio by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3005" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3005</a></li>
<li class="">Fix 3 failing local browser tests by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3006" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3006</a></li>
<li class="">[codex] Update Allure logo with Egypt flag colors by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3009" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3009</a></li>
<li class="">codex: fix visual validation screenshot attachments by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3012" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3012</a></li>
<li class="">[codex] document github actions workflows by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3013" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3013</a></li>
<li class="">chore: add SHAFT marketing ad producer skill by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3016" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3016</a></li>
<li class="">test: harden shaft-mcp stability contracts by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3015" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3015</a></li>
<li class="">fix: ship IntelliJ command shortener templates by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3019" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3019</a></li>
<li class="">[codex] Harden core lifecycle isolation by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3017" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3017</a></li>
<li class="">fix: align JUnit retry with runtime config by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3020" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3020</a></li>
<li class="">Add UI state wait timeout by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3021" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3021</a></li>
<li class="">Prepare SHAFT Engine release 10.2.20260623 by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3022" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3022</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.2.20260622...10.2.20260623" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.2.20260622...10.2.20260623</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-community-spotlight">🏆 Community Spotlight<a href="https://shafthq.github.io/blog/release-10.2.20260623#-community-spotlight" class="hash-link" aria-label="Direct link to 🏆 Community Spotlight" title="Direct link to 🏆 Community Spotlight" translate="no">​</a></h2>
<p>This release was made possible by <strong>45 amazing contributors</strong> who have poured their time and expertise into making SHAFT better for everyone.</p>
<p>Open source thrives because of people like these. Every bug fix, every feature, every review — it all counts.</p>
<ul>
<li class=""><img src="https://github.com/MohabMohie.png" width="32" height="32" alt="@MohabMohie"> <a href="https://github.com/MohabMohie" target="_blank" rel="noopener noreferrer" class="">@MohabMohie</a></li>
<li class=""><img src="https://github.com/MahmoudElSharkawy.png" width="32" height="32" alt="@MahmoudElSharkawy"> <a href="https://github.com/MahmoudElSharkawy" target="_blank" rel="noopener noreferrer" class="">@MahmoudElSharkawy</a></li>
<li class=""><img src="https://github.com/MennaMagedm.png" width="32" height="32" alt="@MennaMagedm"> <a href="https://github.com/MennaMagedm" target="_blank" rel="noopener noreferrer" class="">@MennaMagedm</a></li>
<li class=""><img src="https://github.com/AhmdZanoon.png" width="32" height="32" alt="@AhmdZanoon"> <a href="https://github.com/AhmdZanoon" target="_blank" rel="noopener noreferrer" class="">@AhmdZanoon</a></li>
<li class=""><img src="https://github.com/MustafaAgamy.png" width="32" height="32" alt="@MustafaAgamy"> <a href="https://github.com/MustafaAgamy" target="_blank" rel="noopener noreferrer" class="">@MustafaAgamy</a></li>
<li class=""><img src="https://github.com/magdyheiba.png" width="32" height="32" alt="@magdyheiba"> <a href="https://github.com/magdyheiba" target="_blank" rel="noopener noreferrer" class="">@magdyheiba</a></li>
<li class=""><img src="https://github.com/Mochxd.png" width="32" height="32" alt="@Mochxd"> <a href="https://github.com/Mochxd" target="_blank" rel="noopener noreferrer" class="">@Mochxd</a></li>
<li class=""><img src="https://github.com/KyrillosNageh.png" width="32" height="32" alt="@KyrillosNageh"> <a href="https://github.com/KyrillosNageh" target="_blank" rel="noopener noreferrer" class="">@KyrillosNageh</a></li>
<li class=""><img src="https://github.com/amfarid.png" width="32" height="32" alt="@amfarid"> <a href="https://github.com/amfarid" target="_blank" rel="noopener noreferrer" class="">@amfarid</a></li>
<li class=""><img src="https://github.com/Mohab-Osama.png" width="32" height="32" alt="@Mohab-Osama"> <a href="https://github.com/Mohab-Osama" target="_blank" rel="noopener noreferrer" class="">@Mohab-Osama</a></li>
<li class=""><img src="https://github.com/RihamMostafa.png" width="32" height="32" alt="@RihamMostafa"> <a href="https://github.com/RihamMostafa" target="_blank" rel="noopener noreferrer" class="">@RihamMostafa</a></li>
<li class=""><img src="https://github.com/MhmdElGazzar.png" width="32" height="32" alt="@MhmdElGazzar"> <a href="https://github.com/MhmdElGazzar" target="_blank" rel="noopener noreferrer" class="">@MhmdElGazzar</a></li>
<li class=""><img src="https://github.com/MohamedHazem95.png" width="32" height="32" alt="@MohamedHazem95"> <a href="https://github.com/MohamedHazem95" target="_blank" rel="noopener noreferrer" class="">@MohamedHazem95</a></li>
<li class=""><img src="https://github.com/mohamedtawfek05354.png" width="32" height="32" alt="@mohamedtawfek05354"> <a href="https://github.com/mohamedtawfek05354" target="_blank" rel="noopener noreferrer" class="">@mohamedtawfek05354</a></li>
<li class=""><img src="https://github.com/samiir95.png" width="32" height="32" alt="@samiir95"> <a href="https://github.com/samiir95" target="_blank" rel="noopener noreferrer" class="">@samiir95</a></li>
<li class=""><img src="https://github.com/MamdouhMansour.png" width="32" height="32" alt="@MamdouhMansour"> <a href="https://github.com/MamdouhMansour" target="_blank" rel="noopener noreferrer" class="">@MamdouhMansour</a></li>
<li class=""><img src="https://github.com/Kinasr.png" width="32" height="32" alt="@Kinasr"> <a href="https://github.com/Kinasr" target="_blank" rel="noopener noreferrer" class="">@Kinasr</a></li>
<li class=""><img src="https://github.com/MahmoudMabrok.png" width="32" height="32" alt="@MahmoudMabrok"> <a href="https://github.com/MahmoudMabrok" target="_blank" rel="noopener noreferrer" class="">@MahmoudMabrok</a></li>
<li class=""><img src="https://github.com/hammad101088.png" width="32" height="32" alt="@hammad101088"> <a href="https://github.com/hammad101088" target="_blank" rel="noopener noreferrer" class="">@hammad101088</a></li>
<li class=""><img src="https://github.com/ieZaky.png" width="32" height="32" alt="@ieZaky"> <a href="https://github.com/ieZaky" target="_blank" rel="noopener noreferrer" class="">@ieZaky</a></li>
<li class=""><img src="https://github.com/sys123-data.png" width="32" height="32" alt="@sys123-data"> <a href="https://github.com/sys123-data" target="_blank" rel="noopener noreferrer" class="">@sys123-data</a></li>
<li class=""><img src="https://github.com/georgii-musikhin.png" width="32" height="32" alt="@georgii-musikhin"> <a href="https://github.com/georgii-musikhin" target="_blank" rel="noopener noreferrer" class="">@georgii-musikhin</a></li>
<li class=""><img src="https://github.com/hjsblogger.png" width="32" height="32" alt="@hjsblogger"> <a href="https://github.com/hjsblogger" target="_blank" rel="noopener noreferrer" class="">@hjsblogger</a></li>
<li class=""><img src="https://github.com/xValenciax.png" width="32" height="32" alt="@xValenciax"> <a href="https://github.com/xValenciax" target="_blank" rel="noopener noreferrer" class="">@xValenciax</a></li>
<li class=""><img src="https://github.com/MarwaYoussef1.png" width="32" height="32" alt="@MarwaYoussef1"> <a href="https://github.com/MarwaYoussef1" target="_blank" rel="noopener noreferrer" class="">@MarwaYoussef1</a></li>
<li class=""><img src="https://github.com/sultanpaymob.png" width="32" height="32" alt="@sultanpaymob"> <a href="https://github.com/sultanpaymob" target="_blank" rel="noopener noreferrer" class="">@sultanpaymob</a></li>
<li class=""><img src="https://github.com/osamaayman1005.png" width="32" height="32" alt="@osamaayman1005"> <a href="https://github.com/osamaayman1005" target="_blank" rel="noopener noreferrer" class="">@osamaayman1005</a></li>
<li class=""><img src="https://github.com/Salma2018170.png" width="32" height="32" alt="@Salma2018170"> <a href="https://github.com/Salma2018170" target="_blank" rel="noopener noreferrer" class="">@Salma2018170</a></li>
<li class=""><img src="https://github.com/TarekGaafar.png" width="32" height="32" alt="@TarekGaafar"> <a href="https://github.com/TarekGaafar" target="_blank" rel="noopener noreferrer" class="">@TarekGaafar</a></li>
<li class=""><img src="https://github.com/Waleedmohammed.png" width="32" height="32" alt="@Waleedmohammed"> <a href="https://github.com/Waleedmohammed" target="_blank" rel="noopener noreferrer" class="">@Waleedmohammed</a></li>
<li class=""><img src="https://github.com/khaledskhamis.png" width="32" height="32" alt="@khaledskhamis"> <a href="https://github.com/khaledskhamis" target="_blank" rel="noopener noreferrer" class="">@khaledskhamis</a></li>
<li class=""><img src="https://github.com/themosaeed.png" width="32" height="32" alt="@themosaeed"> <a href="https://github.com/themosaeed" target="_blank" rel="noopener noreferrer" class="">@themosaeed</a></li>
<li class=""><img src="https://github.com/wesamhamed.png" width="32" height="32" alt="@wesamhamed"> <a href="https://github.com/wesamhamed" target="_blank" rel="noopener noreferrer" class="">@wesamhamed</a></li>
<li class=""><img src="https://github.com/DavidIshakGorgy.png" width="32" height="32" alt="@DavidIshakGorgy"> <a href="https://github.com/DavidIshakGorgy" target="_blank" rel="noopener noreferrer" class="">@DavidIshakGorgy</a></li>
<li class=""><img src="https://github.com/BojteTamas.png" width="32" height="32" alt="@BojteTamas"> <a href="https://github.com/BojteTamas" target="_blank" rel="noopener noreferrer" class="">@BojteTamas</a></li>
<li class=""><img src="https://github.com/blacelle.png" width="32" height="32" alt="@blacelle"> <a href="https://github.com/blacelle" target="_blank" rel="noopener noreferrer" class="">@blacelle</a></li>
<li class=""><img src="https://github.com/Ayanasrallah.png" width="32" height="32" alt="@Ayanasrallah"> <a href="https://github.com/Ayanasrallah" target="_blank" rel="noopener noreferrer" class="">@Ayanasrallah</a></li>
<li class=""><img src="https://github.com/AmrAdelElkholy.png" width="32" height="32" alt="@AmrAdelElkholy"> <a href="https://github.com/AmrAdelElkholy" target="_blank" rel="noopener noreferrer" class="">@AmrAdelElkholy</a></li>
<li class=""><img src="https://github.com/amlosman.png" width="32" height="32" alt="@amlosman"> <a href="https://github.com/amlosman" target="_blank" rel="noopener noreferrer" class="">@amlosman</a></li>
<li class=""><img src="https://github.com/ahmednasr95.png" width="32" height="32" alt="@ahmednasr95"> <a href="https://github.com/ahmednasr95" target="_blank" rel="noopener noreferrer" class="">@ahmednasr95</a></li>
<li class=""><img src="https://github.com/ahmed-madyan.png" width="32" height="32" alt="@ahmed-madyan"> <a href="https://github.com/ahmed-madyan" target="_blank" rel="noopener noreferrer" class="">@ahmed-madyan</a></li>
<li class=""><img src="https://github.com/AhmedHelalyy.png" width="32" height="32" alt="@AhmedHelalyy"> <a href="https://github.com/AhmedHelalyy" target="_blank" rel="noopener noreferrer" class="">@AhmedHelalyy</a></li>
<li class=""><img src="https://github.com/A-Alii.png" width="32" height="32" alt="@A-Alii"> <a href="https://github.com/A-Alii" target="_blank" rel="noopener noreferrer" class="">@A-Alii</a></li>
<li class=""><img src="https://github.com/AbdelrahmanFahd.png" width="32" height="32" alt="@AbdelrahmanFahd"> <a href="https://github.com/AbdelrahmanFahd" target="_blank" rel="noopener noreferrer" class="">@AbdelrahmanFahd</a></li>
<li class=""><img src="https://github.com/Abdelrhman-Ellithy.png" width="32" height="32" alt="@Abdelrhman-Ellithy"> <a href="https://github.com/Abdelrhman-Ellithy" target="_blank" rel="noopener noreferrer" class="">@Abdelrhman-Ellithy</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-get-started-in-seconds">🚀 Get Started in Seconds<a href="https://shafthq.github.io/blog/release-10.2.20260623#-get-started-in-seconds" class="hash-link" aria-label="Direct link to 🚀 Get Started in Seconds" title="Direct link to 🚀 Get Started in Seconds" translate="no">​</a></h2>
<p>Import the SHAFT BOM once, then use the modular engine:</p>
<div class="language-xml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-xml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependencyManagement</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependencies</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">io.github.shafthq</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">shaft-bom</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">10.2.20260623</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">type</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">pom</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">type</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">scope</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">import</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">scope</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependencies</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependencyManagement</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependencies</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">io.github.shafthq</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">shaft-engine</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependencies</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-join-the-conversation">💬 Join the Conversation<a href="https://shafthq.github.io/blog/release-10.2.20260623#-join-the-conversation" class="hash-link" aria-label="Direct link to 💬 Join the Conversation" title="Direct link to 💬 Join the Conversation" translate="no">​</a></h2>
<p>We'd love to hear what you think! Found a bug? Have an idea? Just want to say hi?</p>
<ul>
<li class="">⭐ <a href="https://github.com/ShaftHQ/SHAFT_ENGINE" target="_blank" rel="noopener noreferrer" class="">Star SHAFT on GitHub</a> — it helps more than you think</li>
<li class="">💡 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/discussions" target="_blank" rel="noopener noreferrer" class="">Start a Discussion</a> — share feedback or ideas</li>
<li class="">🐛 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/issues/new" target="_blank" rel="noopener noreferrer" class="">Report an Issue</a> — help us squash bugs faster</li>
<li class="">📖 <a href="https://shafthq.github.io/docs/start/overview" target="_blank" rel="noopener noreferrer" class="">Read the Docs</a> — dive deeper into SHAFT</li>
</ul>
<p>Thanks for being part of the SHAFT journey. Until the next release — happy testing! 🎯</p>]]></content>
        <author>
            <name>AutoBot</name>
            <uri>https://github.com/ShaftHQ/SHAFT_ENGINE</uri>
        </author>
        <category label="shaft_engine" term="shaft_engine"/>
        <category label="release" term="release"/>
        <category label="changelog" term="changelog"/>
        <category label="test-automation" term="test-automation"/>
        <category label="open-source" term="open-source"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[🚀 SHAFT 10.2.20260622: What's New and Why You Should Upgrade Today]]></title>
        <id>https://shafthq.github.io/blog/release-10.2.20260622</id>
        <link href="https://shafthq.github.io/blog/release-10.2.20260622"/>
        <updated>2026-06-22T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Hey there, SHAFT community! 👋]]></summary>
        <content type="html"><![CDATA[<p>Hey there, SHAFT community! 👋</p>
<p>A fresh release just dropped and it's packed with improvements you don't want to miss. <strong>SHAFT 10.2.20260622</strong> is here, and whether you're a seasoned SHAFT user or just getting started, there's something in this release for you.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-what-changed">⚡ What Changed?<a href="https://shafthq.github.io/blog/release-10.2.20260622#-what-changed" class="hash-link" aria-label="Direct link to ⚡ What Changed?" title="Direct link to ⚡ What Changed?" translate="no">​</a></h2>
<ul>
<li class="">Auto-generated release notes are included below. Users upgrading from</li>
<li class="">SHAFTENGINE should read the</li>
<li class="">modular SHAFT upgrade guide.</li>
<li class="">SHAFT Pilot adds deterministic Capture, TestNG generation, Doctor diagnosis,</li>
<li class="">reviewed repair proposals, and MCP interoperability. AI is optional, disabled</li>
</ul>
<p>👉 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/releases/tag/10.2.20260622" target="_blank" rel="noopener noreferrer" class="">View the full release on GitHub</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-changelog">📋 Changelog<a href="https://shafthq.github.io/blog/release-10.2.20260622#-changelog" class="hash-link" aria-label="Direct link to 📋 Changelog" title="Direct link to 📋 Changelog" translate="no">​</a></h2>
<h1>SHAFT 10.2.20260622</h1>
<p>Auto-generated release notes are included below. Users upgrading from
<code>SHAFT_ENGINE</code> should read the
<a href="https://shafthq.github.io/docs/start/upgrade" target="_blank" rel="noopener noreferrer" class="">modular SHAFT upgrade guide</a>.</p>
<p>SHAFT Pilot adds deterministic Capture, TestNG generation, Doctor diagnosis,
reviewed repair proposals, and MCP interoperability. AI is optional, disabled
by default, and direct OpenAI, Anthropic, Gemini, or Ollama access requires
explicit enablement and consent. Microsoft/GitHub Copilot integrates through
MCP rather than a generic provider API-key adapter.</p>
<p>See the <a href="https://shafthq.github.io/docs/agentic/pilot" target="_blank" rel="noopener noreferrer" class="">SHAFT Pilot guide</a>
for installation, configuration, privacy, troubleshooting, and usage examples.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-changed">What's Changed<a href="https://shafthq.github.io/blog/release-10.2.20260622#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed" translate="no">​</a></h2>
<ul>
<li class="">[codex] Add Playwright browser E2E coverage by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2991" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2991</a></li>
<li class="">[codex] Support Playwright-backed validations by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2992" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2992</a></li>
<li class="">[codex] clarify engine contributor onboarding by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3001" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3001</a></li>
<li class="">Prepare SHAFT Engine release 10.2.20260622 by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3002" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3002</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.2.20260621...10.2.20260622" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.2.20260621...10.2.20260622</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-community-spotlight">🏆 Community Spotlight<a href="https://shafthq.github.io/blog/release-10.2.20260622#-community-spotlight" class="hash-link" aria-label="Direct link to 🏆 Community Spotlight" title="Direct link to 🏆 Community Spotlight" translate="no">​</a></h2>
<p>This release was made possible by <strong>45 amazing contributors</strong> who have poured their time and expertise into making SHAFT better for everyone.</p>
<p>Open source thrives because of people like these. Every bug fix, every feature, every review — it all counts.</p>
<ul>
<li class=""><img src="https://github.com/MohabMohie.png" width="32" height="32" alt="@MohabMohie"> <a href="https://github.com/MohabMohie" target="_blank" rel="noopener noreferrer" class="">@MohabMohie</a></li>
<li class=""><img src="https://github.com/MahmoudElSharkawy.png" width="32" height="32" alt="@MahmoudElSharkawy"> <a href="https://github.com/MahmoudElSharkawy" target="_blank" rel="noopener noreferrer" class="">@MahmoudElSharkawy</a></li>
<li class=""><img src="https://github.com/MennaMagedm.png" width="32" height="32" alt="@MennaMagedm"> <a href="https://github.com/MennaMagedm" target="_blank" rel="noopener noreferrer" class="">@MennaMagedm</a></li>
<li class=""><img src="https://github.com/AhmdZanoon.png" width="32" height="32" alt="@AhmdZanoon"> <a href="https://github.com/AhmdZanoon" target="_blank" rel="noopener noreferrer" class="">@AhmdZanoon</a></li>
<li class=""><img src="https://github.com/MustafaAgamy.png" width="32" height="32" alt="@MustafaAgamy"> <a href="https://github.com/MustafaAgamy" target="_blank" rel="noopener noreferrer" class="">@MustafaAgamy</a></li>
<li class=""><img src="https://github.com/magdyheiba.png" width="32" height="32" alt="@magdyheiba"> <a href="https://github.com/magdyheiba" target="_blank" rel="noopener noreferrer" class="">@magdyheiba</a></li>
<li class=""><img src="https://github.com/Mochxd.png" width="32" height="32" alt="@Mochxd"> <a href="https://github.com/Mochxd" target="_blank" rel="noopener noreferrer" class="">@Mochxd</a></li>
<li class=""><img src="https://github.com/KyrillosNageh.png" width="32" height="32" alt="@KyrillosNageh"> <a href="https://github.com/KyrillosNageh" target="_blank" rel="noopener noreferrer" class="">@KyrillosNageh</a></li>
<li class=""><img src="https://github.com/amfarid.png" width="32" height="32" alt="@amfarid"> <a href="https://github.com/amfarid" target="_blank" rel="noopener noreferrer" class="">@amfarid</a></li>
<li class=""><img src="https://github.com/Mohab-Osama.png" width="32" height="32" alt="@Mohab-Osama"> <a href="https://github.com/Mohab-Osama" target="_blank" rel="noopener noreferrer" class="">@Mohab-Osama</a></li>
<li class=""><img src="https://github.com/RihamMostafa.png" width="32" height="32" alt="@RihamMostafa"> <a href="https://github.com/RihamMostafa" target="_blank" rel="noopener noreferrer" class="">@RihamMostafa</a></li>
<li class=""><img src="https://github.com/MhmdElGazzar.png" width="32" height="32" alt="@MhmdElGazzar"> <a href="https://github.com/MhmdElGazzar" target="_blank" rel="noopener noreferrer" class="">@MhmdElGazzar</a></li>
<li class=""><img src="https://github.com/MohamedHazem95.png" width="32" height="32" alt="@MohamedHazem95"> <a href="https://github.com/MohamedHazem95" target="_blank" rel="noopener noreferrer" class="">@MohamedHazem95</a></li>
<li class=""><img src="https://github.com/mohamedtawfek05354.png" width="32" height="32" alt="@mohamedtawfek05354"> <a href="https://github.com/mohamedtawfek05354" target="_blank" rel="noopener noreferrer" class="">@mohamedtawfek05354</a></li>
<li class=""><img src="https://github.com/samiir95.png" width="32" height="32" alt="@samiir95"> <a href="https://github.com/samiir95" target="_blank" rel="noopener noreferrer" class="">@samiir95</a></li>
<li class=""><img src="https://github.com/MamdouhMansour.png" width="32" height="32" alt="@MamdouhMansour"> <a href="https://github.com/MamdouhMansour" target="_blank" rel="noopener noreferrer" class="">@MamdouhMansour</a></li>
<li class=""><img src="https://github.com/Kinasr.png" width="32" height="32" alt="@Kinasr"> <a href="https://github.com/Kinasr" target="_blank" rel="noopener noreferrer" class="">@Kinasr</a></li>
<li class=""><img src="https://github.com/MahmoudMabrok.png" width="32" height="32" alt="@MahmoudMabrok"> <a href="https://github.com/MahmoudMabrok" target="_blank" rel="noopener noreferrer" class="">@MahmoudMabrok</a></li>
<li class=""><img src="https://github.com/hammad101088.png" width="32" height="32" alt="@hammad101088"> <a href="https://github.com/hammad101088" target="_blank" rel="noopener noreferrer" class="">@hammad101088</a></li>
<li class=""><img src="https://github.com/ieZaky.png" width="32" height="32" alt="@ieZaky"> <a href="https://github.com/ieZaky" target="_blank" rel="noopener noreferrer" class="">@ieZaky</a></li>
<li class=""><img src="https://github.com/sys123-data.png" width="32" height="32" alt="@sys123-data"> <a href="https://github.com/sys123-data" target="_blank" rel="noopener noreferrer" class="">@sys123-data</a></li>
<li class=""><img src="https://github.com/georgii-musikhin.png" width="32" height="32" alt="@georgii-musikhin"> <a href="https://github.com/georgii-musikhin" target="_blank" rel="noopener noreferrer" class="">@georgii-musikhin</a></li>
<li class=""><img src="https://github.com/hjsblogger.png" width="32" height="32" alt="@hjsblogger"> <a href="https://github.com/hjsblogger" target="_blank" rel="noopener noreferrer" class="">@hjsblogger</a></li>
<li class=""><img src="https://github.com/xValenciax.png" width="32" height="32" alt="@xValenciax"> <a href="https://github.com/xValenciax" target="_blank" rel="noopener noreferrer" class="">@xValenciax</a></li>
<li class=""><img src="https://github.com/MarwaYoussef1.png" width="32" height="32" alt="@MarwaYoussef1"> <a href="https://github.com/MarwaYoussef1" target="_blank" rel="noopener noreferrer" class="">@MarwaYoussef1</a></li>
<li class=""><img src="https://github.com/sultanpaymob.png" width="32" height="32" alt="@sultanpaymob"> <a href="https://github.com/sultanpaymob" target="_blank" rel="noopener noreferrer" class="">@sultanpaymob</a></li>
<li class=""><img src="https://github.com/osamaayman1005.png" width="32" height="32" alt="@osamaayman1005"> <a href="https://github.com/osamaayman1005" target="_blank" rel="noopener noreferrer" class="">@osamaayman1005</a></li>
<li class=""><img src="https://github.com/Salma2018170.png" width="32" height="32" alt="@Salma2018170"> <a href="https://github.com/Salma2018170" target="_blank" rel="noopener noreferrer" class="">@Salma2018170</a></li>
<li class=""><img src="https://github.com/TarekGaafar.png" width="32" height="32" alt="@TarekGaafar"> <a href="https://github.com/TarekGaafar" target="_blank" rel="noopener noreferrer" class="">@TarekGaafar</a></li>
<li class=""><img src="https://github.com/Waleedmohammed.png" width="32" height="32" alt="@Waleedmohammed"> <a href="https://github.com/Waleedmohammed" target="_blank" rel="noopener noreferrer" class="">@Waleedmohammed</a></li>
<li class=""><img src="https://github.com/khaledskhamis.png" width="32" height="32" alt="@khaledskhamis"> <a href="https://github.com/khaledskhamis" target="_blank" rel="noopener noreferrer" class="">@khaledskhamis</a></li>
<li class=""><img src="https://github.com/themosaeed.png" width="32" height="32" alt="@themosaeed"> <a href="https://github.com/themosaeed" target="_blank" rel="noopener noreferrer" class="">@themosaeed</a></li>
<li class=""><img src="https://github.com/wesamhamed.png" width="32" height="32" alt="@wesamhamed"> <a href="https://github.com/wesamhamed" target="_blank" rel="noopener noreferrer" class="">@wesamhamed</a></li>
<li class=""><img src="https://github.com/DavidIshakGorgy.png" width="32" height="32" alt="@DavidIshakGorgy"> <a href="https://github.com/DavidIshakGorgy" target="_blank" rel="noopener noreferrer" class="">@DavidIshakGorgy</a></li>
<li class=""><img src="https://github.com/BojteTamas.png" width="32" height="32" alt="@BojteTamas"> <a href="https://github.com/BojteTamas" target="_blank" rel="noopener noreferrer" class="">@BojteTamas</a></li>
<li class=""><img src="https://github.com/blacelle.png" width="32" height="32" alt="@blacelle"> <a href="https://github.com/blacelle" target="_blank" rel="noopener noreferrer" class="">@blacelle</a></li>
<li class=""><img src="https://github.com/Ayanasrallah.png" width="32" height="32" alt="@Ayanasrallah"> <a href="https://github.com/Ayanasrallah" target="_blank" rel="noopener noreferrer" class="">@Ayanasrallah</a></li>
<li class=""><img src="https://github.com/AmrAdelElkholy.png" width="32" height="32" alt="@AmrAdelElkholy"> <a href="https://github.com/AmrAdelElkholy" target="_blank" rel="noopener noreferrer" class="">@AmrAdelElkholy</a></li>
<li class=""><img src="https://github.com/amlosman.png" width="32" height="32" alt="@amlosman"> <a href="https://github.com/amlosman" target="_blank" rel="noopener noreferrer" class="">@amlosman</a></li>
<li class=""><img src="https://github.com/ahmednasr95.png" width="32" height="32" alt="@ahmednasr95"> <a href="https://github.com/ahmednasr95" target="_blank" rel="noopener noreferrer" class="">@ahmednasr95</a></li>
<li class=""><img src="https://github.com/ahmed-madyan.png" width="32" height="32" alt="@ahmed-madyan"> <a href="https://github.com/ahmed-madyan" target="_blank" rel="noopener noreferrer" class="">@ahmed-madyan</a></li>
<li class=""><img src="https://github.com/AhmedHelalyy.png" width="32" height="32" alt="@AhmedHelalyy"> <a href="https://github.com/AhmedHelalyy" target="_blank" rel="noopener noreferrer" class="">@AhmedHelalyy</a></li>
<li class=""><img src="https://github.com/A-Alii.png" width="32" height="32" alt="@A-Alii"> <a href="https://github.com/A-Alii" target="_blank" rel="noopener noreferrer" class="">@A-Alii</a></li>
<li class=""><img src="https://github.com/AbdelrahmanFahd.png" width="32" height="32" alt="@AbdelrahmanFahd"> <a href="https://github.com/AbdelrahmanFahd" target="_blank" rel="noopener noreferrer" class="">@AbdelrahmanFahd</a></li>
<li class=""><img src="https://github.com/Abdelrhman-Ellithy.png" width="32" height="32" alt="@Abdelrhman-Ellithy"> <a href="https://github.com/Abdelrhman-Ellithy" target="_blank" rel="noopener noreferrer" class="">@Abdelrhman-Ellithy</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-get-started-in-seconds">🚀 Get Started in Seconds<a href="https://shafthq.github.io/blog/release-10.2.20260622#-get-started-in-seconds" class="hash-link" aria-label="Direct link to 🚀 Get Started in Seconds" title="Direct link to 🚀 Get Started in Seconds" translate="no">​</a></h2>
<p>Import the SHAFT BOM once, then use the modular engine:</p>
<div class="language-xml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-xml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependencyManagement</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependencies</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">io.github.shafthq</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">shaft-bom</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">10.2.20260622</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">type</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">pom</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">type</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">scope</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">import</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">scope</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependencies</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependencyManagement</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependencies</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">io.github.shafthq</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">shaft-engine</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependencies</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-join-the-conversation">💬 Join the Conversation<a href="https://shafthq.github.io/blog/release-10.2.20260622#-join-the-conversation" class="hash-link" aria-label="Direct link to 💬 Join the Conversation" title="Direct link to 💬 Join the Conversation" translate="no">​</a></h2>
<p>We'd love to hear what you think! Found a bug? Have an idea? Just want to say hi?</p>
<ul>
<li class="">⭐ <a href="https://github.com/ShaftHQ/SHAFT_ENGINE" target="_blank" rel="noopener noreferrer" class="">Star SHAFT on GitHub</a> — it helps more than you think</li>
<li class="">💡 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/discussions" target="_blank" rel="noopener noreferrer" class="">Start a Discussion</a> — share feedback or ideas</li>
<li class="">🐛 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/issues/new" target="_blank" rel="noopener noreferrer" class="">Report an Issue</a> — help us squash bugs faster</li>
<li class="">📖 <a href="https://shafthq.github.io/docs/start/overview" target="_blank" rel="noopener noreferrer" class="">Read the Docs</a> — dive deeper into SHAFT</li>
</ul>
<p>Thanks for being part of the SHAFT journey. Until the next release — happy testing! 🎯</p>]]></content>
        <author>
            <name>AutoBot</name>
            <uri>https://github.com/ShaftHQ/SHAFT_ENGINE</uri>
        </author>
        <category label="shaft_engine" term="shaft_engine"/>
        <category label="release" term="release"/>
        <category label="changelog" term="changelog"/>
        <category label="test-automation" term="test-automation"/>
        <category label="open-source" term="open-source"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[🚀 SHAFT 10.2.20260621: What's New and Why You Should Upgrade Today]]></title>
        <id>https://shafthq.github.io/blog/release-10.2.20260621</id>
        <link href="https://shafthq.github.io/blog/release-10.2.20260621"/>
        <updated>2026-06-21T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Hey there, SHAFT community! 👋]]></summary>
        <content type="html"><![CDATA[<p>Hey there, SHAFT community! 👋</p>
<p>A fresh release just dropped and it's packed with improvements you don't want to miss. <strong>SHAFT 10.2.20260621</strong> is here, and whether you're a seasoned SHAFT user or just getting started, there's something in this release for you.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-what-changed">⚡ What Changed?<a href="https://shafthq.github.io/blog/release-10.2.20260621#-what-changed" class="hash-link" aria-label="Direct link to ⚡ What Changed?" title="Direct link to ⚡ What Changed?" translate="no">​</a></h2>
<ul>
<li class="">Auto-generated release notes are included below. Users upgrading from</li>
<li class="">SHAFTENGINE should read the</li>
<li class="">modular SHAFT upgrade guide.</li>
<li class="">SHAFT Pilot adds deterministic Capture, TestNG generation, Doctor diagnosis,</li>
<li class="">reviewed repair proposals, and MCP interoperability. AI is optional, disabled</li>
</ul>
<p>👉 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/releases/tag/10.2.20260621" target="_blank" rel="noopener noreferrer" class="">View the full release on GitHub</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-changelog">📋 Changelog<a href="https://shafthq.github.io/blog/release-10.2.20260621#-changelog" class="hash-link" aria-label="Direct link to 📋 Changelog" title="Direct link to 📋 Changelog" translate="no">​</a></h2>
<h1>SHAFT 10.2.20260621</h1>
<p>Auto-generated release notes are included below. Users upgrading from
<code>SHAFT_ENGINE</code> should read the
<a href="https://shafthq.github.io/docs/start/upgrade" target="_blank" rel="noopener noreferrer" class="">modular SHAFT upgrade guide</a>.</p>
<p>SHAFT Pilot adds deterministic Capture, TestNG generation, Doctor diagnosis,
reviewed repair proposals, and MCP interoperability. AI is optional, disabled
by default, and direct OpenAI, Anthropic, Gemini, or Ollama access requires
explicit enablement and consent. Microsoft/GitHub Copilot integrates through
MCP rather than a generic provider API-key adapter.</p>
<p>See the <a href="https://shafthq.github.io/docs/agentic/pilot" target="_blank" rel="noopener noreferrer" class="">SHAFT Pilot guide</a>
for installation, configuration, privacy, troubleshooting, and usage examples.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-changed">What's Changed<a href="https://shafthq.github.io/blog/release-10.2.20260621#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed" translate="no">​</a></h2>
<ul>
<li class="">[codex] Add API GraphQL builder facade by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2976" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2976</a></li>
<li class="">[codex] Optimize CLI action reporting and execution by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2978" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2978</a></li>
<li class="">[codex] Add MCP mobile Inspector recording by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2979" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2979</a></li>
<li class="">[codex] Add MCP test automation scenario catalog by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2980" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2980</a></li>
<li class="">Add browser network interception builder by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2975" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2975</a></li>
<li class="">Add touch end-scroll and image invisibility actions by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2981" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2981</a></li>
<li class="">Add natural action planner coverage by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2982" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2982</a></li>
<li class="">Revive local API wizard tests by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2983" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2983</a></li>
<li class="">Enable local accessibility and language tests by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2984" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2984</a></li>
<li class="">Fix E2E API and checkout tests by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2985" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2985</a></li>
<li class="">Add Playwright GUI backend by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2987" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2987</a></li>
<li class="">Expose GUI driver facade alias by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2989" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2989</a></li>
<li class="">[codex] Add SHAFT Playwright MCP toolchain by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2990" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2990</a></li>
<li class="">[codex] release 10.2.20260621 by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2986" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2986</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.2.20260620...10.2.20260621" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.2.20260620...10.2.20260621</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-community-spotlight">🏆 Community Spotlight<a href="https://shafthq.github.io/blog/release-10.2.20260621#-community-spotlight" class="hash-link" aria-label="Direct link to 🏆 Community Spotlight" title="Direct link to 🏆 Community Spotlight" translate="no">​</a></h2>
<p>This release was made possible by <strong>45 amazing contributors</strong> who have poured their time and expertise into making SHAFT better for everyone.</p>
<p>Open source thrives because of people like these. Every bug fix, every feature, every review — it all counts.</p>
<ul>
<li class=""><img src="https://github.com/MohabMohie.png" width="32" height="32" alt="@MohabMohie"> <a href="https://github.com/MohabMohie" target="_blank" rel="noopener noreferrer" class="">@MohabMohie</a></li>
<li class=""><img src="https://github.com/MahmoudElSharkawy.png" width="32" height="32" alt="@MahmoudElSharkawy"> <a href="https://github.com/MahmoudElSharkawy" target="_blank" rel="noopener noreferrer" class="">@MahmoudElSharkawy</a></li>
<li class=""><img src="https://github.com/MennaMagedm.png" width="32" height="32" alt="@MennaMagedm"> <a href="https://github.com/MennaMagedm" target="_blank" rel="noopener noreferrer" class="">@MennaMagedm</a></li>
<li class=""><img src="https://github.com/AhmdZanoon.png" width="32" height="32" alt="@AhmdZanoon"> <a href="https://github.com/AhmdZanoon" target="_blank" rel="noopener noreferrer" class="">@AhmdZanoon</a></li>
<li class=""><img src="https://github.com/MustafaAgamy.png" width="32" height="32" alt="@MustafaAgamy"> <a href="https://github.com/MustafaAgamy" target="_blank" rel="noopener noreferrer" class="">@MustafaAgamy</a></li>
<li class=""><img src="https://github.com/magdyheiba.png" width="32" height="32" alt="@magdyheiba"> <a href="https://github.com/magdyheiba" target="_blank" rel="noopener noreferrer" class="">@magdyheiba</a></li>
<li class=""><img src="https://github.com/Mochxd.png" width="32" height="32" alt="@Mochxd"> <a href="https://github.com/Mochxd" target="_blank" rel="noopener noreferrer" class="">@Mochxd</a></li>
<li class=""><img src="https://github.com/KyrillosNageh.png" width="32" height="32" alt="@KyrillosNageh"> <a href="https://github.com/KyrillosNageh" target="_blank" rel="noopener noreferrer" class="">@KyrillosNageh</a></li>
<li class=""><img src="https://github.com/amfarid.png" width="32" height="32" alt="@amfarid"> <a href="https://github.com/amfarid" target="_blank" rel="noopener noreferrer" class="">@amfarid</a></li>
<li class=""><img src="https://github.com/Mohab-Osama.png" width="32" height="32" alt="@Mohab-Osama"> <a href="https://github.com/Mohab-Osama" target="_blank" rel="noopener noreferrer" class="">@Mohab-Osama</a></li>
<li class=""><img src="https://github.com/RihamMostafa.png" width="32" height="32" alt="@RihamMostafa"> <a href="https://github.com/RihamMostafa" target="_blank" rel="noopener noreferrer" class="">@RihamMostafa</a></li>
<li class=""><img src="https://github.com/MhmdElGazzar.png" width="32" height="32" alt="@MhmdElGazzar"> <a href="https://github.com/MhmdElGazzar" target="_blank" rel="noopener noreferrer" class="">@MhmdElGazzar</a></li>
<li class=""><img src="https://github.com/MohamedHazem95.png" width="32" height="32" alt="@MohamedHazem95"> <a href="https://github.com/MohamedHazem95" target="_blank" rel="noopener noreferrer" class="">@MohamedHazem95</a></li>
<li class=""><img src="https://github.com/mohamedtawfek05354.png" width="32" height="32" alt="@mohamedtawfek05354"> <a href="https://github.com/mohamedtawfek05354" target="_blank" rel="noopener noreferrer" class="">@mohamedtawfek05354</a></li>
<li class=""><img src="https://github.com/samiir95.png" width="32" height="32" alt="@samiir95"> <a href="https://github.com/samiir95" target="_blank" rel="noopener noreferrer" class="">@samiir95</a></li>
<li class=""><img src="https://github.com/MamdouhMansour.png" width="32" height="32" alt="@MamdouhMansour"> <a href="https://github.com/MamdouhMansour" target="_blank" rel="noopener noreferrer" class="">@MamdouhMansour</a></li>
<li class=""><img src="https://github.com/Kinasr.png" width="32" height="32" alt="@Kinasr"> <a href="https://github.com/Kinasr" target="_blank" rel="noopener noreferrer" class="">@Kinasr</a></li>
<li class=""><img src="https://github.com/MahmoudMabrok.png" width="32" height="32" alt="@MahmoudMabrok"> <a href="https://github.com/MahmoudMabrok" target="_blank" rel="noopener noreferrer" class="">@MahmoudMabrok</a></li>
<li class=""><img src="https://github.com/hammad101088.png" width="32" height="32" alt="@hammad101088"> <a href="https://github.com/hammad101088" target="_blank" rel="noopener noreferrer" class="">@hammad101088</a></li>
<li class=""><img src="https://github.com/ieZaky.png" width="32" height="32" alt="@ieZaky"> <a href="https://github.com/ieZaky" target="_blank" rel="noopener noreferrer" class="">@ieZaky</a></li>
<li class=""><img src="https://github.com/sys123-data.png" width="32" height="32" alt="@sys123-data"> <a href="https://github.com/sys123-data" target="_blank" rel="noopener noreferrer" class="">@sys123-data</a></li>
<li class=""><img src="https://github.com/georgii-musikhin.png" width="32" height="32" alt="@georgii-musikhin"> <a href="https://github.com/georgii-musikhin" target="_blank" rel="noopener noreferrer" class="">@georgii-musikhin</a></li>
<li class=""><img src="https://github.com/hjsblogger.png" width="32" height="32" alt="@hjsblogger"> <a href="https://github.com/hjsblogger" target="_blank" rel="noopener noreferrer" class="">@hjsblogger</a></li>
<li class=""><img src="https://github.com/xValenciax.png" width="32" height="32" alt="@xValenciax"> <a href="https://github.com/xValenciax" target="_blank" rel="noopener noreferrer" class="">@xValenciax</a></li>
<li class=""><img src="https://github.com/MarwaYoussef1.png" width="32" height="32" alt="@MarwaYoussef1"> <a href="https://github.com/MarwaYoussef1" target="_blank" rel="noopener noreferrer" class="">@MarwaYoussef1</a></li>
<li class=""><img src="https://github.com/sultanpaymob.png" width="32" height="32" alt="@sultanpaymob"> <a href="https://github.com/sultanpaymob" target="_blank" rel="noopener noreferrer" class="">@sultanpaymob</a></li>
<li class=""><img src="https://github.com/osamaayman1005.png" width="32" height="32" alt="@osamaayman1005"> <a href="https://github.com/osamaayman1005" target="_blank" rel="noopener noreferrer" class="">@osamaayman1005</a></li>
<li class=""><img src="https://github.com/Salma2018170.png" width="32" height="32" alt="@Salma2018170"> <a href="https://github.com/Salma2018170" target="_blank" rel="noopener noreferrer" class="">@Salma2018170</a></li>
<li class=""><img src="https://github.com/TarekGaafar.png" width="32" height="32" alt="@TarekGaafar"> <a href="https://github.com/TarekGaafar" target="_blank" rel="noopener noreferrer" class="">@TarekGaafar</a></li>
<li class=""><img src="https://github.com/Waleedmohammed.png" width="32" height="32" alt="@Waleedmohammed"> <a href="https://github.com/Waleedmohammed" target="_blank" rel="noopener noreferrer" class="">@Waleedmohammed</a></li>
<li class=""><img src="https://github.com/khaledskhamis.png" width="32" height="32" alt="@khaledskhamis"> <a href="https://github.com/khaledskhamis" target="_blank" rel="noopener noreferrer" class="">@khaledskhamis</a></li>
<li class=""><img src="https://github.com/themosaeed.png" width="32" height="32" alt="@themosaeed"> <a href="https://github.com/themosaeed" target="_blank" rel="noopener noreferrer" class="">@themosaeed</a></li>
<li class=""><img src="https://github.com/wesamhamed.png" width="32" height="32" alt="@wesamhamed"> <a href="https://github.com/wesamhamed" target="_blank" rel="noopener noreferrer" class="">@wesamhamed</a></li>
<li class=""><img src="https://github.com/DavidIshakGorgy.png" width="32" height="32" alt="@DavidIshakGorgy"> <a href="https://github.com/DavidIshakGorgy" target="_blank" rel="noopener noreferrer" class="">@DavidIshakGorgy</a></li>
<li class=""><img src="https://github.com/BojteTamas.png" width="32" height="32" alt="@BojteTamas"> <a href="https://github.com/BojteTamas" target="_blank" rel="noopener noreferrer" class="">@BojteTamas</a></li>
<li class=""><img src="https://github.com/blacelle.png" width="32" height="32" alt="@blacelle"> <a href="https://github.com/blacelle" target="_blank" rel="noopener noreferrer" class="">@blacelle</a></li>
<li class=""><img src="https://github.com/Ayanasrallah.png" width="32" height="32" alt="@Ayanasrallah"> <a href="https://github.com/Ayanasrallah" target="_blank" rel="noopener noreferrer" class="">@Ayanasrallah</a></li>
<li class=""><img src="https://github.com/AmrAdelElkholy.png" width="32" height="32" alt="@AmrAdelElkholy"> <a href="https://github.com/AmrAdelElkholy" target="_blank" rel="noopener noreferrer" class="">@AmrAdelElkholy</a></li>
<li class=""><img src="https://github.com/amlosman.png" width="32" height="32" alt="@amlosman"> <a href="https://github.com/amlosman" target="_blank" rel="noopener noreferrer" class="">@amlosman</a></li>
<li class=""><img src="https://github.com/ahmednasr95.png" width="32" height="32" alt="@ahmednasr95"> <a href="https://github.com/ahmednasr95" target="_blank" rel="noopener noreferrer" class="">@ahmednasr95</a></li>
<li class=""><img src="https://github.com/ahmed-madyan.png" width="32" height="32" alt="@ahmed-madyan"> <a href="https://github.com/ahmed-madyan" target="_blank" rel="noopener noreferrer" class="">@ahmed-madyan</a></li>
<li class=""><img src="https://github.com/AhmedHelalyy.png" width="32" height="32" alt="@AhmedHelalyy"> <a href="https://github.com/AhmedHelalyy" target="_blank" rel="noopener noreferrer" class="">@AhmedHelalyy</a></li>
<li class=""><img src="https://github.com/A-Alii.png" width="32" height="32" alt="@A-Alii"> <a href="https://github.com/A-Alii" target="_blank" rel="noopener noreferrer" class="">@A-Alii</a></li>
<li class=""><img src="https://github.com/AbdelrahmanFahd.png" width="32" height="32" alt="@AbdelrahmanFahd"> <a href="https://github.com/AbdelrahmanFahd" target="_blank" rel="noopener noreferrer" class="">@AbdelrahmanFahd</a></li>
<li class=""><img src="https://github.com/Abdelrhman-Ellithy.png" width="32" height="32" alt="@Abdelrhman-Ellithy"> <a href="https://github.com/Abdelrhman-Ellithy" target="_blank" rel="noopener noreferrer" class="">@Abdelrhman-Ellithy</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-get-started-in-seconds">🚀 Get Started in Seconds<a href="https://shafthq.github.io/blog/release-10.2.20260621#-get-started-in-seconds" class="hash-link" aria-label="Direct link to 🚀 Get Started in Seconds" title="Direct link to 🚀 Get Started in Seconds" translate="no">​</a></h2>
<p>Import the SHAFT BOM once, then use the modular engine:</p>
<div class="language-xml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-xml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependencyManagement</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependencies</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">io.github.shafthq</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">shaft-bom</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">10.2.20260621</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">type</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">pom</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">type</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">scope</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">import</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">scope</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependencies</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependencyManagement</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependencies</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">io.github.shafthq</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">shaft-engine</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependencies</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-join-the-conversation">💬 Join the Conversation<a href="https://shafthq.github.io/blog/release-10.2.20260621#-join-the-conversation" class="hash-link" aria-label="Direct link to 💬 Join the Conversation" title="Direct link to 💬 Join the Conversation" translate="no">​</a></h2>
<p>We'd love to hear what you think! Found a bug? Have an idea? Just want to say hi?</p>
<ul>
<li class="">⭐ <a href="https://github.com/ShaftHQ/SHAFT_ENGINE" target="_blank" rel="noopener noreferrer" class="">Star SHAFT on GitHub</a> — it helps more than you think</li>
<li class="">💡 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/discussions" target="_blank" rel="noopener noreferrer" class="">Start a Discussion</a> — share feedback or ideas</li>
<li class="">🐛 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/issues/new" target="_blank" rel="noopener noreferrer" class="">Report an Issue</a> — help us squash bugs faster</li>
<li class="">📖 <a href="https://shafthq.github.io/docs/start/overview" target="_blank" rel="noopener noreferrer" class="">Read the Docs</a> — dive deeper into SHAFT</li>
</ul>
<p>Thanks for being part of the SHAFT journey. Until the next release — happy testing! 🎯</p>]]></content>
        <author>
            <name>AutoBot</name>
            <uri>https://github.com/ShaftHQ/SHAFT_ENGINE</uri>
        </author>
        <category label="shaft_engine" term="shaft_engine"/>
        <category label="release" term="release"/>
        <category label="changelog" term="changelog"/>
        <category label="test-automation" term="test-automation"/>
        <category label="open-source" term="open-source"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[🚀 SHAFT 10.2.20260620: What's New and Why You Should Upgrade Today]]></title>
        <id>https://shafthq.github.io/blog/release-10.2.20260620</id>
        <link href="https://shafthq.github.io/blog/release-10.2.20260620"/>
        <updated>2026-06-19T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Hey there, SHAFT community! 👋]]></summary>
        <content type="html"><![CDATA[<p>Hey there, SHAFT community! 👋</p>
<p>A fresh release just dropped and it's packed with improvements you don't want to miss. <strong>SHAFT 10.2.20260620</strong> is here, and whether you're a seasoned SHAFT user or just getting started, there's something in this release for you.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-what-changed">⚡ What Changed?<a href="https://shafthq.github.io/blog/release-10.2.20260620#-what-changed" class="hash-link" aria-label="Direct link to ⚡ What Changed?" title="Direct link to ⚡ What Changed?" translate="no">​</a></h2>
<ul>
<li class="">Auto-generated release notes are included below. Users upgrading from</li>
<li class="">SHAFTENGINE should read the</li>
<li class="">modular SHAFT upgrade guide.</li>
<li class="">SHAFT Pilot adds deterministic Capture, TestNG generation, Doctor diagnosis,</li>
<li class="">reviewed repair proposals, and MCP interoperability. AI is optional, disabled</li>
</ul>
<p>👉 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/releases/tag/10.2.20260620" target="_blank" rel="noopener noreferrer" class="">View the full release on GitHub</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-changelog">📋 Changelog<a href="https://shafthq.github.io/blog/release-10.2.20260620#-changelog" class="hash-link" aria-label="Direct link to 📋 Changelog" title="Direct link to 📋 Changelog" translate="no">​</a></h2>
<h1>SHAFT 10.2.20260620</h1>
<p>Auto-generated release notes are included below. Users upgrading from
<code>SHAFT_ENGINE</code> should read the
<a href="https://shafthq.github.io/docs/start/upgrade" target="_blank" rel="noopener noreferrer" class="">modular SHAFT upgrade guide</a>.</p>
<p>SHAFT Pilot adds deterministic Capture, TestNG generation, Doctor diagnosis,
reviewed repair proposals, and MCP interoperability. AI is optional, disabled
by default, and direct OpenAI, Anthropic, Gemini, or Ollama access requires
explicit enablement and consent. Microsoft/GitHub Copilot integrates through
MCP rather than a generic provider API-key adapter.</p>
<p>See the <a href="https://shafthq.github.io/docs/agentic/pilot" target="_blank" rel="noopener noreferrer" class="">SHAFT Pilot guide</a>
for installation, configuration, privacy, troubleshooting, and usage examples.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-changed">What's Changed<a href="https://shafthq.github.io/blog/release-10.2.20260620#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed" translate="no">​</a></h2>
<ul>
<li class="">Enforce remote WebDriver session timeout by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2940" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2940</a></li>
<li class="">Avoid android-json verifier conflicts after upgrade by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2941" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2941</a></li>
<li class="">[codex] Add deterministic AI test lifecycle artifacts by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2939" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2939</a></li>
<li class="">Enhance SHAFT upgrader project detection by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2942" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2942</a></li>
<li class="">[codex] Remember Memory and graphify CLI workflow by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2943" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2943</a></li>
<li class="">[codex] Remove duplicated project generator by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2944" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2944</a></li>
<li class="">[codex] Remove duplicated project generator by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2946" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2946</a></li>
<li class="">Fix Windows Surefire properties bootstrap on Windows by @Mochxd in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2945" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2945</a></li>
<li class="">[codex] Preserve jar Log4j config paths by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2947" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2947</a></li>
<li class="">[codex] Update Surefire validation memory by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2948" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2948</a></li>
<li class="">[codex] Fix retry GIF screenshot policy by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2949" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2949</a></li>
<li class="">Improve typed action Allure reporting by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2950" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2950</a></li>
<li class="">[codex] Remove typed action txt parameter by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2951" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2951</a></li>
<li class="">[codex] Unify element action failure reporting by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2952" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2952</a></li>
<li class="">[codex] Remove duplicate smart locator element name by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2953" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2953</a></li>
<li class="">[codex] Add coverage tests by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2954" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2954</a></li>
<li class="">send SSH keep-alive packets during long remote terminal sessions by @Mochxd in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2926" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2926</a></li>
<li class="">fix: normalize smart locator reporting metadata by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2959" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2959</a></li>
<li class="">[codex] Fix shaft MCP desktop client runtime by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2960" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2960</a></li>
<li class="">[codex] Fix duplicate shaft MCP installer banner by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2961" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2961</a></li>
<li class="">[codex] Standardize new task PR flow by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2962" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2962</a></li>
<li class="">[codex] Stabilize terminal actions temp directory cleanup by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2963" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2963</a></li>
<li class="">[codex] Document Windows python launcher fallback by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2967" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2967</a></li>
<li class="">[codex] Pin tools jackson core by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2966" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2966</a></li>
<li class="">Migrate core execution lifecycle to JUnit internals by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2968" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2968</a></li>
<li class="">[codex] Add capture codegen workbench and agent handoff by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2969" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2969</a></li>
<li class="">Add MCP Selenium healer tool by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2970" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2970</a></li>
<li class="">Add official guide search MCP tool by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2971" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2971</a></li>
<li class="">Merge validation helper implementations by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2972" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2972</a></li>
<li class="">Fix Android pulled file byte assertion by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2973" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2973</a></li>
<li class="">Implement bounded TODO fixes and prepare 10.2.20260620 release by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2974" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2974</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.2.20260618...10.2.20260620" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.2.20260618...10.2.20260620</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-community-spotlight">🏆 Community Spotlight<a href="https://shafthq.github.io/blog/release-10.2.20260620#-community-spotlight" class="hash-link" aria-label="Direct link to 🏆 Community Spotlight" title="Direct link to 🏆 Community Spotlight" translate="no">​</a></h2>
<p>This release was made possible by <strong>45 amazing contributors</strong> who have poured their time and expertise into making SHAFT better for everyone.</p>
<p>Open source thrives because of people like these. Every bug fix, every feature, every review — it all counts.</p>
<ul>
<li class=""><img src="https://github.com/MohabMohie.png" width="32" height="32" alt="@MohabMohie"> <a href="https://github.com/MohabMohie" target="_blank" rel="noopener noreferrer" class="">@MohabMohie</a></li>
<li class=""><img src="https://github.com/MahmoudElSharkawy.png" width="32" height="32" alt="@MahmoudElSharkawy"> <a href="https://github.com/MahmoudElSharkawy" target="_blank" rel="noopener noreferrer" class="">@MahmoudElSharkawy</a></li>
<li class=""><img src="https://github.com/MennaMagedm.png" width="32" height="32" alt="@MennaMagedm"> <a href="https://github.com/MennaMagedm" target="_blank" rel="noopener noreferrer" class="">@MennaMagedm</a></li>
<li class=""><img src="https://github.com/AhmdZanoon.png" width="32" height="32" alt="@AhmdZanoon"> <a href="https://github.com/AhmdZanoon" target="_blank" rel="noopener noreferrer" class="">@AhmdZanoon</a></li>
<li class=""><img src="https://github.com/MustafaAgamy.png" width="32" height="32" alt="@MustafaAgamy"> <a href="https://github.com/MustafaAgamy" target="_blank" rel="noopener noreferrer" class="">@MustafaAgamy</a></li>
<li class=""><img src="https://github.com/magdyheiba.png" width="32" height="32" alt="@magdyheiba"> <a href="https://github.com/magdyheiba" target="_blank" rel="noopener noreferrer" class="">@magdyheiba</a></li>
<li class=""><img src="https://github.com/Mochxd.png" width="32" height="32" alt="@Mochxd"> <a href="https://github.com/Mochxd" target="_blank" rel="noopener noreferrer" class="">@Mochxd</a></li>
<li class=""><img src="https://github.com/KyrillosNageh.png" width="32" height="32" alt="@KyrillosNageh"> <a href="https://github.com/KyrillosNageh" target="_blank" rel="noopener noreferrer" class="">@KyrillosNageh</a></li>
<li class=""><img src="https://github.com/amfarid.png" width="32" height="32" alt="@amfarid"> <a href="https://github.com/amfarid" target="_blank" rel="noopener noreferrer" class="">@amfarid</a></li>
<li class=""><img src="https://github.com/Mohab-Osama.png" width="32" height="32" alt="@Mohab-Osama"> <a href="https://github.com/Mohab-Osama" target="_blank" rel="noopener noreferrer" class="">@Mohab-Osama</a></li>
<li class=""><img src="https://github.com/RihamMostafa.png" width="32" height="32" alt="@RihamMostafa"> <a href="https://github.com/RihamMostafa" target="_blank" rel="noopener noreferrer" class="">@RihamMostafa</a></li>
<li class=""><img src="https://github.com/MhmdElGazzar.png" width="32" height="32" alt="@MhmdElGazzar"> <a href="https://github.com/MhmdElGazzar" target="_blank" rel="noopener noreferrer" class="">@MhmdElGazzar</a></li>
<li class=""><img src="https://github.com/MohamedHazem95.png" width="32" height="32" alt="@MohamedHazem95"> <a href="https://github.com/MohamedHazem95" target="_blank" rel="noopener noreferrer" class="">@MohamedHazem95</a></li>
<li class=""><img src="https://github.com/mohamedtawfek05354.png" width="32" height="32" alt="@mohamedtawfek05354"> <a href="https://github.com/mohamedtawfek05354" target="_blank" rel="noopener noreferrer" class="">@mohamedtawfek05354</a></li>
<li class=""><img src="https://github.com/samiir95.png" width="32" height="32" alt="@samiir95"> <a href="https://github.com/samiir95" target="_blank" rel="noopener noreferrer" class="">@samiir95</a></li>
<li class=""><img src="https://github.com/MamdouhMansour.png" width="32" height="32" alt="@MamdouhMansour"> <a href="https://github.com/MamdouhMansour" target="_blank" rel="noopener noreferrer" class="">@MamdouhMansour</a></li>
<li class=""><img src="https://github.com/Kinasr.png" width="32" height="32" alt="@Kinasr"> <a href="https://github.com/Kinasr" target="_blank" rel="noopener noreferrer" class="">@Kinasr</a></li>
<li class=""><img src="https://github.com/MahmoudMabrok.png" width="32" height="32" alt="@MahmoudMabrok"> <a href="https://github.com/MahmoudMabrok" target="_blank" rel="noopener noreferrer" class="">@MahmoudMabrok</a></li>
<li class=""><img src="https://github.com/hammad101088.png" width="32" height="32" alt="@hammad101088"> <a href="https://github.com/hammad101088" target="_blank" rel="noopener noreferrer" class="">@hammad101088</a></li>
<li class=""><img src="https://github.com/ieZaky.png" width="32" height="32" alt="@ieZaky"> <a href="https://github.com/ieZaky" target="_blank" rel="noopener noreferrer" class="">@ieZaky</a></li>
<li class=""><img src="https://github.com/sys123-data.png" width="32" height="32" alt="@sys123-data"> <a href="https://github.com/sys123-data" target="_blank" rel="noopener noreferrer" class="">@sys123-data</a></li>
<li class=""><img src="https://github.com/georgii-musikhin.png" width="32" height="32" alt="@georgii-musikhin"> <a href="https://github.com/georgii-musikhin" target="_blank" rel="noopener noreferrer" class="">@georgii-musikhin</a></li>
<li class=""><img src="https://github.com/hjsblogger.png" width="32" height="32" alt="@hjsblogger"> <a href="https://github.com/hjsblogger" target="_blank" rel="noopener noreferrer" class="">@hjsblogger</a></li>
<li class=""><img src="https://github.com/xValenciax.png" width="32" height="32" alt="@xValenciax"> <a href="https://github.com/xValenciax" target="_blank" rel="noopener noreferrer" class="">@xValenciax</a></li>
<li class=""><img src="https://github.com/MarwaYoussef1.png" width="32" height="32" alt="@MarwaYoussef1"> <a href="https://github.com/MarwaYoussef1" target="_blank" rel="noopener noreferrer" class="">@MarwaYoussef1</a></li>
<li class=""><img src="https://github.com/sultanpaymob.png" width="32" height="32" alt="@sultanpaymob"> <a href="https://github.com/sultanpaymob" target="_blank" rel="noopener noreferrer" class="">@sultanpaymob</a></li>
<li class=""><img src="https://github.com/osamaayman1005.png" width="32" height="32" alt="@osamaayman1005"> <a href="https://github.com/osamaayman1005" target="_blank" rel="noopener noreferrer" class="">@osamaayman1005</a></li>
<li class=""><img src="https://github.com/Salma2018170.png" width="32" height="32" alt="@Salma2018170"> <a href="https://github.com/Salma2018170" target="_blank" rel="noopener noreferrer" class="">@Salma2018170</a></li>
<li class=""><img src="https://github.com/TarekGaafar.png" width="32" height="32" alt="@TarekGaafar"> <a href="https://github.com/TarekGaafar" target="_blank" rel="noopener noreferrer" class="">@TarekGaafar</a></li>
<li class=""><img src="https://github.com/Waleedmohammed.png" width="32" height="32" alt="@Waleedmohammed"> <a href="https://github.com/Waleedmohammed" target="_blank" rel="noopener noreferrer" class="">@Waleedmohammed</a></li>
<li class=""><img src="https://github.com/khaledskhamis.png" width="32" height="32" alt="@khaledskhamis"> <a href="https://github.com/khaledskhamis" target="_blank" rel="noopener noreferrer" class="">@khaledskhamis</a></li>
<li class=""><img src="https://github.com/themosaeed.png" width="32" height="32" alt="@themosaeed"> <a href="https://github.com/themosaeed" target="_blank" rel="noopener noreferrer" class="">@themosaeed</a></li>
<li class=""><img src="https://github.com/wesamhamed.png" width="32" height="32" alt="@wesamhamed"> <a href="https://github.com/wesamhamed" target="_blank" rel="noopener noreferrer" class="">@wesamhamed</a></li>
<li class=""><img src="https://github.com/DavidIshakGorgy.png" width="32" height="32" alt="@DavidIshakGorgy"> <a href="https://github.com/DavidIshakGorgy" target="_blank" rel="noopener noreferrer" class="">@DavidIshakGorgy</a></li>
<li class=""><img src="https://github.com/BojteTamas.png" width="32" height="32" alt="@BojteTamas"> <a href="https://github.com/BojteTamas" target="_blank" rel="noopener noreferrer" class="">@BojteTamas</a></li>
<li class=""><img src="https://github.com/blacelle.png" width="32" height="32" alt="@blacelle"> <a href="https://github.com/blacelle" target="_blank" rel="noopener noreferrer" class="">@blacelle</a></li>
<li class=""><img src="https://github.com/Ayanasrallah.png" width="32" height="32" alt="@Ayanasrallah"> <a href="https://github.com/Ayanasrallah" target="_blank" rel="noopener noreferrer" class="">@Ayanasrallah</a></li>
<li class=""><img src="https://github.com/AmrAdelElkholy.png" width="32" height="32" alt="@AmrAdelElkholy"> <a href="https://github.com/AmrAdelElkholy" target="_blank" rel="noopener noreferrer" class="">@AmrAdelElkholy</a></li>
<li class=""><img src="https://github.com/amlosman.png" width="32" height="32" alt="@amlosman"> <a href="https://github.com/amlosman" target="_blank" rel="noopener noreferrer" class="">@amlosman</a></li>
<li class=""><img src="https://github.com/ahmednasr95.png" width="32" height="32" alt="@ahmednasr95"> <a href="https://github.com/ahmednasr95" target="_blank" rel="noopener noreferrer" class="">@ahmednasr95</a></li>
<li class=""><img src="https://github.com/ahmed-madyan.png" width="32" height="32" alt="@ahmed-madyan"> <a href="https://github.com/ahmed-madyan" target="_blank" rel="noopener noreferrer" class="">@ahmed-madyan</a></li>
<li class=""><img src="https://github.com/AhmedHelalyy.png" width="32" height="32" alt="@AhmedHelalyy"> <a href="https://github.com/AhmedHelalyy" target="_blank" rel="noopener noreferrer" class="">@AhmedHelalyy</a></li>
<li class=""><img src="https://github.com/A-Alii.png" width="32" height="32" alt="@A-Alii"> <a href="https://github.com/A-Alii" target="_blank" rel="noopener noreferrer" class="">@A-Alii</a></li>
<li class=""><img src="https://github.com/AbdelrahmanFahd.png" width="32" height="32" alt="@AbdelrahmanFahd"> <a href="https://github.com/AbdelrahmanFahd" target="_blank" rel="noopener noreferrer" class="">@AbdelrahmanFahd</a></li>
<li class=""><img src="https://github.com/Abdelrhman-Ellithy.png" width="32" height="32" alt="@Abdelrhman-Ellithy"> <a href="https://github.com/Abdelrhman-Ellithy" target="_blank" rel="noopener noreferrer" class="">@Abdelrhman-Ellithy</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-get-started-in-seconds">🚀 Get Started in Seconds<a href="https://shafthq.github.io/blog/release-10.2.20260620#-get-started-in-seconds" class="hash-link" aria-label="Direct link to 🚀 Get Started in Seconds" title="Direct link to 🚀 Get Started in Seconds" translate="no">​</a></h2>
<p>Import the SHAFT BOM once, then use the modular engine:</p>
<div class="language-xml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-xml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependencyManagement</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependencies</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">io.github.shafthq</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">shaft-bom</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">10.2.20260620</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">type</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">pom</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">type</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">scope</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">import</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">scope</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependencies</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependencyManagement</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependencies</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">io.github.shafthq</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">shaft-engine</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependencies</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-join-the-conversation">💬 Join the Conversation<a href="https://shafthq.github.io/blog/release-10.2.20260620#-join-the-conversation" class="hash-link" aria-label="Direct link to 💬 Join the Conversation" title="Direct link to 💬 Join the Conversation" translate="no">​</a></h2>
<p>We'd love to hear what you think! Found a bug? Have an idea? Just want to say hi?</p>
<ul>
<li class="">⭐ <a href="https://github.com/ShaftHQ/SHAFT_ENGINE" target="_blank" rel="noopener noreferrer" class="">Star SHAFT on GitHub</a> — it helps more than you think</li>
<li class="">💡 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/discussions" target="_blank" rel="noopener noreferrer" class="">Start a Discussion</a> — share feedback or ideas</li>
<li class="">🐛 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/issues/new" target="_blank" rel="noopener noreferrer" class="">Report an Issue</a> — help us squash bugs faster</li>
<li class="">📖 <a href="https://shafthq.github.io/docs/start/overview" target="_blank" rel="noopener noreferrer" class="">Read the Docs</a> — dive deeper into SHAFT</li>
</ul>
<p>Thanks for being part of the SHAFT journey. Until the next release — happy testing! 🎯</p>]]></content>
        <author>
            <name>AutoBot</name>
            <uri>https://github.com/ShaftHQ/SHAFT_ENGINE</uri>
        </author>
        <category label="shaft_engine" term="shaft_engine"/>
        <category label="release" term="release"/>
        <category label="changelog" term="changelog"/>
        <category label="test-automation" term="test-automation"/>
        <category label="open-source" term="open-source"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[🚀 SHAFT 10.2.20260618: What's New and Why You Should Upgrade Today]]></title>
        <id>https://shafthq.github.io/blog/release-10.2.20260618</id>
        <link href="https://shafthq.github.io/blog/release-10.2.20260618"/>
        <updated>2026-06-18T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Hey there, SHAFT community! 👋]]></summary>
        <content type="html"><![CDATA[<p>Hey there, SHAFT community! 👋</p>
<p>A fresh release just dropped and it's packed with improvements you don't want to miss. <strong>SHAFT 10.2.20260618</strong> is here, and whether you're a seasoned SHAFT user or just getting started, there's something in this release for you.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-what-changed">⚡ What Changed?<a href="https://shafthq.github.io/blog/release-10.2.20260618#-what-changed" class="hash-link" aria-label="Direct link to ⚡ What Changed?" title="Direct link to ⚡ What Changed?" translate="no">​</a></h2>
<ul>
<li class="">Auto-generated release notes are included below. Users upgrading from</li>
<li class="">SHAFTENGINE should read the</li>
<li class="">modular SHAFT upgrade guide.</li>
<li class="">SHAFT Pilot adds deterministic Capture, TestNG generation, Doctor diagnosis,</li>
<li class="">reviewed repair proposals, and MCP interoperability. AI is optional, disabled</li>
</ul>
<p>👉 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/releases/tag/10.2.20260618" target="_blank" rel="noopener noreferrer" class="">View the full release on GitHub</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-changelog">📋 Changelog<a href="https://shafthq.github.io/blog/release-10.2.20260618#-changelog" class="hash-link" aria-label="Direct link to 📋 Changelog" title="Direct link to 📋 Changelog" translate="no">​</a></h2>
<h1>SHAFT 10.2.20260618</h1>
<p>Auto-generated release notes are included below. Users upgrading from
<code>SHAFT_ENGINE</code> should read the
<a href="https://shafthq.github.io/docs/start/upgrade" target="_blank" rel="noopener noreferrer" class="">modular SHAFT upgrade guide</a>.</p>
<p>SHAFT Pilot adds deterministic Capture, TestNG generation, Doctor diagnosis,
reviewed repair proposals, and MCP interoperability. AI is optional, disabled
by default, and direct OpenAI, Anthropic, Gemini, or Ollama access requires
explicit enablement and consent. Microsoft/GitHub Copilot integrates through
MCP rather than a generic provider API-key adapter.</p>
<p>See the <a href="https://shafthq.github.io/docs/agentic/pilot" target="_blank" rel="noopener noreferrer" class="">SHAFT Pilot guide</a>
for installation, configuration, privacy, troubleshooting, and usage examples.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-changed">What's Changed<a href="https://shafthq.github.io/blog/release-10.2.20260618#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed" translate="no">​</a></h2>
<ul>
<li class="">[codex] Optimize Maven Central artifacts by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2925" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2925</a></li>
<li class="">fix(visuals): restore element-highlight screenshots on native mobile (flatten alpha before JPEG encode) by @MustafaAgamy in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2929" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2929</a></li>
<li class="">[codex] Lean assertion Allure reporting by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2935" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2935</a></li>
<li class="">[codex] Optimize animated GIF generation by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2934" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2934</a></li>
<li class="">[codex] release 10.2.20260618 by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2936" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2936</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.2.20260617...10.2.20260618" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.2.20260617...10.2.20260618</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-community-spotlight">🏆 Community Spotlight<a href="https://shafthq.github.io/blog/release-10.2.20260618#-community-spotlight" class="hash-link" aria-label="Direct link to 🏆 Community Spotlight" title="Direct link to 🏆 Community Spotlight" translate="no">​</a></h2>
<p>This release was made possible by <strong>45 amazing contributors</strong> who have poured their time and expertise into making SHAFT better for everyone.</p>
<p>Open source thrives because of people like these. Every bug fix, every feature, every review — it all counts.</p>
<ul>
<li class=""><img src="https://github.com/MohabMohie.png" width="32" height="32" alt="@MohabMohie"> <a href="https://github.com/MohabMohie" target="_blank" rel="noopener noreferrer" class="">@MohabMohie</a></li>
<li class=""><img src="https://github.com/MahmoudElSharkawy.png" width="32" height="32" alt="@MahmoudElSharkawy"> <a href="https://github.com/MahmoudElSharkawy" target="_blank" rel="noopener noreferrer" class="">@MahmoudElSharkawy</a></li>
<li class=""><img src="https://github.com/MennaMagedm.png" width="32" height="32" alt="@MennaMagedm"> <a href="https://github.com/MennaMagedm" target="_blank" rel="noopener noreferrer" class="">@MennaMagedm</a></li>
<li class=""><img src="https://github.com/AhmdZanoon.png" width="32" height="32" alt="@AhmdZanoon"> <a href="https://github.com/AhmdZanoon" target="_blank" rel="noopener noreferrer" class="">@AhmdZanoon</a></li>
<li class=""><img src="https://github.com/MustafaAgamy.png" width="32" height="32" alt="@MustafaAgamy"> <a href="https://github.com/MustafaAgamy" target="_blank" rel="noopener noreferrer" class="">@MustafaAgamy</a></li>
<li class=""><img src="https://github.com/magdyheiba.png" width="32" height="32" alt="@magdyheiba"> <a href="https://github.com/magdyheiba" target="_blank" rel="noopener noreferrer" class="">@magdyheiba</a></li>
<li class=""><img src="https://github.com/Mochxd.png" width="32" height="32" alt="@Mochxd"> <a href="https://github.com/Mochxd" target="_blank" rel="noopener noreferrer" class="">@Mochxd</a></li>
<li class=""><img src="https://github.com/KyrillosNageh.png" width="32" height="32" alt="@KyrillosNageh"> <a href="https://github.com/KyrillosNageh" target="_blank" rel="noopener noreferrer" class="">@KyrillosNageh</a></li>
<li class=""><img src="https://github.com/amfarid.png" width="32" height="32" alt="@amfarid"> <a href="https://github.com/amfarid" target="_blank" rel="noopener noreferrer" class="">@amfarid</a></li>
<li class=""><img src="https://github.com/Mohab-Osama.png" width="32" height="32" alt="@Mohab-Osama"> <a href="https://github.com/Mohab-Osama" target="_blank" rel="noopener noreferrer" class="">@Mohab-Osama</a></li>
<li class=""><img src="https://github.com/RihamMostafa.png" width="32" height="32" alt="@RihamMostafa"> <a href="https://github.com/RihamMostafa" target="_blank" rel="noopener noreferrer" class="">@RihamMostafa</a></li>
<li class=""><img src="https://github.com/MhmdElGazzar.png" width="32" height="32" alt="@MhmdElGazzar"> <a href="https://github.com/MhmdElGazzar" target="_blank" rel="noopener noreferrer" class="">@MhmdElGazzar</a></li>
<li class=""><img src="https://github.com/MohamedHazem95.png" width="32" height="32" alt="@MohamedHazem95"> <a href="https://github.com/MohamedHazem95" target="_blank" rel="noopener noreferrer" class="">@MohamedHazem95</a></li>
<li class=""><img src="https://github.com/mohamedtawfek05354.png" width="32" height="32" alt="@mohamedtawfek05354"> <a href="https://github.com/mohamedtawfek05354" target="_blank" rel="noopener noreferrer" class="">@mohamedtawfek05354</a></li>
<li class=""><img src="https://github.com/samiir95.png" width="32" height="32" alt="@samiir95"> <a href="https://github.com/samiir95" target="_blank" rel="noopener noreferrer" class="">@samiir95</a></li>
<li class=""><img src="https://github.com/MamdouhMansour.png" width="32" height="32" alt="@MamdouhMansour"> <a href="https://github.com/MamdouhMansour" target="_blank" rel="noopener noreferrer" class="">@MamdouhMansour</a></li>
<li class=""><img src="https://github.com/Kinasr.png" width="32" height="32" alt="@Kinasr"> <a href="https://github.com/Kinasr" target="_blank" rel="noopener noreferrer" class="">@Kinasr</a></li>
<li class=""><img src="https://github.com/MahmoudMabrok.png" width="32" height="32" alt="@MahmoudMabrok"> <a href="https://github.com/MahmoudMabrok" target="_blank" rel="noopener noreferrer" class="">@MahmoudMabrok</a></li>
<li class=""><img src="https://github.com/hammad101088.png" width="32" height="32" alt="@hammad101088"> <a href="https://github.com/hammad101088" target="_blank" rel="noopener noreferrer" class="">@hammad101088</a></li>
<li class=""><img src="https://github.com/ieZaky.png" width="32" height="32" alt="@ieZaky"> <a href="https://github.com/ieZaky" target="_blank" rel="noopener noreferrer" class="">@ieZaky</a></li>
<li class=""><img src="https://github.com/sys123-data.png" width="32" height="32" alt="@sys123-data"> <a href="https://github.com/sys123-data" target="_blank" rel="noopener noreferrer" class="">@sys123-data</a></li>
<li class=""><img src="https://github.com/georgii-musikhin.png" width="32" height="32" alt="@georgii-musikhin"> <a href="https://github.com/georgii-musikhin" target="_blank" rel="noopener noreferrer" class="">@georgii-musikhin</a></li>
<li class=""><img src="https://github.com/hjsblogger.png" width="32" height="32" alt="@hjsblogger"> <a href="https://github.com/hjsblogger" target="_blank" rel="noopener noreferrer" class="">@hjsblogger</a></li>
<li class=""><img src="https://github.com/xValenciax.png" width="32" height="32" alt="@xValenciax"> <a href="https://github.com/xValenciax" target="_blank" rel="noopener noreferrer" class="">@xValenciax</a></li>
<li class=""><img src="https://github.com/MarwaYoussef1.png" width="32" height="32" alt="@MarwaYoussef1"> <a href="https://github.com/MarwaYoussef1" target="_blank" rel="noopener noreferrer" class="">@MarwaYoussef1</a></li>
<li class=""><img src="https://github.com/sultanpaymob.png" width="32" height="32" alt="@sultanpaymob"> <a href="https://github.com/sultanpaymob" target="_blank" rel="noopener noreferrer" class="">@sultanpaymob</a></li>
<li class=""><img src="https://github.com/osamaayman1005.png" width="32" height="32" alt="@osamaayman1005"> <a href="https://github.com/osamaayman1005" target="_blank" rel="noopener noreferrer" class="">@osamaayman1005</a></li>
<li class=""><img src="https://github.com/Salma2018170.png" width="32" height="32" alt="@Salma2018170"> <a href="https://github.com/Salma2018170" target="_blank" rel="noopener noreferrer" class="">@Salma2018170</a></li>
<li class=""><img src="https://github.com/TarekGaafar.png" width="32" height="32" alt="@TarekGaafar"> <a href="https://github.com/TarekGaafar" target="_blank" rel="noopener noreferrer" class="">@TarekGaafar</a></li>
<li class=""><img src="https://github.com/Waleedmohammed.png" width="32" height="32" alt="@Waleedmohammed"> <a href="https://github.com/Waleedmohammed" target="_blank" rel="noopener noreferrer" class="">@Waleedmohammed</a></li>
<li class=""><img src="https://github.com/khaledskhamis.png" width="32" height="32" alt="@khaledskhamis"> <a href="https://github.com/khaledskhamis" target="_blank" rel="noopener noreferrer" class="">@khaledskhamis</a></li>
<li class=""><img src="https://github.com/themosaeed.png" width="32" height="32" alt="@themosaeed"> <a href="https://github.com/themosaeed" target="_blank" rel="noopener noreferrer" class="">@themosaeed</a></li>
<li class=""><img src="https://github.com/wesamhamed.png" width="32" height="32" alt="@wesamhamed"> <a href="https://github.com/wesamhamed" target="_blank" rel="noopener noreferrer" class="">@wesamhamed</a></li>
<li class=""><img src="https://github.com/DavidIshakGorgy.png" width="32" height="32" alt="@DavidIshakGorgy"> <a href="https://github.com/DavidIshakGorgy" target="_blank" rel="noopener noreferrer" class="">@DavidIshakGorgy</a></li>
<li class=""><img src="https://github.com/BojteTamas.png" width="32" height="32" alt="@BojteTamas"> <a href="https://github.com/BojteTamas" target="_blank" rel="noopener noreferrer" class="">@BojteTamas</a></li>
<li class=""><img src="https://github.com/blacelle.png" width="32" height="32" alt="@blacelle"> <a href="https://github.com/blacelle" target="_blank" rel="noopener noreferrer" class="">@blacelle</a></li>
<li class=""><img src="https://github.com/Ayanasrallah.png" width="32" height="32" alt="@Ayanasrallah"> <a href="https://github.com/Ayanasrallah" target="_blank" rel="noopener noreferrer" class="">@Ayanasrallah</a></li>
<li class=""><img src="https://github.com/AmrAdelElkholy.png" width="32" height="32" alt="@AmrAdelElkholy"> <a href="https://github.com/AmrAdelElkholy" target="_blank" rel="noopener noreferrer" class="">@AmrAdelElkholy</a></li>
<li class=""><img src="https://github.com/amlosman.png" width="32" height="32" alt="@amlosman"> <a href="https://github.com/amlosman" target="_blank" rel="noopener noreferrer" class="">@amlosman</a></li>
<li class=""><img src="https://github.com/ahmednasr95.png" width="32" height="32" alt="@ahmednasr95"> <a href="https://github.com/ahmednasr95" target="_blank" rel="noopener noreferrer" class="">@ahmednasr95</a></li>
<li class=""><img src="https://github.com/ahmed-madyan.png" width="32" height="32" alt="@ahmed-madyan"> <a href="https://github.com/ahmed-madyan" target="_blank" rel="noopener noreferrer" class="">@ahmed-madyan</a></li>
<li class=""><img src="https://github.com/AhmedHelalyy.png" width="32" height="32" alt="@AhmedHelalyy"> <a href="https://github.com/AhmedHelalyy" target="_blank" rel="noopener noreferrer" class="">@AhmedHelalyy</a></li>
<li class=""><img src="https://github.com/A-Alii.png" width="32" height="32" alt="@A-Alii"> <a href="https://github.com/A-Alii" target="_blank" rel="noopener noreferrer" class="">@A-Alii</a></li>
<li class=""><img src="https://github.com/AbdelrahmanFahd.png" width="32" height="32" alt="@AbdelrahmanFahd"> <a href="https://github.com/AbdelrahmanFahd" target="_blank" rel="noopener noreferrer" class="">@AbdelrahmanFahd</a></li>
<li class=""><img src="https://github.com/Abdelrhman-Ellithy.png" width="32" height="32" alt="@Abdelrhman-Ellithy"> <a href="https://github.com/Abdelrhman-Ellithy" target="_blank" rel="noopener noreferrer" class="">@Abdelrhman-Ellithy</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-get-started-in-seconds">🚀 Get Started in Seconds<a href="https://shafthq.github.io/blog/release-10.2.20260618#-get-started-in-seconds" class="hash-link" aria-label="Direct link to 🚀 Get Started in Seconds" title="Direct link to 🚀 Get Started in Seconds" translate="no">​</a></h2>
<p>Import the SHAFT BOM once, then use the modular engine:</p>
<div class="language-xml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-xml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependencyManagement</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependencies</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">io.github.shafthq</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">shaft-bom</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">10.2.20260618</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">type</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">pom</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">type</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">scope</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">import</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">scope</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependencies</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependencyManagement</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependencies</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">io.github.shafthq</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">shaft-engine</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependencies</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-join-the-conversation">💬 Join the Conversation<a href="https://shafthq.github.io/blog/release-10.2.20260618#-join-the-conversation" class="hash-link" aria-label="Direct link to 💬 Join the Conversation" title="Direct link to 💬 Join the Conversation" translate="no">​</a></h2>
<p>We'd love to hear what you think! Found a bug? Have an idea? Just want to say hi?</p>
<ul>
<li class="">⭐ <a href="https://github.com/ShaftHQ/SHAFT_ENGINE" target="_blank" rel="noopener noreferrer" class="">Star SHAFT on GitHub</a> — it helps more than you think</li>
<li class="">💡 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/discussions" target="_blank" rel="noopener noreferrer" class="">Start a Discussion</a> — share feedback or ideas</li>
<li class="">🐛 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/issues/new" target="_blank" rel="noopener noreferrer" class="">Report an Issue</a> — help us squash bugs faster</li>
<li class="">📖 <a href="https://shafthq.github.io/docs/start/overview" target="_blank" rel="noopener noreferrer" class="">Read the Docs</a> — dive deeper into SHAFT</li>
</ul>
<p>Thanks for being part of the SHAFT journey. Until the next release — happy testing! 🎯</p>]]></content>
        <author>
            <name>AutoBot</name>
            <uri>https://github.com/ShaftHQ/SHAFT_ENGINE</uri>
        </author>
        <category label="shaft_engine" term="shaft_engine"/>
        <category label="release" term="release"/>
        <category label="changelog" term="changelog"/>
        <category label="test-automation" term="test-automation"/>
        <category label="open-source" term="open-source"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[🚀 SHAFT 10.2.20260617: What's New and Why You Should Upgrade Today]]></title>
        <id>https://shafthq.github.io/blog/release-10.2.20260617</id>
        <link href="https://shafthq.github.io/blog/release-10.2.20260617"/>
        <updated>2026-06-17T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Hey there, SHAFT community! 👋]]></summary>
        <content type="html"><![CDATA[<p>Hey there, SHAFT community! 👋</p>
<p>A fresh release just dropped and it's packed with improvements you don't want to miss. <strong>SHAFT 10.2.20260617</strong> is here, and whether you're a seasoned SHAFT user or just getting started, there's something in this release for you.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-what-changed">⚡ What Changed?<a href="https://shafthq.github.io/blog/release-10.2.20260617#-what-changed" class="hash-link" aria-label="Direct link to ⚡ What Changed?" title="Direct link to ⚡ What Changed?" translate="no">​</a></h2>
<ul>
<li class="">Auto-generated release notes are included below. Users upgrading from</li>
<li class="">SHAFTENGINE should read the</li>
<li class="">modular SHAFT upgrade guide.</li>
<li class="">SHAFT Pilot adds deterministic Capture, TestNG generation, Doctor diagnosis,</li>
<li class="">reviewed repair proposals, and MCP interoperability. AI is optional, disabled</li>
</ul>
<p>👉 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/releases/tag/10.2.20260617" target="_blank" rel="noopener noreferrer" class="">View the full release on GitHub</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-changelog">📋 Changelog<a href="https://shafthq.github.io/blog/release-10.2.20260617#-changelog" class="hash-link" aria-label="Direct link to 📋 Changelog" title="Direct link to 📋 Changelog" translate="no">​</a></h2>
<h1>SHAFT 10.2.20260617</h1>
<p>Auto-generated release notes are included below. Users upgrading from
<code>SHAFT_ENGINE</code> should read the
<a href="https://shafthq.github.io/docs/start/upgrade" target="_blank" rel="noopener noreferrer" class="">modular SHAFT upgrade guide</a>.</p>
<p>SHAFT Pilot adds deterministic Capture, TestNG generation, Doctor diagnosis,
reviewed repair proposals, and MCP interoperability. AI is optional, disabled
by default, and direct OpenAI, Anthropic, Gemini, or Ollama access requires
explicit enablement and consent. Microsoft/GitHub Copilot integrates through
MCP rather than a generic provider API-key adapter.</p>
<p>See the <a href="https://shafthq.github.io/docs/agentic/pilot" target="_blank" rel="noopener noreferrer" class="">SHAFT Pilot guide</a>
for installation, configuration, privacy, troubleshooting, and usage examples.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-changed">What's Changed<a href="https://shafthq.github.io/blog/release-10.2.20260617#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed" translate="no">​</a></h2>
<ul>
<li class="">[codex] add local shaft-mcp installer by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2902" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2902</a></li>
<li class="">[codex] optimize agent guidance and repository memory by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2903" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2903</a></li>
<li class="">Complete SHAFT Heal hardening by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2904" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2904</a></li>
<li class="">[codex] Complete SHAFT MCP AI and mobile support by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2905" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2905</a></li>
<li class="">[codex] Optimize GitHub Actions workflows by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2906" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2906</a></li>
<li class="">[codex] Add trust-gated natural actions and healing reports by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2908" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2908</a></li>
<li class="">[codex] Add standalone MCP installer bootstraps by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2909" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2909</a></li>
<li class="">Move MCP installation into standalone scripts by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2911" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2911</a></li>
<li class="">[codex] Fix shaft-mcp runtime paths by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2912" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2912</a></li>
<li class="">[codex] Optimize SHAFT performance hot paths by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2913" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2913</a></li>
<li class="">Improve browser session initialization diagnostics and CI performance by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2914" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2914</a></li>
<li class="">Fix E2E test stability by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2915" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2915</a></li>
<li class="">[codex] Enforce JaCoCo uploads for test workflows by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2916" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2916</a></li>
<li class="">[codex] Refresh engine logging and full log attachments by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2917" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2917</a></li>
<li class="">redact sensitive values in terminal command logs by @Mochxd in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2918" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2918</a></li>
<li class="">Add verbose streaming for reusable remote SSH terminals by @Mochxd in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2919" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2919</a></li>
<li class="">[codex] release 10.2.20260617 by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2922" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2922</a></li>
<li class="">[codex] Track shared Memory and Graphify assets by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2923" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2923</a></li>
<li class="">[codex] Remove custom realtime reporter by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2924" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2924</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.2.20260615...10.2.20260617" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.2.20260615...10.2.20260617</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-community-spotlight">🏆 Community Spotlight<a href="https://shafthq.github.io/blog/release-10.2.20260617#-community-spotlight" class="hash-link" aria-label="Direct link to 🏆 Community Spotlight" title="Direct link to 🏆 Community Spotlight" translate="no">​</a></h2>
<p>This release was made possible by <strong>45 amazing contributors</strong> who have poured their time and expertise into making SHAFT better for everyone.</p>
<p>Open source thrives because of people like these. Every bug fix, every feature, every review — it all counts.</p>
<ul>
<li class=""><img src="https://github.com/MohabMohie.png" width="32" height="32" alt="@MohabMohie"> <a href="https://github.com/MohabMohie" target="_blank" rel="noopener noreferrer" class="">@MohabMohie</a></li>
<li class=""><img src="https://github.com/MahmoudElSharkawy.png" width="32" height="32" alt="@MahmoudElSharkawy"> <a href="https://github.com/MahmoudElSharkawy" target="_blank" rel="noopener noreferrer" class="">@MahmoudElSharkawy</a></li>
<li class=""><img src="https://github.com/MennaMagedm.png" width="32" height="32" alt="@MennaMagedm"> <a href="https://github.com/MennaMagedm" target="_blank" rel="noopener noreferrer" class="">@MennaMagedm</a></li>
<li class=""><img src="https://github.com/AhmdZanoon.png" width="32" height="32" alt="@AhmdZanoon"> <a href="https://github.com/AhmdZanoon" target="_blank" rel="noopener noreferrer" class="">@AhmdZanoon</a></li>
<li class=""><img src="https://github.com/MustafaAgamy.png" width="32" height="32" alt="@MustafaAgamy"> <a href="https://github.com/MustafaAgamy" target="_blank" rel="noopener noreferrer" class="">@MustafaAgamy</a></li>
<li class=""><img src="https://github.com/magdyheiba.png" width="32" height="32" alt="@magdyheiba"> <a href="https://github.com/magdyheiba" target="_blank" rel="noopener noreferrer" class="">@magdyheiba</a></li>
<li class=""><img src="https://github.com/Mochxd.png" width="32" height="32" alt="@Mochxd"> <a href="https://github.com/Mochxd" target="_blank" rel="noopener noreferrer" class="">@Mochxd</a></li>
<li class=""><img src="https://github.com/KyrillosNageh.png" width="32" height="32" alt="@KyrillosNageh"> <a href="https://github.com/KyrillosNageh" target="_blank" rel="noopener noreferrer" class="">@KyrillosNageh</a></li>
<li class=""><img src="https://github.com/amfarid.png" width="32" height="32" alt="@amfarid"> <a href="https://github.com/amfarid" target="_blank" rel="noopener noreferrer" class="">@amfarid</a></li>
<li class=""><img src="https://github.com/Mohab-Osama.png" width="32" height="32" alt="@Mohab-Osama"> <a href="https://github.com/Mohab-Osama" target="_blank" rel="noopener noreferrer" class="">@Mohab-Osama</a></li>
<li class=""><img src="https://github.com/RihamMostafa.png" width="32" height="32" alt="@RihamMostafa"> <a href="https://github.com/RihamMostafa" target="_blank" rel="noopener noreferrer" class="">@RihamMostafa</a></li>
<li class=""><img src="https://github.com/MhmdElGazzar.png" width="32" height="32" alt="@MhmdElGazzar"> <a href="https://github.com/MhmdElGazzar" target="_blank" rel="noopener noreferrer" class="">@MhmdElGazzar</a></li>
<li class=""><img src="https://github.com/MohamedHazem95.png" width="32" height="32" alt="@MohamedHazem95"> <a href="https://github.com/MohamedHazem95" target="_blank" rel="noopener noreferrer" class="">@MohamedHazem95</a></li>
<li class=""><img src="https://github.com/mohamedtawfek05354.png" width="32" height="32" alt="@mohamedtawfek05354"> <a href="https://github.com/mohamedtawfek05354" target="_blank" rel="noopener noreferrer" class="">@mohamedtawfek05354</a></li>
<li class=""><img src="https://github.com/samiir95.png" width="32" height="32" alt="@samiir95"> <a href="https://github.com/samiir95" target="_blank" rel="noopener noreferrer" class="">@samiir95</a></li>
<li class=""><img src="https://github.com/MamdouhMansour.png" width="32" height="32" alt="@MamdouhMansour"> <a href="https://github.com/MamdouhMansour" target="_blank" rel="noopener noreferrer" class="">@MamdouhMansour</a></li>
<li class=""><img src="https://github.com/Kinasr.png" width="32" height="32" alt="@Kinasr"> <a href="https://github.com/Kinasr" target="_blank" rel="noopener noreferrer" class="">@Kinasr</a></li>
<li class=""><img src="https://github.com/MahmoudMabrok.png" width="32" height="32" alt="@MahmoudMabrok"> <a href="https://github.com/MahmoudMabrok" target="_blank" rel="noopener noreferrer" class="">@MahmoudMabrok</a></li>
<li class=""><img src="https://github.com/hammad101088.png" width="32" height="32" alt="@hammad101088"> <a href="https://github.com/hammad101088" target="_blank" rel="noopener noreferrer" class="">@hammad101088</a></li>
<li class=""><img src="https://github.com/ieZaky.png" width="32" height="32" alt="@ieZaky"> <a href="https://github.com/ieZaky" target="_blank" rel="noopener noreferrer" class="">@ieZaky</a></li>
<li class=""><img src="https://github.com/sys123-data.png" width="32" height="32" alt="@sys123-data"> <a href="https://github.com/sys123-data" target="_blank" rel="noopener noreferrer" class="">@sys123-data</a></li>
<li class=""><img src="https://github.com/georgii-musikhin.png" width="32" height="32" alt="@georgii-musikhin"> <a href="https://github.com/georgii-musikhin" target="_blank" rel="noopener noreferrer" class="">@georgii-musikhin</a></li>
<li class=""><img src="https://github.com/hjsblogger.png" width="32" height="32" alt="@hjsblogger"> <a href="https://github.com/hjsblogger" target="_blank" rel="noopener noreferrer" class="">@hjsblogger</a></li>
<li class=""><img src="https://github.com/xValenciax.png" width="32" height="32" alt="@xValenciax"> <a href="https://github.com/xValenciax" target="_blank" rel="noopener noreferrer" class="">@xValenciax</a></li>
<li class=""><img src="https://github.com/MarwaYoussef1.png" width="32" height="32" alt="@MarwaYoussef1"> <a href="https://github.com/MarwaYoussef1" target="_blank" rel="noopener noreferrer" class="">@MarwaYoussef1</a></li>
<li class=""><img src="https://github.com/sultanpaymob.png" width="32" height="32" alt="@sultanpaymob"> <a href="https://github.com/sultanpaymob" target="_blank" rel="noopener noreferrer" class="">@sultanpaymob</a></li>
<li class=""><img src="https://github.com/osamaayman1005.png" width="32" height="32" alt="@osamaayman1005"> <a href="https://github.com/osamaayman1005" target="_blank" rel="noopener noreferrer" class="">@osamaayman1005</a></li>
<li class=""><img src="https://github.com/Salma2018170.png" width="32" height="32" alt="@Salma2018170"> <a href="https://github.com/Salma2018170" target="_blank" rel="noopener noreferrer" class="">@Salma2018170</a></li>
<li class=""><img src="https://github.com/TarekGaafar.png" width="32" height="32" alt="@TarekGaafar"> <a href="https://github.com/TarekGaafar" target="_blank" rel="noopener noreferrer" class="">@TarekGaafar</a></li>
<li class=""><img src="https://github.com/Waleedmohammed.png" width="32" height="32" alt="@Waleedmohammed"> <a href="https://github.com/Waleedmohammed" target="_blank" rel="noopener noreferrer" class="">@Waleedmohammed</a></li>
<li class=""><img src="https://github.com/khaledskhamis.png" width="32" height="32" alt="@khaledskhamis"> <a href="https://github.com/khaledskhamis" target="_blank" rel="noopener noreferrer" class="">@khaledskhamis</a></li>
<li class=""><img src="https://github.com/themosaeed.png" width="32" height="32" alt="@themosaeed"> <a href="https://github.com/themosaeed" target="_blank" rel="noopener noreferrer" class="">@themosaeed</a></li>
<li class=""><img src="https://github.com/wesamhamed.png" width="32" height="32" alt="@wesamhamed"> <a href="https://github.com/wesamhamed" target="_blank" rel="noopener noreferrer" class="">@wesamhamed</a></li>
<li class=""><img src="https://github.com/DavidIshakGorgy.png" width="32" height="32" alt="@DavidIshakGorgy"> <a href="https://github.com/DavidIshakGorgy" target="_blank" rel="noopener noreferrer" class="">@DavidIshakGorgy</a></li>
<li class=""><img src="https://github.com/BojteTamas.png" width="32" height="32" alt="@BojteTamas"> <a href="https://github.com/BojteTamas" target="_blank" rel="noopener noreferrer" class="">@BojteTamas</a></li>
<li class=""><img src="https://github.com/blacelle.png" width="32" height="32" alt="@blacelle"> <a href="https://github.com/blacelle" target="_blank" rel="noopener noreferrer" class="">@blacelle</a></li>
<li class=""><img src="https://github.com/Ayanasrallah.png" width="32" height="32" alt="@Ayanasrallah"> <a href="https://github.com/Ayanasrallah" target="_blank" rel="noopener noreferrer" class="">@Ayanasrallah</a></li>
<li class=""><img src="https://github.com/AmrAdelElkholy.png" width="32" height="32" alt="@AmrAdelElkholy"> <a href="https://github.com/AmrAdelElkholy" target="_blank" rel="noopener noreferrer" class="">@AmrAdelElkholy</a></li>
<li class=""><img src="https://github.com/amlosman.png" width="32" height="32" alt="@amlosman"> <a href="https://github.com/amlosman" target="_blank" rel="noopener noreferrer" class="">@amlosman</a></li>
<li class=""><img src="https://github.com/ahmednasr95.png" width="32" height="32" alt="@ahmednasr95"> <a href="https://github.com/ahmednasr95" target="_blank" rel="noopener noreferrer" class="">@ahmednasr95</a></li>
<li class=""><img src="https://github.com/ahmed-madyan.png" width="32" height="32" alt="@ahmed-madyan"> <a href="https://github.com/ahmed-madyan" target="_blank" rel="noopener noreferrer" class="">@ahmed-madyan</a></li>
<li class=""><img src="https://github.com/AhmedHelalyy.png" width="32" height="32" alt="@AhmedHelalyy"> <a href="https://github.com/AhmedHelalyy" target="_blank" rel="noopener noreferrer" class="">@AhmedHelalyy</a></li>
<li class=""><img src="https://github.com/A-Alii.png" width="32" height="32" alt="@A-Alii"> <a href="https://github.com/A-Alii" target="_blank" rel="noopener noreferrer" class="">@A-Alii</a></li>
<li class=""><img src="https://github.com/AbdelrahmanFahd.png" width="32" height="32" alt="@AbdelrahmanFahd"> <a href="https://github.com/AbdelrahmanFahd" target="_blank" rel="noopener noreferrer" class="">@AbdelrahmanFahd</a></li>
<li class=""><img src="https://github.com/Abdelrhman-Ellithy.png" width="32" height="32" alt="@Abdelrhman-Ellithy"> <a href="https://github.com/Abdelrhman-Ellithy" target="_blank" rel="noopener noreferrer" class="">@Abdelrhman-Ellithy</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-get-started-in-seconds">🚀 Get Started in Seconds<a href="https://shafthq.github.io/blog/release-10.2.20260617#-get-started-in-seconds" class="hash-link" aria-label="Direct link to 🚀 Get Started in Seconds" title="Direct link to 🚀 Get Started in Seconds" translate="no">​</a></h2>
<p>Import the SHAFT BOM once, then use the modular engine:</p>
<div class="language-xml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-xml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependencyManagement</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependencies</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">io.github.shafthq</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">shaft-bom</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">10.2.20260617</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">type</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">pom</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">type</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">scope</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">import</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">scope</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependencies</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependencyManagement</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependencies</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">io.github.shafthq</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">shaft-engine</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependencies</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-join-the-conversation">💬 Join the Conversation<a href="https://shafthq.github.io/blog/release-10.2.20260617#-join-the-conversation" class="hash-link" aria-label="Direct link to 💬 Join the Conversation" title="Direct link to 💬 Join the Conversation" translate="no">​</a></h2>
<p>We'd love to hear what you think! Found a bug? Have an idea? Just want to say hi?</p>
<ul>
<li class="">⭐ <a href="https://github.com/ShaftHQ/SHAFT_ENGINE" target="_blank" rel="noopener noreferrer" class="">Star SHAFT on GitHub</a> — it helps more than you think</li>
<li class="">💡 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/discussions" target="_blank" rel="noopener noreferrer" class="">Start a Discussion</a> — share feedback or ideas</li>
<li class="">🐛 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/issues/new" target="_blank" rel="noopener noreferrer" class="">Report an Issue</a> — help us squash bugs faster</li>
<li class="">📖 <a href="https://shafthq.github.io/docs/start/overview" target="_blank" rel="noopener noreferrer" class="">Read the Docs</a> — dive deeper into SHAFT</li>
</ul>
<p>Thanks for being part of the SHAFT journey. Until the next release — happy testing! 🎯</p>]]></content>
        <author>
            <name>AutoBot</name>
            <uri>https://github.com/ShaftHQ/SHAFT_ENGINE</uri>
        </author>
        <category label="shaft_engine" term="shaft_engine"/>
        <category label="release" term="release"/>
        <category label="changelog" term="changelog"/>
        <category label="test-automation" term="test-automation"/>
        <category label="open-source" term="open-source"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[🚀 SHAFT 10.2.20260615: What's New and Why You Should Upgrade Today]]></title>
        <id>https://shafthq.github.io/blog/release-10.2.20260615</id>
        <link href="https://shafthq.github.io/blog/release-10.2.20260615"/>
        <updated>2026-06-15T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Hey there, SHAFT community! 👋]]></summary>
        <content type="html"><![CDATA[<p>Hey there, SHAFT community! 👋</p>
<p>A fresh release just dropped and it's packed with improvements you don't want to miss. <strong>SHAFT 10.2.20260615</strong> is here, and whether you're a seasoned SHAFT user or just getting started, there's something in this release for you.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-what-changed">⚡ What Changed?<a href="https://shafthq.github.io/blog/release-10.2.20260615#-what-changed" class="hash-link" aria-label="Direct link to ⚡ What Changed?" title="Direct link to ⚡ What Changed?" translate="no">​</a></h2>
<ul>
<li class="">Auto-generated release notes are included below. Users upgrading from</li>
<li class="">SHAFTENGINE should read the</li>
<li class="">modular SHAFT upgrade guide.</li>
<li class="">SHAFT Pilot adds deterministic Capture, TestNG generation, Doctor diagnosis,</li>
<li class="">reviewed repair proposals, and MCP interoperability. AI is optional, disabled</li>
</ul>
<p>👉 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/releases/tag/10.2.20260615" target="_blank" rel="noopener noreferrer" class="">View the full release on GitHub</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-changelog">📋 Changelog<a href="https://shafthq.github.io/blog/release-10.2.20260615#-changelog" class="hash-link" aria-label="Direct link to 📋 Changelog" title="Direct link to 📋 Changelog" translate="no">​</a></h2>
<h1>SHAFT 10.2.20260615</h1>
<p>Auto-generated release notes are included below. Users upgrading from
<code>SHAFT_ENGINE</code> should read the
<a href="https://shafthq.github.io/docs/start/upgrade" target="_blank" rel="noopener noreferrer" class="">modular SHAFT upgrade guide</a>.</p>
<p>SHAFT Pilot adds deterministic Capture, TestNG generation, Doctor diagnosis,
reviewed repair proposals, and MCP interoperability. AI is optional, disabled
by default, and direct OpenAI, Anthropic, Gemini, or Ollama access requires
explicit enablement and consent. Microsoft/GitHub Copilot integrates through
MCP rather than a generic provider API-key adapter.</p>
<p>See the <a href="https://shafthq.github.io/docs/agentic/pilot" target="_blank" rel="noopener noreferrer" class="">SHAFT Pilot guide</a>
for installation, configuration, privacy, troubleshooting, and usage examples.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-changed">What's Changed<a href="https://shafthq.github.io/blog/release-10.2.20260615#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed" translate="no">​</a></h2>
<ul>
<li class="">[codex] Rename SHAFT MCP module to shaft-mcp by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2898" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2898</a></li>
<li class="">build: keep dependency updates and restore shaft-mcp runtime images by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2900" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2900</a></li>
<li class="">add command environment variables to remote terminal by @Mochxd in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2899" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2899</a></li>
<li class="">[codex] release 10.2.20260615 by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2901" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2901</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.2.20260614...10.2.20260615" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.2.20260614...10.2.20260615</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-community-spotlight">🏆 Community Spotlight<a href="https://shafthq.github.io/blog/release-10.2.20260615#-community-spotlight" class="hash-link" aria-label="Direct link to 🏆 Community Spotlight" title="Direct link to 🏆 Community Spotlight" translate="no">​</a></h2>
<p>This release was made possible by <strong>45 amazing contributors</strong> who have poured their time and expertise into making SHAFT better for everyone.</p>
<p>Open source thrives because of people like these. Every bug fix, every feature, every review — it all counts.</p>
<ul>
<li class=""><img src="https://github.com/MohabMohie.png" width="32" height="32" alt="@MohabMohie"> <a href="https://github.com/MohabMohie" target="_blank" rel="noopener noreferrer" class="">@MohabMohie</a></li>
<li class=""><img src="https://github.com/MahmoudElSharkawy.png" width="32" height="32" alt="@MahmoudElSharkawy"> <a href="https://github.com/MahmoudElSharkawy" target="_blank" rel="noopener noreferrer" class="">@MahmoudElSharkawy</a></li>
<li class=""><img src="https://github.com/MennaMagedm.png" width="32" height="32" alt="@MennaMagedm"> <a href="https://github.com/MennaMagedm" target="_blank" rel="noopener noreferrer" class="">@MennaMagedm</a></li>
<li class=""><img src="https://github.com/AhmdZanoon.png" width="32" height="32" alt="@AhmdZanoon"> <a href="https://github.com/AhmdZanoon" target="_blank" rel="noopener noreferrer" class="">@AhmdZanoon</a></li>
<li class=""><img src="https://github.com/MustafaAgamy.png" width="32" height="32" alt="@MustafaAgamy"> <a href="https://github.com/MustafaAgamy" target="_blank" rel="noopener noreferrer" class="">@MustafaAgamy</a></li>
<li class=""><img src="https://github.com/magdyheiba.png" width="32" height="32" alt="@magdyheiba"> <a href="https://github.com/magdyheiba" target="_blank" rel="noopener noreferrer" class="">@magdyheiba</a></li>
<li class=""><img src="https://github.com/amfarid.png" width="32" height="32" alt="@amfarid"> <a href="https://github.com/amfarid" target="_blank" rel="noopener noreferrer" class="">@amfarid</a></li>
<li class=""><img src="https://github.com/KyrillosNageh.png" width="32" height="32" alt="@KyrillosNageh"> <a href="https://github.com/KyrillosNageh" target="_blank" rel="noopener noreferrer" class="">@KyrillosNageh</a></li>
<li class=""><img src="https://github.com/Mochxd.png" width="32" height="32" alt="@Mochxd"> <a href="https://github.com/Mochxd" target="_blank" rel="noopener noreferrer" class="">@Mochxd</a></li>
<li class=""><img src="https://github.com/Mohab-Osama.png" width="32" height="32" alt="@Mohab-Osama"> <a href="https://github.com/Mohab-Osama" target="_blank" rel="noopener noreferrer" class="">@Mohab-Osama</a></li>
<li class=""><img src="https://github.com/RihamMostafa.png" width="32" height="32" alt="@RihamMostafa"> <a href="https://github.com/RihamMostafa" target="_blank" rel="noopener noreferrer" class="">@RihamMostafa</a></li>
<li class=""><img src="https://github.com/MhmdElGazzar.png" width="32" height="32" alt="@MhmdElGazzar"> <a href="https://github.com/MhmdElGazzar" target="_blank" rel="noopener noreferrer" class="">@MhmdElGazzar</a></li>
<li class=""><img src="https://github.com/MohamedHazem95.png" width="32" height="32" alt="@MohamedHazem95"> <a href="https://github.com/MohamedHazem95" target="_blank" rel="noopener noreferrer" class="">@MohamedHazem95</a></li>
<li class=""><img src="https://github.com/mohamedtawfek05354.png" width="32" height="32" alt="@mohamedtawfek05354"> <a href="https://github.com/mohamedtawfek05354" target="_blank" rel="noopener noreferrer" class="">@mohamedtawfek05354</a></li>
<li class=""><img src="https://github.com/samiir95.png" width="32" height="32" alt="@samiir95"> <a href="https://github.com/samiir95" target="_blank" rel="noopener noreferrer" class="">@samiir95</a></li>
<li class=""><img src="https://github.com/MamdouhMansour.png" width="32" height="32" alt="@MamdouhMansour"> <a href="https://github.com/MamdouhMansour" target="_blank" rel="noopener noreferrer" class="">@MamdouhMansour</a></li>
<li class=""><img src="https://github.com/Kinasr.png" width="32" height="32" alt="@Kinasr"> <a href="https://github.com/Kinasr" target="_blank" rel="noopener noreferrer" class="">@Kinasr</a></li>
<li class=""><img src="https://github.com/MahmoudMabrok.png" width="32" height="32" alt="@MahmoudMabrok"> <a href="https://github.com/MahmoudMabrok" target="_blank" rel="noopener noreferrer" class="">@MahmoudMabrok</a></li>
<li class=""><img src="https://github.com/hammad101088.png" width="32" height="32" alt="@hammad101088"> <a href="https://github.com/hammad101088" target="_blank" rel="noopener noreferrer" class="">@hammad101088</a></li>
<li class=""><img src="https://github.com/ieZaky.png" width="32" height="32" alt="@ieZaky"> <a href="https://github.com/ieZaky" target="_blank" rel="noopener noreferrer" class="">@ieZaky</a></li>
<li class=""><img src="https://github.com/sys123-data.png" width="32" height="32" alt="@sys123-data"> <a href="https://github.com/sys123-data" target="_blank" rel="noopener noreferrer" class="">@sys123-data</a></li>
<li class=""><img src="https://github.com/georgii-musikhin.png" width="32" height="32" alt="@georgii-musikhin"> <a href="https://github.com/georgii-musikhin" target="_blank" rel="noopener noreferrer" class="">@georgii-musikhin</a></li>
<li class=""><img src="https://github.com/hjsblogger.png" width="32" height="32" alt="@hjsblogger"> <a href="https://github.com/hjsblogger" target="_blank" rel="noopener noreferrer" class="">@hjsblogger</a></li>
<li class=""><img src="https://github.com/xValenciax.png" width="32" height="32" alt="@xValenciax"> <a href="https://github.com/xValenciax" target="_blank" rel="noopener noreferrer" class="">@xValenciax</a></li>
<li class=""><img src="https://github.com/MarwaYoussef1.png" width="32" height="32" alt="@MarwaYoussef1"> <a href="https://github.com/MarwaYoussef1" target="_blank" rel="noopener noreferrer" class="">@MarwaYoussef1</a></li>
<li class=""><img src="https://github.com/sultanpaymob.png" width="32" height="32" alt="@sultanpaymob"> <a href="https://github.com/sultanpaymob" target="_blank" rel="noopener noreferrer" class="">@sultanpaymob</a></li>
<li class=""><img src="https://github.com/osamaayman1005.png" width="32" height="32" alt="@osamaayman1005"> <a href="https://github.com/osamaayman1005" target="_blank" rel="noopener noreferrer" class="">@osamaayman1005</a></li>
<li class=""><img src="https://github.com/Salma2018170.png" width="32" height="32" alt="@Salma2018170"> <a href="https://github.com/Salma2018170" target="_blank" rel="noopener noreferrer" class="">@Salma2018170</a></li>
<li class=""><img src="https://github.com/TarekGaafar.png" width="32" height="32" alt="@TarekGaafar"> <a href="https://github.com/TarekGaafar" target="_blank" rel="noopener noreferrer" class="">@TarekGaafar</a></li>
<li class=""><img src="https://github.com/Waleedmohammed.png" width="32" height="32" alt="@Waleedmohammed"> <a href="https://github.com/Waleedmohammed" target="_blank" rel="noopener noreferrer" class="">@Waleedmohammed</a></li>
<li class=""><img src="https://github.com/khaledskhamis.png" width="32" height="32" alt="@khaledskhamis"> <a href="https://github.com/khaledskhamis" target="_blank" rel="noopener noreferrer" class="">@khaledskhamis</a></li>
<li class=""><img src="https://github.com/themosaeed.png" width="32" height="32" alt="@themosaeed"> <a href="https://github.com/themosaeed" target="_blank" rel="noopener noreferrer" class="">@themosaeed</a></li>
<li class=""><img src="https://github.com/wesamhamed.png" width="32" height="32" alt="@wesamhamed"> <a href="https://github.com/wesamhamed" target="_blank" rel="noopener noreferrer" class="">@wesamhamed</a></li>
<li class=""><img src="https://github.com/DavidIshakGorgy.png" width="32" height="32" alt="@DavidIshakGorgy"> <a href="https://github.com/DavidIshakGorgy" target="_blank" rel="noopener noreferrer" class="">@DavidIshakGorgy</a></li>
<li class=""><img src="https://github.com/BojteTamas.png" width="32" height="32" alt="@BojteTamas"> <a href="https://github.com/BojteTamas" target="_blank" rel="noopener noreferrer" class="">@BojteTamas</a></li>
<li class=""><img src="https://github.com/blacelle.png" width="32" height="32" alt="@blacelle"> <a href="https://github.com/blacelle" target="_blank" rel="noopener noreferrer" class="">@blacelle</a></li>
<li class=""><img src="https://github.com/Ayanasrallah.png" width="32" height="32" alt="@Ayanasrallah"> <a href="https://github.com/Ayanasrallah" target="_blank" rel="noopener noreferrer" class="">@Ayanasrallah</a></li>
<li class=""><img src="https://github.com/AmrAdelElkholy.png" width="32" height="32" alt="@AmrAdelElkholy"> <a href="https://github.com/AmrAdelElkholy" target="_blank" rel="noopener noreferrer" class="">@AmrAdelElkholy</a></li>
<li class=""><img src="https://github.com/amlosman.png" width="32" height="32" alt="@amlosman"> <a href="https://github.com/amlosman" target="_blank" rel="noopener noreferrer" class="">@amlosman</a></li>
<li class=""><img src="https://github.com/ahmednasr95.png" width="32" height="32" alt="@ahmednasr95"> <a href="https://github.com/ahmednasr95" target="_blank" rel="noopener noreferrer" class="">@ahmednasr95</a></li>
<li class=""><img src="https://github.com/ahmed-madyan.png" width="32" height="32" alt="@ahmed-madyan"> <a href="https://github.com/ahmed-madyan" target="_blank" rel="noopener noreferrer" class="">@ahmed-madyan</a></li>
<li class=""><img src="https://github.com/AhmedHelalyy.png" width="32" height="32" alt="@AhmedHelalyy"> <a href="https://github.com/AhmedHelalyy" target="_blank" rel="noopener noreferrer" class="">@AhmedHelalyy</a></li>
<li class=""><img src="https://github.com/A-Alii.png" width="32" height="32" alt="@A-Alii"> <a href="https://github.com/A-Alii" target="_blank" rel="noopener noreferrer" class="">@A-Alii</a></li>
<li class=""><img src="https://github.com/AbdelrahmanFahd.png" width="32" height="32" alt="@AbdelrahmanFahd"> <a href="https://github.com/AbdelrahmanFahd" target="_blank" rel="noopener noreferrer" class="">@AbdelrahmanFahd</a></li>
<li class=""><img src="https://github.com/Abdelrhman-Ellithy.png" width="32" height="32" alt="@Abdelrhman-Ellithy"> <a href="https://github.com/Abdelrhman-Ellithy" target="_blank" rel="noopener noreferrer" class="">@Abdelrhman-Ellithy</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-get-started-in-seconds">🚀 Get Started in Seconds<a href="https://shafthq.github.io/blog/release-10.2.20260615#-get-started-in-seconds" class="hash-link" aria-label="Direct link to 🚀 Get Started in Seconds" title="Direct link to 🚀 Get Started in Seconds" translate="no">​</a></h2>
<p>Import the SHAFT BOM once, then use the modular engine:</p>
<div class="language-xml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-xml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependencyManagement</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependencies</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">io.github.shafthq</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">shaft-bom</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">10.2.20260615</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">type</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">pom</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">type</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">scope</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">import</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">scope</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependencies</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependencyManagement</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependencies</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">io.github.shafthq</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">shaft-engine</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependencies</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-join-the-conversation">💬 Join the Conversation<a href="https://shafthq.github.io/blog/release-10.2.20260615#-join-the-conversation" class="hash-link" aria-label="Direct link to 💬 Join the Conversation" title="Direct link to 💬 Join the Conversation" translate="no">​</a></h2>
<p>We'd love to hear what you think! Found a bug? Have an idea? Just want to say hi?</p>
<ul>
<li class="">⭐ <a href="https://github.com/ShaftHQ/SHAFT_ENGINE" target="_blank" rel="noopener noreferrer" class="">Star SHAFT on GitHub</a> — it helps more than you think</li>
<li class="">💡 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/discussions" target="_blank" rel="noopener noreferrer" class="">Start a Discussion</a> — share feedback or ideas</li>
<li class="">🐛 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/issues/new" target="_blank" rel="noopener noreferrer" class="">Report an Issue</a> — help us squash bugs faster</li>
<li class="">📖 <a href="https://shafthq.github.io/docs/start/overview" target="_blank" rel="noopener noreferrer" class="">Read the Docs</a> — dive deeper into SHAFT</li>
</ul>
<p>Thanks for being part of the SHAFT journey. Until the next release — happy testing! 🎯</p>]]></content>
        <author>
            <name>AutoBot</name>
            <uri>https://github.com/ShaftHQ/SHAFT_ENGINE</uri>
        </author>
        <category label="shaft_engine" term="shaft_engine"/>
        <category label="release" term="release"/>
        <category label="changelog" term="changelog"/>
        <category label="test-automation" term="test-automation"/>
        <category label="open-source" term="open-source"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[🚀 SHAFT 10.2.20260614: What's New and Why You Should Upgrade Today]]></title>
        <id>https://shafthq.github.io/blog/release-10.2.20260614</id>
        <link href="https://shafthq.github.io/blog/release-10.2.20260614"/>
        <updated>2026-06-14T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Hey there, SHAFT community! 👋]]></summary>
        <content type="html"><![CDATA[<p>Hey there, SHAFT community! 👋</p>
<p>A fresh release just dropped and it's packed with improvements you don't want to miss. <strong>SHAFT 10.2.20260614</strong> is here, and whether you're a seasoned SHAFT user or just getting started, there's something in this release for you.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-what-changed">⚡ What Changed?<a href="https://shafthq.github.io/blog/release-10.2.20260614#-what-changed" class="hash-link" aria-label="Direct link to ⚡ What Changed?" title="Direct link to ⚡ What Changed?" translate="no">​</a></h2>
<ul>
<li class="">Auto-generated release notes are included below. Users upgrading from</li>
<li class="">SHAFTENGINE should read the</li>
<li class="">modular SHAFT upgrade guide.</li>
<li class="">SHAFT Pilot adds deterministic Capture, TestNG generation, Doctor diagnosis,</li>
<li class="">reviewed repair proposals, and MCP interoperability. AI is optional, disabled</li>
</ul>
<p>👉 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/releases/tag/10.2.20260614" target="_blank" rel="noopener noreferrer" class="">View the full release on GitHub</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-changelog">📋 Changelog<a href="https://shafthq.github.io/blog/release-10.2.20260614#-changelog" class="hash-link" aria-label="Direct link to 📋 Changelog" title="Direct link to 📋 Changelog" translate="no">​</a></h2>
<h1>SHAFT 10.2.20260614</h1>
<p>Auto-generated release notes are included below. Users upgrading from
<code>SHAFT_ENGINE</code> should read the
<a href="https://shafthq.github.io/docs/start/upgrade" target="_blank" rel="noopener noreferrer" class="">modular SHAFT upgrade guide</a>.</p>
<p>SHAFT Pilot adds deterministic Capture, TestNG generation, Doctor diagnosis,
reviewed repair proposals, and MCP interoperability. AI is optional, disabled
by default, and direct OpenAI, Anthropic, Gemini, or Ollama access requires
explicit enablement and consent. Microsoft/GitHub Copilot integrates through
MCP rather than a generic provider API-key adapter.</p>
<p>See the <a href="https://shafthq.github.io/docs/agentic/pilot" target="_blank" rel="noopener noreferrer" class="">SHAFT Pilot guide</a>
for installation, configuration, privacy, troubleshooting, and usage examples.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-changed">What's Changed<a href="https://shafthq.github.io/blog/release-10.2.20260614#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed" translate="no">​</a></h2>
<ul>
<li class="">fix: link SHAFT MCP image to canonical repository by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2876" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2876</a></li>
<li class="">fix: publish SHAFT MCP from canonical GHCR package by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2877" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2877</a></li>
<li class="">[codex] Optimize agent guidance for lower context usage by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2878" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2878</a></li>
<li class="">docs: record optional MCP hosting status by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2879" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2879</a></li>
<li class="">[codex] Add deterministic SHAFT Heal module by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2880" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2880</a></li>
<li class="">[codex] consolidate SHAFT documentation on Docusaurus by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2889" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2889</a></li>
<li class="">[codex] preserve documentation delivery standards by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2890" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2890</a></li>
<li class="">add SFTP upload and download to remote terminal by @Mochxd in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2891" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2891</a></li>
<li class="">ci: restore Codecov uploads after every test run by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2893" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2893</a></li>
<li class="">add SSH port forwarding to remote terminal by @Mochxd in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2892" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2892</a></li>
<li class="">Fix canonical documentation link in default properties template by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2894" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2894</a></li>
<li class="">Refactor casing and optimize logging and screenshot handling by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2895" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2895</a></li>
<li class="">[codex] release 10.2.20260614 by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2896" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2896</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.2.20260612...10.2.20260614" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.2.20260612...10.2.20260614</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-community-spotlight">🏆 Community Spotlight<a href="https://shafthq.github.io/blog/release-10.2.20260614#-community-spotlight" class="hash-link" aria-label="Direct link to 🏆 Community Spotlight" title="Direct link to 🏆 Community Spotlight" translate="no">​</a></h2>
<p>This release was made possible by <strong>45 amazing contributors</strong> who have poured their time and expertise into making SHAFT better for everyone.</p>
<p>Open source thrives because of people like these. Every bug fix, every feature, every review — it all counts.</p>
<ul>
<li class=""><img src="https://github.com/MohabMohie.png" width="32" height="32" alt="@MohabMohie"> <a href="https://github.com/MohabMohie" target="_blank" rel="noopener noreferrer" class="">@MohabMohie</a></li>
<li class=""><img src="https://github.com/MahmoudElSharkawy.png" width="32" height="32" alt="@MahmoudElSharkawy"> <a href="https://github.com/MahmoudElSharkawy" target="_blank" rel="noopener noreferrer" class="">@MahmoudElSharkawy</a></li>
<li class=""><img src="https://github.com/MennaMagedm.png" width="32" height="32" alt="@MennaMagedm"> <a href="https://github.com/MennaMagedm" target="_blank" rel="noopener noreferrer" class="">@MennaMagedm</a></li>
<li class=""><img src="https://github.com/AhmdZanoon.png" width="32" height="32" alt="@AhmdZanoon"> <a href="https://github.com/AhmdZanoon" target="_blank" rel="noopener noreferrer" class="">@AhmdZanoon</a></li>
<li class=""><img src="https://github.com/MustafaAgamy.png" width="32" height="32" alt="@MustafaAgamy"> <a href="https://github.com/MustafaAgamy" target="_blank" rel="noopener noreferrer" class="">@MustafaAgamy</a></li>
<li class=""><img src="https://github.com/magdyheiba.png" width="32" height="32" alt="@magdyheiba"> <a href="https://github.com/magdyheiba" target="_blank" rel="noopener noreferrer" class="">@magdyheiba</a></li>
<li class=""><img src="https://github.com/amfarid.png" width="32" height="32" alt="@amfarid"> <a href="https://github.com/amfarid" target="_blank" rel="noopener noreferrer" class="">@amfarid</a></li>
<li class=""><img src="https://github.com/KyrillosNageh.png" width="32" height="32" alt="@KyrillosNageh"> <a href="https://github.com/KyrillosNageh" target="_blank" rel="noopener noreferrer" class="">@KyrillosNageh</a></li>
<li class=""><img src="https://github.com/Mochxd.png" width="32" height="32" alt="@Mochxd"> <a href="https://github.com/Mochxd" target="_blank" rel="noopener noreferrer" class="">@Mochxd</a></li>
<li class=""><img src="https://github.com/Mohab-Osama.png" width="32" height="32" alt="@Mohab-Osama"> <a href="https://github.com/Mohab-Osama" target="_blank" rel="noopener noreferrer" class="">@Mohab-Osama</a></li>
<li class=""><img src="https://github.com/RihamMostafa.png" width="32" height="32" alt="@RihamMostafa"> <a href="https://github.com/RihamMostafa" target="_blank" rel="noopener noreferrer" class="">@RihamMostafa</a></li>
<li class=""><img src="https://github.com/MhmdElGazzar.png" width="32" height="32" alt="@MhmdElGazzar"> <a href="https://github.com/MhmdElGazzar" target="_blank" rel="noopener noreferrer" class="">@MhmdElGazzar</a></li>
<li class=""><img src="https://github.com/MohamedHazem95.png" width="32" height="32" alt="@MohamedHazem95"> <a href="https://github.com/MohamedHazem95" target="_blank" rel="noopener noreferrer" class="">@MohamedHazem95</a></li>
<li class=""><img src="https://github.com/mohamedtawfek05354.png" width="32" height="32" alt="@mohamedtawfek05354"> <a href="https://github.com/mohamedtawfek05354" target="_blank" rel="noopener noreferrer" class="">@mohamedtawfek05354</a></li>
<li class=""><img src="https://github.com/samiir95.png" width="32" height="32" alt="@samiir95"> <a href="https://github.com/samiir95" target="_blank" rel="noopener noreferrer" class="">@samiir95</a></li>
<li class=""><img src="https://github.com/MamdouhMansour.png" width="32" height="32" alt="@MamdouhMansour"> <a href="https://github.com/MamdouhMansour" target="_blank" rel="noopener noreferrer" class="">@MamdouhMansour</a></li>
<li class=""><img src="https://github.com/Kinasr.png" width="32" height="32" alt="@Kinasr"> <a href="https://github.com/Kinasr" target="_blank" rel="noopener noreferrer" class="">@Kinasr</a></li>
<li class=""><img src="https://github.com/MahmoudMabrok.png" width="32" height="32" alt="@MahmoudMabrok"> <a href="https://github.com/MahmoudMabrok" target="_blank" rel="noopener noreferrer" class="">@MahmoudMabrok</a></li>
<li class=""><img src="https://github.com/hammad101088.png" width="32" height="32" alt="@hammad101088"> <a href="https://github.com/hammad101088" target="_blank" rel="noopener noreferrer" class="">@hammad101088</a></li>
<li class=""><img src="https://github.com/ieZaky.png" width="32" height="32" alt="@ieZaky"> <a href="https://github.com/ieZaky" target="_blank" rel="noopener noreferrer" class="">@ieZaky</a></li>
<li class=""><img src="https://github.com/sys123-data.png" width="32" height="32" alt="@sys123-data"> <a href="https://github.com/sys123-data" target="_blank" rel="noopener noreferrer" class="">@sys123-data</a></li>
<li class=""><img src="https://github.com/georgii-musikhin.png" width="32" height="32" alt="@georgii-musikhin"> <a href="https://github.com/georgii-musikhin" target="_blank" rel="noopener noreferrer" class="">@georgii-musikhin</a></li>
<li class=""><img src="https://github.com/hjsblogger.png" width="32" height="32" alt="@hjsblogger"> <a href="https://github.com/hjsblogger" target="_blank" rel="noopener noreferrer" class="">@hjsblogger</a></li>
<li class=""><img src="https://github.com/xValenciax.png" width="32" height="32" alt="@xValenciax"> <a href="https://github.com/xValenciax" target="_blank" rel="noopener noreferrer" class="">@xValenciax</a></li>
<li class=""><img src="https://github.com/MarwaYoussef1.png" width="32" height="32" alt="@MarwaYoussef1"> <a href="https://github.com/MarwaYoussef1" target="_blank" rel="noopener noreferrer" class="">@MarwaYoussef1</a></li>
<li class=""><img src="https://github.com/sultanpaymob.png" width="32" height="32" alt="@sultanpaymob"> <a href="https://github.com/sultanpaymob" target="_blank" rel="noopener noreferrer" class="">@sultanpaymob</a></li>
<li class=""><img src="https://github.com/osamaayman1005.png" width="32" height="32" alt="@osamaayman1005"> <a href="https://github.com/osamaayman1005" target="_blank" rel="noopener noreferrer" class="">@osamaayman1005</a></li>
<li class=""><img src="https://github.com/Salma2018170.png" width="32" height="32" alt="@Salma2018170"> <a href="https://github.com/Salma2018170" target="_blank" rel="noopener noreferrer" class="">@Salma2018170</a></li>
<li class=""><img src="https://github.com/TarekGaafar.png" width="32" height="32" alt="@TarekGaafar"> <a href="https://github.com/TarekGaafar" target="_blank" rel="noopener noreferrer" class="">@TarekGaafar</a></li>
<li class=""><img src="https://github.com/Waleedmohammed.png" width="32" height="32" alt="@Waleedmohammed"> <a href="https://github.com/Waleedmohammed" target="_blank" rel="noopener noreferrer" class="">@Waleedmohammed</a></li>
<li class=""><img src="https://github.com/khaledskhamis.png" width="32" height="32" alt="@khaledskhamis"> <a href="https://github.com/khaledskhamis" target="_blank" rel="noopener noreferrer" class="">@khaledskhamis</a></li>
<li class=""><img src="https://github.com/themosaeed.png" width="32" height="32" alt="@themosaeed"> <a href="https://github.com/themosaeed" target="_blank" rel="noopener noreferrer" class="">@themosaeed</a></li>
<li class=""><img src="https://github.com/wesamhamed.png" width="32" height="32" alt="@wesamhamed"> <a href="https://github.com/wesamhamed" target="_blank" rel="noopener noreferrer" class="">@wesamhamed</a></li>
<li class=""><img src="https://github.com/DavidIshakGorgy.png" width="32" height="32" alt="@DavidIshakGorgy"> <a href="https://github.com/DavidIshakGorgy" target="_blank" rel="noopener noreferrer" class="">@DavidIshakGorgy</a></li>
<li class=""><img src="https://github.com/BojteTamas.png" width="32" height="32" alt="@BojteTamas"> <a href="https://github.com/BojteTamas" target="_blank" rel="noopener noreferrer" class="">@BojteTamas</a></li>
<li class=""><img src="https://github.com/blacelle.png" width="32" height="32" alt="@blacelle"> <a href="https://github.com/blacelle" target="_blank" rel="noopener noreferrer" class="">@blacelle</a></li>
<li class=""><img src="https://github.com/Ayanasrallah.png" width="32" height="32" alt="@Ayanasrallah"> <a href="https://github.com/Ayanasrallah" target="_blank" rel="noopener noreferrer" class="">@Ayanasrallah</a></li>
<li class=""><img src="https://github.com/AmrAdelElkholy.png" width="32" height="32" alt="@AmrAdelElkholy"> <a href="https://github.com/AmrAdelElkholy" target="_blank" rel="noopener noreferrer" class="">@AmrAdelElkholy</a></li>
<li class=""><img src="https://github.com/amlosman.png" width="32" height="32" alt="@amlosman"> <a href="https://github.com/amlosman" target="_blank" rel="noopener noreferrer" class="">@amlosman</a></li>
<li class=""><img src="https://github.com/ahmednasr95.png" width="32" height="32" alt="@ahmednasr95"> <a href="https://github.com/ahmednasr95" target="_blank" rel="noopener noreferrer" class="">@ahmednasr95</a></li>
<li class=""><img src="https://github.com/ahmed-madyan.png" width="32" height="32" alt="@ahmed-madyan"> <a href="https://github.com/ahmed-madyan" target="_blank" rel="noopener noreferrer" class="">@ahmed-madyan</a></li>
<li class=""><img src="https://github.com/AhmedHelalyy.png" width="32" height="32" alt="@AhmedHelalyy"> <a href="https://github.com/AhmedHelalyy" target="_blank" rel="noopener noreferrer" class="">@AhmedHelalyy</a></li>
<li class=""><img src="https://github.com/A-Alii.png" width="32" height="32" alt="@A-Alii"> <a href="https://github.com/A-Alii" target="_blank" rel="noopener noreferrer" class="">@A-Alii</a></li>
<li class=""><img src="https://github.com/AbdelrahmanFahd.png" width="32" height="32" alt="@AbdelrahmanFahd"> <a href="https://github.com/AbdelrahmanFahd" target="_blank" rel="noopener noreferrer" class="">@AbdelrahmanFahd</a></li>
<li class=""><img src="https://github.com/Abdelrhman-Ellithy.png" width="32" height="32" alt="@Abdelrhman-Ellithy"> <a href="https://github.com/Abdelrhman-Ellithy" target="_blank" rel="noopener noreferrer" class="">@Abdelrhman-Ellithy</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-get-started-in-seconds">🚀 Get Started in Seconds<a href="https://shafthq.github.io/blog/release-10.2.20260614#-get-started-in-seconds" class="hash-link" aria-label="Direct link to 🚀 Get Started in Seconds" title="Direct link to 🚀 Get Started in Seconds" translate="no">​</a></h2>
<p>Import the SHAFT BOM once, then use the modular engine:</p>
<div class="language-xml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-xml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependencyManagement</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependencies</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">io.github.shafthq</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">shaft-bom</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">10.2.20260614</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">type</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">pom</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">type</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">scope</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">import</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">scope</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependencies</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependencyManagement</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependencies</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">io.github.shafthq</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">shaft-engine</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependencies</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-join-the-conversation">💬 Join the Conversation<a href="https://shafthq.github.io/blog/release-10.2.20260614#-join-the-conversation" class="hash-link" aria-label="Direct link to 💬 Join the Conversation" title="Direct link to 💬 Join the Conversation" translate="no">​</a></h2>
<p>We'd love to hear what you think! Found a bug? Have an idea? Just want to say hi?</p>
<ul>
<li class="">⭐ <a href="https://github.com/ShaftHQ/SHAFT_ENGINE" target="_blank" rel="noopener noreferrer" class="">Star SHAFT on GitHub</a> — it helps more than you think</li>
<li class="">💡 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/discussions" target="_blank" rel="noopener noreferrer" class="">Start a Discussion</a> — share feedback or ideas</li>
<li class="">🐛 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/issues/new" target="_blank" rel="noopener noreferrer" class="">Report an Issue</a> — help us squash bugs faster</li>
<li class="">📖 <a href="https://shafthq.github.io/docs/start/overview" target="_blank" rel="noopener noreferrer" class="">Read the Docs</a> — dive deeper into SHAFT</li>
</ul>
<p>Thanks for being part of the SHAFT journey. Until the next release — happy testing! 🎯</p>]]></content>
        <author>
            <name>AutoBot</name>
            <uri>https://github.com/ShaftHQ/SHAFT_ENGINE</uri>
        </author>
        <category label="shaft_engine" term="shaft_engine"/>
        <category label="release" term="release"/>
        <category label="changelog" term="changelog"/>
        <category label="test-automation" term="test-automation"/>
        <category label="open-source" term="open-source"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[🚀 SHAFT 10.2.20260612: What's New and Why You Should Upgrade Today]]></title>
        <id>https://shafthq.github.io/blog/release-10.2.20260612</id>
        <link href="https://shafthq.github.io/blog/release-10.2.20260612"/>
        <updated>2026-06-12T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Hey there, SHAFT community! 👋]]></summary>
        <content type="html"><![CDATA[<p>Hey there, SHAFT community! 👋</p>
<p>A fresh release just dropped and it's packed with improvements you don't want to miss. <strong>SHAFT_ENGINE 10.2.20260612</strong> is here, and whether you're a seasoned SHAFT user or just getting started, there's something in this release for you.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-what-changed">⚡ What Changed?<a href="https://shafthq.github.io/blog/release-10.2.20260612#-what-changed" class="hash-link" aria-label="Direct link to ⚡ What Changed?" title="Direct link to ⚡ What Changed?" translate="no">​</a></h2>
<ul>
<li class="">Auto-generated release notes are included below. Users upgrading from SHAFTENGINE should read the modular SHAFT upgrade guide.</li>
<li class="">SHAFT Pilot adds deterministic Capture, TestNG generation, Doctor diagnosis,</li>
<li class="">reviewed repair proposals, and MCP interoperability. AI is optional, disabled</li>
<li class="">by default, and direct OpenAI, Anthropic, Gemini, or Ollama access requires</li>
<li class="">explicit enablement and consent. Microsoft/GitHub Copilot integrates through</li>
</ul>
<p>👉 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/releases/tag/10.2.20260612" target="_blank" rel="noopener noreferrer" class="">View the full release on GitHub</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-changelog">📋 Changelog<a href="https://shafthq.github.io/blog/release-10.2.20260612#-changelog" class="hash-link" aria-label="Direct link to 📋 Changelog" title="Direct link to 📋 Changelog" translate="no">​</a></h2>
<h1>SHAFT 10.2.20260612</h1>
<p>Auto-generated release notes are included below. Users upgrading from <code>SHAFT_ENGINE</code> should read the <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/blob/main/docs/UPGRADING_TO_MODULAR_SHAFT.md" target="_blank" rel="noopener noreferrer" class="">modular SHAFT upgrade guide</a>.</p>
<p>SHAFT Pilot adds deterministic Capture, TestNG generation, Doctor diagnosis,
reviewed repair proposals, and MCP interoperability. AI is optional, disabled
by default, and direct OpenAI, Anthropic, Gemini, or Ollama access requires
explicit enablement and consent. Microsoft/GitHub Copilot integrates through
MCP rather than a generic provider API-key adapter.</p>
<p>See the <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/blob/main/docs/SHAFT_PILOT.md" target="_blank" rel="noopener noreferrer" class="">SHAFT Pilot guide</a>
for installation, configuration, privacy, troubleshooting, and usage examples.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-changed">What's Changed<a href="https://shafthq.github.io/blog/release-10.2.20260612#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed" translate="no">​</a></h2>
<ul>
<li class="">Change default value of forceBrowserDownload to false by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2846" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2846</a></li>
<li class="">closes #2841 by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2847" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2847</a></li>
<li class="">docs: update agent guidance and maintenance documentation by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2860" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2860</a></li>
<li class="">[codex] Import shaft-mcp history into SHAFT_ENGINE by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2861" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2861</a></li>
<li class="">[codex] Integrate shaft-mcp into reactor and release lifecycle by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2862" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2862</a></li>
<li class="">[codex] Add optional SHAFT Pilot AI-provider foundation by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2867" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2867</a></li>
<li class="">[codex] Add deterministic SHAFT Capture recording model by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2868" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2868</a></li>
<li class="">[codex] Add managed browser SHAFT Capture recording by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2869" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2869</a></li>
<li class="">[codex] Generate reliable SHAFT TestNG tests from Capture sessions by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2870" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2870</a></li>
<li class="">[codex] Add deterministic SHAFT Doctor analysis by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2871" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2871</a></li>
<li class="">[codex] Add optional AI-assisted SHAFT Doctor analysis by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2873" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2873</a></li>
<li class="">[codex] Add reviewed SHAFT Doctor repair workflows by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2874" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2874</a></li>
<li class="">[codex] release SHAFT Pilot 10.2.20260612 by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2875" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2875</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.2.20260610...10.2.20260612" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.2.20260610...10.2.20260612</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-community-spotlight">🏆 Community Spotlight<a href="https://shafthq.github.io/blog/release-10.2.20260612#-community-spotlight" class="hash-link" aria-label="Direct link to 🏆 Community Spotlight" title="Direct link to 🏆 Community Spotlight" translate="no">​</a></h2>
<p>This release was made possible by <strong>45 amazing contributors</strong> who have poured their time and expertise into making SHAFT better for everyone.</p>
<p>Open source thrives because of people like these. Every bug fix, every feature, every review — it all counts.</p>
<ul>
<li class=""><img src="https://github.com/MohabMohie.png" width="32" height="32" alt="@MohabMohie"> <a href="https://github.com/MohabMohie" target="_blank" rel="noopener noreferrer" class="">@MohabMohie</a></li>
<li class=""><img src="https://github.com/MahmoudElSharkawy.png" width="32" height="32" alt="@MahmoudElSharkawy"> <a href="https://github.com/MahmoudElSharkawy" target="_blank" rel="noopener noreferrer" class="">@MahmoudElSharkawy</a></li>
<li class=""><img src="https://github.com/MennaMagedm.png" width="32" height="32" alt="@MennaMagedm"> <a href="https://github.com/MennaMagedm" target="_blank" rel="noopener noreferrer" class="">@MennaMagedm</a></li>
<li class=""><img src="https://github.com/AhmdZanoon.png" width="32" height="32" alt="@AhmdZanoon"> <a href="https://github.com/AhmdZanoon" target="_blank" rel="noopener noreferrer" class="">@AhmdZanoon</a></li>
<li class=""><img src="https://github.com/MustafaAgamy.png" width="32" height="32" alt="@MustafaAgamy"> <a href="https://github.com/MustafaAgamy" target="_blank" rel="noopener noreferrer" class="">@MustafaAgamy</a></li>
<li class=""><img src="https://github.com/magdyheiba.png" width="32" height="32" alt="@magdyheiba"> <a href="https://github.com/magdyheiba" target="_blank" rel="noopener noreferrer" class="">@magdyheiba</a></li>
<li class=""><img src="https://github.com/amfarid.png" width="32" height="32" alt="@amfarid"> <a href="https://github.com/amfarid" target="_blank" rel="noopener noreferrer" class="">@amfarid</a></li>
<li class=""><img src="https://github.com/KyrillosNageh.png" width="32" height="32" alt="@KyrillosNageh"> <a href="https://github.com/KyrillosNageh" target="_blank" rel="noopener noreferrer" class="">@KyrillosNageh</a></li>
<li class=""><img src="https://github.com/Mohab-Osama.png" width="32" height="32" alt="@Mohab-Osama"> <a href="https://github.com/Mohab-Osama" target="_blank" rel="noopener noreferrer" class="">@Mohab-Osama</a></li>
<li class=""><img src="https://github.com/RihamMostafa.png" width="32" height="32" alt="@RihamMostafa"> <a href="https://github.com/RihamMostafa" target="_blank" rel="noopener noreferrer" class="">@RihamMostafa</a></li>
<li class=""><img src="https://github.com/MhmdElGazzar.png" width="32" height="32" alt="@MhmdElGazzar"> <a href="https://github.com/MhmdElGazzar" target="_blank" rel="noopener noreferrer" class="">@MhmdElGazzar</a></li>
<li class=""><img src="https://github.com/Mochxd.png" width="32" height="32" alt="@Mochxd"> <a href="https://github.com/Mochxd" target="_blank" rel="noopener noreferrer" class="">@Mochxd</a></li>
<li class=""><img src="https://github.com/MohamedHazem95.png" width="32" height="32" alt="@MohamedHazem95"> <a href="https://github.com/MohamedHazem95" target="_blank" rel="noopener noreferrer" class="">@MohamedHazem95</a></li>
<li class=""><img src="https://github.com/mohamedtawfek05354.png" width="32" height="32" alt="@mohamedtawfek05354"> <a href="https://github.com/mohamedtawfek05354" target="_blank" rel="noopener noreferrer" class="">@mohamedtawfek05354</a></li>
<li class=""><img src="https://github.com/samiir95.png" width="32" height="32" alt="@samiir95"> <a href="https://github.com/samiir95" target="_blank" rel="noopener noreferrer" class="">@samiir95</a></li>
<li class=""><img src="https://github.com/MamdouhMansour.png" width="32" height="32" alt="@MamdouhMansour"> <a href="https://github.com/MamdouhMansour" target="_blank" rel="noopener noreferrer" class="">@MamdouhMansour</a></li>
<li class=""><img src="https://github.com/Kinasr.png" width="32" height="32" alt="@Kinasr"> <a href="https://github.com/Kinasr" target="_blank" rel="noopener noreferrer" class="">@Kinasr</a></li>
<li class=""><img src="https://github.com/MahmoudMabrok.png" width="32" height="32" alt="@MahmoudMabrok"> <a href="https://github.com/MahmoudMabrok" target="_blank" rel="noopener noreferrer" class="">@MahmoudMabrok</a></li>
<li class=""><img src="https://github.com/hammad101088.png" width="32" height="32" alt="@hammad101088"> <a href="https://github.com/hammad101088" target="_blank" rel="noopener noreferrer" class="">@hammad101088</a></li>
<li class=""><img src="https://github.com/ieZaky.png" width="32" height="32" alt="@ieZaky"> <a href="https://github.com/ieZaky" target="_blank" rel="noopener noreferrer" class="">@ieZaky</a></li>
<li class=""><img src="https://github.com/sys123-data.png" width="32" height="32" alt="@sys123-data"> <a href="https://github.com/sys123-data" target="_blank" rel="noopener noreferrer" class="">@sys123-data</a></li>
<li class=""><img src="https://github.com/georgii-musikhin.png" width="32" height="32" alt="@georgii-musikhin"> <a href="https://github.com/georgii-musikhin" target="_blank" rel="noopener noreferrer" class="">@georgii-musikhin</a></li>
<li class=""><img src="https://github.com/hjsblogger.png" width="32" height="32" alt="@hjsblogger"> <a href="https://github.com/hjsblogger" target="_blank" rel="noopener noreferrer" class="">@hjsblogger</a></li>
<li class=""><img src="https://github.com/xValenciax.png" width="32" height="32" alt="@xValenciax"> <a href="https://github.com/xValenciax" target="_blank" rel="noopener noreferrer" class="">@xValenciax</a></li>
<li class=""><img src="https://github.com/MarwaYoussef1.png" width="32" height="32" alt="@MarwaYoussef1"> <a href="https://github.com/MarwaYoussef1" target="_blank" rel="noopener noreferrer" class="">@MarwaYoussef1</a></li>
<li class=""><img src="https://github.com/sultanpaymob.png" width="32" height="32" alt="@sultanpaymob"> <a href="https://github.com/sultanpaymob" target="_blank" rel="noopener noreferrer" class="">@sultanpaymob</a></li>
<li class=""><img src="https://github.com/osamaayman1005.png" width="32" height="32" alt="@osamaayman1005"> <a href="https://github.com/osamaayman1005" target="_blank" rel="noopener noreferrer" class="">@osamaayman1005</a></li>
<li class=""><img src="https://github.com/Salma2018170.png" width="32" height="32" alt="@Salma2018170"> <a href="https://github.com/Salma2018170" target="_blank" rel="noopener noreferrer" class="">@Salma2018170</a></li>
<li class=""><img src="https://github.com/TarekGaafar.png" width="32" height="32" alt="@TarekGaafar"> <a href="https://github.com/TarekGaafar" target="_blank" rel="noopener noreferrer" class="">@TarekGaafar</a></li>
<li class=""><img src="https://github.com/Waleedmohammed.png" width="32" height="32" alt="@Waleedmohammed"> <a href="https://github.com/Waleedmohammed" target="_blank" rel="noopener noreferrer" class="">@Waleedmohammed</a></li>
<li class=""><img src="https://github.com/khaledskhamis.png" width="32" height="32" alt="@khaledskhamis"> <a href="https://github.com/khaledskhamis" target="_blank" rel="noopener noreferrer" class="">@khaledskhamis</a></li>
<li class=""><img src="https://github.com/themosaeed.png" width="32" height="32" alt="@themosaeed"> <a href="https://github.com/themosaeed" target="_blank" rel="noopener noreferrer" class="">@themosaeed</a></li>
<li class=""><img src="https://github.com/wesamhamed.png" width="32" height="32" alt="@wesamhamed"> <a href="https://github.com/wesamhamed" target="_blank" rel="noopener noreferrer" class="">@wesamhamed</a></li>
<li class=""><img src="https://github.com/DavidIshakGorgy.png" width="32" height="32" alt="@DavidIshakGorgy"> <a href="https://github.com/DavidIshakGorgy" target="_blank" rel="noopener noreferrer" class="">@DavidIshakGorgy</a></li>
<li class=""><img src="https://github.com/BojteTamas.png" width="32" height="32" alt="@BojteTamas"> <a href="https://github.com/BojteTamas" target="_blank" rel="noopener noreferrer" class="">@BojteTamas</a></li>
<li class=""><img src="https://github.com/blacelle.png" width="32" height="32" alt="@blacelle"> <a href="https://github.com/blacelle" target="_blank" rel="noopener noreferrer" class="">@blacelle</a></li>
<li class=""><img src="https://github.com/Ayanasrallah.png" width="32" height="32" alt="@Ayanasrallah"> <a href="https://github.com/Ayanasrallah" target="_blank" rel="noopener noreferrer" class="">@Ayanasrallah</a></li>
<li class=""><img src="https://github.com/AmrAdelElkholy.png" width="32" height="32" alt="@AmrAdelElkholy"> <a href="https://github.com/AmrAdelElkholy" target="_blank" rel="noopener noreferrer" class="">@AmrAdelElkholy</a></li>
<li class=""><img src="https://github.com/amlosman.png" width="32" height="32" alt="@amlosman"> <a href="https://github.com/amlosman" target="_blank" rel="noopener noreferrer" class="">@amlosman</a></li>
<li class=""><img src="https://github.com/ahmednasr95.png" width="32" height="32" alt="@ahmednasr95"> <a href="https://github.com/ahmednasr95" target="_blank" rel="noopener noreferrer" class="">@ahmednasr95</a></li>
<li class=""><img src="https://github.com/ahmed-madyan.png" width="32" height="32" alt="@ahmed-madyan"> <a href="https://github.com/ahmed-madyan" target="_blank" rel="noopener noreferrer" class="">@ahmed-madyan</a></li>
<li class=""><img src="https://github.com/AhmedHelalyy.png" width="32" height="32" alt="@AhmedHelalyy"> <a href="https://github.com/AhmedHelalyy" target="_blank" rel="noopener noreferrer" class="">@AhmedHelalyy</a></li>
<li class=""><img src="https://github.com/A-Alii.png" width="32" height="32" alt="@A-Alii"> <a href="https://github.com/A-Alii" target="_blank" rel="noopener noreferrer" class="">@A-Alii</a></li>
<li class=""><img src="https://github.com/AbdelrahmanFahd.png" width="32" height="32" alt="@AbdelrahmanFahd"> <a href="https://github.com/AbdelrahmanFahd" target="_blank" rel="noopener noreferrer" class="">@AbdelrahmanFahd</a></li>
<li class=""><img src="https://github.com/Abdelrhman-Ellithy.png" width="32" height="32" alt="@Abdelrhman-Ellithy"> <a href="https://github.com/Abdelrhman-Ellithy" target="_blank" rel="noopener noreferrer" class="">@Abdelrhman-Ellithy</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-get-started-in-seconds">🚀 Get Started in Seconds<a href="https://shafthq.github.io/blog/release-10.2.20260612#-get-started-in-seconds" class="hash-link" aria-label="Direct link to 🚀 Get Started in Seconds" title="Direct link to 🚀 Get Started in Seconds" translate="no">​</a></h2>
<p>Upgrading is simple — just update your dependency version:</p>
<div class="language-xml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-xml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">io.github.shafthq</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">SHAFT_ENGINE</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">10.2.20260612</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-join-the-conversation">💬 Join the Conversation<a href="https://shafthq.github.io/blog/release-10.2.20260612#-join-the-conversation" class="hash-link" aria-label="Direct link to 💬 Join the Conversation" title="Direct link to 💬 Join the Conversation" translate="no">​</a></h2>
<p>We'd love to hear what you think! Found a bug? Have an idea? Just want to say hi?</p>
<ul>
<li class="">⭐ <a href="https://github.com/ShaftHQ/SHAFT_ENGINE" target="_blank" rel="noopener noreferrer" class="">Star SHAFT on GitHub</a> — it helps more than you think</li>
<li class="">💡 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/discussions" target="_blank" rel="noopener noreferrer" class="">Start a Discussion</a> — share feedback or ideas</li>
<li class="">🐛 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/issues/new" target="_blank" rel="noopener noreferrer" class="">Report an Issue</a> — help us squash bugs faster</li>
<li class="">📖 <a href="https://shafthq.github.io/" target="_blank" rel="noopener noreferrer" class="">Read the Docs</a> — dive deeper into SHAFT</li>
</ul>
<p>Thanks for being part of the SHAFT journey. Until the next release — happy testing! 🎯</p>]]></content>
        <author>
            <name>AutoBot</name>
            <uri>https://github.com/ShaftHQ/SHAFT_ENGINE</uri>
        </author>
        <category label="shaft_engine" term="shaft_engine"/>
        <category label="release" term="release"/>
        <category label="changelog" term="changelog"/>
        <category label="test-automation" term="test-automation"/>
        <category label="open-source" term="open-source"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[🚀 SHAFT 10.2.20260610: What's New and Why You Should Upgrade Today]]></title>
        <id>https://shafthq.github.io/blog/release-10.2.20260610</id>
        <link href="https://shafthq.github.io/blog/release-10.2.20260610"/>
        <updated>2026-06-10T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Hey there, SHAFT community! 👋]]></summary>
        <content type="html"><![CDATA[<p>Hey there, SHAFT community! 👋</p>
<p>A fresh release just dropped and it's packed with improvements you don't want to miss. <strong>SHAFT_ENGINE 10.2.20260610</strong> is here, and whether you're a seasoned SHAFT user or just getting started, there's something in this release for you.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-what-changed">⚡ What Changed?<a href="https://shafthq.github.io/blog/release-10.2.20260610#-what-changed" class="hash-link" aria-label="Direct link to ⚡ What Changed?" title="Direct link to ⚡ What Changed?" translate="no">​</a></h2>
<ul>
<li class="">Auto-generated release notes are included below. Users upgrading from SHAFTENGINE should read the modular SHAFT upgrade guide.</li>
<li class="">chore(deps): bump multiple stable dependencies (Cucumber components, Google libs, BrowserStack, GraalVM, JaCoCo) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFTENGINE/pull/2807" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFTENGINE/pull/2807</a></li>
<li class="">codex: add aggregate JaCoCo and reactor quality support by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFTENGINE/pull/2833" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFTENGINE/pull/2833</a></li>
<li class="">Shaft modularization by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFTENGINE/pull/2839" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFTENGINE/pull/2839</a></li>
<li class="">codex: fix Maven Central aggregate SBOM signing by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFTENGINE/pull/2840" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFTENGINE/pull/2840</a></li>
</ul>
<p>👉 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/releases/tag/10.2.20260610" target="_blank" rel="noopener noreferrer" class="">View the full release on GitHub</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-changelog">📋 Changelog<a href="https://shafthq.github.io/blog/release-10.2.20260610#-changelog" class="hash-link" aria-label="Direct link to 📋 Changelog" title="Direct link to 📋 Changelog" translate="no">​</a></h2>
<h1>SHAFT 10.2.20260610</h1>
<p>Auto-generated release notes are included below. Users upgrading from <code>SHAFT_ENGINE</code> should read the <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/blob/main/docs/UPGRADING_TO_MODULAR_SHAFT.md" target="_blank" rel="noopener noreferrer" class="">modular SHAFT upgrade guide</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-changed">What's Changed<a href="https://shafthq.github.io/blog/release-10.2.20260610#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed" translate="no">​</a></h2>
<ul>
<li class="">chore(deps): bump multiple stable dependencies (Cucumber components, Google libs, BrowserStack, GraalVM, JaCoCo) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2807" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2807</a></li>
<li class="">codex: add aggregate JaCoCo and reactor quality support by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2833" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2833</a></li>
<li class="">Shaft modularization by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2839" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2839</a></li>
<li class="">codex: fix Maven Central aggregate SBOM signing by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2840" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2840</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.2.20260605...10.2.20260610" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.2.20260605...10.2.20260610</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-community-spotlight">🏆 Community Spotlight<a href="https://shafthq.github.io/blog/release-10.2.20260610#-community-spotlight" class="hash-link" aria-label="Direct link to 🏆 Community Spotlight" title="Direct link to 🏆 Community Spotlight" translate="no">​</a></h2>
<p>This release was made possible by <strong>45 amazing contributors</strong> who have poured their time and expertise into making SHAFT better for everyone.</p>
<p>Open source thrives because of people like these. Every bug fix, every feature, every review — it all counts.</p>
<ul>
<li class=""><img src="https://github.com/MohabMohie.png" width="32" height="32" alt="@MohabMohie"> <a href="https://github.com/MohabMohie" target="_blank" rel="noopener noreferrer" class="">@MohabMohie</a></li>
<li class=""><img src="https://github.com/MahmoudElSharkawy.png" width="32" height="32" alt="@MahmoudElSharkawy"> <a href="https://github.com/MahmoudElSharkawy" target="_blank" rel="noopener noreferrer" class="">@MahmoudElSharkawy</a></li>
<li class=""><img src="https://github.com/MennaMagedm.png" width="32" height="32" alt="@MennaMagedm"> <a href="https://github.com/MennaMagedm" target="_blank" rel="noopener noreferrer" class="">@MennaMagedm</a></li>
<li class=""><img src="https://github.com/AhmdZanoon.png" width="32" height="32" alt="@AhmdZanoon"> <a href="https://github.com/AhmdZanoon" target="_blank" rel="noopener noreferrer" class="">@AhmdZanoon</a></li>
<li class=""><img src="https://github.com/MustafaAgamy.png" width="32" height="32" alt="@MustafaAgamy"> <a href="https://github.com/MustafaAgamy" target="_blank" rel="noopener noreferrer" class="">@MustafaAgamy</a></li>
<li class=""><img src="https://github.com/magdyheiba.png" width="32" height="32" alt="@magdyheiba"> <a href="https://github.com/magdyheiba" target="_blank" rel="noopener noreferrer" class="">@magdyheiba</a></li>
<li class=""><img src="https://github.com/amfarid.png" width="32" height="32" alt="@amfarid"> <a href="https://github.com/amfarid" target="_blank" rel="noopener noreferrer" class="">@amfarid</a></li>
<li class=""><img src="https://github.com/KyrillosNageh.png" width="32" height="32" alt="@KyrillosNageh"> <a href="https://github.com/KyrillosNageh" target="_blank" rel="noopener noreferrer" class="">@KyrillosNageh</a></li>
<li class=""><img src="https://github.com/Mohab-Osama.png" width="32" height="32" alt="@Mohab-Osama"> <a href="https://github.com/Mohab-Osama" target="_blank" rel="noopener noreferrer" class="">@Mohab-Osama</a></li>
<li class=""><img src="https://github.com/RihamMostafa.png" width="32" height="32" alt="@RihamMostafa"> <a href="https://github.com/RihamMostafa" target="_blank" rel="noopener noreferrer" class="">@RihamMostafa</a></li>
<li class=""><img src="https://github.com/MhmdElGazzar.png" width="32" height="32" alt="@MhmdElGazzar"> <a href="https://github.com/MhmdElGazzar" target="_blank" rel="noopener noreferrer" class="">@MhmdElGazzar</a></li>
<li class=""><img src="https://github.com/Mochxd.png" width="32" height="32" alt="@Mochxd"> <a href="https://github.com/Mochxd" target="_blank" rel="noopener noreferrer" class="">@Mochxd</a></li>
<li class=""><img src="https://github.com/MohamedHazem95.png" width="32" height="32" alt="@MohamedHazem95"> <a href="https://github.com/MohamedHazem95" target="_blank" rel="noopener noreferrer" class="">@MohamedHazem95</a></li>
<li class=""><img src="https://github.com/mohamedtawfek05354.png" width="32" height="32" alt="@mohamedtawfek05354"> <a href="https://github.com/mohamedtawfek05354" target="_blank" rel="noopener noreferrer" class="">@mohamedtawfek05354</a></li>
<li class=""><img src="https://github.com/samiir95.png" width="32" height="32" alt="@samiir95"> <a href="https://github.com/samiir95" target="_blank" rel="noopener noreferrer" class="">@samiir95</a></li>
<li class=""><img src="https://github.com/MamdouhMansour.png" width="32" height="32" alt="@MamdouhMansour"> <a href="https://github.com/MamdouhMansour" target="_blank" rel="noopener noreferrer" class="">@MamdouhMansour</a></li>
<li class=""><img src="https://github.com/Kinasr.png" width="32" height="32" alt="@Kinasr"> <a href="https://github.com/Kinasr" target="_blank" rel="noopener noreferrer" class="">@Kinasr</a></li>
<li class=""><img src="https://github.com/MahmoudMabrok.png" width="32" height="32" alt="@MahmoudMabrok"> <a href="https://github.com/MahmoudMabrok" target="_blank" rel="noopener noreferrer" class="">@MahmoudMabrok</a></li>
<li class=""><img src="https://github.com/hammad101088.png" width="32" height="32" alt="@hammad101088"> <a href="https://github.com/hammad101088" target="_blank" rel="noopener noreferrer" class="">@hammad101088</a></li>
<li class=""><img src="https://github.com/ieZaky.png" width="32" height="32" alt="@ieZaky"> <a href="https://github.com/ieZaky" target="_blank" rel="noopener noreferrer" class="">@ieZaky</a></li>
<li class=""><img src="https://github.com/sys123-data.png" width="32" height="32" alt="@sys123-data"> <a href="https://github.com/sys123-data" target="_blank" rel="noopener noreferrer" class="">@sys123-data</a></li>
<li class=""><img src="https://github.com/georgii-musikhin.png" width="32" height="32" alt="@georgii-musikhin"> <a href="https://github.com/georgii-musikhin" target="_blank" rel="noopener noreferrer" class="">@georgii-musikhin</a></li>
<li class=""><img src="https://github.com/hjsblogger.png" width="32" height="32" alt="@hjsblogger"> <a href="https://github.com/hjsblogger" target="_blank" rel="noopener noreferrer" class="">@hjsblogger</a></li>
<li class=""><img src="https://github.com/xValenciax.png" width="32" height="32" alt="@xValenciax"> <a href="https://github.com/xValenciax" target="_blank" rel="noopener noreferrer" class="">@xValenciax</a></li>
<li class=""><img src="https://github.com/MarwaYoussef1.png" width="32" height="32" alt="@MarwaYoussef1"> <a href="https://github.com/MarwaYoussef1" target="_blank" rel="noopener noreferrer" class="">@MarwaYoussef1</a></li>
<li class=""><img src="https://github.com/sultanpaymob.png" width="32" height="32" alt="@sultanpaymob"> <a href="https://github.com/sultanpaymob" target="_blank" rel="noopener noreferrer" class="">@sultanpaymob</a></li>
<li class=""><img src="https://github.com/osamaayman1005.png" width="32" height="32" alt="@osamaayman1005"> <a href="https://github.com/osamaayman1005" target="_blank" rel="noopener noreferrer" class="">@osamaayman1005</a></li>
<li class=""><img src="https://github.com/Salma2018170.png" width="32" height="32" alt="@Salma2018170"> <a href="https://github.com/Salma2018170" target="_blank" rel="noopener noreferrer" class="">@Salma2018170</a></li>
<li class=""><img src="https://github.com/TarekGaafar.png" width="32" height="32" alt="@TarekGaafar"> <a href="https://github.com/TarekGaafar" target="_blank" rel="noopener noreferrer" class="">@TarekGaafar</a></li>
<li class=""><img src="https://github.com/Waleedmohammed.png" width="32" height="32" alt="@Waleedmohammed"> <a href="https://github.com/Waleedmohammed" target="_blank" rel="noopener noreferrer" class="">@Waleedmohammed</a></li>
<li class=""><img src="https://github.com/khaledskhamis.png" width="32" height="32" alt="@khaledskhamis"> <a href="https://github.com/khaledskhamis" target="_blank" rel="noopener noreferrer" class="">@khaledskhamis</a></li>
<li class=""><img src="https://github.com/themosaeed.png" width="32" height="32" alt="@themosaeed"> <a href="https://github.com/themosaeed" target="_blank" rel="noopener noreferrer" class="">@themosaeed</a></li>
<li class=""><img src="https://github.com/wesamhamed.png" width="32" height="32" alt="@wesamhamed"> <a href="https://github.com/wesamhamed" target="_blank" rel="noopener noreferrer" class="">@wesamhamed</a></li>
<li class=""><img src="https://github.com/DavidIshakGorgy.png" width="32" height="32" alt="@DavidIshakGorgy"> <a href="https://github.com/DavidIshakGorgy" target="_blank" rel="noopener noreferrer" class="">@DavidIshakGorgy</a></li>
<li class=""><img src="https://github.com/BojteTamas.png" width="32" height="32" alt="@BojteTamas"> <a href="https://github.com/BojteTamas" target="_blank" rel="noopener noreferrer" class="">@BojteTamas</a></li>
<li class=""><img src="https://github.com/blacelle.png" width="32" height="32" alt="@blacelle"> <a href="https://github.com/blacelle" target="_blank" rel="noopener noreferrer" class="">@blacelle</a></li>
<li class=""><img src="https://github.com/Ayanasrallah.png" width="32" height="32" alt="@Ayanasrallah"> <a href="https://github.com/Ayanasrallah" target="_blank" rel="noopener noreferrer" class="">@Ayanasrallah</a></li>
<li class=""><img src="https://github.com/AmrAdelElkholy.png" width="32" height="32" alt="@AmrAdelElkholy"> <a href="https://github.com/AmrAdelElkholy" target="_blank" rel="noopener noreferrer" class="">@AmrAdelElkholy</a></li>
<li class=""><img src="https://github.com/amlosman.png" width="32" height="32" alt="@amlosman"> <a href="https://github.com/amlosman" target="_blank" rel="noopener noreferrer" class="">@amlosman</a></li>
<li class=""><img src="https://github.com/ahmednasr95.png" width="32" height="32" alt="@ahmednasr95"> <a href="https://github.com/ahmednasr95" target="_blank" rel="noopener noreferrer" class="">@ahmednasr95</a></li>
<li class=""><img src="https://github.com/ahmed-madyan.png" width="32" height="32" alt="@ahmed-madyan"> <a href="https://github.com/ahmed-madyan" target="_blank" rel="noopener noreferrer" class="">@ahmed-madyan</a></li>
<li class=""><img src="https://github.com/AhmedHelalyy.png" width="32" height="32" alt="@AhmedHelalyy"> <a href="https://github.com/AhmedHelalyy" target="_blank" rel="noopener noreferrer" class="">@AhmedHelalyy</a></li>
<li class=""><img src="https://github.com/A-Alii.png" width="32" height="32" alt="@A-Alii"> <a href="https://github.com/A-Alii" target="_blank" rel="noopener noreferrer" class="">@A-Alii</a></li>
<li class=""><img src="https://github.com/AbdelrahmanFahd.png" width="32" height="32" alt="@AbdelrahmanFahd"> <a href="https://github.com/AbdelrahmanFahd" target="_blank" rel="noopener noreferrer" class="">@AbdelrahmanFahd</a></li>
<li class=""><img src="https://github.com/Abdelrhman-Ellithy.png" width="32" height="32" alt="@Abdelrhman-Ellithy"> <a href="https://github.com/Abdelrhman-Ellithy" target="_blank" rel="noopener noreferrer" class="">@Abdelrhman-Ellithy</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-get-started-in-seconds">🚀 Get Started in Seconds<a href="https://shafthq.github.io/blog/release-10.2.20260610#-get-started-in-seconds" class="hash-link" aria-label="Direct link to 🚀 Get Started in Seconds" title="Direct link to 🚀 Get Started in Seconds" translate="no">​</a></h2>
<p>Upgrading is simple — just update your dependency version:</p>
<div class="language-xml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-xml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">io.github.shafthq</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">SHAFT_ENGINE</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">10.2.20260610</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-join-the-conversation">💬 Join the Conversation<a href="https://shafthq.github.io/blog/release-10.2.20260610#-join-the-conversation" class="hash-link" aria-label="Direct link to 💬 Join the Conversation" title="Direct link to 💬 Join the Conversation" translate="no">​</a></h2>
<p>We'd love to hear what you think! Found a bug? Have an idea? Just want to say hi?</p>
<ul>
<li class="">⭐ <a href="https://github.com/ShaftHQ/SHAFT_ENGINE" target="_blank" rel="noopener noreferrer" class="">Star SHAFT on GitHub</a> — it helps more than you think</li>
<li class="">💡 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/discussions" target="_blank" rel="noopener noreferrer" class="">Start a Discussion</a> — share feedback or ideas</li>
<li class="">🐛 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/issues/new" target="_blank" rel="noopener noreferrer" class="">Report an Issue</a> — help us squash bugs faster</li>
<li class="">📖 <a href="https://shafthq.github.io/" target="_blank" rel="noopener noreferrer" class="">Read the Docs</a> — dive deeper into SHAFT</li>
</ul>
<p>Thanks for being part of the SHAFT journey. Until the next release — happy testing! 🎯</p>]]></content>
        <author>
            <name>AutoBot</name>
            <uri>https://github.com/ShaftHQ/SHAFT_ENGINE</uri>
        </author>
        <category label="shaft_engine" term="shaft_engine"/>
        <category label="release" term="release"/>
        <category label="changelog" term="changelog"/>
        <category label="test-automation" term="test-automation"/>
        <category label="open-source" term="open-source"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[🚀 SHAFT 10.2.20260605: What's New and Why You Should Upgrade Today]]></title>
        <id>https://shafthq.github.io/blog/release-10.2.20260605</id>
        <link href="https://shafthq.github.io/blog/release-10.2.20260605"/>
        <updated>2026-06-05T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Hey there, SHAFT community! 👋]]></summary>
        <content type="html"><![CDATA[<p>Hey there, SHAFT community! 👋</p>
<p>A fresh release just dropped and it's packed with improvements you don't want to miss. <strong>SHAFT_ENGINE 10.2.20260605</strong> is here, and whether you're a seasoned SHAFT user or just getting started, there's something in this release for you.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-what-changed">⚡ What Changed?<a href="https://shafthq.github.io/blog/release-10.2.20260605#-what-changed" class="hash-link" aria-label="Direct link to ⚡ What Changed?" title="Direct link to ⚡ What Changed?" translate="no">​</a></h2>
<ul>
<li class="">Auto-generated release notes for this version are included below.</li>
<li class="">Refactor engine bootstrap &amp; properties; centralize version BOMs and update dependencies by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFTENGINE/pull/2786" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFTENGINE/pull/2786</a></li>
<li class="">Bump Allure/Jackson/BrowserStack versions and require publishing @codex plan comment in AGENTS.md by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFTENGINE/pull/2787" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFTENGINE/pull/2787</a></li>
<li class="">codex: replace httpbin.org calls in BasicAPITests with local in-process fixture by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFTENGINE/pull/2788" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFTENGINE/pull/2788</a></li>
<li class="">Actions: report native click failure when JS fallback disabled (make behavior deterministic) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFTENGINE/pull/2789" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFTENGINE/pull/2789</a></li>
</ul>
<p>👉 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/releases/tag/10.2.20260605" target="_blank" rel="noopener noreferrer" class="">View the full release on GitHub</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-changelog">📋 Changelog<a href="https://shafthq.github.io/blog/release-10.2.20260605#-changelog" class="hash-link" aria-label="Direct link to 📋 Changelog" title="Direct link to 📋 Changelog" translate="no">​</a></h2>
<h1>SHAFT_ENGINE 10.2.20260605</h1>
<p>Auto-generated release notes for this version are included below.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-changed">What's Changed<a href="https://shafthq.github.io/blog/release-10.2.20260605#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed" translate="no">​</a></h2>
<ul>
<li class="">Refactor engine bootstrap &amp; properties; centralize version BOMs and update dependencies by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2786" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2786</a></li>
<li class="">Bump Allure/Jackson/BrowserStack versions and require publishing <code>@codex</code> plan comment in AGENTS.md by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2787" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2787</a></li>
<li class="">codex: replace httpbin.org calls in BasicAPITests with local in-process fixture by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2788" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2788</a></li>
<li class="">Actions: report native click failure when JS fallback disabled (make behavior deterministic) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2789" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2789</a></li>
<li class="">codex: fix retry diagnostic logging lifecycle synchronization by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2790" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2790</a></li>
<li class="">codex: Make Allure listener unit test parallel-safe by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2791" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2791</a></li>
<li class="">codex: fix latest e2e failures by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2792" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2792</a></li>
<li class="">codex: fix latest E2E failures by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2793" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2793</a></li>
<li class="">codex: enable Moon tests and dedicated workflow by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2800" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2800</a></li>
<li class="">codex: fix Edge grid image test isolation by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2801" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2801</a></li>
<li class="">codex: prepare release 10.2.20260605 by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2802" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2802</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.2.20260530...10.2.20260605" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.2.20260530...10.2.20260605</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-community-spotlight">🏆 Community Spotlight<a href="https://shafthq.github.io/blog/release-10.2.20260605#-community-spotlight" class="hash-link" aria-label="Direct link to 🏆 Community Spotlight" title="Direct link to 🏆 Community Spotlight" translate="no">​</a></h2>
<p>This release was made possible by <strong>45 amazing contributors</strong> who have poured their time and expertise into making SHAFT better for everyone.</p>
<p>Open source thrives because of people like these. Every bug fix, every feature, every review — it all counts.</p>
<ul>
<li class=""><img src="https://github.com/MohabMohie.png" width="32" height="32" alt="@MohabMohie"> <a href="https://github.com/MohabMohie" target="_blank" rel="noopener noreferrer" class="">@MohabMohie</a></li>
<li class=""><img src="https://github.com/MahmoudElSharkawy.png" width="32" height="32" alt="@MahmoudElSharkawy"> <a href="https://github.com/MahmoudElSharkawy" target="_blank" rel="noopener noreferrer" class="">@MahmoudElSharkawy</a></li>
<li class=""><img src="https://github.com/MennaMagedm.png" width="32" height="32" alt="@MennaMagedm"> <a href="https://github.com/MennaMagedm" target="_blank" rel="noopener noreferrer" class="">@MennaMagedm</a></li>
<li class=""><img src="https://github.com/AhmdZanoon.png" width="32" height="32" alt="@AhmdZanoon"> <a href="https://github.com/AhmdZanoon" target="_blank" rel="noopener noreferrer" class="">@AhmdZanoon</a></li>
<li class=""><img src="https://github.com/MustafaAgamy.png" width="32" height="32" alt="@MustafaAgamy"> <a href="https://github.com/MustafaAgamy" target="_blank" rel="noopener noreferrer" class="">@MustafaAgamy</a></li>
<li class=""><img src="https://github.com/magdyheiba.png" width="32" height="32" alt="@magdyheiba"> <a href="https://github.com/magdyheiba" target="_blank" rel="noopener noreferrer" class="">@magdyheiba</a></li>
<li class=""><img src="https://github.com/amfarid.png" width="32" height="32" alt="@amfarid"> <a href="https://github.com/amfarid" target="_blank" rel="noopener noreferrer" class="">@amfarid</a></li>
<li class=""><img src="https://github.com/KyrillosNageh.png" width="32" height="32" alt="@KyrillosNageh"> <a href="https://github.com/KyrillosNageh" target="_blank" rel="noopener noreferrer" class="">@KyrillosNageh</a></li>
<li class=""><img src="https://github.com/Mohab-Osama.png" width="32" height="32" alt="@Mohab-Osama"> <a href="https://github.com/Mohab-Osama" target="_blank" rel="noopener noreferrer" class="">@Mohab-Osama</a></li>
<li class=""><img src="https://github.com/RihamMostafa.png" width="32" height="32" alt="@RihamMostafa"> <a href="https://github.com/RihamMostafa" target="_blank" rel="noopener noreferrer" class="">@RihamMostafa</a></li>
<li class=""><img src="https://github.com/MhmdElGazzar.png" width="32" height="32" alt="@MhmdElGazzar"> <a href="https://github.com/MhmdElGazzar" target="_blank" rel="noopener noreferrer" class="">@MhmdElGazzar</a></li>
<li class=""><img src="https://github.com/Mochxd.png" width="32" height="32" alt="@Mochxd"> <a href="https://github.com/Mochxd" target="_blank" rel="noopener noreferrer" class="">@Mochxd</a></li>
<li class=""><img src="https://github.com/MohamedHazem95.png" width="32" height="32" alt="@MohamedHazem95"> <a href="https://github.com/MohamedHazem95" target="_blank" rel="noopener noreferrer" class="">@MohamedHazem95</a></li>
<li class=""><img src="https://github.com/mohamedtawfek05354.png" width="32" height="32" alt="@mohamedtawfek05354"> <a href="https://github.com/mohamedtawfek05354" target="_blank" rel="noopener noreferrer" class="">@mohamedtawfek05354</a></li>
<li class=""><img src="https://github.com/samiir95.png" width="32" height="32" alt="@samiir95"> <a href="https://github.com/samiir95" target="_blank" rel="noopener noreferrer" class="">@samiir95</a></li>
<li class=""><img src="https://github.com/MamdouhMansour.png" width="32" height="32" alt="@MamdouhMansour"> <a href="https://github.com/MamdouhMansour" target="_blank" rel="noopener noreferrer" class="">@MamdouhMansour</a></li>
<li class=""><img src="https://github.com/Kinasr.png" width="32" height="32" alt="@Kinasr"> <a href="https://github.com/Kinasr" target="_blank" rel="noopener noreferrer" class="">@Kinasr</a></li>
<li class=""><img src="https://github.com/MahmoudMabrok.png" width="32" height="32" alt="@MahmoudMabrok"> <a href="https://github.com/MahmoudMabrok" target="_blank" rel="noopener noreferrer" class="">@MahmoudMabrok</a></li>
<li class=""><img src="https://github.com/hammad101088.png" width="32" height="32" alt="@hammad101088"> <a href="https://github.com/hammad101088" target="_blank" rel="noopener noreferrer" class="">@hammad101088</a></li>
<li class=""><img src="https://github.com/ieZaky.png" width="32" height="32" alt="@ieZaky"> <a href="https://github.com/ieZaky" target="_blank" rel="noopener noreferrer" class="">@ieZaky</a></li>
<li class=""><img src="https://github.com/sys123-data.png" width="32" height="32" alt="@sys123-data"> <a href="https://github.com/sys123-data" target="_blank" rel="noopener noreferrer" class="">@sys123-data</a></li>
<li class=""><img src="https://github.com/georgii-musikhin.png" width="32" height="32" alt="@georgii-musikhin"> <a href="https://github.com/georgii-musikhin" target="_blank" rel="noopener noreferrer" class="">@georgii-musikhin</a></li>
<li class=""><img src="https://github.com/hjsblogger.png" width="32" height="32" alt="@hjsblogger"> <a href="https://github.com/hjsblogger" target="_blank" rel="noopener noreferrer" class="">@hjsblogger</a></li>
<li class=""><img src="https://github.com/xValenciax.png" width="32" height="32" alt="@xValenciax"> <a href="https://github.com/xValenciax" target="_blank" rel="noopener noreferrer" class="">@xValenciax</a></li>
<li class=""><img src="https://github.com/MarwaYoussef1.png" width="32" height="32" alt="@MarwaYoussef1"> <a href="https://github.com/MarwaYoussef1" target="_blank" rel="noopener noreferrer" class="">@MarwaYoussef1</a></li>
<li class=""><img src="https://github.com/sultanpaymob.png" width="32" height="32" alt="@sultanpaymob"> <a href="https://github.com/sultanpaymob" target="_blank" rel="noopener noreferrer" class="">@sultanpaymob</a></li>
<li class=""><img src="https://github.com/osamaayman1005.png" width="32" height="32" alt="@osamaayman1005"> <a href="https://github.com/osamaayman1005" target="_blank" rel="noopener noreferrer" class="">@osamaayman1005</a></li>
<li class=""><img src="https://github.com/Salma2018170.png" width="32" height="32" alt="@Salma2018170"> <a href="https://github.com/Salma2018170" target="_blank" rel="noopener noreferrer" class="">@Salma2018170</a></li>
<li class=""><img src="https://github.com/TarekGaafar.png" width="32" height="32" alt="@TarekGaafar"> <a href="https://github.com/TarekGaafar" target="_blank" rel="noopener noreferrer" class="">@TarekGaafar</a></li>
<li class=""><img src="https://github.com/Waleedmohammed.png" width="32" height="32" alt="@Waleedmohammed"> <a href="https://github.com/Waleedmohammed" target="_blank" rel="noopener noreferrer" class="">@Waleedmohammed</a></li>
<li class=""><img src="https://github.com/khaledskhamis.png" width="32" height="32" alt="@khaledskhamis"> <a href="https://github.com/khaledskhamis" target="_blank" rel="noopener noreferrer" class="">@khaledskhamis</a></li>
<li class=""><img src="https://github.com/themosaeed.png" width="32" height="32" alt="@themosaeed"> <a href="https://github.com/themosaeed" target="_blank" rel="noopener noreferrer" class="">@themosaeed</a></li>
<li class=""><img src="https://github.com/wesamhamed.png" width="32" height="32" alt="@wesamhamed"> <a href="https://github.com/wesamhamed" target="_blank" rel="noopener noreferrer" class="">@wesamhamed</a></li>
<li class=""><img src="https://github.com/DavidIshakGorgy.png" width="32" height="32" alt="@DavidIshakGorgy"> <a href="https://github.com/DavidIshakGorgy" target="_blank" rel="noopener noreferrer" class="">@DavidIshakGorgy</a></li>
<li class=""><img src="https://github.com/BojteTamas.png" width="32" height="32" alt="@BojteTamas"> <a href="https://github.com/BojteTamas" target="_blank" rel="noopener noreferrer" class="">@BojteTamas</a></li>
<li class=""><img src="https://github.com/blacelle.png" width="32" height="32" alt="@blacelle"> <a href="https://github.com/blacelle" target="_blank" rel="noopener noreferrer" class="">@blacelle</a></li>
<li class=""><img src="https://github.com/Ayanasrallah.png" width="32" height="32" alt="@Ayanasrallah"> <a href="https://github.com/Ayanasrallah" target="_blank" rel="noopener noreferrer" class="">@Ayanasrallah</a></li>
<li class=""><img src="https://github.com/AmrAdelElkholy.png" width="32" height="32" alt="@AmrAdelElkholy"> <a href="https://github.com/AmrAdelElkholy" target="_blank" rel="noopener noreferrer" class="">@AmrAdelElkholy</a></li>
<li class=""><img src="https://github.com/amlosman.png" width="32" height="32" alt="@amlosman"> <a href="https://github.com/amlosman" target="_blank" rel="noopener noreferrer" class="">@amlosman</a></li>
<li class=""><img src="https://github.com/ahmednasr95.png" width="32" height="32" alt="@ahmednasr95"> <a href="https://github.com/ahmednasr95" target="_blank" rel="noopener noreferrer" class="">@ahmednasr95</a></li>
<li class=""><img src="https://github.com/ahmed-madyan.png" width="32" height="32" alt="@ahmed-madyan"> <a href="https://github.com/ahmed-madyan" target="_blank" rel="noopener noreferrer" class="">@ahmed-madyan</a></li>
<li class=""><img src="https://github.com/AhmedHelalyy.png" width="32" height="32" alt="@AhmedHelalyy"> <a href="https://github.com/AhmedHelalyy" target="_blank" rel="noopener noreferrer" class="">@AhmedHelalyy</a></li>
<li class=""><img src="https://github.com/A-Alii.png" width="32" height="32" alt="@A-Alii"> <a href="https://github.com/A-Alii" target="_blank" rel="noopener noreferrer" class="">@A-Alii</a></li>
<li class=""><img src="https://github.com/AbdelrahmanFahd.png" width="32" height="32" alt="@AbdelrahmanFahd"> <a href="https://github.com/AbdelrahmanFahd" target="_blank" rel="noopener noreferrer" class="">@AbdelrahmanFahd</a></li>
<li class=""><img src="https://github.com/Abdelrhman-Ellithy.png" width="32" height="32" alt="@Abdelrhman-Ellithy"> <a href="https://github.com/Abdelrhman-Ellithy" target="_blank" rel="noopener noreferrer" class="">@Abdelrhman-Ellithy</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-get-started-in-seconds">🚀 Get Started in Seconds<a href="https://shafthq.github.io/blog/release-10.2.20260605#-get-started-in-seconds" class="hash-link" aria-label="Direct link to 🚀 Get Started in Seconds" title="Direct link to 🚀 Get Started in Seconds" translate="no">​</a></h2>
<p>Upgrading is simple — just update your dependency version:</p>
<div class="language-xml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-xml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">io.github.shafthq</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">SHAFT_ENGINE</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">10.2.20260605</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-join-the-conversation">💬 Join the Conversation<a href="https://shafthq.github.io/blog/release-10.2.20260605#-join-the-conversation" class="hash-link" aria-label="Direct link to 💬 Join the Conversation" title="Direct link to 💬 Join the Conversation" translate="no">​</a></h2>
<p>We'd love to hear what you think! Found a bug? Have an idea? Just want to say hi?</p>
<ul>
<li class="">⭐ <a href="https://github.com/ShaftHQ/SHAFT_ENGINE" target="_blank" rel="noopener noreferrer" class="">Star SHAFT on GitHub</a> — it helps more than you think</li>
<li class="">💡 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/discussions" target="_blank" rel="noopener noreferrer" class="">Start a Discussion</a> — share feedback or ideas</li>
<li class="">🐛 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/issues/new" target="_blank" rel="noopener noreferrer" class="">Report an Issue</a> — help us squash bugs faster</li>
<li class="">📖 <a href="https://shafthq.github.io/" target="_blank" rel="noopener noreferrer" class="">Read the Docs</a> — dive deeper into SHAFT</li>
</ul>
<p>Thanks for being part of the SHAFT journey. Until the next release — happy testing! 🎯</p>]]></content>
        <author>
            <name>AutoBot</name>
            <uri>https://github.com/ShaftHQ/SHAFT_ENGINE</uri>
        </author>
        <category label="shaft_engine" term="shaft_engine"/>
        <category label="release" term="release"/>
        <category label="changelog" term="changelog"/>
        <category label="test-automation" term="test-automation"/>
        <category label="open-source" term="open-source"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[🚀 SHAFT 10.2.20260506: What's New and Why You Should Upgrade Today]]></title>
        <id>https://shafthq.github.io/blog/release-10.2.20260506</id>
        <link href="https://shafthq.github.io/blog/release-10.2.20260506"/>
        <updated>2026-05-06T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Hey there, SHAFT community! 👋]]></summary>
        <content type="html"><![CDATA[<p>Hey there, SHAFT community! 👋</p>
<p>A fresh release just dropped and it's packed with improvements you don't want to miss. <strong>SHAFT_ENGINE 10.2.20260506</strong> is here, and whether you're a seasoned SHAFT user or just getting started, there's something in this release for you.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-what-changed">⚡ What Changed?<a href="https://shafthq.github.io/blog/release-10.2.20260506#-what-changed" class="hash-link" aria-label="Direct link to ⚡ What Changed?" title="Direct link to ⚡ What Changed?" translate="no">​</a></h2>
<ul>
<li class="">Improved project hygiene by updating <code>.gitignore</code> and Maven metadata management</li>
<li class="">Expanded SHAFT_ENGINE test coverage across file managers, validation builders, and REST utilities</li>
<li class="">Added Allure 2 compatibility mode and fixed Allure 3 real-time monitoring watch command behavior</li>
</ul>
<p>👉 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/releases/tag/10.2.20260506" target="_blank" rel="noopener noreferrer" class="">View the full release on GitHub</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-changelog">📋 Changelog<a href="https://shafthq.github.io/blog/release-10.2.20260506#-changelog" class="hash-link" aria-label="Direct link to 📋 Changelog" title="Direct link to 📋 Changelog" translate="no">​</a></h2>
<div align="center"><h1>🎉 SHAFT_ENGINE 10.2.20260506</h1><p><strong>The unified test automation engine — Web · Mobile · API · CLI · Database</strong></p><p><a href="https://central.sonatype.com/artifact/io.github.shafthq/SHAFT_ENGINE" target="_blank" rel="noopener noreferrer" class=""><img decoding="async" loading="lazy" src="https://img.shields.io/maven-central/v/io.github.shafthq/SHAFT_ENGINE?color=blue&amp;logo=apachemaven" alt="Maven Central" class="img_ev3q"></a>
<a href="https://github.com/ShaftHQ/SHAFT_ENGINE/stargazers" target="_blank" rel="noopener noreferrer" class=""><img decoding="async" loading="lazy" src="https://img.shields.io/github/stars/ShaftHQ/SHAFT_ENGINE?style=social" alt="GitHub stars" class="img_ev3q"></a></p></div>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="️-how-to-upgrade">⬆️ How to Upgrade<a href="https://shafthq.github.io/blog/release-10.2.20260506#%EF%B8%8F-how-to-upgrade" class="hash-link" aria-label="Direct link to ⬆️ How to Upgrade" title="Direct link to ⬆️ How to Upgrade" translate="no">​</a></h2>
<p>Update the version in your <code>pom.xml</code>:</p>
<div class="language-xml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-xml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">properties</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">shaft_engine.version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">10.2.20260506</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">shaft_engine.version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">properties</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<p>Or update the dependency directly:</p>
<div class="language-xml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-xml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">io.github.shafthq</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">SHAFT_ENGINE</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">10.2.20260506</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<blockquote>
<p>[!IMPORTANT]
<strong>We support only the latest release.</strong> If you encounter any issue, please upgrade to <code>10.2.20260506</code> first before filing a bug report.</p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-resources">📖 Resources<a href="https://shafthq.github.io/blog/release-10.2.20260506#-resources" class="hash-link" aria-label="Direct link to 📖 Resources" title="Direct link to 📖 Resources" translate="no">​</a></h2>
<table><thead><tr><th>Resource</th><th>Link</th></tr></thead><tbody><tr><td>📚 Full Documentation</td><td><a href="https://shafthq.github.io/" target="_blank" rel="noopener noreferrer" class="">shafthq.github.io</a></td></tr><tr><td>🚀 Getting Started</td><td><a href="https://shafthq.github.io/" target="_blank" rel="noopener noreferrer" class="">Quick-Start Guide</a></td></tr><tr><td>📋 JavaDocs</td><td><a href="https://shafthq.github.io/SHAFT_ENGINE/" target="_blank" rel="noopener noreferrer" class="">ShaftHQ JavaDoc</a></td></tr><tr><td>🤖 MCP Server</td><td><a href="https://github.com/ShaftHQ/shaft-mcp" target="_blank" rel="noopener noreferrer" class="">shaft-mcp</a></td></tr><tr><td>🗺️ Roadmap</td><td><a href="https://github.com/orgs/ShaftHQ/projects" target="_blank" rel="noopener noreferrer" class="">GitHub Projects</a></td></tr><tr><td>💬 Community</td><td><a href="https://github.com/ShaftHQ/SHAFT_ENGINE/discussions" target="_blank" rel="noopener noreferrer" class="">GitHub Discussions</a></td></tr><tr><td>🐛 Report a Bug</td><td><a href="https://github.com/ShaftHQ/SHAFT_ENGINE/issues/new?template=bug_report.md" target="_blank" rel="noopener noreferrer" class="">Bug Report</a></td></tr><tr><td>💡 Request a Feature</td><td><a href="https://github.com/ShaftHQ/SHAFT_ENGINE/issues/new?template=feature_request.md" target="_blank" rel="noopener noreferrer" class="">Feature Request</a></td></tr><tr><td>💬 Slack</td><td><a href="https://join.slack.com/t/shaft-engine/shared_invite/zt-oii5i2gg-0ZGnih_Y34NjK7QqDn01Dw" target="_blank" rel="noopener noreferrer" class="">Join our Slack</a></td></tr></tbody></table>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-get-involved">🙌 Get Involved<a href="https://shafthq.github.io/blog/release-10.2.20260506#-get-involved" class="hash-link" aria-label="Direct link to 🙌 Get Involved" title="Direct link to 🙌 Get Involved" translate="no">​</a></h2>
<p>If SHAFT_ENGINE saves you time, helps your team ship quality software faster, or you just enjoy using it — please consider:</p>
<ul>
<li class="">⭐ <strong><a href="https://github.com/ShaftHQ/SHAFT_ENGINE" target="_blank" rel="noopener noreferrer" class="">Star the repository</a></strong> — it helps others discover the project and motivates the team!</li>
<li class="">🐛 <strong>Found a bug?</strong> <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/issues/new?template=bug_report.md" target="_blank" rel="noopener noreferrer" class="">Open a bug report</a></li>
<li class="">💡 <strong>Have an idea?</strong> <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/issues/new?template=feature_request.md" target="_blank" rel="noopener noreferrer" class="">Request a feature</a></li>
<li class="">🤝 <strong>Want to contribute?</strong> Read the <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/blob/main/CONTRIBUTING.md" target="_blank" rel="noopener noreferrer" class="">Contributing Guide</a></li>
<li class="">💬 <strong>Questions or feedback?</strong> Join us on <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/discussions" target="_blank" rel="noopener noreferrer" class="">GitHub Discussions</a> or <a href="https://join.slack.com/t/shaft-engine/shared_invite/zt-oii5i2gg-0ZGnih_Y34NjK7QqDn01Dw" target="_blank" rel="noopener noreferrer" class="">Slack</a></li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-changed">What's Changed<a href="https://shafthq.github.io/blog/release-10.2.20260506#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="-other-changes">🔨 Other Changes<a href="https://shafthq.github.io/blog/release-10.2.20260506#-other-changes" class="hash-link" aria-label="Direct link to 🔨 Other Changes" title="Direct link to 🔨 Other Changes" translate="no">​</a></h3>
<ul>
<li class="">Update .gitignore and pom.xml for improved encoding and dependency management by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2498" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2498</a></li>
<li class="">feat(tests): Increase SHAFT_ENGINE unit and E2E test coverage across file managers, validation builders, and REST utilities by @Copilot in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2501" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2501</a></li>
<li class="">feat: Allure 2 compatibility mode + fix Allure 3 real-time monitoring watch command by @Copilot in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2497" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2497</a></li>
<li class="">chore(release): prepare SHAFT_ENGINE 10.2.20260506 metadata by @Copilot in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2502" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2502</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.2.20260505...10.2.20260506" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.2.20260505...10.2.20260506</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-community-spotlight">🏆 Community Spotlight<a href="https://shafthq.github.io/blog/release-10.2.20260506#-community-spotlight" class="hash-link" aria-label="Direct link to 🏆 Community Spotlight" title="Direct link to 🏆 Community Spotlight" translate="no">​</a></h2>
<p>This release was made possible by <strong>45 amazing contributors</strong> who have poured their time and expertise into making SHAFT better for everyone.</p>
<p>Open source thrives because of people like these. Every bug fix, every feature, every review — it all counts.</p>
<ul>
<li class=""><img src="https://github.com/MohabMohie.png" width="32" height="32" alt="@MohabMohie"> <a href="https://github.com/MohabMohie" target="_blank" rel="noopener noreferrer" class="">@MohabMohie</a></li>
<li class=""><img src="https://github.com/MahmoudElSharkawy.png" width="32" height="32" alt="@MahmoudElSharkawy"> <a href="https://github.com/MahmoudElSharkawy" target="_blank" rel="noopener noreferrer" class="">@MahmoudElSharkawy</a></li>
<li class=""><img src="https://github.com/MennaMagedm.png" width="32" height="32" alt="@MennaMagedm"> <a href="https://github.com/MennaMagedm" target="_blank" rel="noopener noreferrer" class="">@MennaMagedm</a></li>
<li class=""><img src="https://github.com/AhmdZanoon.png" width="32" height="32" alt="@AhmdZanoon"> <a href="https://github.com/AhmdZanoon" target="_blank" rel="noopener noreferrer" class="">@AhmdZanoon</a></li>
<li class=""><img src="https://github.com/magdyheiba.png" width="32" height="32" alt="@magdyheiba"> <a href="https://github.com/magdyheiba" target="_blank" rel="noopener noreferrer" class="">@magdyheiba</a></li>
<li class=""><img src="https://github.com/MustafaAgamy.png" width="32" height="32" alt="@MustafaAgamy"> <a href="https://github.com/MustafaAgamy" target="_blank" rel="noopener noreferrer" class="">@MustafaAgamy</a></li>
<li class=""><img src="https://github.com/amfarid.png" width="32" height="32" alt="@amfarid"> <a href="https://github.com/amfarid" target="_blank" rel="noopener noreferrer" class="">@amfarid</a></li>
<li class=""><img src="https://github.com/KyrillosNageh.png" width="32" height="32" alt="@KyrillosNageh"> <a href="https://github.com/KyrillosNageh" target="_blank" rel="noopener noreferrer" class="">@KyrillosNageh</a></li>
<li class=""><img src="https://github.com/Mohab-Osama.png" width="32" height="32" alt="@Mohab-Osama"> <a href="https://github.com/Mohab-Osama" target="_blank" rel="noopener noreferrer" class="">@Mohab-Osama</a></li>
<li class=""><img src="https://github.com/RihamMostafa.png" width="32" height="32" alt="@RihamMostafa"> <a href="https://github.com/RihamMostafa" target="_blank" rel="noopener noreferrer" class="">@RihamMostafa</a></li>
<li class=""><img src="https://github.com/MhmdElGazzar.png" width="32" height="32" alt="@MhmdElGazzar"> <a href="https://github.com/MhmdElGazzar" target="_blank" rel="noopener noreferrer" class="">@MhmdElGazzar</a></li>
<li class=""><img src="https://github.com/MohamedHazem95.png" width="32" height="32" alt="@MohamedHazem95"> <a href="https://github.com/MohamedHazem95" target="_blank" rel="noopener noreferrer" class="">@MohamedHazem95</a></li>
<li class=""><img src="https://github.com/MamdouhMansour.png" width="32" height="32" alt="@MamdouhMansour"> <a href="https://github.com/MamdouhMansour" target="_blank" rel="noopener noreferrer" class="">@MamdouhMansour</a></li>
<li class=""><img src="https://github.com/samiir95.png" width="32" height="32" alt="@samiir95"> <a href="https://github.com/samiir95" target="_blank" rel="noopener noreferrer" class="">@samiir95</a></li>
<li class=""><img src="https://github.com/mohamedtawfek05354.png" width="32" height="32" alt="@mohamedtawfek05354"> <a href="https://github.com/mohamedtawfek05354" target="_blank" rel="noopener noreferrer" class="">@mohamedtawfek05354</a></li>
<li class=""><img src="https://github.com/sys123-data.png" width="32" height="32" alt="@sys123-data"> <a href="https://github.com/sys123-data" target="_blank" rel="noopener noreferrer" class="">@sys123-data</a></li>
<li class=""><img src="https://github.com/ieZaky.png" width="32" height="32" alt="@ieZaky"> <a href="https://github.com/ieZaky" target="_blank" rel="noopener noreferrer" class="">@ieZaky</a></li>
<li class=""><img src="https://github.com/hammad101088.png" width="32" height="32" alt="@hammad101088"> <a href="https://github.com/hammad101088" target="_blank" rel="noopener noreferrer" class="">@hammad101088</a></li>
<li class=""><img src="https://github.com/MahmoudMabrok.png" width="32" height="32" alt="@MahmoudMabrok"> <a href="https://github.com/MahmoudMabrok" target="_blank" rel="noopener noreferrer" class="">@MahmoudMabrok</a></li>
<li class=""><img src="https://github.com/Kinasr.png" width="32" height="32" alt="@Kinasr"> <a href="https://github.com/Kinasr" target="_blank" rel="noopener noreferrer" class="">@Kinasr</a></li>
<li class=""><img src="https://github.com/wesamhamed.png" width="32" height="32" alt="@wesamhamed"> <a href="https://github.com/wesamhamed" target="_blank" rel="noopener noreferrer" class="">@wesamhamed</a></li>
<li class=""><img src="https://github.com/themosaeed.png" width="32" height="32" alt="@themosaeed"> <a href="https://github.com/themosaeed" target="_blank" rel="noopener noreferrer" class="">@themosaeed</a></li>
<li class=""><img src="https://github.com/khaledskhamis.png" width="32" height="32" alt="@khaledskhamis"> <a href="https://github.com/khaledskhamis" target="_blank" rel="noopener noreferrer" class="">@khaledskhamis</a></li>
<li class=""><img src="https://github.com/Waleedmohammed.png" width="32" height="32" alt="@Waleedmohammed"> <a href="https://github.com/Waleedmohammed" target="_blank" rel="noopener noreferrer" class="">@Waleedmohammed</a></li>
<li class=""><img src="https://github.com/TarekGaafar.png" width="32" height="32" alt="@TarekGaafar"> <a href="https://github.com/TarekGaafar" target="_blank" rel="noopener noreferrer" class="">@TarekGaafar</a></li>
<li class=""><img src="https://github.com/Salma2018170.png" width="32" height="32" alt="@Salma2018170"> <a href="https://github.com/Salma2018170" target="_blank" rel="noopener noreferrer" class="">@Salma2018170</a></li>
<li class=""><img src="https://github.com/osamaayman1005.png" width="32" height="32" alt="@osamaayman1005"> <a href="https://github.com/osamaayman1005" target="_blank" rel="noopener noreferrer" class="">@osamaayman1005</a></li>
<li class=""><img src="https://github.com/sultanpaymob.png" width="32" height="32" alt="@sultanpaymob"> <a href="https://github.com/sultanpaymob" target="_blank" rel="noopener noreferrer" class="">@sultanpaymob</a></li>
<li class=""><img src="https://github.com/Mochxd.png" width="32" height="32" alt="@Mochxd"> <a href="https://github.com/Mochxd" target="_blank" rel="noopener noreferrer" class="">@Mochxd</a></li>
<li class=""><img src="https://github.com/MarwaYoussef1.png" width="32" height="32" alt="@MarwaYoussef1"> <a href="https://github.com/MarwaYoussef1" target="_blank" rel="noopener noreferrer" class="">@MarwaYoussef1</a></li>
<li class=""><img src="https://github.com/xValenciax.png" width="32" height="32" alt="@xValenciax"> <a href="https://github.com/xValenciax" target="_blank" rel="noopener noreferrer" class="">@xValenciax</a></li>
<li class=""><img src="https://github.com/hjsblogger.png" width="32" height="32" alt="@hjsblogger"> <a href="https://github.com/hjsblogger" target="_blank" rel="noopener noreferrer" class="">@hjsblogger</a></li>
<li class=""><img src="https://github.com/georgii-musikhin.png" width="32" height="32" alt="@georgii-musikhin"> <a href="https://github.com/georgii-musikhin" target="_blank" rel="noopener noreferrer" class="">@georgii-musikhin</a></li>
<li class=""><img src="https://github.com/DavidIshakGorgy.png" width="32" height="32" alt="@DavidIshakGorgy"> <a href="https://github.com/DavidIshakGorgy" target="_blank" rel="noopener noreferrer" class="">@DavidIshakGorgy</a></li>
<li class=""><img src="https://github.com/BojteTamas.png" width="32" height="32" alt="@BojteTamas"> <a href="https://github.com/BojteTamas" target="_blank" rel="noopener noreferrer" class="">@BojteTamas</a></li>
<li class=""><img src="https://github.com/blacelle.png" width="32" height="32" alt="@blacelle"> <a href="https://github.com/blacelle" target="_blank" rel="noopener noreferrer" class="">@blacelle</a></li>
<li class=""><img src="https://github.com/Ayanasrallah.png" width="32" height="32" alt="@Ayanasrallah"> <a href="https://github.com/Ayanasrallah" target="_blank" rel="noopener noreferrer" class="">@Ayanasrallah</a></li>
<li class=""><img src="https://github.com/AmrAdelElkholy.png" width="32" height="32" alt="@AmrAdelElkholy"> <a href="https://github.com/AmrAdelElkholy" target="_blank" rel="noopener noreferrer" class="">@AmrAdelElkholy</a></li>
<li class=""><img src="https://github.com/amlosman.png" width="32" height="32" alt="@amlosman"> <a href="https://github.com/amlosman" target="_blank" rel="noopener noreferrer" class="">@amlosman</a></li>
<li class=""><img src="https://github.com/ahmednasr95.png" width="32" height="32" alt="@ahmednasr95"> <a href="https://github.com/ahmednasr95" target="_blank" rel="noopener noreferrer" class="">@ahmednasr95</a></li>
<li class=""><img src="https://github.com/ahmed-madyan.png" width="32" height="32" alt="@ahmed-madyan"> <a href="https://github.com/ahmed-madyan" target="_blank" rel="noopener noreferrer" class="">@ahmed-madyan</a></li>
<li class=""><img src="https://github.com/AhmedHelalyy.png" width="32" height="32" alt="@AhmedHelalyy"> <a href="https://github.com/AhmedHelalyy" target="_blank" rel="noopener noreferrer" class="">@AhmedHelalyy</a></li>
<li class=""><img src="https://github.com/A-Alii.png" width="32" height="32" alt="@A-Alii"> <a href="https://github.com/A-Alii" target="_blank" rel="noopener noreferrer" class="">@A-Alii</a></li>
<li class=""><img src="https://github.com/AbdelrahmanFahd.png" width="32" height="32" alt="@AbdelrahmanFahd"> <a href="https://github.com/AbdelrahmanFahd" target="_blank" rel="noopener noreferrer" class="">@AbdelrahmanFahd</a></li>
<li class=""><img src="https://github.com/Abdelrhman-Ellithy.png" width="32" height="32" alt="@Abdelrhman-Ellithy"> <a href="https://github.com/Abdelrhman-Ellithy" target="_blank" rel="noopener noreferrer" class="">@Abdelrhman-Ellithy</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-get-started-in-seconds">🚀 Get Started in Seconds<a href="https://shafthq.github.io/blog/release-10.2.20260506#-get-started-in-seconds" class="hash-link" aria-label="Direct link to 🚀 Get Started in Seconds" title="Direct link to 🚀 Get Started in Seconds" translate="no">​</a></h2>
<p>Upgrading is simple — just update your dependency version:</p>
<div class="language-xml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-xml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">io.github.shafthq</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">SHAFT_ENGINE</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">10.2.20260506</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-join-the-conversation">💬 Join the Conversation<a href="https://shafthq.github.io/blog/release-10.2.20260506#-join-the-conversation" class="hash-link" aria-label="Direct link to 💬 Join the Conversation" title="Direct link to 💬 Join the Conversation" translate="no">​</a></h2>
<p>We'd love to hear what you think! Found a bug? Have an idea? Just want to say hi?</p>
<ul>
<li class="">⭐ <a href="https://github.com/ShaftHQ/SHAFT_ENGINE" target="_blank" rel="noopener noreferrer" class="">Star SHAFT on GitHub</a> — it helps more than you think</li>
<li class="">💡 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/discussions" target="_blank" rel="noopener noreferrer" class="">Start a Discussion</a> — share feedback or ideas</li>
<li class="">🐛 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/issues/new" target="_blank" rel="noopener noreferrer" class="">Report an Issue</a> — help us squash bugs faster</li>
<li class="">📖 <a href="https://shafthq.github.io/" target="_blank" rel="noopener noreferrer" class="">Read the Docs</a> — dive deeper into SHAFT</li>
</ul>
<p>Thanks for being part of the SHAFT journey. Until the next release — happy testing! 🎯</p>]]></content>
        <author>
            <name>AutoBot</name>
            <uri>https://github.com/ShaftHQ/SHAFT_ENGINE</uri>
        </author>
        <category label="shaft_engine" term="shaft_engine"/>
        <category label="release" term="release"/>
        <category label="changelog" term="changelog"/>
        <category label="test-automation" term="test-automation"/>
        <category label="open-source" term="open-source"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[🚀 SHAFT 10.2.20260505: What's New and Why You Should Upgrade Today]]></title>
        <id>https://shafthq.github.io/blog/release-10.2.20260505</id>
        <link href="https://shafthq.github.io/blog/release-10.2.20260505"/>
        <updated>2026-05-05T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Hey there, SHAFT community! 👋]]></summary>
        <content type="html"><![CDATA[<p>Hey there, SHAFT community! 👋</p>
<p>A fresh release just dropped and it's packed with improvements you don't want to miss. <strong>SHAFT_ENGINE 10.2.20260505</strong> is here, and whether you're a seasoned SHAFT user or just getting started, there's something in this release for you.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-what-changed">⚡ What Changed?<a href="https://shafthq.github.io/blog/release-10.2.20260505#-what-changed" class="hash-link" aria-label="Direct link to ⚡ What Changed?" title="Direct link to ⚡ What Changed?" translate="no">​</a></h2>
<ul>
<li class="">This release focuses on dependency and stability improvements across SHAFT_ENGINE.</li>
</ul>
<p>👉 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/releases/tag/10.2.20260505" target="_blank" rel="noopener noreferrer" class="">View the full release on GitHub</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-changelog">📋 Changelog<a href="https://shafthq.github.io/blog/release-10.2.20260505#-changelog" class="hash-link" aria-label="Direct link to 📋 Changelog" title="Direct link to 📋 Changelog" translate="no">​</a></h2>
<div align="center"><h1>🎉 SHAFT_ENGINE 10.2.20260505</h1><p><strong>The unified test automation engine — Web · Mobile · API · CLI · Database</strong></p><p><a href="https://central.sonatype.com/artifact/io.github.shafthq/SHAFT_ENGINE" target="_blank" rel="noopener noreferrer" class=""><img decoding="async" loading="lazy" src="https://img.shields.io/maven-central/v/io.github.shafthq/SHAFT_ENGINE?color=blue&amp;logo=apachemaven" alt="Maven Central" class="img_ev3q"></a>
<a href="https://github.com/ShaftHQ/SHAFT_ENGINE/stargazers" target="_blank" rel="noopener noreferrer" class=""><img decoding="async" loading="lazy" src="https://img.shields.io/github/stars/ShaftHQ/SHAFT_ENGINE?style=social" alt="GitHub stars" class="img_ev3q"></a></p></div>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="️-how-to-upgrade">⬆️ How to Upgrade<a href="https://shafthq.github.io/blog/release-10.2.20260505#%EF%B8%8F-how-to-upgrade" class="hash-link" aria-label="Direct link to ⬆️ How to Upgrade" title="Direct link to ⬆️ How to Upgrade" translate="no">​</a></h2>
<p>Update the version in your <code>pom.xml</code>:</p>
<div class="language-xml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-xml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">properties</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">shaft_engine.version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">10.2.20260505</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">shaft_engine.version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">properties</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<p>Or update the dependency directly:</p>
<div class="language-xml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-xml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">io.github.shafthq</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">SHAFT_ENGINE</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">10.2.20260505</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<blockquote>
<p>[!IMPORTANT]
<strong>We support only the latest release.</strong> If you encounter any issue, please upgrade to <code>10.2.20260505</code> first before filing a bug report.</p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-resources">📖 Resources<a href="https://shafthq.github.io/blog/release-10.2.20260505#-resources" class="hash-link" aria-label="Direct link to 📖 Resources" title="Direct link to 📖 Resources" translate="no">​</a></h2>
<table><thead><tr><th>Resource</th><th>Link</th></tr></thead><tbody><tr><td>📚 Full Documentation</td><td><a href="https://shafthq.github.io/" target="_blank" rel="noopener noreferrer" class="">shafthq.github.io</a></td></tr><tr><td>🚀 Getting Started</td><td><a href="https://shafthq.github.io/" target="_blank" rel="noopener noreferrer" class="">Quick-Start Guide</a></td></tr><tr><td>📋 JavaDocs</td><td><a href="https://shafthq.github.io/SHAFT_ENGINE/" target="_blank" rel="noopener noreferrer" class="">ShaftHQ JavaDoc</a></td></tr><tr><td>🤖 MCP Server</td><td><a href="https://github.com/ShaftHQ/shaft-mcp" target="_blank" rel="noopener noreferrer" class="">shaft-mcp</a></td></tr><tr><td>🗺️ Roadmap</td><td><a href="https://github.com/orgs/ShaftHQ/projects" target="_blank" rel="noopener noreferrer" class="">GitHub Projects</a></td></tr><tr><td>💬 Community</td><td><a href="https://github.com/ShaftHQ/SHAFT_ENGINE/discussions" target="_blank" rel="noopener noreferrer" class="">GitHub Discussions</a></td></tr><tr><td>🐛 Report a Bug</td><td><a href="https://github.com/ShaftHQ/SHAFT_ENGINE/issues/new?template=bug_report.md" target="_blank" rel="noopener noreferrer" class="">Bug Report</a></td></tr><tr><td>💡 Request a Feature</td><td><a href="https://github.com/ShaftHQ/SHAFT_ENGINE/issues/new?template=feature_request.md" target="_blank" rel="noopener noreferrer" class="">Feature Request</a></td></tr><tr><td>💬 Slack</td><td><a href="https://join.slack.com/t/shaft-engine/shared_invite/zt-oii5i2gg-0ZGnih_Y34NjK7QqDn01Dw" target="_blank" rel="noopener noreferrer" class="">Join our Slack</a></td></tr></tbody></table>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-get-involved">🙌 Get Involved<a href="https://shafthq.github.io/blog/release-10.2.20260505#-get-involved" class="hash-link" aria-label="Direct link to 🙌 Get Involved" title="Direct link to 🙌 Get Involved" translate="no">​</a></h2>
<p>If SHAFT_ENGINE saves you time, helps your team ship quality software faster, or you just enjoy using it — please consider:</p>
<ul>
<li class="">⭐ <strong><a href="https://github.com/ShaftHQ/SHAFT_ENGINE" target="_blank" rel="noopener noreferrer" class="">Star the repository</a></strong> — it helps others discover the project and motivates the team!</li>
<li class="">🐛 <strong>Found a bug?</strong> <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/issues/new?template=bug_report.md" target="_blank" rel="noopener noreferrer" class="">Open a bug report</a></li>
<li class="">💡 <strong>Have an idea?</strong> <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/issues/new?template=feature_request.md" target="_blank" rel="noopener noreferrer" class="">Request a feature</a></li>
<li class="">🤝 <strong>Want to contribute?</strong> Read the <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/blob/main/CONTRIBUTING.md" target="_blank" rel="noopener noreferrer" class="">Contributing Guide</a></li>
<li class="">💬 <strong>Questions or feedback?</strong> Join us on <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/discussions" target="_blank" rel="noopener noreferrer" class="">GitHub Discussions</a> or <a href="https://join.slack.com/t/shaft-engine/shared_invite/zt-oii5i2gg-0ZGnih_Y34NjK7QqDn01Dw" target="_blank" rel="noopener noreferrer" class="">Slack</a></li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-changed">What's Changed<a href="https://shafthq.github.io/blog/release-10.2.20260505#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="-other-changes">🔨 Other Changes<a href="https://shafthq.github.io/blog/release-10.2.20260505#-other-changes" class="hash-link" aria-label="Direct link to 🔨 Other Changes" title="Direct link to 🔨 Other Changes" translate="no">​</a></h3>
<ul>
<li class="">Fix Code Quality Scan to emit only true stable dependency upgrades by @Copilot in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2473" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2473</a></li>
<li class="">fix: correct API attachment MIME types and replace AllureRestAssured HTML filter by @Copilot in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2476" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2476</a></li>
<li class="">Fix broken links in docs surfaced by Broken Links Audit by @Copilot in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2478" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2478</a></li>
<li class="">Fix action logging defaults, retry diagnostics, and duplicate Allure/API failure logs by @Copilot in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2474" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2474</a></li>
<li class="">Reduce LTS lazy-loading overhead while preserving deferred network synchronization by @Copilot in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2479" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2479</a></li>
<li class="">Add maintainer-safe history-flatten tooling to cut clone cost and preserve attribution by @Copilot in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2480" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2480</a></li>
<li class="">Suppress Java 25 launch warnings across Maven and Surefire JVMs by @Copilot in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2481" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2481</a></li>
<li class="">feat: Dropped initial engine download size by over 70% making quick starts that much quicker by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2483" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2483</a></li>
<li class="">Fix log mojibake and enforce UTF-8/ANSI-safe console formatting by @Copilot in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2482" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2482</a></li>
<li class="">Fix missing JavaDocs and eliminate Javadoc warning noise by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2484" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2484</a></li>
<li class="">Add localization-aware text assertions (direction + language) for element and browser validations by @Copilot in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2485" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2485</a></li>
<li class="">Add Netty BOM dependency to pom.xml for transitive security updates by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2486" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2486</a></li>
<li class="">Add opt-in enforcement for configured Allure 3 CLI version by @Copilot in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2487" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2487</a></li>
<li class="">Refresh maximumPerformanceMode behavior and migrate framework property writes off System.setProperty by @Copilot in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2488" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2488</a></li>
<li class="">Raise measurable coverage for property-layer configs and codify coverage-reporting output by @Copilot in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2489" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2489</a></li>
<li class="">Fix logging styling issues and enhance configuration for better readability by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2490" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2490</a></li>
<li class="">release-prep-fixes-and-enhancements by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2491" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2491</a></li>
<li class="">Increase unit coverage for RealtimeReporter/FileActions/CucumberFeatureListener/DriverFactoryHelper/ImageProcessingActions/LambdaTestHelper by @Copilot in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2492" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2492</a></li>
<li class="">Refactor test code quality: local variables, descriptive names, thread safety, and coverage improvements by @Copilot in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2493" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2493</a></li>
<li class="">Prepare release 10.2.20260505 and streamline release automation flow by @Copilot in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2494" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2494</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.2.20260501...10.2.20260505" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.2.20260501...10.2.20260505</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-community-spotlight">🏆 Community Spotlight<a href="https://shafthq.github.io/blog/release-10.2.20260505#-community-spotlight" class="hash-link" aria-label="Direct link to 🏆 Community Spotlight" title="Direct link to 🏆 Community Spotlight" translate="no">​</a></h2>
<p>This release was made possible by <strong>45 amazing contributors</strong> who have poured their time and expertise into making SHAFT better for everyone.</p>
<p>Open source thrives because of people like these. Every bug fix, every feature, every review — it all counts.</p>
<ul>
<li class=""><img src="https://github.com/MohabMohie.png" width="32" height="32" alt="@MohabMohie"> <a href="https://github.com/MohabMohie" target="_blank" rel="noopener noreferrer" class="">@MohabMohie</a></li>
<li class=""><img src="https://github.com/MahmoudElSharkawy.png" width="32" height="32" alt="@MahmoudElSharkawy"> <a href="https://github.com/MahmoudElSharkawy" target="_blank" rel="noopener noreferrer" class="">@MahmoudElSharkawy</a></li>
<li class=""><img src="https://github.com/MennaMagedm.png" width="32" height="32" alt="@MennaMagedm"> <a href="https://github.com/MennaMagedm" target="_blank" rel="noopener noreferrer" class="">@MennaMagedm</a></li>
<li class=""><img src="https://github.com/AhmdZanoon.png" width="32" height="32" alt="@AhmdZanoon"> <a href="https://github.com/AhmdZanoon" target="_blank" rel="noopener noreferrer" class="">@AhmdZanoon</a></li>
<li class=""><img src="https://github.com/magdyheiba.png" width="32" height="32" alt="@magdyheiba"> <a href="https://github.com/magdyheiba" target="_blank" rel="noopener noreferrer" class="">@magdyheiba</a></li>
<li class=""><img src="https://github.com/MustafaAgamy.png" width="32" height="32" alt="@MustafaAgamy"> <a href="https://github.com/MustafaAgamy" target="_blank" rel="noopener noreferrer" class="">@MustafaAgamy</a></li>
<li class=""><img src="https://github.com/amfarid.png" width="32" height="32" alt="@amfarid"> <a href="https://github.com/amfarid" target="_blank" rel="noopener noreferrer" class="">@amfarid</a></li>
<li class=""><img src="https://github.com/KyrillosNageh.png" width="32" height="32" alt="@KyrillosNageh"> <a href="https://github.com/KyrillosNageh" target="_blank" rel="noopener noreferrer" class="">@KyrillosNageh</a></li>
<li class=""><img src="https://github.com/Mohab-Osama.png" width="32" height="32" alt="@Mohab-Osama"> <a href="https://github.com/Mohab-Osama" target="_blank" rel="noopener noreferrer" class="">@Mohab-Osama</a></li>
<li class=""><img src="https://github.com/RihamMostafa.png" width="32" height="32" alt="@RihamMostafa"> <a href="https://github.com/RihamMostafa" target="_blank" rel="noopener noreferrer" class="">@RihamMostafa</a></li>
<li class=""><img src="https://github.com/MhmdElGazzar.png" width="32" height="32" alt="@MhmdElGazzar"> <a href="https://github.com/MhmdElGazzar" target="_blank" rel="noopener noreferrer" class="">@MhmdElGazzar</a></li>
<li class=""><img src="https://github.com/MohamedHazem95.png" width="32" height="32" alt="@MohamedHazem95"> <a href="https://github.com/MohamedHazem95" target="_blank" rel="noopener noreferrer" class="">@MohamedHazem95</a></li>
<li class=""><img src="https://github.com/MamdouhMansour.png" width="32" height="32" alt="@MamdouhMansour"> <a href="https://github.com/MamdouhMansour" target="_blank" rel="noopener noreferrer" class="">@MamdouhMansour</a></li>
<li class=""><img src="https://github.com/samiir95.png" width="32" height="32" alt="@samiir95"> <a href="https://github.com/samiir95" target="_blank" rel="noopener noreferrer" class="">@samiir95</a></li>
<li class=""><img src="https://github.com/mohamedtawfek05354.png" width="32" height="32" alt="@mohamedtawfek05354"> <a href="https://github.com/mohamedtawfek05354" target="_blank" rel="noopener noreferrer" class="">@mohamedtawfek05354</a></li>
<li class=""><img src="https://github.com/sys123-data.png" width="32" height="32" alt="@sys123-data"> <a href="https://github.com/sys123-data" target="_blank" rel="noopener noreferrer" class="">@sys123-data</a></li>
<li class=""><img src="https://github.com/ieZaky.png" width="32" height="32" alt="@ieZaky"> <a href="https://github.com/ieZaky" target="_blank" rel="noopener noreferrer" class="">@ieZaky</a></li>
<li class=""><img src="https://github.com/hammad101088.png" width="32" height="32" alt="@hammad101088"> <a href="https://github.com/hammad101088" target="_blank" rel="noopener noreferrer" class="">@hammad101088</a></li>
<li class=""><img src="https://github.com/MahmoudMabrok.png" width="32" height="32" alt="@MahmoudMabrok"> <a href="https://github.com/MahmoudMabrok" target="_blank" rel="noopener noreferrer" class="">@MahmoudMabrok</a></li>
<li class=""><img src="https://github.com/Kinasr.png" width="32" height="32" alt="@Kinasr"> <a href="https://github.com/Kinasr" target="_blank" rel="noopener noreferrer" class="">@Kinasr</a></li>
<li class=""><img src="https://github.com/wesamhamed.png" width="32" height="32" alt="@wesamhamed"> <a href="https://github.com/wesamhamed" target="_blank" rel="noopener noreferrer" class="">@wesamhamed</a></li>
<li class=""><img src="https://github.com/themosaeed.png" width="32" height="32" alt="@themosaeed"> <a href="https://github.com/themosaeed" target="_blank" rel="noopener noreferrer" class="">@themosaeed</a></li>
<li class=""><img src="https://github.com/khaledskhamis.png" width="32" height="32" alt="@khaledskhamis"> <a href="https://github.com/khaledskhamis" target="_blank" rel="noopener noreferrer" class="">@khaledskhamis</a></li>
<li class=""><img src="https://github.com/Waleedmohammed.png" width="32" height="32" alt="@Waleedmohammed"> <a href="https://github.com/Waleedmohammed" target="_blank" rel="noopener noreferrer" class="">@Waleedmohammed</a></li>
<li class=""><img src="https://github.com/TarekGaafar.png" width="32" height="32" alt="@TarekGaafar"> <a href="https://github.com/TarekGaafar" target="_blank" rel="noopener noreferrer" class="">@TarekGaafar</a></li>
<li class=""><img src="https://github.com/Salma2018170.png" width="32" height="32" alt="@Salma2018170"> <a href="https://github.com/Salma2018170" target="_blank" rel="noopener noreferrer" class="">@Salma2018170</a></li>
<li class=""><img src="https://github.com/osamaayman1005.png" width="32" height="32" alt="@osamaayman1005"> <a href="https://github.com/osamaayman1005" target="_blank" rel="noopener noreferrer" class="">@osamaayman1005</a></li>
<li class=""><img src="https://github.com/sultanpaymob.png" width="32" height="32" alt="@sultanpaymob"> <a href="https://github.com/sultanpaymob" target="_blank" rel="noopener noreferrer" class="">@sultanpaymob</a></li>
<li class=""><img src="https://github.com/Mochxd.png" width="32" height="32" alt="@Mochxd"> <a href="https://github.com/Mochxd" target="_blank" rel="noopener noreferrer" class="">@Mochxd</a></li>
<li class=""><img src="https://github.com/MarwaYoussef1.png" width="32" height="32" alt="@MarwaYoussef1"> <a href="https://github.com/MarwaYoussef1" target="_blank" rel="noopener noreferrer" class="">@MarwaYoussef1</a></li>
<li class=""><img src="https://github.com/xValenciax.png" width="32" height="32" alt="@xValenciax"> <a href="https://github.com/xValenciax" target="_blank" rel="noopener noreferrer" class="">@xValenciax</a></li>
<li class=""><img src="https://github.com/hjsblogger.png" width="32" height="32" alt="@hjsblogger"> <a href="https://github.com/hjsblogger" target="_blank" rel="noopener noreferrer" class="">@hjsblogger</a></li>
<li class=""><img src="https://github.com/georgii-musikhin.png" width="32" height="32" alt="@georgii-musikhin"> <a href="https://github.com/georgii-musikhin" target="_blank" rel="noopener noreferrer" class="">@georgii-musikhin</a></li>
<li class=""><img src="https://github.com/DavidIshakGorgy.png" width="32" height="32" alt="@DavidIshakGorgy"> <a href="https://github.com/DavidIshakGorgy" target="_blank" rel="noopener noreferrer" class="">@DavidIshakGorgy</a></li>
<li class=""><img src="https://github.com/BojteTamas.png" width="32" height="32" alt="@BojteTamas"> <a href="https://github.com/BojteTamas" target="_blank" rel="noopener noreferrer" class="">@BojteTamas</a></li>
<li class=""><img src="https://github.com/blacelle.png" width="32" height="32" alt="@blacelle"> <a href="https://github.com/blacelle" target="_blank" rel="noopener noreferrer" class="">@blacelle</a></li>
<li class=""><img src="https://github.com/Ayanasrallah.png" width="32" height="32" alt="@Ayanasrallah"> <a href="https://github.com/Ayanasrallah" target="_blank" rel="noopener noreferrer" class="">@Ayanasrallah</a></li>
<li class=""><img src="https://github.com/AmrAdelElkholy.png" width="32" height="32" alt="@AmrAdelElkholy"> <a href="https://github.com/AmrAdelElkholy" target="_blank" rel="noopener noreferrer" class="">@AmrAdelElkholy</a></li>
<li class=""><img src="https://github.com/amlosman.png" width="32" height="32" alt="@amlosman"> <a href="https://github.com/amlosman" target="_blank" rel="noopener noreferrer" class="">@amlosman</a></li>
<li class=""><img src="https://github.com/ahmednasr95.png" width="32" height="32" alt="@ahmednasr95"> <a href="https://github.com/ahmednasr95" target="_blank" rel="noopener noreferrer" class="">@ahmednasr95</a></li>
<li class=""><img src="https://github.com/ahmed-madyan.png" width="32" height="32" alt="@ahmed-madyan"> <a href="https://github.com/ahmed-madyan" target="_blank" rel="noopener noreferrer" class="">@ahmed-madyan</a></li>
<li class=""><img src="https://github.com/AhmedHelalyy.png" width="32" height="32" alt="@AhmedHelalyy"> <a href="https://github.com/AhmedHelalyy" target="_blank" rel="noopener noreferrer" class="">@AhmedHelalyy</a></li>
<li class=""><img src="https://github.com/A-Alii.png" width="32" height="32" alt="@A-Alii"> <a href="https://github.com/A-Alii" target="_blank" rel="noopener noreferrer" class="">@A-Alii</a></li>
<li class=""><img src="https://github.com/AbdelrahmanFahd.png" width="32" height="32" alt="@AbdelrahmanFahd"> <a href="https://github.com/AbdelrahmanFahd" target="_blank" rel="noopener noreferrer" class="">@AbdelrahmanFahd</a></li>
<li class=""><img src="https://github.com/Abdelrhman-Ellithy.png" width="32" height="32" alt="@Abdelrhman-Ellithy"> <a href="https://github.com/Abdelrhman-Ellithy" target="_blank" rel="noopener noreferrer" class="">@Abdelrhman-Ellithy</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-get-started-in-seconds">🚀 Get Started in Seconds<a href="https://shafthq.github.io/blog/release-10.2.20260505#-get-started-in-seconds" class="hash-link" aria-label="Direct link to 🚀 Get Started in Seconds" title="Direct link to 🚀 Get Started in Seconds" translate="no">​</a></h2>
<p>Upgrading is simple — just update your dependency version:</p>
<div class="language-xml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-xml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">io.github.shafthq</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">SHAFT_ENGINE</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">10.2.20260505</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-join-the-conversation">💬 Join the Conversation<a href="https://shafthq.github.io/blog/release-10.2.20260505#-join-the-conversation" class="hash-link" aria-label="Direct link to 💬 Join the Conversation" title="Direct link to 💬 Join the Conversation" translate="no">​</a></h2>
<p>We'd love to hear what you think! Found a bug? Have an idea? Just want to say hi?</p>
<ul>
<li class="">⭐ <a href="https://github.com/ShaftHQ/SHAFT_ENGINE" target="_blank" rel="noopener noreferrer" class="">Star SHAFT on GitHub</a> — it helps more than you think</li>
<li class="">💡 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/discussions" target="_blank" rel="noopener noreferrer" class="">Start a Discussion</a> — share feedback or ideas</li>
<li class="">🐛 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/issues/new" target="_blank" rel="noopener noreferrer" class="">Report an Issue</a> — help us squash bugs faster</li>
<li class="">📖 <a href="https://shafthq.github.io/" target="_blank" rel="noopener noreferrer" class="">Read the Docs</a> — dive deeper into SHAFT</li>
</ul>
<p>Thanks for being part of the SHAFT journey. Until the next release — happy testing! 🎯</p>]]></content>
        <author>
            <name>AutoBot</name>
            <uri>https://github.com/ShaftHQ/SHAFT_ENGINE</uri>
        </author>
        <category label="shaft_engine" term="shaft_engine"/>
        <category label="release" term="release"/>
        <category label="changelog" term="changelog"/>
        <category label="test-automation" term="test-automation"/>
        <category label="open-source" term="open-source"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[🚀 SHAFT 10.2.20260501: What's New and Why You Should Upgrade Today]]></title>
        <id>https://shafthq.github.io/blog/release-10.2.20260501</id>
        <link href="https://shafthq.github.io/blog/release-10.2.20260501"/>
        <updated>2026-05-02T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Hey there, SHAFT community! 👋]]></summary>
        <content type="html"><![CDATA[<p>Hey there, SHAFT community! 👋</p>
<p>A fresh release just dropped and it's packed with improvements you don't want to miss. <strong>SHAFT_ENGINE 10.2.20260501</strong> is here, and whether you're a seasoned SHAFT user or just getting started, there's something in this release for you.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-what-changed">⚡ What Changed?<a href="https://shafthq.github.io/blog/release-10.2.20260501#-what-changed" class="hash-link" aria-label="Direct link to ⚡ What Changed?" title="Direct link to ⚡ What Changed?" translate="no">​</a></h2>
<ul>
<li class="">This release focuses on workflow stability, runtime reliability improvements, and quality updates across SHAFT_ENGINE.</li>
</ul>
<p>👉 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/releases/tag/10.2.20260501" target="_blank" rel="noopener noreferrer" class="">View the full release on GitHub</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-changelog">📋 Changelog<a href="https://shafthq.github.io/blog/release-10.2.20260501#-changelog" class="hash-link" aria-label="Direct link to 📋 Changelog" title="Direct link to 📋 Changelog" translate="no">​</a></h2>
<div align="center"><h1>🎉 SHAFT_ENGINE 10.2.20260501</h1><p><strong>The unified test automation engine — Web · Mobile · API · CLI · Database</strong></p><p><a href="https://central.sonatype.com/artifact/io.github.shafthq/SHAFT_ENGINE" target="_blank" rel="noopener noreferrer" class=""><img decoding="async" loading="lazy" src="https://img.shields.io/maven-central/v/io.github.shafthq/SHAFT_ENGINE?color=blue&amp;logo=apachemaven" alt="Maven Central" class="img_ev3q"></a>
<a href="https://github.com/ShaftHQ/SHAFT_ENGINE/stargazers" target="_blank" rel="noopener noreferrer" class=""><img decoding="async" loading="lazy" src="https://img.shields.io/github/stars/ShaftHQ/SHAFT_ENGINE?style=social" alt="GitHub stars" class="img_ev3q"></a></p></div>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="️-how-to-upgrade">⬆️ How to Upgrade<a href="https://shafthq.github.io/blog/release-10.2.20260501#%EF%B8%8F-how-to-upgrade" class="hash-link" aria-label="Direct link to ⬆️ How to Upgrade" title="Direct link to ⬆️ How to Upgrade" translate="no">​</a></h2>
<p>Update the version in your <code>pom.xml</code>:</p>
<div class="language-xml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-xml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">properties</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">shaft_engine.version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">10.2.20260501</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">shaft_engine.version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">properties</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<p>Or update the dependency directly:</p>
<div class="language-xml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-xml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">io.github.shafthq</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">SHAFT_ENGINE</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">10.2.20260501</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<blockquote>
<p>[!IMPORTANT]
<strong>We support only the latest release.</strong> If you encounter any issue, please upgrade to <code>10.2.20260501</code> first before filing a bug report.</p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-resources">📖 Resources<a href="https://shafthq.github.io/blog/release-10.2.20260501#-resources" class="hash-link" aria-label="Direct link to 📖 Resources" title="Direct link to 📖 Resources" translate="no">​</a></h2>
<table><thead><tr><th>Resource</th><th>Link</th></tr></thead><tbody><tr><td>📦 Release Notes</td><td><a href="https://github.com/ShaftHQ/SHAFT_ENGINE/releases/tag/10.2.20260501" target="_blank" rel="noopener noreferrer" class="">10.2.20260501</a></td></tr><tr><td>📚 Full Documentation</td><td><a href="https://shafthq.github.io/" target="_blank" rel="noopener noreferrer" class="">shafthq.github.io</a></td></tr><tr><td>💬 Community</td><td><a href="https://github.com/ShaftHQ/SHAFT_ENGINE/discussions" target="_blank" rel="noopener noreferrer" class="">GitHub Discussions</a></td></tr><tr><td>🐛 Report an Issue</td><td><a href="https://github.com/ShaftHQ/SHAFT_ENGINE/issues/new" target="_blank" rel="noopener noreferrer" class="">Issue Tracker</a></td></tr></tbody></table>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-get-involved">🙌 Get Involved<a href="https://shafthq.github.io/blog/release-10.2.20260501#-get-involved" class="hash-link" aria-label="Direct link to 🙌 Get Involved" title="Direct link to 🙌 Get Involved" translate="no">​</a></h2>
<p>If SHAFT_ENGINE saves you time, helps your team ship quality software faster, or you just enjoy using it — please consider:</p>
<ul>
<li class="">⭐ <strong><a href="https://github.com/ShaftHQ/SHAFT_ENGINE" target="_blank" rel="noopener noreferrer" class="">Star the repository</a></strong> — it helps others discover the project and motivates the team!</li>
<li class="">🐛 <strong>Found a bug?</strong> <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/issues/new?template=bug_report.md" target="_blank" rel="noopener noreferrer" class="">Open a bug report</a></li>
<li class="">💡 <strong>Have an idea?</strong> <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/issues/new?template=feature_request.md" target="_blank" rel="noopener noreferrer" class="">Request a feature</a></li>
<li class="">🤝 <strong>Want to contribute?</strong> Read the <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/blob/main/CONTRIBUTING.md" target="_blank" rel="noopener noreferrer" class="">Contributing Guide</a></li>
<li class="">💬 <strong>Questions or feedback?</strong> Join us on <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/discussions" target="_blank" rel="noopener noreferrer" class="">GitHub Discussions</a> or <a href="https://join.slack.com/t/shaft-engine/shared_invite/zt-oii5i2gg-0ZGnih_Y34NjK7QqDn01Dw" target="_blank" rel="noopener noreferrer" class="">Slack</a></li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-changed">What's Changed<a href="https://shafthq.github.io/blog/release-10.2.20260501#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="-other-changes">🔨 Other Changes<a href="https://shafthq.github.io/blog/release-10.2.20260501#-other-changes" class="hash-link" aria-label="Direct link to 🔨 Other Changes" title="Direct link to 🔨 Other Changes" translate="no">​</a></h3>
<ul>
<li class="">fix: remove misleading static sections from release body template and document ncipollo append behavior by @Copilot in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2440" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2440</a></li>
<li class="">Optimize automation workflows: robust XML version sync, deduplicated issue reporting, and CI hygiene by @Copilot in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2442" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2442</a></li>
<li class="">Fix <code>Actions.waitUntil</code> to accept Selenium truthy non-Boolean conditions by @Copilot in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2455" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2455</a></li>
<li class="">Enhance google-gemma skill diagnosis accuracy and harden GitHub file ingestion/error handling by @Copilot in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2457" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2457</a></li>
<li class="">Add 3 GitHub Copilot skills: CI Failure Investigator, Flaky Test Stabilizer, Release &amp; Dependency Guard by @Copilot in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2460" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2460</a></li>
<li class="">fix: replace broad async idle monitor with parallel XHR/fetch quiet-window to eliminate execution time doubling by @Copilot in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2462" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2462</a></li>
<li class="">fix(security): pin <code>httpclient5</code> to <code>5.6.1</code> for Dependabot alert #35 by @Copilot in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2463" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2463</a></li>
<li class="">Fix for Equals on incomparable types by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2466" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2466</a></li>
<li class="">Fix for Equals on incomparable types by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2467" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2467</a></li>
<li class="">Fix waitUntil lambda expressions and refactor JavaScriptWaitManagerUnitTest by @Copilot in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2465" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2465</a></li>
<li class="">fix(ci): fix automated-release-blog-post pipeline — dispatch payload, branch protection, and 3 enhancement iterations by @Copilot in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2469" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2469</a></li>
<li class="">Fix code quality issues in legacy test files: camelCase naming, disabled test annotation, credential externalization by @Copilot in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2468" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2468</a></li>
<li class="">chore: prepare release 10.2.20260501 across engine and sample projects by @Copilot in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2464" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2464</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.2.20260424...10.2.20260501" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.2.20260424...10.2.20260501</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-community-spotlight">🏆 Community Spotlight<a href="https://shafthq.github.io/blog/release-10.2.20260501#-community-spotlight" class="hash-link" aria-label="Direct link to 🏆 Community Spotlight" title="Direct link to 🏆 Community Spotlight" translate="no">​</a></h2>
<p>This release was made possible by <strong>45 amazing contributors</strong> who have poured their time and expertise into making SHAFT better for everyone.</p>
<p>Open source thrives because of people like these. Every bug fix, every feature, every review — it all counts.</p>
<ul>
<li class=""><img src="https://github.com/MohabMohie.png" width="32" height="32" alt="@MohabMohie"> <a href="https://github.com/MohabMohie" target="_blank" rel="noopener noreferrer" class="">@MohabMohie</a></li>
<li class=""><img src="https://github.com/MahmoudElSharkawy.png" width="32" height="32" alt="@MahmoudElSharkawy"> <a href="https://github.com/MahmoudElSharkawy" target="_blank" rel="noopener noreferrer" class="">@MahmoudElSharkawy</a></li>
<li class=""><img src="https://github.com/MennaMagedm.png" width="32" height="32" alt="@MennaMagedm"> <a href="https://github.com/MennaMagedm" target="_blank" rel="noopener noreferrer" class="">@MennaMagedm</a></li>
<li class=""><img src="https://github.com/AhmdZanoon.png" width="32" height="32" alt="@AhmdZanoon"> <a href="https://github.com/AhmdZanoon" target="_blank" rel="noopener noreferrer" class="">@AhmdZanoon</a></li>
<li class=""><img src="https://github.com/magdyheiba.png" width="32" height="32" alt="@magdyheiba"> <a href="https://github.com/magdyheiba" target="_blank" rel="noopener noreferrer" class="">@magdyheiba</a></li>
<li class=""><img src="https://github.com/MustafaAgamy.png" width="32" height="32" alt="@MustafaAgamy"> <a href="https://github.com/MustafaAgamy" target="_blank" rel="noopener noreferrer" class="">@MustafaAgamy</a></li>
<li class=""><img src="https://github.com/amfarid.png" width="32" height="32" alt="@amfarid"> <a href="https://github.com/amfarid" target="_blank" rel="noopener noreferrer" class="">@amfarid</a></li>
<li class=""><img src="https://github.com/KyrillosNageh.png" width="32" height="32" alt="@KyrillosNageh"> <a href="https://github.com/KyrillosNageh" target="_blank" rel="noopener noreferrer" class="">@KyrillosNageh</a></li>
<li class=""><img src="https://github.com/Mohab-Osama.png" width="32" height="32" alt="@Mohab-Osama"> <a href="https://github.com/Mohab-Osama" target="_blank" rel="noopener noreferrer" class="">@Mohab-Osama</a></li>
<li class=""><img src="https://github.com/RihamMostafa.png" width="32" height="32" alt="@RihamMostafa"> <a href="https://github.com/RihamMostafa" target="_blank" rel="noopener noreferrer" class="">@RihamMostafa</a></li>
<li class=""><img src="https://github.com/MhmdElGazzar.png" width="32" height="32" alt="@MhmdElGazzar"> <a href="https://github.com/MhmdElGazzar" target="_blank" rel="noopener noreferrer" class="">@MhmdElGazzar</a></li>
<li class=""><img src="https://github.com/MohamedHazem95.png" width="32" height="32" alt="@MohamedHazem95"> <a href="https://github.com/MohamedHazem95" target="_blank" rel="noopener noreferrer" class="">@MohamedHazem95</a></li>
<li class=""><img src="https://github.com/MamdouhMansour.png" width="32" height="32" alt="@MamdouhMansour"> <a href="https://github.com/MamdouhMansour" target="_blank" rel="noopener noreferrer" class="">@MamdouhMansour</a></li>
<li class=""><img src="https://github.com/samiir95.png" width="32" height="32" alt="@samiir95"> <a href="https://github.com/samiir95" target="_blank" rel="noopener noreferrer" class="">@samiir95</a></li>
<li class=""><img src="https://github.com/mohamedtawfek05354.png" width="32" height="32" alt="@mohamedtawfek05354"> <a href="https://github.com/mohamedtawfek05354" target="_blank" rel="noopener noreferrer" class="">@mohamedtawfek05354</a></li>
<li class=""><img src="https://github.com/sys123-data.png" width="32" height="32" alt="@sys123-data"> <a href="https://github.com/sys123-data" target="_blank" rel="noopener noreferrer" class="">@sys123-data</a></li>
<li class=""><img src="https://github.com/ieZaky.png" width="32" height="32" alt="@ieZaky"> <a href="https://github.com/ieZaky" target="_blank" rel="noopener noreferrer" class="">@ieZaky</a></li>
<li class=""><img src="https://github.com/hammad101088.png" width="32" height="32" alt="@hammad101088"> <a href="https://github.com/hammad101088" target="_blank" rel="noopener noreferrer" class="">@hammad101088</a></li>
<li class=""><img src="https://github.com/MahmoudMabrok.png" width="32" height="32" alt="@MahmoudMabrok"> <a href="https://github.com/MahmoudMabrok" target="_blank" rel="noopener noreferrer" class="">@MahmoudMabrok</a></li>
<li class=""><img src="https://github.com/Kinasr.png" width="32" height="32" alt="@Kinasr"> <a href="https://github.com/Kinasr" target="_blank" rel="noopener noreferrer" class="">@Kinasr</a></li>
<li class=""><img src="https://github.com/wesamhamed.png" width="32" height="32" alt="@wesamhamed"> <a href="https://github.com/wesamhamed" target="_blank" rel="noopener noreferrer" class="">@wesamhamed</a></li>
<li class=""><img src="https://github.com/themosaeed.png" width="32" height="32" alt="@themosaeed"> <a href="https://github.com/themosaeed" target="_blank" rel="noopener noreferrer" class="">@themosaeed</a></li>
<li class=""><img src="https://github.com/khaledskhamis.png" width="32" height="32" alt="@khaledskhamis"> <a href="https://github.com/khaledskhamis" target="_blank" rel="noopener noreferrer" class="">@khaledskhamis</a></li>
<li class=""><img src="https://github.com/Waleedmohammed.png" width="32" height="32" alt="@Waleedmohammed"> <a href="https://github.com/Waleedmohammed" target="_blank" rel="noopener noreferrer" class="">@Waleedmohammed</a></li>
<li class=""><img src="https://github.com/TarekGaafar.png" width="32" height="32" alt="@TarekGaafar"> <a href="https://github.com/TarekGaafar" target="_blank" rel="noopener noreferrer" class="">@TarekGaafar</a></li>
<li class=""><img src="https://github.com/Salma2018170.png" width="32" height="32" alt="@Salma2018170"> <a href="https://github.com/Salma2018170" target="_blank" rel="noopener noreferrer" class="">@Salma2018170</a></li>
<li class=""><img src="https://github.com/osamaayman1005.png" width="32" height="32" alt="@osamaayman1005"> <a href="https://github.com/osamaayman1005" target="_blank" rel="noopener noreferrer" class="">@osamaayman1005</a></li>
<li class=""><img src="https://github.com/sultanpaymob.png" width="32" height="32" alt="@sultanpaymob"> <a href="https://github.com/sultanpaymob" target="_blank" rel="noopener noreferrer" class="">@sultanpaymob</a></li>
<li class=""><img src="https://github.com/Mochxd.png" width="32" height="32" alt="@Mochxd"> <a href="https://github.com/Mochxd" target="_blank" rel="noopener noreferrer" class="">@Mochxd</a></li>
<li class=""><img src="https://github.com/MarwaYoussef1.png" width="32" height="32" alt="@MarwaYoussef1"> <a href="https://github.com/MarwaYoussef1" target="_blank" rel="noopener noreferrer" class="">@MarwaYoussef1</a></li>
<li class=""><img src="https://github.com/xValenciax.png" width="32" height="32" alt="@xValenciax"> <a href="https://github.com/xValenciax" target="_blank" rel="noopener noreferrer" class="">@xValenciax</a></li>
<li class=""><img src="https://github.com/hjsblogger.png" width="32" height="32" alt="@hjsblogger"> <a href="https://github.com/hjsblogger" target="_blank" rel="noopener noreferrer" class="">@hjsblogger</a></li>
<li class=""><img src="https://github.com/georgii-musikhin.png" width="32" height="32" alt="@georgii-musikhin"> <a href="https://github.com/georgii-musikhin" target="_blank" rel="noopener noreferrer" class="">@georgii-musikhin</a></li>
<li class=""><img src="https://github.com/DavidIshakGorgy.png" width="32" height="32" alt="@DavidIshakGorgy"> <a href="https://github.com/DavidIshakGorgy" target="_blank" rel="noopener noreferrer" class="">@DavidIshakGorgy</a></li>
<li class=""><img src="https://github.com/BojteTamas.png" width="32" height="32" alt="@BojteTamas"> <a href="https://github.com/BojteTamas" target="_blank" rel="noopener noreferrer" class="">@BojteTamas</a></li>
<li class=""><img src="https://github.com/blacelle.png" width="32" height="32" alt="@blacelle"> <a href="https://github.com/blacelle" target="_blank" rel="noopener noreferrer" class="">@blacelle</a></li>
<li class=""><img src="https://github.com/Ayanasrallah.png" width="32" height="32" alt="@Ayanasrallah"> <a href="https://github.com/Ayanasrallah" target="_blank" rel="noopener noreferrer" class="">@Ayanasrallah</a></li>
<li class=""><img src="https://github.com/AmrAdelElkholy.png" width="32" height="32" alt="@AmrAdelElkholy"> <a href="https://github.com/AmrAdelElkholy" target="_blank" rel="noopener noreferrer" class="">@AmrAdelElkholy</a></li>
<li class=""><img src="https://github.com/amlosman.png" width="32" height="32" alt="@amlosman"> <a href="https://github.com/amlosman" target="_blank" rel="noopener noreferrer" class="">@amlosman</a></li>
<li class=""><img src="https://github.com/ahmednasr95.png" width="32" height="32" alt="@ahmednasr95"> <a href="https://github.com/ahmednasr95" target="_blank" rel="noopener noreferrer" class="">@ahmednasr95</a></li>
<li class=""><img src="https://github.com/ahmed-madyan.png" width="32" height="32" alt="@ahmed-madyan"> <a href="https://github.com/ahmed-madyan" target="_blank" rel="noopener noreferrer" class="">@ahmed-madyan</a></li>
<li class=""><img src="https://github.com/AhmedHelalyy.png" width="32" height="32" alt="@AhmedHelalyy"> <a href="https://github.com/AhmedHelalyy" target="_blank" rel="noopener noreferrer" class="">@AhmedHelalyy</a></li>
<li class=""><img src="https://github.com/A-Alii.png" width="32" height="32" alt="@A-Alii"> <a href="https://github.com/A-Alii" target="_blank" rel="noopener noreferrer" class="">@A-Alii</a></li>
<li class=""><img src="https://github.com/AbdelrahmanFahd.png" width="32" height="32" alt="@AbdelrahmanFahd"> <a href="https://github.com/AbdelrahmanFahd" target="_blank" rel="noopener noreferrer" class="">@AbdelrahmanFahd</a></li>
<li class=""><img src="https://github.com/Abdelrhman-Ellithy.png" width="32" height="32" alt="@Abdelrhman-Ellithy"> <a href="https://github.com/Abdelrhman-Ellithy" target="_blank" rel="noopener noreferrer" class="">@Abdelrhman-Ellithy</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-get-started-in-seconds">🚀 Get Started in Seconds<a href="https://shafthq.github.io/blog/release-10.2.20260501#-get-started-in-seconds" class="hash-link" aria-label="Direct link to 🚀 Get Started in Seconds" title="Direct link to 🚀 Get Started in Seconds" translate="no">​</a></h2>
<p>Upgrading is simple — just update your dependency version:</p>
<div class="language-xml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-xml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">io.github.shafthq</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">SHAFT_ENGINE</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">10.2.20260501</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-join-the-conversation">💬 Join the Conversation<a href="https://shafthq.github.io/blog/release-10.2.20260501#-join-the-conversation" class="hash-link" aria-label="Direct link to 💬 Join the Conversation" title="Direct link to 💬 Join the Conversation" translate="no">​</a></h2>
<p>We'd love to hear what you think! Found a bug? Have an idea? Just want to say hi?</p>
<ul>
<li class="">⭐ <a href="https://github.com/ShaftHQ/SHAFT_ENGINE" target="_blank" rel="noopener noreferrer" class="">Star SHAFT on GitHub</a> — it helps more than you think</li>
<li class="">💡 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/discussions" target="_blank" rel="noopener noreferrer" class="">Start a Discussion</a> — share feedback or ideas</li>
<li class="">🐛 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/issues/new" target="_blank" rel="noopener noreferrer" class="">Report an Issue</a> — help us squash bugs faster</li>
<li class="">📖 <a href="https://shafthq.github.io/" target="_blank" rel="noopener noreferrer" class="">Read the Docs</a> — dive deeper into SHAFT</li>
</ul>
<p>Thanks for being part of the SHAFT journey. Until the next release — happy testing! 🎯</p>]]></content>
        <author>
            <name>AutoBot</name>
            <uri>https://github.com/ShaftHQ/SHAFT_ENGINE</uri>
        </author>
        <category label="shaft_engine" term="shaft_engine"/>
        <category label="release" term="release"/>
        <category label="changelog" term="changelog"/>
        <category label="test-automation" term="test-automation"/>
        <category label="open-source" term="open-source"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[🚀 SHAFT 10.1.20260331: What's New and Why You Should Upgrade Today]]></title>
        <id>https://shafthq.github.io/blog/release-10.1.20260331</id>
        <link href="https://shafthq.github.io/blog/release-10.1.20260331"/>
        <updated>2026-03-31T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Hey there, SHAFT community! 👋]]></summary>
        <content type="html"><![CDATA[<p>Hey there, SHAFT community! 👋</p>
<p>A fresh release just dropped and it's packed with improvements you don't want to miss. <strong>SHAFT_ENGINE 10.1.20260331</strong> is here, and whether you're a seasoned SHAFT user or just getting started, there's something in this release for you.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-what-changed">⚡ What Changed?<a href="https://shafthq.github.io/blog/release-10.1.20260331#-what-changed" class="hash-link" aria-label="Direct link to ⚡ What Changed?" title="Direct link to ⚡ What Changed?" translate="no">​</a></h2>
<ul>
<li class="">Replace XHR-only lazy-load wait with full async idle monitor by @Copilot in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2356" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2356</a></li>
<li class="">Bump log4j2.version from 2.25.3 to 2.25.4 by @dependabot[bot] in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2359" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2359</a></li>
<li class="">Bump com.browserstack<!-- -->:browserstack-java-sdk<!-- --> from 1.56.1 to 1.56.2 by @dependabot[bot] in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2358" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2358</a></li>
<li class="">fix(mobile): Appium 2 session URL, APK badging caps, and skip Maven CD on forks by @Mochxd in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2357" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2357</a></li>
<li class="">build(deps): bump com.browserstack<!-- -->:browserstack-java-sdk<!-- --> from 1.56.2 to 1.56.3 by @dependabot[bot] in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2363" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2363</a></li>
</ul>
<p>👉 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/releases/tag/10.1.20260331" target="_blank" rel="noopener noreferrer" class="">View the full release on GitHub</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-changelog">📋 Changelog<a href="https://shafthq.github.io/blog/release-10.1.20260331#-changelog" class="hash-link" aria-label="Direct link to 📋 Changelog" title="Direct link to 📋 Changelog" translate="no">​</a></h2>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-changed">What's Changed<a href="https://shafthq.github.io/blog/release-10.1.20260331#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed" translate="no">​</a></h2>
<ul>
<li class="">Replace XHR-only lazy-load wait with full async idle monitor by @Copilot in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2356" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2356</a></li>
<li class="">Bump log4j2.version from 2.25.3 to 2.25.4 by @dependabot[bot] in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2359" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2359</a></li>
<li class="">Bump com.browserstack<!-- -->:browserstack-java-sdk<!-- --> from 1.56.1 to 1.56.2 by @dependabot[bot] in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2358" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2358</a></li>
<li class="">fix(mobile): Appium 2 session URL, APK badging caps, and skip Maven CD on forks by @Mochxd in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2357" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2357</a></li>
<li class="">build(deps): bump com.browserstack<!-- -->:browserstack-java-sdk<!-- --> from 1.56.2 to 1.56.3 by @dependabot[bot] in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2363" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2363</a></li>
<li class="">Fix BrowserStack remote endpoint handling, SDK YAML ordering, and app URL resolution for Android native sessions by @Copilot in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2362" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2362</a></li>
<li class="">Bump SHAFT engine release metadata to 10.1.20260331 by @Copilot in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2364" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2364</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="new-contributors">New Contributors<a href="https://shafthq.github.io/blog/release-10.1.20260331#new-contributors" class="hash-link" aria-label="Direct link to New Contributors" title="Direct link to New Contributors" translate="no">​</a></h2>
<ul>
<li class="">@Mochxd made their first contribution in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2357" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2357</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.1.20260324...10.1.20260331" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.1.20260324...10.1.20260331</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-community-spotlight">🏆 Community Spotlight<a href="https://shafthq.github.io/blog/release-10.1.20260331#-community-spotlight" class="hash-link" aria-label="Direct link to 🏆 Community Spotlight" title="Direct link to 🏆 Community Spotlight" translate="no">​</a></h2>
<p>This release was made possible by <strong>45 amazing contributors</strong> who have poured their time and expertise into making SHAFT better for everyone. Among them, <strong>1</strong> contributed for the very first time!</p>
<p>Open source thrives because of people like these. Every bug fix, every feature, every review — it all counts.</p>
<ul>
<li class=""><img src="https://github.com/MohabMohie.png" width="32" height="32" alt="@MohabMohie"> <a href="https://github.com/MohabMohie" target="_blank" rel="noopener noreferrer" class="">@MohabMohie</a></li>
<li class=""><img src="https://github.com/MahmoudElSharkawy.png" width="32" height="32" alt="@MahmoudElSharkawy"> <a href="https://github.com/MahmoudElSharkawy" target="_blank" rel="noopener noreferrer" class="">@MahmoudElSharkawy</a></li>
<li class=""><img src="https://github.com/MennaMagedm.png" width="32" height="32" alt="@MennaMagedm"> <a href="https://github.com/MennaMagedm" target="_blank" rel="noopener noreferrer" class="">@MennaMagedm</a></li>
<li class=""><img src="https://github.com/AhmdZanoon.png" width="32" height="32" alt="@AhmdZanoon"> <a href="https://github.com/AhmdZanoon" target="_blank" rel="noopener noreferrer" class="">@AhmdZanoon</a></li>
<li class=""><img src="https://github.com/magdyheiba.png" width="32" height="32" alt="@magdyheiba"> <a href="https://github.com/magdyheiba" target="_blank" rel="noopener noreferrer" class="">@magdyheiba</a></li>
<li class=""><img src="https://github.com/MustafaAgamy.png" width="32" height="32" alt="@MustafaAgamy"> <a href="https://github.com/MustafaAgamy" target="_blank" rel="noopener noreferrer" class="">@MustafaAgamy</a></li>
<li class=""><img src="https://github.com/amfarid.png" width="32" height="32" alt="@amfarid"> <a href="https://github.com/amfarid" target="_blank" rel="noopener noreferrer" class="">@amfarid</a></li>
<li class=""><img src="https://github.com/KyrillosNageh.png" width="32" height="32" alt="@KyrillosNageh"> <a href="https://github.com/KyrillosNageh" target="_blank" rel="noopener noreferrer" class="">@KyrillosNageh</a></li>
<li class=""><img src="https://github.com/Mohab-Osama.png" width="32" height="32" alt="@Mohab-Osama"> <a href="https://github.com/Mohab-Osama" target="_blank" rel="noopener noreferrer" class="">@Mohab-Osama</a></li>
<li class=""><img src="https://github.com/RihamMostafa.png" width="32" height="32" alt="@RihamMostafa"> <a href="https://github.com/RihamMostafa" target="_blank" rel="noopener noreferrer" class="">@RihamMostafa</a></li>
<li class=""><img src="https://github.com/MhmdElGazzar.png" width="32" height="32" alt="@MhmdElGazzar"> <a href="https://github.com/MhmdElGazzar" target="_blank" rel="noopener noreferrer" class="">@MhmdElGazzar</a></li>
<li class=""><img src="https://github.com/MohamedHazem95.png" width="32" height="32" alt="@MohamedHazem95"> <a href="https://github.com/MohamedHazem95" target="_blank" rel="noopener noreferrer" class="">@MohamedHazem95</a></li>
<li class=""><img src="https://github.com/MamdouhMansour.png" width="32" height="32" alt="@MamdouhMansour"> <a href="https://github.com/MamdouhMansour" target="_blank" rel="noopener noreferrer" class="">@MamdouhMansour</a></li>
<li class=""><img src="https://github.com/samiir95.png" width="32" height="32" alt="@samiir95"> <a href="https://github.com/samiir95" target="_blank" rel="noopener noreferrer" class="">@samiir95</a></li>
<li class=""><img src="https://github.com/mohamedtawfek05354.png" width="32" height="32" alt="@mohamedtawfek05354"> <a href="https://github.com/mohamedtawfek05354" target="_blank" rel="noopener noreferrer" class="">@mohamedtawfek05354</a></li>
<li class=""><img src="https://github.com/sys123-data.png" width="32" height="32" alt="@sys123-data"> <a href="https://github.com/sys123-data" target="_blank" rel="noopener noreferrer" class="">@sys123-data</a></li>
<li class=""><img src="https://github.com/ieZaky.png" width="32" height="32" alt="@ieZaky"> <a href="https://github.com/ieZaky" target="_blank" rel="noopener noreferrer" class="">@ieZaky</a></li>
<li class=""><img src="https://github.com/hammad101088.png" width="32" height="32" alt="@hammad101088"> <a href="https://github.com/hammad101088" target="_blank" rel="noopener noreferrer" class="">@hammad101088</a></li>
<li class=""><img src="https://github.com/MahmoudMabrok.png" width="32" height="32" alt="@MahmoudMabrok"> <a href="https://github.com/MahmoudMabrok" target="_blank" rel="noopener noreferrer" class="">@MahmoudMabrok</a></li>
<li class=""><img src="https://github.com/Kinasr.png" width="32" height="32" alt="@Kinasr"> <a href="https://github.com/Kinasr" target="_blank" rel="noopener noreferrer" class="">@Kinasr</a></li>
<li class=""><img src="https://github.com/wesamhamed.png" width="32" height="32" alt="@wesamhamed"> <a href="https://github.com/wesamhamed" target="_blank" rel="noopener noreferrer" class="">@wesamhamed</a></li>
<li class=""><img src="https://github.com/themosaeed.png" width="32" height="32" alt="@themosaeed"> <a href="https://github.com/themosaeed" target="_blank" rel="noopener noreferrer" class="">@themosaeed</a></li>
<li class=""><img src="https://github.com/khaledskhamis.png" width="32" height="32" alt="@khaledskhamis"> <a href="https://github.com/khaledskhamis" target="_blank" rel="noopener noreferrer" class="">@khaledskhamis</a></li>
<li class=""><img src="https://github.com/Waleedmohammed.png" width="32" height="32" alt="@Waleedmohammed"> <a href="https://github.com/Waleedmohammed" target="_blank" rel="noopener noreferrer" class="">@Waleedmohammed</a></li>
<li class=""><img src="https://github.com/TarekGaafar.png" width="32" height="32" alt="@TarekGaafar"> <a href="https://github.com/TarekGaafar" target="_blank" rel="noopener noreferrer" class="">@TarekGaafar</a></li>
<li class=""><img src="https://github.com/Salma2018170.png" width="32" height="32" alt="@Salma2018170"> <a href="https://github.com/Salma2018170" target="_blank" rel="noopener noreferrer" class="">@Salma2018170</a></li>
<li class=""><img src="https://github.com/osamaayman1005.png" width="32" height="32" alt="@osamaayman1005"> <a href="https://github.com/osamaayman1005" target="_blank" rel="noopener noreferrer" class="">@osamaayman1005</a></li>
<li class=""><img src="https://github.com/sultanpaymob.png" width="32" height="32" alt="@sultanpaymob"> <a href="https://github.com/sultanpaymob" target="_blank" rel="noopener noreferrer" class="">@sultanpaymob</a></li>
<li class=""><img src="https://github.com/Mochxd.png" width="32" height="32" alt="@Mochxd"> <a href="https://github.com/Mochxd" target="_blank" rel="noopener noreferrer" class="">@Mochxd</a> 🌟 <strong>First-time contributor!</strong></li>
<li class=""><img src="https://github.com/MarwaYoussef1.png" width="32" height="32" alt="@MarwaYoussef1"> <a href="https://github.com/MarwaYoussef1" target="_blank" rel="noopener noreferrer" class="">@MarwaYoussef1</a></li>
<li class=""><img src="https://github.com/xValenciax.png" width="32" height="32" alt="@xValenciax"> <a href="https://github.com/xValenciax" target="_blank" rel="noopener noreferrer" class="">@xValenciax</a></li>
<li class=""><img src="https://github.com/hjsblogger.png" width="32" height="32" alt="@hjsblogger"> <a href="https://github.com/hjsblogger" target="_blank" rel="noopener noreferrer" class="">@hjsblogger</a></li>
<li class=""><img src="https://github.com/georgii-musikhin.png" width="32" height="32" alt="@georgii-musikhin"> <a href="https://github.com/georgii-musikhin" target="_blank" rel="noopener noreferrer" class="">@georgii-musikhin</a></li>
<li class=""><img src="https://github.com/DavidIshakGorgy.png" width="32" height="32" alt="@DavidIshakGorgy"> <a href="https://github.com/DavidIshakGorgy" target="_blank" rel="noopener noreferrer" class="">@DavidIshakGorgy</a></li>
<li class=""><img src="https://github.com/BojteTamas.png" width="32" height="32" alt="@BojteTamas"> <a href="https://github.com/BojteTamas" target="_blank" rel="noopener noreferrer" class="">@BojteTamas</a></li>
<li class=""><img src="https://github.com/blacelle.png" width="32" height="32" alt="@blacelle"> <a href="https://github.com/blacelle" target="_blank" rel="noopener noreferrer" class="">@blacelle</a></li>
<li class=""><img src="https://github.com/Ayanasrallah.png" width="32" height="32" alt="@Ayanasrallah"> <a href="https://github.com/Ayanasrallah" target="_blank" rel="noopener noreferrer" class="">@Ayanasrallah</a></li>
<li class=""><img src="https://github.com/AmrAdelElkholy.png" width="32" height="32" alt="@AmrAdelElkholy"> <a href="https://github.com/AmrAdelElkholy" target="_blank" rel="noopener noreferrer" class="">@AmrAdelElkholy</a></li>
<li class=""><img src="https://github.com/amlosman.png" width="32" height="32" alt="@amlosman"> <a href="https://github.com/amlosman" target="_blank" rel="noopener noreferrer" class="">@amlosman</a></li>
<li class=""><img src="https://github.com/ahmednasr95.png" width="32" height="32" alt="@ahmednasr95"> <a href="https://github.com/ahmednasr95" target="_blank" rel="noopener noreferrer" class="">@ahmednasr95</a></li>
<li class=""><img src="https://github.com/ahmed-madyan.png" width="32" height="32" alt="@ahmed-madyan"> <a href="https://github.com/ahmed-madyan" target="_blank" rel="noopener noreferrer" class="">@ahmed-madyan</a></li>
<li class=""><img src="https://github.com/AhmedHelalyy.png" width="32" height="32" alt="@AhmedHelalyy"> <a href="https://github.com/AhmedHelalyy" target="_blank" rel="noopener noreferrer" class="">@AhmedHelalyy</a></li>
<li class=""><img src="https://github.com/A-Alii.png" width="32" height="32" alt="@A-Alii"> <a href="https://github.com/A-Alii" target="_blank" rel="noopener noreferrer" class="">@A-Alii</a></li>
<li class=""><img src="https://github.com/AbdelrahmanFahd.png" width="32" height="32" alt="@AbdelrahmanFahd"> <a href="https://github.com/AbdelrahmanFahd" target="_blank" rel="noopener noreferrer" class="">@AbdelrahmanFahd</a></li>
<li class=""><img src="https://github.com/Abdelrhman-Ellithy.png" width="32" height="32" alt="@Abdelrhman-Ellithy"> <a href="https://github.com/Abdelrhman-Ellithy" target="_blank" rel="noopener noreferrer" class="">@Abdelrhman-Ellithy</a></li>
</ul>
<p>🎉 <strong>A warm welcome to our first-time contributors!</strong> <a href="https://github.com/Mochxd" target="_blank" rel="noopener noreferrer" class="">@Mochxd</a> — your first contribution is now part of SHAFT's story. We're thrilled to have you on board!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-get-started-in-seconds">🚀 Get Started in Seconds<a href="https://shafthq.github.io/blog/release-10.1.20260331#-get-started-in-seconds" class="hash-link" aria-label="Direct link to 🚀 Get Started in Seconds" title="Direct link to 🚀 Get Started in Seconds" translate="no">​</a></h2>
<p>Upgrading is simple — just update your dependency version:</p>
<div class="language-xml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-xml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">io.github.shafthq</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">SHAFT_ENGINE</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">10.1.20260331</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-join-the-conversation">💬 Join the Conversation<a href="https://shafthq.github.io/blog/release-10.1.20260331#-join-the-conversation" class="hash-link" aria-label="Direct link to 💬 Join the Conversation" title="Direct link to 💬 Join the Conversation" translate="no">​</a></h2>
<p>We'd love to hear what you think! Found a bug? Have an idea? Just want to say hi?</p>
<ul>
<li class="">⭐ <a href="https://github.com/ShaftHQ/SHAFT_ENGINE" target="_blank" rel="noopener noreferrer" class="">Star SHAFT on GitHub</a> — it helps more than you think</li>
<li class="">💡 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/discussions" target="_blank" rel="noopener noreferrer" class="">Start a Discussion</a> — share feedback or ideas</li>
<li class="">🐛 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/issues/new" target="_blank" rel="noopener noreferrer" class="">Report an Issue</a> — help us squash bugs faster</li>
<li class="">📖 <a href="https://shafthq.github.io/" target="_blank" rel="noopener noreferrer" class="">Read the Docs</a> — dive deeper into SHAFT</li>
</ul>
<p>Thanks for being part of the SHAFT journey. Until the next release — happy testing! 🎯</p>]]></content>
        <author>
            <name>AutoBot</name>
            <uri>https://github.com/ShaftHQ/SHAFT_ENGINE</uri>
        </author>
        <category label="shaft_engine" term="shaft_engine"/>
        <category label="release" term="release"/>
        <category label="changelog" term="changelog"/>
        <category label="test-automation" term="test-automation"/>
        <category label="open-source" term="open-source"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[🚀 SHAFT 10.1.20260324: What's New and Why You Should Upgrade Today]]></title>
        <id>https://shafthq.github.io/blog/release-10.1.20260324</id>
        <link href="https://shafthq.github.io/blog/release-10.1.20260324"/>
        <updated>2026-03-24T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Hey there, SHAFT community! 👋]]></summary>
        <content type="html"><![CDATA[<p>Hey there, SHAFT community! 👋</p>
<p>A fresh release just dropped and it's packed with improvements you don't want to miss. <strong>SHAFT_ENGINE 10.1.20260324</strong> is here, and whether you're a seasoned SHAFT user or just getting started, there's something in this release for you.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-what-changed">⚡ What Changed?<a href="https://shafthq.github.io/blog/release-10.1.20260324#-what-changed" class="hash-link" aria-label="Direct link to ⚡ What Changed?" title="Direct link to ⚡ What Changed?" translate="no">​</a></h2>
<ul>
<li class="">Bump <code>jackson-datatype-jdk8</code> from 2.21.1 to 2.21.2</li>
<li class="">Fix relative path resolution failing on Linux CI</li>
<li class="">Bump <code>browserstack-java-sdk</code> from 1.55.0 to 1.56.0</li>
</ul>
<p>👉 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/releases/tag/10.1.20260324" target="_blank" rel="noopener noreferrer" class="">View the full release on GitHub</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-changelog">📋 Changelog<a href="https://shafthq.github.io/blog/release-10.1.20260324#-changelog" class="hash-link" aria-label="Direct link to 📋 Changelog" title="Direct link to 📋 Changelog" translate="no">​</a></h2>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-changed">What's Changed<a href="https://shafthq.github.io/blog/release-10.1.20260324#whats-changed" class="hash-link" aria-label="Direct link to What's Changed" title="Direct link to What's Changed" translate="no">​</a></h2>
<ul>
<li class="">Bump com.fasterxml.jackson.datatype<!-- -->:jackson-datatype-jdk8<!-- --> from 2.21.1 to 2.21.2 by @dependabot[bot] in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2346" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2346</a></li>
<li class="">Fix relative path resolution failing on Linux CI (#2347) by @MustafaAgamy in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2349" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2349</a></li>
<li class="">Bump com.browserstack<!-- -->:browserstack-java-sdk<!-- --> from 1.55.0 to 1.56.0 by @dependabot[bot] in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2348" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2348</a></li>
<li class="">Bump com.google.crypto.tink<!-- -->:tink<!-- --> from 1.20.0 to 1.21.0 by @dependabot[bot] in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2350" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2350</a></li>
<li class="">Bump com.atlassian.oai<!-- -->:swagger-request-validator-restassured<!-- --> from 2.46.0 to 2.46.1 by @dependabot[bot] in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2351" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2351</a></li>
<li class="">Bump com.browserstack<!-- -->:browserstack-java-sdk<!-- --> from 1.56.0 to 1.56.1 by @dependabot[bot] in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2353" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2353</a></li>
<li class="">Add missing JavaDocs for <code>CheckpointCounter</code> public API by @Copilot in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2352" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2352</a></li>
<li class="">Prepare new release by bumping SHAFT_ENGINE version references to 10.1.20260324 by @Copilot in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2354" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2354</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.1.20260319...10.1.20260324" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.1.20260319...10.1.20260324</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-community-spotlight">🏆 Community Spotlight<a href="https://shafthq.github.io/blog/release-10.1.20260324#-community-spotlight" class="hash-link" aria-label="Direct link to 🏆 Community Spotlight" title="Direct link to 🏆 Community Spotlight" translate="no">​</a></h2>
<p>This release was made possible by <strong>42 amazing contributors</strong> who have poured their time and expertise into making SHAFT better for everyone.</p>
<p>Open source thrives because of people like these. Every bug fix, every feature, every review — it all counts.</p>
<ul>
<li class=""><img src="https://github.com/MohabMohie.png" width="32" height="32" alt="@MohabMohie"> <a href="https://github.com/MohabMohie" target="_blank" rel="noopener noreferrer" class="">@MohabMohie</a></li>
<li class=""><img src="https://github.com/MahmoudElSharkawy.png" width="32" height="32" alt="@MahmoudElSharkawy"> <a href="https://github.com/MahmoudElSharkawy" target="_blank" rel="noopener noreferrer" class="">@MahmoudElSharkawy</a></li>
<li class=""><img src="https://github.com/MennaMagedm.png" width="32" height="32" alt="@MennaMagedm"> <a href="https://github.com/MennaMagedm" target="_blank" rel="noopener noreferrer" class="">@MennaMagedm</a></li>
<li class=""><img src="https://github.com/AhmdZanoon.png" width="32" height="32" alt="@AhmdZanoon"> <a href="https://github.com/AhmdZanoon" target="_blank" rel="noopener noreferrer" class="">@AhmdZanoon</a></li>
<li class=""><img src="https://github.com/magdyheiba.png" width="32" height="32" alt="@magdyheiba"> <a href="https://github.com/magdyheiba" target="_blank" rel="noopener noreferrer" class="">@magdyheiba</a></li>
<li class=""><img src="https://github.com/MustafaAgamy.png" width="32" height="32" alt="@MustafaAgamy"> <a href="https://github.com/MustafaAgamy" target="_blank" rel="noopener noreferrer" class="">@MustafaAgamy</a></li>
<li class=""><img src="https://github.com/amfarid.png" width="32" height="32" alt="@amfarid"> <a href="https://github.com/amfarid" target="_blank" rel="noopener noreferrer" class="">@amfarid</a></li>
<li class=""><img src="https://github.com/KyrillosNageh.png" width="32" height="32" alt="@KyrillosNageh"> <a href="https://github.com/KyrillosNageh" target="_blank" rel="noopener noreferrer" class="">@KyrillosNageh</a></li>
<li class=""><img src="https://github.com/Mohab-Osama.png" width="32" height="32" alt="@Mohab-Osama"> <a href="https://github.com/Mohab-Osama" target="_blank" rel="noopener noreferrer" class="">@Mohab-Osama</a></li>
<li class=""><img src="https://github.com/RihamMostafa.png" width="32" height="32" alt="@RihamMostafa"> <a href="https://github.com/RihamMostafa" target="_blank" rel="noopener noreferrer" class="">@RihamMostafa</a></li>
<li class=""><img src="https://github.com/MhmdElGazzar.png" width="32" height="32" alt="@MhmdElGazzar"> <a href="https://github.com/MhmdElGazzar" target="_blank" rel="noopener noreferrer" class="">@MhmdElGazzar</a></li>
<li class=""><img src="https://github.com/MohamedHazem95.png" width="32" height="32" alt="@MohamedHazem95"> <a href="https://github.com/MohamedHazem95" target="_blank" rel="noopener noreferrer" class="">@MohamedHazem95</a></li>
<li class=""><img src="https://github.com/MamdouhMansour.png" width="32" height="32" alt="@MamdouhMansour"> <a href="https://github.com/MamdouhMansour" target="_blank" rel="noopener noreferrer" class="">@MamdouhMansour</a></li>
<li class=""><img src="https://github.com/samiir95.png" width="32" height="32" alt="@samiir95"> <a href="https://github.com/samiir95" target="_blank" rel="noopener noreferrer" class="">@samiir95</a></li>
<li class=""><img src="https://github.com/mohamedtawfek05354.png" width="32" height="32" alt="@mohamedtawfek05354"> <a href="https://github.com/mohamedtawfek05354" target="_blank" rel="noopener noreferrer" class="">@mohamedtawfek05354</a></li>
<li class=""><img src="https://github.com/sys123-data.png" width="32" height="32" alt="@sys123-data"> <a href="https://github.com/sys123-data" target="_blank" rel="noopener noreferrer" class="">@sys123-data</a></li>
<li class=""><img src="https://github.com/ieZaky.png" width="32" height="32" alt="@ieZaky"> <a href="https://github.com/ieZaky" target="_blank" rel="noopener noreferrer" class="">@ieZaky</a></li>
<li class=""><img src="https://github.com/hammad101088.png" width="32" height="32" alt="@hammad101088"> <a href="https://github.com/hammad101088" target="_blank" rel="noopener noreferrer" class="">@hammad101088</a></li>
<li class=""><img src="https://github.com/MahmoudMabrok.png" width="32" height="32" alt="@MahmoudMabrok"> <a href="https://github.com/MahmoudMabrok" target="_blank" rel="noopener noreferrer" class="">@MahmoudMabrok</a></li>
<li class=""><img src="https://github.com/Kinasr.png" width="32" height="32" alt="@Kinasr"> <a href="https://github.com/Kinasr" target="_blank" rel="noopener noreferrer" class="">@Kinasr</a></li>
<li class=""><img src="https://github.com/wesamhamed.png" width="32" height="32" alt="@wesamhamed"> <a href="https://github.com/wesamhamed" target="_blank" rel="noopener noreferrer" class="">@wesamhamed</a></li>
<li class=""><img src="https://github.com/themosaeed.png" width="32" height="32" alt="@themosaeed"> <a href="https://github.com/themosaeed" target="_blank" rel="noopener noreferrer" class="">@themosaeed</a></li>
<li class=""><img src="https://github.com/khaledskhamis.png" width="32" height="32" alt="@khaledskhamis"> <a href="https://github.com/khaledskhamis" target="_blank" rel="noopener noreferrer" class="">@khaledskhamis</a></li>
<li class=""><img src="https://github.com/Waleedmohammed.png" width="32" height="32" alt="@Waleedmohammed"> <a href="https://github.com/Waleedmohammed" target="_blank" rel="noopener noreferrer" class="">@Waleedmohammed</a></li>
<li class=""><img src="https://github.com/TarekGaafar.png" width="32" height="32" alt="@TarekGaafar"> <a href="https://github.com/TarekGaafar" target="_blank" rel="noopener noreferrer" class="">@TarekGaafar</a></li>
<li class=""><img src="https://github.com/Salma2018170.png" width="32" height="32" alt="@Salma2018170"> <a href="https://github.com/Salma2018170" target="_blank" rel="noopener noreferrer" class="">@Salma2018170</a></li>
<li class=""><img src="https://github.com/osamaayman1005.png" width="32" height="32" alt="@osamaayman1005"> <a href="https://github.com/osamaayman1005" target="_blank" rel="noopener noreferrer" class="">@osamaayman1005</a></li>
<li class=""><img src="https://github.com/sultanpaymob.png" width="32" height="32" alt="@sultanpaymob"> <a href="https://github.com/sultanpaymob" target="_blank" rel="noopener noreferrer" class="">@sultanpaymob</a></li>
<li class=""><img src="https://github.com/MarwaYoussef1.png" width="32" height="32" alt="@MarwaYoussef1"> <a href="https://github.com/MarwaYoussef1" target="_blank" rel="noopener noreferrer" class="">@MarwaYoussef1</a></li>
<li class=""><img src="https://github.com/xValenciax.png" width="32" height="32" alt="@xValenciax"> <a href="https://github.com/xValenciax" target="_blank" rel="noopener noreferrer" class="">@xValenciax</a></li>
<li class=""><img src="https://github.com/hjsblogger.png" width="32" height="32" alt="@hjsblogger"> <a href="https://github.com/hjsblogger" target="_blank" rel="noopener noreferrer" class="">@hjsblogger</a></li>
<li class=""><img src="https://github.com/georgii-musikhin.png" width="32" height="32" alt="@georgii-musikhin"> <a href="https://github.com/georgii-musikhin" target="_blank" rel="noopener noreferrer" class="">@georgii-musikhin</a></li>
<li class=""><img src="https://github.com/DavidIshakGorgy.png" width="32" height="32" alt="@DavidIshakGorgy"> <a href="https://github.com/DavidIshakGorgy" target="_blank" rel="noopener noreferrer" class="">@DavidIshakGorgy</a></li>
<li class=""><img src="https://github.com/BojteTamas.png" width="32" height="32" alt="@BojteTamas"> <a href="https://github.com/BojteTamas" target="_blank" rel="noopener noreferrer" class="">@BojteTamas</a></li>
<li class=""><img src="https://github.com/blacelle.png" width="32" height="32" alt="@blacelle"> <a href="https://github.com/blacelle" target="_blank" rel="noopener noreferrer" class="">@blacelle</a></li>
<li class=""><img src="https://github.com/Ayanasrallah.png" width="32" height="32" alt="@Ayanasrallah"> <a href="https://github.com/Ayanasrallah" target="_blank" rel="noopener noreferrer" class="">@Ayanasrallah</a></li>
<li class=""><img src="https://github.com/AmrAdelElkholy.png" width="32" height="32" alt="@AmrAdelElkholy"> <a href="https://github.com/AmrAdelElkholy" target="_blank" rel="noopener noreferrer" class="">@AmrAdelElkholy</a></li>
<li class=""><img src="https://github.com/amlosman.png" width="32" height="32" alt="@amlosman"> <a href="https://github.com/amlosman" target="_blank" rel="noopener noreferrer" class="">@amlosman</a></li>
<li class=""><img src="https://github.com/ahmednasr95.png" width="32" height="32" alt="@ahmednasr95"> <a href="https://github.com/ahmednasr95" target="_blank" rel="noopener noreferrer" class="">@ahmednasr95</a></li>
<li class=""><img src="https://github.com/ahmed-madyan.png" width="32" height="32" alt="@ahmed-madyan"> <a href="https://github.com/ahmed-madyan" target="_blank" rel="noopener noreferrer" class="">@ahmed-madyan</a></li>
<li class=""><img src="https://github.com/AhmedHelalyy.png" width="32" height="32" alt="@AhmedHelalyy"> <a href="https://github.com/AhmedHelalyy" target="_blank" rel="noopener noreferrer" class="">@AhmedHelalyy</a></li>
<li class=""><img src="https://github.com/A-Alii.png" width="32" height="32" alt="@A-Alii"> <a href="https://github.com/A-Alii" target="_blank" rel="noopener noreferrer" class="">@A-Alii</a></li>
<li class=""><img src="https://github.com/AbdelrahmanFahd.png" width="32" height="32" alt="@AbdelrahmanFahd"> <a href="https://github.com/AbdelrahmanFahd" target="_blank" rel="noopener noreferrer" class="">@AbdelrahmanFahd</a></li>
<li class=""><img src="https://github.com/Abdelrhman-Ellithy.png" width="32" height="32" alt="@Abdelrhman-Ellithy"> <a href="https://github.com/Abdelrhman-Ellithy" target="_blank" rel="noopener noreferrer" class="">@Abdelrhman-Ellithy</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-get-started-in-seconds">🚀 Get Started in Seconds<a href="https://shafthq.github.io/blog/release-10.1.20260324#-get-started-in-seconds" class="hash-link" aria-label="Direct link to 🚀 Get Started in Seconds" title="Direct link to 🚀 Get Started in Seconds" translate="no">​</a></h2>
<p>Upgrading is simple — just update your dependency version:</p>
<div class="language-xml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-xml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">io.github.shafthq</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">SHAFT_ENGINE</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">10.1.20260324</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-join-the-conversation">💬 Join the Conversation<a href="https://shafthq.github.io/blog/release-10.1.20260324#-join-the-conversation" class="hash-link" aria-label="Direct link to 💬 Join the Conversation" title="Direct link to 💬 Join the Conversation" translate="no">​</a></h2>
<p>We'd love to hear what you think! Found a bug? Have an idea? Just want to say hi?</p>
<ul>
<li class="">⭐ <a href="https://github.com/ShaftHQ/SHAFT_ENGINE" target="_blank" rel="noopener noreferrer" class="">Star SHAFT on GitHub</a> — it helps more than you think</li>
<li class="">💡 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/discussions" target="_blank" rel="noopener noreferrer" class="">Start a Discussion</a> — share feedback or ideas</li>
<li class="">🐛 <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/issues/new" target="_blank" rel="noopener noreferrer" class="">Report an Issue</a> — help us squash bugs faster</li>
<li class="">📖 <a href="https://shafthq.github.io/" target="_blank" rel="noopener noreferrer" class="">Read the Docs</a> — dive deeper into SHAFT</li>
</ul>
<p>Thanks for being part of the SHAFT journey. Until the next release — happy testing! 🎯</p>]]></content>
        <author>
            <name>AutoBot</name>
            <uri>https://github.com/ShaftHQ/SHAFT_ENGINE</uri>
        </author>
        <category label="shaft_engine" term="shaft_engine"/>
        <category label="release" term="release"/>
        <category label="changelog" term="changelog"/>
        <category label="test-automation" term="test-automation"/>
        <category label="open-source" term="open-source"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[New Feature Announcement - Swagger Contract Validation]]></title>
        <id>https://shafthq.github.io/blog/swagger-contract-validation</id>
        <link href="https://shafthq.github.io/blog/swagger-contract-validation"/>
        <updated>2025-03-27T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Say goodbye to manual schema checks—contract testing is now automated and built right into SHAFT!]]></summary>
        <content type="html"><![CDATA[<a href="https://github.com/ShaftHQ/SHAFT_ENGINE" target="_blank"><img src="https://raw.githubusercontent.com/ShaftHQ/SHAFT_ENGINE/master/src/main/resources/images/shaft.png" alt="SHAFT_Engine" height="50px"></a>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="say-goodbye-to-manual-schema-checkscontract-testing-is-now-automated-and-built-right-into-shaft">Say goodbye to manual schema checks—contract testing is now automated and built right into SHAFT!<a href="https://shafthq.github.io/blog/swagger-contract-validation#say-goodbye-to-manual-schema-checkscontract-testing-is-now-automated-and-built-right-into-shaft" class="hash-link" aria-label="Direct link to Say goodbye to manual schema checks—contract testing is now automated and built right into SHAFT!" title="Direct link to Say goodbye to manual schema checks—contract testing is now automated and built right into SHAFT!" translate="no">​</a></h3>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="️-what-is-contract-validation">🛡️ What is Contract Validation?<a href="https://shafthq.github.io/blog/swagger-contract-validation#%EF%B8%8F-what-is-contract-validation" class="hash-link" aria-label="Direct link to 🛡️ What is Contract Validation?" title="Direct link to 🛡️ What is Contract Validation?" translate="no">​</a></h2>
<p><strong>Contract testing</strong> ensures your API requests and responses follow the defined structure (contract), helping prevent:</p>
<ul>
<li class="">Unexpected field changes</li>
<li class="">Data type mismatches</li>
<li class="">Missing or extra fields</li>
<li class="">Runtime errors in API consumers</li>
</ul>
<p>With the latest release, SHAFT now integrates Swagger/OpenAPI schema validation for all API tests. It will <strong>fail your test automatically</strong> if the request or response doesn’t match the OpenAPI spec you provide. 🔥</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-how-to-enable-it">🔧 How to Enable It<a href="https://shafthq.github.io/blog/swagger-contract-validation#-how-to-enable-it" class="hash-link" aria-label="Direct link to 🔧 How to Enable It" title="Direct link to 🔧 How to Enable It" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="-via-customproperties">📂 Via <code>custom.properties</code><a href="https://shafthq.github.io/blog/swagger-contract-validation#-via-customproperties" class="hash-link" aria-label="Direct link to -via-customproperties" title="Direct link to -via-customproperties" translate="no">​</a></h3>
<div class="language-properties codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_OeMC">src/main/resources/properties/custom.properties</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-properties codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv codeBlockLinesWithNumbering_o6Pm" style="counter-reset:line-count 0"><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token key attr-name" style="color:#00a4db">swagger.validation.enabled</span><span class="token punctuation" style="color:#393A34">=</span><span class="token value attr-value" style="color:#e3116c">true</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain"></span><span class="token key attr-name" style="color:#00a4db">swagger.validation.url</span><span class="token punctuation" style="color:#393A34">=</span><span class="token value attr-value" style="color:#e3116c">https://petstore.swagger.io/v2/swagger.json</span></span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="-or-via-code">🧪 Or via Code<a href="https://shafthq.github.io/blog/swagger-contract-validation#-or-via-code" class="hash-link" aria-label="Direct link to 🧪 Or via Code" title="Direct link to 🧪 Or via Code" translate="no">​</a></h3>
<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv codeBlockLinesWithNumbering_o6Pm" style="counter-reset:line-count 0"><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token class-name">SHAFT</span><span class="token class-name punctuation" style="color:#393A34">.</span><span class="token class-name">Properties</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">api</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">set</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">swaggerValidationEnabled</span><span class="token punctuation" style="color:#393A34">(</span><span class="token boolean" style="color:#36acaa">true</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain"></span><span class="token class-name">SHAFT</span><span class="token class-name punctuation" style="color:#393A34">.</span><span class="token class-name">Properties</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">api</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">set</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">swaggerValidationUrl</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"https://petstore.swagger.io/v2/swagger.json"</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span></span><br></div></code></pre></div></div>
<p>You can toggle validation dynamically per test or test class.</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-what-gets-validated">✅ What Gets Validated?<a href="https://shafthq.github.io/blog/swagger-contract-validation#-what-gets-validated" class="hash-link" aria-label="Direct link to ✅ What Gets Validated?" title="Direct link to ✅ What Gets Validated?" translate="no">​</a></h2>
<ul>
<li class="">Request structure (body, headers, parameters)</li>
<li class="">Response structure (status, body schema)</li>
<li class="">Alignment with your OpenAPI/Swagger definition</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-sample-test">📄 Sample Test<a href="https://shafthq.github.io/blog/swagger-contract-validation#-sample-test" class="hash-link" aria-label="Direct link to 📄 Sample Test" title="Direct link to 📄 Sample Test" translate="no">​</a></h2>
<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv codeBlockLinesWithNumbering_o6Pm" style="counter-reset:line-count 0"><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain"></span><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">void</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">testCreateUserWithContractValidation</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">    </span><span class="token class-name">SHAFT</span><span class="token class-name punctuation" style="color:#393A34">.</span><span class="token class-name">API</span><span class="token plain"> api </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">new</span><span class="token plain"> </span><span class="token class-name">SHAFT</span><span class="token class-name punctuation" style="color:#393A34">.</span><span class="token class-name">API</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"https://petstore.swagger.io/v2"</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain" style="display:inline-block"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">    </span><span class="token class-name">String</span><span class="token plain"> invalidPayload </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"[{\"id\":\"INVALID_ID\"}]"</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain" style="display:inline-block"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">    api</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">post</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"/user/createWithList"</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">       </span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">setRequestBody</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">invalidPayload</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">       </span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">setContentType</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"application/json"</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">       </span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">perform</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain" style="display:inline-block"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">    api</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">assertThatResponse</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">statusCode</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">isEqualTo</span><span class="token punctuation" style="color:#393A34">(</span><span class="token number" style="color:#36acaa">400</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">perform</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span></span><br></div></code></pre></div></div>
<blockquote>
<p>SHAFT will automatically validate the above request and response against the Swagger schema. ❌ If anything is off, your test will fail and report the contract violation.</p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-why-it-matters">🧐 Why It Matters<a href="https://shafthq.github.io/blog/swagger-contract-validation#-why-it-matters" class="hash-link" aria-label="Direct link to 🧐 Why It Matters" title="Direct link to 🧐 Why It Matters" translate="no">​</a></h2>
<table><thead><tr><th>Benefit</th><th>Description</th></tr></thead><tbody><tr><td>🧪 Test reliability</td><td>Ensure tests align with backend changes</td></tr><tr><td>🔁 Catch regressions</td><td>CI/CD-ready contract enforcement</td></tr><tr><td>❌ Reduce flakiness</td><td>Eliminate schema mismatch failures</td></tr><tr><td>🔍 API governance</td><td>Hold your APIs to their contract</td></tr></tbody></table>
<hr>]]></content>
        <author>
            <name>Kyrillos Nageh</name>
            <uri>https://github.com/KyrillosNageh</uri>
        </author>
        <category label="shaft_engine" term="shaft_engine"/>
        <category label="swagger" term="swagger"/>
        <category label="openapi" term="openapi"/>
        <category label="contract_testing" term="contract_testing"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[New Feature Announcement - Virtual Threads]]></title>
        <id>https://shafthq.github.io/blog/virtual-threads</id>
        <link href="https://shafthq.github.io/blog/virtual-threads"/>
        <updated>2024-01-27T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[We're starting off 2024 with a huge announcement!]]></summary>
        <content type="html"><![CDATA[<p>We're starting off 2024 with a huge announcement!</p>
<a href="https://github.com/ShaftHQ/SHAFT_ENGINE" target="_blank"><img src="https://raw.githubusercontent.com/ShaftHQ/SHAFT_ENGINE/master/src/main/resources/images/shaft.png" alt="SHAFT_Engine" height="50px"></a>
<p>🤝</p>
<a href="https://www.oracle.com/" target="_blank"><img src="https://miro.medium.com/v2/resize:fit:640/0*QGvD2k4DPfPMfpd5.png" alt="Oracle" height="50px"></a>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="--the-future-of-automation-frameworks-is-here-and-its-all-about-working-smarter-not-harder">- The future of automation frameworks is here, and it's all about working smarter, not harder.<a href="https://shafthq.github.io/blog/virtual-threads#--the-future-of-automation-frameworks-is-here-and-its-all-about-working-smarter-not-harder" class="hash-link" aria-label="Direct link to - The future of automation frameworks is here, and it's all about working smarter, not harder." title="Direct link to - The future of automation frameworks is here, and it's all about working smarter, not harder." translate="no">​</a></h3>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="--shaft_engine-your-trusty-automation-solution-just-got-a-major-upgrade-with-virtual-threads-a-clever-trick-that-makes-it-more-efficient-and-helpful-than-ever">- SHAFT_ENGINE, your trusty automation solution, just got a major upgrade with virtual threads, a clever trick that makes it more efficient and helpful than ever.<a href="https://shafthq.github.io/blog/virtual-threads#--shaft_engine-your-trusty-automation-solution-just-got-a-major-upgrade-with-virtual-threads-a-clever-trick-that-makes-it-more-efficient-and-helpful-than-ever" class="hash-link" aria-label="Direct link to - SHAFT_ENGINE, your trusty automation solution, just got a major upgrade with virtual threads, a clever trick that makes it more efficient and helpful than ever." title="Direct link to - SHAFT_ENGINE, your trusty automation solution, just got a major upgrade with virtual threads, a clever trick that makes it more efficient and helpful than ever." translate="no">​</a></h3>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="--what-is-a-virtual-thread">- What is a Virtual Thread?<a href="https://shafthq.github.io/blog/virtual-threads#--what-is-a-virtual-thread" class="hash-link" aria-label="Direct link to - What is a Virtual Thread?" title="Direct link to - What is a Virtual Thread?" translate="no">​</a></h2>
<ul>
<li class=""><a href="https://docs.oracle.com/en/java/javase/21/core/virtual-threads.html" target="_blank" rel="noopener noreferrer" class="">Virtual-Threads</a>, introduced with Java 21 are a new way to handle multiple tasks concurrently within a single program or application. They're the new java way for asynchronous operations.</li>
<li class="">Think of it like hiring a whole crew of tiny helpers. While one tractor's plowing, another can check the soil, and another can keep an eye on the weather.</li>
<li class="">These lightweight assistants don't need fancy equipment or guzzle up resources, meaning SHAFT_ENGINE can now handle a ton more tasks without breaking a sweat.</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="now-lets-think-of-test-automation-in-automating-a-registration-form-envision-employing-a-crew-of-virtual-threads-as-tiny-helpers-">Now let's think of test automation. In automating a registration form, envision employing a crew of virtual threads as tiny helpers :<a href="https://shafthq.github.io/blog/virtual-threads#now-lets-think-of-test-automation-in-automating-a-registration-form-envision-employing-a-crew-of-virtual-threads-as-tiny-helpers-" class="hash-link" aria-label="Direct link to Now let's think of test automation. In automating a registration form, envision employing a crew of virtual threads as tiny helpers :" title="Direct link to Now let's think of test automation. In automating a registration form, envision employing a crew of virtual threads as tiny helpers :" translate="no">​</a></h4>
<ul>
<li class="">Rather than idly waiting for the entire site to load, each virtual thread can be assigned specific tasks as soon as the relevant elements become available. For instance, one thread focuses on inputting the username, another simultaneously handles the email input, and yet another sets the password. This parallel execution optimizes efficiency, ensures prompt responsiveness to dynamically changing elements, and efficiently utilizes resources.</li>
<li class="">As the crew of virtual threads collaborates seamlessly, the registration form is filled and submitted swiftly, providing a more agile and responsive automation process compared to traditional sequential approaches.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="--save-your-execution-time-">- Save your execution Time :<a href="https://shafthq.github.io/blog/virtual-threads#--save-your-execution-time-" class="hash-link" aria-label="Direct link to - Save your execution Time :" title="Direct link to - Save your execution Time :" translate="no">​</a></h2>
<ul>
<li class="">That's not all, SHAFT_ENGINE utilities the Virtual Threads for Engine launch and configuration which will make your overall experience a lot faster and swifter.</li>
</ul>]]></content>
        <author>
            <name>Mustafa Agamy</name>
            <uri>https://github.com/MustafaAgamy</uri>
        </author>
        <category label="shaft_engine" term="shaft_engine"/>
        <category label="java" term="java"/>
        <category label="virtual_threads" term="virtual_threads"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Bing AI framework comparison]]></title>
        <id>https://shafthq.github.io/blog/bingAI</id>
        <link href="https://shafthq.github.io/blog/bingAI"/>
        <updated>2023-04-27T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[We asked Bing AI to compare SHAFT against some of the well known test automation options, here's what it had to say:]]></summary>
        <content type="html"><![CDATA[<p><strong>We asked Bing AI to compare SHAFT against some of the well known test automation options, here's what it had to say:</strong></p>
<p><code>Sure! Here is an expanded comparison between SHAFT_Engine, native Selenium WebDriver, Cypress and Microsoft Playwright in a tabular format:</code></p>
<table><thead><tr><th>Feature</th><th>SHAFT_Engine</th><th>Selenium WebDriver</th><th>Cypress</th><th>Microsoft Playwright</th></tr></thead><tbody><tr><td>Web GUI testing</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr><tr><td>Mobile testing</td><td>Yes</td><td>No (Appium required)</td><td>No</td><td>No</td></tr><tr><td>API testing</td><td>Yes</td><td>No</td><td>Yes</td><td>No</td></tr><tr><td>CLI testing</td><td>Yes</td><td>No</td><td>No</td><td>No</td></tr><tr><td>Database testing</td><td>Yes</td><td>No</td><td>No</td><td>No</td></tr><tr><td>Built-in test synchronization</td><td>Yes</td><td>No</td><td>Yes</td><td>Yes</td></tr><tr><td>Built-in logging and reporting</td><td>Yes</td><td>No</td><td>Yes</td><td>Yes</td></tr><tr><td>Integration with third-party tools (e.g. Jira, Xray, Browserstack)</td><td>Yes</td><td>No</td><td>Limited</td><td>Limited</td></tr><tr><td>Unlimited access to underlying frameworks (e.g. Selenium, Appium, RestAssured)</td><td>Yes</td><td>N/A</td><td>N/A</td><td>N/A</td></tr><tr><td>Cross-browser testing support</td><td>Yes (via Selenium)</td><td>Yes</td><td>Limited (Chrome, Firefox, Edge)</td><td>Yes (Chromium, Webkit, Firefox)</td></tr><tr><td>Parallel test execution support</td><td>Yes (via TestNG)</td><td>Yes (via TestNG or JUnit)</td><td>Yes</td><td>Yes</td></tr><tr><td>Language support</td><td>Java only</td><td>Multiple languages (Java, Python, C#, Ruby, JavaScript)</td><td>JavaScript only</td><td>Multiple languages (JavaScript, Java, Python, .NET C#)</td></tr><tr><td>Open-source</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr><tr><td>Community support and resources</td><td>Limited compared to Selenium WebDriver and Cypress</td><td>Extensive</td><td>Extensive</td><td>Growing</td></tr><tr><td>User guide</td><td>Available</td><td>Available</td><td>Available</td><td>Available</td></tr></tbody></table>
<p><strong>What do you think? Is SHAFT the better option?</strong></p>]]></content>
        <author>
            <name>Mohab Mohie</name>
            <uri>https://github.com/MohabMohie</uri>
        </author>
        <category label="shaft_engine" term="shaft_engine"/>
        <category label="selenium" term="selenium"/>
        <category label="cypress" term="cypress"/>
        <category label="playwright" term="playwright"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[New release announcement (7.1.20230309)]]></title>
        <id>https://shafthq.github.io/blog/release_announcement_7.1.20230309</id>
        <link href="https://shafthq.github.io/blog/release_announcement_7.1.20230309"/>
        <updated>2023-03-10T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Release highlights:]]></summary>
        <content type="html"><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="release-highlights">Release highlights:<a href="https://shafthq.github.io/blog/release_announcement_7.1.20230309#release-highlights" class="hash-link" aria-label="Direct link to Release highlights:" title="Direct link to Release highlights:" translate="no">​</a></h2>
<ul>
<li class="">Issue fix for <a href="https://github.com/SeleniumHQ/selenium/issues/11750" target="_blank" rel="noopener noreferrer" class="">chrome 111+ netty handler issue</a>.</li>
<li class="">Major performance enhancement for the Type element action.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="technical-details">Technical Details:<a href="https://shafthq.github.io/blog/release_announcement_7.1.20230309#technical-details" class="hash-link" aria-label="Direct link to Technical Details:" title="Direct link to Technical Details:" translate="no">​</a></h2>
<ul>
<li class="">SHAFT has always boasted top-notch reliability, but this sometimes comes at the cost of performance. In this release we made a major change to the way we handle "Type" which is one of the most commonly used and also one of the slowest actions.</li>
<li class="">Previously SHAFT would perform the following Selenium WebDriver calls:<!-- -->
<ul>
<li class="">Get Element Accessible Name (for reporting)</li>
<li class="">Get Current Element Text (to learn how this element stores its text and to learn the initial text if any)</li>
<li class="">Get Current Element textContent (to learn how this element stores its text and to learn the initial text if any)</li>
<li class="">Get Current Element Value (to learn how this element stores its text and to learn the initial text if any)</li>
<li class="">Clear (in case the element text wasn't empty)</li>
<li class="">Send Keys (to do the actual typing)</li>
<li class="">Get text using the successful text identification strategy (to validate that the text was typed correctly. if SHAFT ws able to find out which method out of the above three to use it will use it, else it will do all three calls again)</li>
</ul>
</li>
<li class="">And inside each call, SHAFT would go into a fluent wait where it calls:<!-- -->
<ul>
<li class="">findElement</li>
<li class="">findElements</li>
</ul>
</li>
<li class="">This means that SHAFT did 21+ webdriver calls!</li>
<li class="">Starting this version SHAFT will cut that number down to just 3 webdriver calls while maintaining the full functionality.</li>
<li class="">Using <a href="https://mvnrepository.com/artifact/org.jsoup/jsoup" target="_blank" rel="noopener noreferrer" class="">jsoup</a> SHAFT will capture the entire HTML of the target webelement, and will then be able to uery it for the text/textContent/Value as need to clear and validate successfully typing.</li>
<li class="">SHAFT will also grab all element information (including the WebElement object) once, and will use the WebElement object directly (which is much faster than finding the element again each time) but if the engine faces a WebDriverException (like StaleElementException) the engine will go into a fluent wait to find and update the element reference.</li>
<li class="">We tested this major change thoroughly by running around <a href="https://www.linkedin.com/feed/update/urn:li:activity:7039702182392172544/" target="_blank" rel="noopener noreferrer" class="">1700 E2E Test scenarios</a> across different platforms, so we're confident it's stable.</li>
<li class="">In following releases we will rollout this approach to all our element actions, and next on the list we have "Click()" which is the second most used action per our analysis.</li>
</ul>]]></content>
        <author>
            <name>Mohab Mohie</name>
            <uri>https://github.com/MohabMohie</uri>
        </author>
        <category label="shaft_engine" term="shaft_engine"/>
        <category label="chrome111" term="chrome111"/>
        <category label="netty" term="netty"/>
        <category label="typing" term="typing"/>
    </entry>
</feed>