<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>SHAFT User Guide Blog</title>
        <link>https://shafthq.github.io/blog</link>
        <description>SHAFT User Guide Blog</description>
        <lastBuildDate>Mon, 27 Jul 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <item>
            <title><![CDATA[🚀 SHAFT 10.3.20260727: What's New and Why You Should Upgrade Today]]></title>
            <link>https://shafthq.github.io/blog/release-10.3.20260727</link>
            <guid>https://shafthq.github.io/blog/release-10.3.20260727</guid>
            <pubDate>Mon, 27 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Hey there, SHAFT community! 👋]]></description>
            <content:encoded><![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.3.20260727</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.3.20260727#-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.3.20260727" 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.3.20260727#-changelog" class="hash-link" aria-label="Direct link to 📋 Changelog" title="Direct link to 📋 Changelog" translate="no">​</a></h2>
<h1>SHAFT 10.3.20260727</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.3.20260727#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="">Revert global -Xmx1024m Surefire cap that OOMs E2E and Local E2E nightlies by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4009" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4009</a></li>
<li class="">Fix #3996: FlutterIntegration TouchActions.swipeElementIntoView issues flutter: scrollTillVisible by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4010" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4010</a></li>
<li class="">Skill corpus: cut the always-on metadata tax and fix three routing/accuracy defects by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4008" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4008</a></li>
<li class="">Dedup owner-binding orchestrator rules: chaos-engine.md -&gt; act-as-fable by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4013" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4013</a></li>
<li class="">Fix(mcp): capture_api_start networkOptions schema wrongly requires all 6 fields by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4012" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4012</a></li>
<li class="">Harness: reconcile canonical settings.json with deployed ~/.claude values by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4015" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4015</a></li>
<li class="">Fix: chain recorded accessible name onto ROLE-strategy capture locators by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4011" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4011</a></li>
<li class="">Memory: shaft-mcp BOM import ordering silently beats reactor/sibling pins (selenium, netty, postgresql) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4020" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4020</a></li>
<li class="">Fix two of three Live Tools Nightly E2E leads (#3988) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4022" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4022</a></li>
<li class="">Fix #4001 (item 1) + #4004: FlutterAndroidDriver/FlutterIOSDriver construction and loud scroll-to-end guard by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4023" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4023</a></li>
<li class="">Reconcile locator-strategy guidance across the skill corpus by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4031" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4031</a></li>
<li class="">Deprecate appium_flutterfinder_java; migrate FlutterTest.java to native java-client Flutter API by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4033" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4033</a></li>
<li class="">Fix: close 12 open Dependabot alerts in shaft-mcp (netty + postgresql) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4019" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4019</a></li>
<li class="">Memory: record 3 gotchas (scanner patch fragility, TestNG -Dtest=A+B, XML comment --) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4036" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4036</a></li>
<li class="">Fix: measure real locator uniqueness for ROLE/LABEL capture-recorder candidates by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4035" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4035</a></li>
<li class="">Fix #4006: exclude Playwright E2E classes from Grid-job GLOBAL_TESTING_SCOPE by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4039" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4039</a></li>
<li class="">Fix #4038: exclude LazyLoadingFixtureLiveTest from Grid-job GLOBAL_TESTING_SCOPE by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4043" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4043</a></li>
<li class="">Enforce POM in generated code + flip SMART_LOCATOR severity to ERROR by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4042" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4042</a></li>
<li class="">Fix: retry local Safari session creation after clearing a stale pairing (#1548) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4041" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4041</a></li>
<li class="">Fix(mcp): annotate CaptureCodegenStartRequest fields with @ToolParam descriptions by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4050" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4050</a></li>
<li class="">Fix #4040: propagate throttle-test properties onto the background thread by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4051" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4051</a></li>
<li class="">Fix #4032: drop appium_flutterfinder_java dependency by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4049" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4049</a></li>
<li class="">Fix #4026: server-side ACCESSIBLE_NAME backfill + in-page XPath emitter by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4052" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4052</a></li>
<li class="">Fix #4048: harvest guidance from spec-kit / humanizer / taste-skill (SHAFT_ENGINE half) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4058" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4058</a></li>
<li class="">Fix #3991: shorten over-length gotcha memory filename by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4059" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4059</a></li>
<li class="">Fix #4002: HealingManager opts out of AppiumBy.FlutterBy locators by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4055" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4055</a></li>
<li class="">Fix #4014: pin the excludeAssets&lt;-&gt;includeAssetTypes polarity inversion by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4056" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4056</a></li>
<li class="">Fix #4007: force UTF-8 stdout in extract_allure_failures.py by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4060" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4060</a></li>
<li class="">Fix #4044: enforce Smart Locator/POM guardrail ERRORs at the MCP boundary by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4061" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4061</a></li>
<li class="">Memory: record four session gotchas (thread-local Properties, worktree node_modules, guardrail enforcement, shared .m2 cache) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4063" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4063</a></li>
<li class="">Fix #4053: clarify bridges are read as files, not Skill-invocable by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4065" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4065</a></li>
<li class="">Fix #4057: wire enabled/captureRequestBodies/captureResponseBodies through network capture by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4064" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4064</a></li>
<li class="">Test: reproduce #4046 Guided Workflows Live E2E hang (disabled, no fix) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4068" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4068</a></li>
<li class="">Fix #4021: decouple the panel gate fixture from HealerService's repositoryRoot check by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4062" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4062</a></li>
<li class="">Remove orphaned unitTestSuite.xml by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4069" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4069</a></li>
<li class="">Fix #4066: bound CaptureManager.invoke() so a recorder hang cannot hang the MCP tool call forever by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4073" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4073</a></li>
<li class="">Memory: record four gotchas from #4021, #4046, #4066, #4014, #4057 by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4075" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4075</a></li>
<li class="">Fix reentrant WebDriver call inside CDP Fetch interception callback (#4046) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4076" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4076</a></li>
<li class="">Fix #4081: bound every CI workflow job with timeout-minutes by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4082" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4082</a></li>
<li class="">Fix #4084: reconcile orchestrator concurrency cap to 2-4, strengthen plan/architecture duty by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4085" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4085</a></li>
<li class="">Memory: npx cache is a second, unpatched @aictx/memory copy by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4087" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4087</a></li>
<li class="">Fix #4078: detect Cucumber-over-TestNG runs from suite classes, not the call stack by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4089" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4089</a></li>
<li class="">Fix #4088: validate the PATH-resolved memory CLI, not an npx-cached copy by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4093" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4093</a></li>
<li class="">Fix #4077: stop acceptNetworkEvent() reentrant getWindowHandle() inside the CDP Fetch callback by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4092" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4092</a></li>
<li class="">Fix #4080: cover both auto-close mechanisms in work-github playbook by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4096" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4096</a></li>
<li class="">Fix #4037: stop silent no-op when remote Grid session lacks CDP access for basic-auth by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4095" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4095</a></li>
<li class="">Fix #4074: bound JunitExtension retry re-execution timeout by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4094" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4094</a></li>
<li class="">Fix #4072: skip Gemini thought parts and surface finishReason in parseStructuredPayload by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4099" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4099</a></li>
<li class="">Fix #4101: remove false branch-naming auto-close claim from playbook by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4102" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4102</a></li>
<li class="">Fix #4046: fix GuidedWorkflowLiveE2ETest's premature-stop race in the API capture wait gate by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4100" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4100</a></li>
<li class="">Close the archive output stream when unpacking fails by @Mochxd in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4098" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4098</a></li>
<li class="">Fix #4079: fail zero-scenario Cucumber CI jobs instead of reporting green by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4106" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4106</a></li>
<li class="">Fix #4105: guard post-test-report's find call against an absent allure-results directory by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4109" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4109</a></li>
<li class="">Fix #4103: forbid delegate CI-watch, add five Learning Loop entries by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4108" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4108</a></li>
<li class="">Fix #4037: stop pre-registering AddHasAuthentication, let Augmenter sequence it correctly by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4104" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4104</a></li>
<li class="">Fix #4107: distinguish Gemini output-truncation from malformed JSON by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4111" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4111</a></li>
<li class="">Fix #4071: delete redundant cucumber_testSuite.xml, add orphaned-suite-XML CI guard by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4112" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4112</a></li>
<li class="">Fix #4114: make the 20-minute stall watch two-sided by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4120" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4120</a></li>
<li class="">Memory: record six gotchas from the #4086 orchestration run by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4122" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4122</a></li>
<li class="">Fix #4121: reclaim byte headroom in act-as-fable SKILL.md by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4123" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4123</a></li>
<li class="">Fix #4115: add targeted workflow_dispatch inputs to the E2E workflows by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4124" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4124</a></li>
<li class="">Fix #4116, #4118: incremental Learning Loop recording and a stall watch that covers local commands by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4125" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4125</a></li>
<li class="">Fix #4067: reclaim AGENTS.md byte headroom by moving the routing bridge list out of the budget glob by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4129" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4129</a></li>
<li class="">Memory: record six gotchas from the crash-recovery session (git config zeroing, squash-merge, Windows worktrees, validator split, byte-cap cycle, shared stash) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4131" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4131</a></li>
<li class="">Fix #4083: make a delegate's refusal of orchestration commands structural, not discretionary by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4128" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4128</a></li>
<li class="">Fix #4110: unblock memory cross-links whose derived relation id exceeds the filename-length check by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4133" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4133</a></li>
<li class="">Fix #4090: keep network-event window attribution correct across tab switches by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4132" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4132</a></li>
<li class="">Fix #4119, #4097: correct the zero-scenario guard's module path and settle the BrowserStack Cucumber job by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4135" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4135</a></li>
<li class="">Fix #4091: detect Cucumber runners declared via packages, methods, or a child suite-file by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4134" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4134</a></li>
<li class="">Fix #4127: reclaim real headroom in act-as-fable SKILL.md via #4067's split by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4140" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4140</a></li>
<li class="">Fix screenshot helper failure reporter class by @Mochxd in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4139" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4139</a></li>
<li class="">Fix #4113: stop Gemini structured responses truncating at the output-token ceiling by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4136" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4136</a></li>
<li class="">Record two session gotchas: Bash colon-mangling and CI guard-replay technique by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4141" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4141</a></li>
<li class="">Fix #4138: replace dead output-budget preflight check with a real warning by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4143" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4143</a></li>
<li class="">Guard.py: shared git stash + worktree add guardrails, plus a live R3 alias false-positive fix by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4148" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4148</a></li>
<li class="">Add CI guard for negated closing-keyword references in PR bodies by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4144" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4144</a></li>
<li class="">Document events.jsonl GitHub false-positive CONFLICTING (#4137) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4149" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4149</a></li>
<li class="">Guard.py R3: stop multi-word GUI-verb denylist matching quoted prose by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4151" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4151</a></li>
<li class="">Catch new memory secret-scanner openai_api_key landmines before they land by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4150" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4150</a></li>
<li class="">Record 3 memory gotchas: quote-blind auto-close, auto-merge arm-race, events.jsonl presence/false-conflict by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4153" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4153</a></li>
<li class="">Guard R3: quoted /c payload no longer bypasses the shell-open denylist by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4155" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4155</a></li>
<li class="">Record gotcha: GitHub Actions &amp;&amp; precedence trap in gate conditions by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4158" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4158</a></li>
<li class="">Extend the autoclose guard to commit messages and re-run it on edited PR bodies by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4157" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4157</a></li>
<li class="">Add a budgeted deterministic re-suggestion ladder (inert, unwired) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4162" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4162</a></li>
<li class="">IntelliJ plugin: setup panel greeting no longer contradicts Done badge on reopen by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4167" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4167</a></li>
<li class="">Fix AssistantLocalAgentRunner stream reader discarding buffered output on IOException by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4169" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4169</a></li>
<li class="">Recorder tab's Check status now reports the real active/idle answer by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4170" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4170</a></li>
<li class="">Add fingerprint-seeding seam so SHAFT Heal history can be written without a live driver by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4173" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4173</a></li>
<li class="">IntelliJ plugin: assistant raw output uses the IDE's editor font by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4176" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4176</a></li>
<li class="">Record two gotchas from the issue 4163 investigation by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4177" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4177</a></li>
<li class="">Collapse prerequisites row immediately after Recheck by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4178" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4178</a></li>
<li class="">Consolidate capture-status parsing helpers onto AssistantMarkdown by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4180" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4180</a></li>
<li class="">Record shaft-intellij -Werror/modelToView compile gotcha by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4186" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4186</a></li>
<li class="">Record two memory objects from the issue 4172 healing-seeding session by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4187" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4187</a></li>
<li class="">Wire shaft-capture into the healing fingerprint-seeding seam (issue 4172) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4185" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4185</a></li>
<li class="">Install text fonts on the intellij-verify CI runner (defensive, not root-cause) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4189" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4189</a></li>
<li class="">IntelliJ plugin: welcome bubble truncation and dead EditorColorsManager guard fixes by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4184" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4184</a></li>
<li class="">Use IDE editor font in ShaftMcpSetupPanel instead of hardcoded Font.MONOSPACED by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4192" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4192</a></li>
<li class="">shaft-intellij: correct widthCappedWidget() insets docs, add narrow-width panel coverage (#4191) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4193" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4193</a></li>
<li class="">Wire the always-on deterministic re-suggestion ladder into resolve() (issue 4027) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4195" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4195</a></li>
<li class="">Name the failing stage and recorded step in codegen failures (issue 4029) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4196" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4196</a></li>
<li class="">Add fluent wait/gesture/camera API over java-client's Flutter driver (#4017) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4198" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4198</a></li>
<li class="">Stage generated test source until compile/replay pass, never overwrite it early by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4201" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4201</a></li>
<li class="">Add Flutter demo-app + emulator E2E pipeline to e2eTests.yml by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4200" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4200</a></li>
<li class="">Add test for activateInjectedImage negative branch coverage by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4205" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4205</a></li>
<li class="">Fix fingerprint-seeding fidelity gaps: recorder attributes, fallback-chain seeding by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4207" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4207</a></li>
<li class="">Wire low-trust ladder outcomes to a reviewable Doctor advisory proposal by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4208" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4208</a></li>
<li class="">Recover a cancelled/killed local-agent run's terminal answer by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4204" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4204</a></li>
<li class="">Snapshot/restore generated test-data JSON on failed compile/replay (issue 4202) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4213" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4213</a></li>
<li class="">Fix advisory locator proposal picking an ineligible top-scored candidate by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4212" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4212</a></li>
<li class="">Fix #4206: delete the staged generated source on the exception path too by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4216" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4216</a></li>
<li class="">[Docs] Update stale hardcoded '89-tool' prose references to '90-tool' by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4218" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4218</a></li>
<li class="">Record Area A (plugin initial setup) audit outcome: no defects found by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4221" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4221</a></li>
<li class="">Add typed FlutterDriverOptions arm to OptionsManager by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4219" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4219</a></li>
<li class="">shaft-intellij: pending-answer indicator on Cancelled/Killed bubbles by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4222" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4222</a></li>
<li class="">Gate codegen success on a real replay pass, not a skipped one by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4224" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4224</a></li>
<li class="">Fix false-positive data-file restore on promotion-write failure by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4226" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4226</a></li>
<li class="">Persist visibilityRequired on HealingReport for exact advisory eligibility mirror by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4227" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4227</a></li>
<li class="">Print UNCONFIRMED banner after the JSON dump in capture generate by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4229" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4229</a></li>
<li class="">Gate ApiCaptureGenerator success on a real replay pass, not a skipped one by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4228" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4228</a></li>
<li class="">Report Playwright replay honestly when actions are skipped for redaction by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4231" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4231</a></li>
<li class="">shaft-intellij: fix tool approval prompt text silently clipped at ordinary width by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4232" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4232</a></li>
<li class="">Record shaft-mcp container-smoke Docker Hub pull-timeout gotcha by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4235" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4235</a></li>
<li class="">memory: record #4234 investigation (PreferredHeightRow non-issue) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4236" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4236</a></li>
<li class="">fix(intellij): stop recommending Smart Locators in Assistant prompts (#4239 P0.1) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4240" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4240</a></li>
<li class="">Fix mobile codegen/replay to report honest success (#4239 P0.2) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4241" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4241</a></li>
<li class="">Fix NPE in AssistantTranscriptView when EditorColorsManager service is unavailable by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4238" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4238</a></li>
<li class="">shaft-mcp: capture_generate_replay/capture_start tool-schema fixes (issue #4239 P0.3/P0.4) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4243" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4243</a></li>
<li class="">fix(intellij): stop recommending Smart Locators in two more Assistant prompts by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4245" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4245</a></li>
<li class="">Fix LiveChatToolE2ESupport leaking a fake Application into the Gradle test JVM by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4244" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4244</a></li>
<li class="">Wire commit-message autoclose scanning into pr-gate.yml by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4246" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4246</a></li>
<li class="">recorder: self-verify ROLE candidates and extend XPath fallback (#4239 P1.0a/P1.0b) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4248" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4248</a></li>
<li class="">refactor(mcp,capture): extract guardrail rules into shaft-capture library (P1.2) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4249" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4249</a></li>
<li class="">Shorten overlong .memory decision record id (issue #4247) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4250" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4250</a></li>
<li class="">Reduce NPath complexity of GeneratedCodeGuardrails.isSuspiciousSecretLiteral by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4251" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4251</a></li>
<li class="">capture: make locator policy a real gate, hard ban non-ARIA fallback (issue #4239 P1.1/P1.3/P1.4a/P1.5) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4252" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4252</a></li>
<li class="">memory: record LambdaTest nightly-cron wontfix decision (#3934) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4253" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4253</a></li>
<li class="">memory: record crash-orphaned-branch verification gotcha by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4255" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4255</a></li>
<li class="">Split AssistantCommand prompt constants into local-agent/cloud variants (#4239 P2.2) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4257" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4257</a></li>
<li class="">Stop telling the tool-incapable cloud-chat model to call MCP tools (#4256) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4259" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4259</a></li>
<li class="">Consolidate the harness into a single act-as-mohab orchestrator skill (#4260) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4261" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4261</a></li>
<li class="">memory: record git-reset-in-shared-worktree gotcha from #4262 concurrent work by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4266" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4266</a></li>
<li class="">Stop telling cloud-chat codegen to call MCP tools it can't invoke (#4258) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4267" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4267</a></li>
<li class="">mcp: surface honest ladder-rejection reason from Playwright manual-recording codegen (#4262 P1) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4265" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4265</a></li>
<li class="">mcp: deliver shaft-skills policy via MCP server instructions (#4239 P2.1) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4254" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4254</a></li>
<li class="">memory: flag assistantcommandtest-exact-match-mcp-usage-hint gotcha as stale by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4268" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4268</a></li>
<li class="">capture: locatorExpression honors rung-2 replayXpath for ID/NAME/CSS/TEST_ID (fixes #4264) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4276" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4276</a></li>
<li class="">intellij: update stale 2-tier locator-policy prompts to the 3-tier order (#4275) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4282" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4282</a></li>
<li class="">memory: record gotcha from #4271/#4277 -- delegated verification fabrication by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4283" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4283</a></li>
<li class="">capture: unified deterministic locator scoring/ranking algorithm (#4271) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4277" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4277</a></li>
<li class="">memory: record gotcha from #4271/#4277 -- Maven -pl test stale cache by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4284" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4284</a></li>
<li class="">mcp: BrowserService's locatorCode routes ID/TEST_ID/CSS/NAME through LocatorPolicy by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4286" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4286</a></li>
<li class="">memory: gotcha hygiene cleanup -- merge duplicates, supersede dead-tool entries, retire one narrow diary by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4285" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4285</a></li>
<li class="">Fix targetless iframe locator guardrail violation and add shaft-capture to CI unit-test matrix by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4288" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4288</a></li>
<li class="">Compute real live-DOM locator evidence for manual Playwright MCP recording (#4273) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4289" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4289</a></li>
<li class="">shaft-mcp: self-verified replayXpath for NAME/XPATH manual Playwright recordings (#4262) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4292" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4292</a></li>
<li class="">shaft-mcp: warn immediately on CSS-strategy Playwright locator recordings (#4291) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4293" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/4293</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260722...10.3.20260727" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260722...10.3.20260727</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-community-spotlight">🏆 Community Spotlight<a href="https://shafthq.github.io/blog/release-10.3.20260727#-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>46 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/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/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/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/ammaralfaqi11.png" width="32" height="32" alt="@ammaralfaqi11"> <a href="https://github.com/ammaralfaqi11" target="_blank" rel="noopener noreferrer" class="">@ammaralfaqi11</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.3.20260727#-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.3.20260727</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.3.20260727#-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:encoded>
            <category>shaft_engine</category>
            <category>release</category>
            <category>changelog</category>
            <category>test-automation</category>
            <category>open-source</category>
        </item>
        <item>
            <title><![CDATA[🚀 SHAFT 10.3.20260722: What's New and Why You Should Upgrade Today]]></title>
            <link>https://shafthq.github.io/blog/release-10.3.20260722</link>
            <guid>https://shafthq.github.io/blog/release-10.3.20260722</guid>
            <pubDate>Wed, 22 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Hey there, SHAFT community! 👋]]></description>
            <content:encoded><![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.3.20260722</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.3.20260722#-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.3.20260722" 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.3.20260722#-changelog" class="hash-link" aria-label="Direct link to 📋 Changelog" title="Direct link to 📋 Changelog" translate="no">​</a></h2>
<h1>SHAFT 10.3.20260722</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.3.20260722#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="">Closes #3782: shared LookAndFeelIsolationExtension for shaft-intellij Swing tests by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3787" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3787</a></li>
<li class="">Closes #3786: fix ShaftTestsPanelTest full-suite + screenshotDir breakage (missed L&amp;F isolation, not a platform latch) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3789" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3789</a></li>
<li class="">memory: record Windows MAX_PATH supersede-shorthand gotcha (Closes #3790) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3791" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3791</a></li>
<li class="">Fix chromium double-HasCdp augmentation, green-masked example CI, and stale sample test data (#3788) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3793" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3793</a></li>
<li class="">Fix failure-screenshot exception masking the real action failure by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3796" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3796</a></li>
<li class="">Fix #3794: restore UnsupportedCommandException fallback for remote CDP screenshots by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3797" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3797</a></li>
<li class="">Closes #3798: freshen generated project workflow templates + guard against future drift by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3799" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3799</a></li>
<li class="">Add GitHub-star CTA to console execution summary on clean runs by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3801" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3801</a></li>
<li class="">Add persistent User Guide + Star SHAFT header buttons to Allure 3 reports by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3813" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3813</a></li>
<li class="">Resolve loopback-sink sentinel to the tab's real BiDi browsing context by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3815" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3815</a></li>
<li class="">Add pr-gate.yml: consolidated path-conditioned PR gate (Phase 1 of #3814) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3818" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3818</a></li>
<li class="">Sync stale API unit tests with the explicit-status and HEAD/OPTIONS refactors by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3819" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3819</a></li>
<li class="">Skip supplementary validation evidence when rich evidence is already attached by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3823" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3823</a></li>
<li class="">Quit leaked remote sessions on post-creation failure; decouple attempt timeout by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3825" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3825</a></li>
<li class="">Pre-stage the classpath OpenCV native into SikuliX's libs folder by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3827" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3827</a></li>
<li class="">Tee the Allure failure list into the job log, not only the step summary by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3829" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3829</a></li>
<li class="">Restore automaticallyAssertResponseStatusCode after Test_LTMobAPKRelativePath by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3831" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3831</a></li>
<li class="">Enable grid preflight fail-fast in nightly E2E; harden readiness and teardown by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3828" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3828</a></li>
<li class="">Skip execution-summary rows for retry-suppressed attempts by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3832" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3832</a></li>
<li class="">Capture the Appium server's own log in the Windows desktop nightly job by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3830" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3830</a></li>
<li class="">Record six durable gotchas from the nightly-campaign and CI-overhaul session by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3834" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3834</a></li>
<li class="">Match the binary attachment route on whole tokens, not raw substrings by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3835" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3835</a></li>
<li class="">CI overhaul Phase 3: fold per-area PR workflows into pr-gate, narrow security.yml by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3836" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3836</a></li>
<li class="">Annotate retry-suppressed console lines as Failed (retried), not Skipped by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3837" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3837</a></li>
<li class="">Read the two legacy remote-server timeouts live instead of caching at class-load by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3838" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3838</a></li>
<li class="">Decompose reportValidationState into focused evidence/outcome helpers (NPath 56,880 → per-method ≤4 decisions) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3839" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3839</a></li>
<li class="">Add browser-level regressions for the async-login loopback race by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3841" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3841</a></li>
<li class="">Fix guidance gate: trim act-as-fable SKILL.md and shorten overlong gotcha ids by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3844" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3844</a></li>
<li class="">Trim the dead rich-evidence flag from ValidationsHelper's driver paths by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3843" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3843</a></li>
<li class="">Fix #3821: isolate CheckpointCounter state to stop AllureManagerCoverageUnitTest batch flake by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3847" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3847</a></li>
<li class="">Escape raw control bytes reaching the console/job log sink by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3848" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3848</a></li>
<li class="">Harness optimization: adopt harvested bmad-method patterns + codebase examples pass by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3850" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3850</a></li>
<li class="">Fix Chromium alert auto-dismiss and invalid-select test on modern Chrome/Edge by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3851" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3851</a></li>
<li class="">pr-gate: add path-conditioned unit-test leg(s) for core Java modules by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3852" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3852</a></li>
<li class="">Add CheckpointCounter.resetForTesting() and route test resetters through it (#3846) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3853" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3853</a></li>
<li class="">Phase 4 of #3814: notify-nightly-failure composite for the 3 nightly workflows by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3855" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3855</a></li>
<li class="">Gitignore runtime-regenerated properties/ in shaft-ai/shaft-doctor/shaft-pilot-core (#3856) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3857" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3857</a></li>
<li class="">Fix Windows_Appium_Desktop_Local: keep the Appium server alive across the test (#3806) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3858" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3858</a></li>
<li class="">CI overhaul Phase 3 sweep: remove dead validate_refresh_workflow guard (#3814) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3859" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3859</a></li>
<li class="">Agent harness revamp: Chaos Engine orchestrator + coder/reviewer/tester L1 agents by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3862" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3862</a></li>
<li class="">CI overhaul Phase 5: composite dedup, sharded-report retirement, guidance-rot sweep (#3814 remainder) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3865" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3865</a></li>
<li class="">Report BrowserActionsHelper failures under the correct class by @Mochxd in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3875" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3875</a></li>
<li class="">Tool architecture sweep: trim shaft-mcp to 89 tools, canonical tool-index, shaft-cli one-shots, skills router, GitHub-tracking process by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3881" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3881</a></li>
<li class="">Tool sweep T4/#3870: index-fed IntelliJ deterministic tool selector by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3882" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3882</a></li>
<li class="">Coverage pass: sweep new/changed classes to 80-90% (JaCoCo-measured) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3886" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3886</a></li>
<li class="">Memory: tool-sweep session gotchas by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3888" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3888</a></li>
<li class="">Tool sweep T6/#3872: live E2E — every MCP/CLI service from the IntelliJ chat view by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3887" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3887</a></li>
<li class="">Close-out batch 2026-07-21: coverage wiring, tool-schema, hygiene, and IntelliJ selector follow-ups (#3889) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3891" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3891</a></li>
<li class="">Follow-ups from the 2026-07-21 batch: gitignore dedupe, omitted-targetBrowser e2e, catalog-diff note, NPath flatten (#3890) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3898" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3898</a></li>
<li class="">(#3897): dedupe module-local .gitignore stubs against the root scheme by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3903" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3903</a></li>
<li class="">#3902: explicit MIT license metadata across published modules by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3904" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3904</a></li>
<li class="">fix #3899: driver_initialize mobile args + stale union-status test assertions by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3906" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3906</a></li>
<li class="">#3900: fix pr-gate shaft-cli reactor resolution and shaded-jar false positives by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3901" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3901</a></li>
<li class="">fix #3905: generate the missing Role import for ROLE-strategy locators by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3907" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3907</a></li>
<li class="">shaft-mcp: fix McpMobileInitOptions schema wrongly requiring every nested field by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3911" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3911</a></li>
<li class="">shaft-intellij: fix GuidedWorkflowPanel stale capture_start mode/includeSensitiveValues args by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3913" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3913</a></li>
<li class="">shaft-intellij: drive element_type/element_click in live E2E after #3881 A1 tool unification by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3915" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3915</a></li>
<li class="">shaft-intellij: send sessionPath/backend to unified capture_code_blocks from the guided workflow panel by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3924" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3924</a></li>
<li class="">Fix grid-CI test-isolation and portability bugs (S2) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3936" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3936</a></li>
<li class="">Fix Maven Central release: extend publish poll timeout + add failure alerting by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3937" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3937</a></li>
<li class="">shaft-intellij: add live E2E for the record-api-to-codegen chain by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3938" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3938</a></li>
<li class="">Fix macOS nightly Local E2E heap OOM: cap surefireArgLine -Xmx1024m by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3942" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3942</a></li>
<li class="">Wire the six live E2E test classes into CI (#3932) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3941" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3941</a></li>
<li class="">docs: fix retired mobile_recording_code_blocks shape in feature catalog by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3944" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3944</a></li>
<li class="">Fix stale javadoc @link references in shaft-mcp by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3945" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3945</a></li>
<li class="">Fix Firefox-grid WWW-Authenticate/ClosedChannelException cluster: isolate LambdaTestHelperUnitTest (#3929) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3947" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3947</a></li>
<li class="">Commit accumulated session memory gotchas (2026-07-21) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3950" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3950</a></li>
<li class="">shaft-intellij: add Record API entry point to GuidedWorkflowPanel by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3948" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3948</a></li>
<li class="">ci: roll out notify-nightly-failure to E2E Tests and Local E2E Tests by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3951" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3951</a></li>
<li class="">shaft-intellij: remove emoji/glyph custom thinking messages from Assistant transcript by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3953" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3953</a></li>
<li class="">shaft-intellij: unwrap capture_status/capture_api_status union before reading fields by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3954" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3954</a></li>
<li class="">Fix host-OS-specific mobile_app absolute path detection in Appium capabilities by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3957" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3957</a></li>
<li class="">shaft-intellij: gate three more raw-output paths behind Verbose (#3918) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3958" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3958</a></li>
<li class="">ci: extract environment-dependent unit tests out of browser E2E matrix jobs by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3952" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3952</a></li>
<li class="">shaft-intellij: close silent content drops in Assistant transcript pipeline (#3920) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3961" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3961</a></li>
<li class="">shaft-intellij: additive raw-CLI terminal tab for Claude Code and Codex (#3959) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3960" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3960</a></li>
<li class="">Process rule: track every deferred/out-of-scope PR-body mention as a GitHub issue by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3966" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3966</a></li>
<li class="">shaft-intellij: message-kind model + central style registry (#3921) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3967" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3967</a></li>
<li class="">shaft-intellij: fix incorrect off-EDT javadoc on terminal pre-type callback by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3969" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3969</a></li>
<li class="">shaft-intellij: add GitHub Copilot CLI terminal action by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3970" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3970</a></li>
<li class="">Trim copilot host-context guidance to restore token-budget margin by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3972" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3972</a></li>
<li class="">shaft-intellij: align StructuredStreamParser with real Codex/Claude stream schemas by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3973" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3973</a></li>
<li class="">shaft-intellij: unwrap capture_status union in ShaftAssistantPanel diagnostic (#3955) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3975" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3975</a></li>
<li class="">shaft-intellij: thread Verbose gating through agentOutput/failureOutput by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3977" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3977</a></li>
<li class="">Record ShaftAssistantPanel dual-Message-graph gotcha from #3968 by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3979" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3979</a></li>
<li class="">shaft-intellij: thread explicit message kinds through ShaftAssistantPanel (#3968) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3978" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3978</a></li>
<li class="">Record squash-merge auto-close gotcha from issue #3965 by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3980" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3980</a></li>
<li class="">Add on-demand Maven Central release reconciliation by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3983" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3983</a></li>
<li class="">shaft-intellij: wire panel Verbose checkbox into local-agent stderr gating by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3982" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3982</a></li>
<li class="">shaft-intellij: keep Verbose raw stream buffer reachable on normal completion by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3984" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3984</a></li>
<li class="">shaft-intellij: split StructuredStreamParser into per-protocol mapper classes by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3990" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3990</a></li>
<li class="">Agent charters: state mempalace/memory discovery-first explicitly for coder/reviewer/tester by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3992" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3992</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260719...10.3.20260722" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260719...10.3.20260722</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-community-spotlight">🏆 Community Spotlight<a href="https://shafthq.github.io/blog/release-10.3.20260722#-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>46 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/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/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/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/ammaralfaqi11.png" width="32" height="32" alt="@ammaralfaqi11"> <a href="https://github.com/ammaralfaqi11" target="_blank" rel="noopener noreferrer" class="">@ammaralfaqi11</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.3.20260722#-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.3.20260722</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.3.20260722#-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:encoded>
            <category>shaft_engine</category>
            <category>release</category>
            <category>changelog</category>
            <category>test-automation</category>
            <category>open-source</category>
        </item>
        <item>
            <title><![CDATA[🚀 SHAFT 10.3.20260719: What's New and Why You Should Upgrade Today]]></title>
            <link>https://shafthq.github.io/blog/release-10.3.20260719</link>
            <guid>https://shafthq.github.io/blog/release-10.3.20260719</guid>
            <pubDate>Sun, 19 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Hey there, SHAFT community! 👋]]></description>
            <content:encoded><![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.3.20260719</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.3.20260719#-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.3.20260719" 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.3.20260719#-changelog" class="hash-link" aria-label="Direct link to 📋 Changelog" title="Direct link to 📋 Changelog" translate="no">​</a></h2>
<h1>SHAFT 10.3.20260719</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.3.20260719#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="">Remove gbrain: full uninstall + strip repo dependency by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3714" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3714</a></li>
<li class="">Route context lookups through mempalace/graphify; refine followup-issue rule by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3715" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3715</a></li>
<li class="">Fix fresh-project screenshots/compile bug, icon-only recorder toolbar, MCP heartbeat noise by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3718" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3718</a></li>
<li class="">Assistant chat rendering fixes, optional codegen tool params, user-distributed act-as-mohab skill by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3720" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3720</a></li>
<li class="">Guidance: draft-UI-first + business-coverage TDD; doc-boundary validator ignores agent worktrees by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3729" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3729</a></li>
<li class="">Grid YML: BiDi documentation + hub healthcheck gating; selenium3.yml BiDi warning by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3730" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3730</a></li>
<li class="">CI: shaft-mcp tests trigger on template/skill changes and actually run ShaftProjectServiceTest by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3731" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3731</a></li>
<li class="">Harness integration: PDCA operating loop, knowledge triad, pragmatic-professional Voice by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3735" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3735</a></li>
<li class="">IntelliJ: /record-api assistant command starts a real SHAFT.API capture session by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3740" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3740</a></li>
<li class="">Fix Selenium WebSocket 'Connection reset' warning polluting the console on every run by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3737" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3737</a></li>
<li class="">IntelliJ: attach files, open editors, and screenshots to the assistant prompt context by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3742" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3742</a></li>
<li class="">Remote BiDi-enabled sessions get real HasAuthentication basic auth instead of silent URL-credential fallback by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3744" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3744</a></li>
<li class="">Grid YML verified against docker-selenium guide: CDP/Augmenter contract documented by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3747" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3747</a></li>
<li class="">Guidance budgets: per-surface caps matched to load cost replace the global reduction floor by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3748" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3748</a></li>
<li class="">Allure assertion evidence: screenshot-only by default; HTML previews fill the pane by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3750" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3750</a></li>
<li class="">Doctor cleanup: guidance dedupe, unused-plugin disable, validator .memory/recovery ignore by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3757" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3757</a></li>
<li class="">IntelliJ: structured question/options protocol with fence fallback by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3753" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3753</a></li>
<li class="">IntelliJ setup: one-click SHAFT MCP install includes skills + CLI; advanced options and raw command tucked away by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3755" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3755</a></li>
<li class="">Revert IntelliJ plugin and Allure report logos to the original SHAFT logo by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3759" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3759</a></li>
<li class="">maven-tools-mcp: bump to 3.2.0 and document the no-Docker fallback by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3762" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3762</a></li>
<li class="">Restore 51 command-routing and runner tests silently dropped by #3753 by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3761" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3761</a></li>
<li class="">Hide Save transcript with its action-row siblings in the empty state by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3763" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3763</a></li>
<li class="">Document the interactive recorder's local-only execution as a design constraint by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3764" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3764</a></li>
<li class="">Route the no-browser API prefill to mobile_api_record_start by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3765" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3765</a></li>
<li class="">Deterministic record-stop-generate loop for chat-side API recording by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3766" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3766</a></li>
<li class="">Mask basic-auth password in Playwright navigate URL logs by @Mochxd in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3754" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3754</a></li>
<li class="">IntelliJ assistant: linear-time verbose streaming, EDT coalescing, transcript cap by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3770" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3770</a></li>
<li class="">Stabilize the force-cancel race in ShaftMcpInvocation.kill() by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3769" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3769</a></li>
<li class="">Assistant: soft Cancel renders Cancelled, armed stop clears the recording badge by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3772" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3772</a></li>
<li class="">IntelliJ plugin UX polish: consistent label-column alignment in Recorder and MCP Setup forms by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3776" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3776</a></li>
<li class="">Layered lazy-loading readiness: JS coverage, advisory BiDi network source, local fixture + scrollToLoadAll by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3775" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3775</a></li>
<li class="">Retire legacy external-site LazyLoadingTests by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3778" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3778</a></li>
<li class="">Apply waitForLazyLoading after navigateToURL even when initialURL is null by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3779" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3779</a></li>
<li class="">Harness: recursive stall-watch rule + properties-catalog generator gotcha by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3780" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3780</a></li>
<li class="">Fix light-theme IntelliJLaf checkboxes losing their glyph in the headless screenshot renderer by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3781" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3781</a></li>
<li class="">Closes #3784: fail fast in shaft-intellij's Gradle Daemon on unverified JDKs by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3785" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3785</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260717...10.3.20260719" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260717...10.3.20260719</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-community-spotlight">🏆 Community Spotlight<a href="https://shafthq.github.io/blog/release-10.3.20260719#-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>46 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/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/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/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/ammaralfaqi11.png" width="32" height="32" alt="@ammaralfaqi11"> <a href="https://github.com/ammaralfaqi11" target="_blank" rel="noopener noreferrer" class="">@ammaralfaqi11</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.3.20260719#-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.3.20260719</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.3.20260719#-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:encoded>
            <category>shaft_engine</category>
            <category>release</category>
            <category>changelog</category>
            <category>test-automation</category>
            <category>open-source</category>
        </item>
        <item>
            <title><![CDATA[🚀 SHAFT 10.3.20260717: What's New and Why You Should Upgrade Today]]></title>
            <link>https://shafthq.github.io/blog/release-10.3.20260717</link>
            <guid>https://shafthq.github.io/blog/release-10.3.20260717</guid>
            <pubDate>Sat, 18 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Hey there, SHAFT community! 👋]]></description>
            <content:encoded><![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.3.20260717</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.3.20260717#-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.3.20260717" 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.3.20260717#-changelog" class="hash-link" aria-label="Direct link to 📋 Changelog" title="Direct link to 📋 Changelog" translate="no">​</a></h2>
<h1>SHAFT 10.3.20260717</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.3.20260717#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="">intellij: Phase 1 lifecycle/threading hardening (#3619-#3623) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3646" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3646</a></li>
<li class="">Remove headroom proxy from agent guidance; record removal gotcha by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3651" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3651</a></li>
<li class="">intellij: Phase 2 trust/status truth hardening (#3624-#3627) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3647" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3647</a></li>
<li class="">intellij: transcript &amp; assistant ergonomics hardening (Phase 3, #3628-#3633) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3648" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3648</a></li>
<li class="">memory: stacked-branch rebase gotcha from #3647/#3648 merge session by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3652" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3652</a></li>
<li class="">memory: shafthq.github.io PR merges need --admin despite green CI (branch protection) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3653" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3653</a></li>
<li class="">intellij: Phase 4/5 panel polish and feature-loop enrichment (#3634-#3642, partial) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3654" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3654</a></li>
<li class="">intellij: correlate watch-mode reruns with the changed test file (#3641) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3655" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3655</a></li>
<li class="">intellij: roll out button mnemonics to the API recording session panel (#3637) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3656" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3656</a></li>
<li class="">docs: catalog the Phase 4/5 shipped items (#3634-#3642) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3657" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3657</a></li>
<li class="">memory: gbrain SLUG_MISMATCH fix (#3618), serve-lock cross-session gotcha by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3658" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3658</a></li>
<li class="">memory: record IntelliJ plugin UX program #3666 (children #3659-#3665) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3667" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3667</a></li>
<li class="">memory: confirm merge authority extends to shafthq.github.io by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3668" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3668</a></li>
<li class="">intellij: per-run browser+headless overrides via a SHAFT run-config tab by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3669" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3669</a></li>
<li class="">intellij: SHAFT Tests panel -- real static test discovery tree by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3670" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3670</a></li>
<li class="">intellij: recorder browser picker, un-gated headless checkbox, policy-lock transparency by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3671" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3671</a></li>
<li class="">intellij: curate Settings + Recorder tab; mcp: locator generation policy + capture_start fix by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3675" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3675</a></li>
<li class="">fix(intellij): give Codex runs the same activity recap footer as Claude by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3683" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3683</a></li>
<li class="">intellij: one-click fix buttons for MCP-mode and source-edit pre-flight gates by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3685" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3685</a></li>
<li class="">IntelliJ Assistant/Setup hardening: deterministic recording, quieter timeline, simplified header by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3682" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3682</a></li>
<li class="">intellij: unify insert-at-caret anchor across Record/Assistant/Guided panels by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3684" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3684</a></li>
<li class="">Fix ArrayIndexOutOfBoundsException when DatabaseActions failAction is called without a root cause by @Mochxd in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3677" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3677</a></li>
<li class="">IntelliJ Assistant: selectable-answer chips for detected clarifying questions by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3689" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3689</a></li>
<li class="">intellij: per-node Run/Debug for SHAFT Tests tree by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3686" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3686</a></li>
<li class="">intellij: RecordShaftFlowHereAction starts a live capture_start recording by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3687" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3687</a></li>
<li class="">intellij: structured proceed-to-Agent/keep-refining choice for Plan mode by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3691" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3691</a></li>
<li class="">docs(agents): name allure.automaticallyOpen explicitly as a hard requirement by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3698" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3698</a></li>
<li class="">intellij: deterministic MCP routing, live SM Test Runner status, cloud clarifying-question chips by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3697" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3697</a></li>
<li class="">intellij: onboarding recording defaults, Assistant panel layout gap, timeline-to-bubbles rework, approval-scope colors by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3700" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3700</a></li>
<li class="">fix(intellij): stop truncating Assistant chat-bubble and tool-approval messages by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3702" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3702</a></li>
<li class="">docs(act-as-fable): bundle TDD implicitly, prefer graphify/gbrain before grep by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3707" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3707</a></li>
<li class="">docs(agents): enforce gh issue create for every out-of-scope finding by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3710" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3710</a></li>
<li class="">fix(intellij): notification redesign, honest completion summaries, POM/stage-announcement guidance by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3711" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3711</a></li>
<li class="">Keep recovered gbrain, vendor caveman, harden act-as-fable, fix #3709 budget by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3712" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3712</a></li>
<li class="">memory: record gh pr merge --squash commit-message gotcha by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3713" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3713</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260716...10.3.20260717" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260716...10.3.20260717</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-community-spotlight">🏆 Community Spotlight<a href="https://shafthq.github.io/blog/release-10.3.20260717#-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>46 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/ammaralfaqi11.png" width="32" height="32" alt="@ammaralfaqi11"> <a href="https://github.com/ammaralfaqi11" target="_blank" rel="noopener noreferrer" class="">@ammaralfaqi11</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.3.20260717#-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.3.20260717</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.3.20260717#-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:encoded>
            <category>shaft_engine</category>
            <category>release</category>
            <category>changelog</category>
            <category>test-automation</category>
            <category>open-source</category>
        </item>
        <item>
            <title><![CDATA[🚀 SHAFT 10.3.20260716: What's New and Why You Should Upgrade Today]]></title>
            <link>https://shafthq.github.io/blog/release-10.3.20260716</link>
            <guid>https://shafthq.github.io/blog/release-10.3.20260716</guid>
            <pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Hey there, SHAFT community! 👋]]></description>
            <content:encoded><![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.3.20260716</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.3.20260716#-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.3.20260716" 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.3.20260716#-changelog" class="hash-link" aria-label="Direct link to 📋 Changelog" title="Direct link to 📋 Changelog" translate="no">​</a></h2>
<h1>SHAFT 10.3.20260716</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.3.20260716#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="">IntelliJ plugin: onboarding/setup/Assistant trust polish (#3601 prioritized top 5) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3602" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3602</a></li>
<li class="">IntelliJ plugin: onboarding/setup/Assistant trust polish (#3601 remaining scope) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3604" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3604</a></li>
<li class="">IntelliJ plugin: A5 tool-result disclosure, #3603 a11y sweep, /work-github skill by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3607" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3607</a></li>
<li class="">Investigate reported IntelliJ plugin crash: platform bug, not shaft-intellij by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3608" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3608</a></li>
<li class="">fix(intellij): get ShaftPluginUpgradeActivity off the startup coroutine dispatcher (marketplace release blocker) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3609" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3609</a></li>
<li class="">IntelliJ plugin: remaining setupStatusLabel/testStatus-style accessible-description sweep (#3605) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3610" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3610</a></li>
<li class="">Agent-guidance token audit: restructure test-driven-development skill (#3606) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3612" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3612</a></li>
<li class="">Non-blocking graphify pre-check nudge; gbrain adoption spike (#3611) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3613" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3613</a></li>
<li class="">memory: gbrain PGLite embed-backfill root cause (issue 3611 follow-up) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3614" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3614</a></li>
<li class="">Non-blocking TDD nudge (R6); link enforced skills in act-as-fable by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3615" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3615</a></li>
<li class="">memory: gbrain embed-coverage resolved; headroom compression proxy adopted by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3616" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3616</a></li>
<li class="">Optimize agent guidance: dedupe, token cuts, binding act-as-fable, gbrain/headroom wiring by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3617" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3617</a></li>
<li class="">memory: IntelliJ plugin audit learning-loop update by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3644" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3644</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260715...10.3.20260716" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260715...10.3.20260716</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-community-spotlight">🏆 Community Spotlight<a href="https://shafthq.github.io/blog/release-10.3.20260716#-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>46 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/ammaralfaqi11.png" width="32" height="32" alt="@ammaralfaqi11"> <a href="https://github.com/ammaralfaqi11" target="_blank" rel="noopener noreferrer" class="">@ammaralfaqi11</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.3.20260716#-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.3.20260716</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.3.20260716#-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:encoded>
            <category>shaft_engine</category>
            <category>release</category>
            <category>changelog</category>
            <category>test-automation</category>
            <category>open-source</category>
        </item>
        <item>
            <title><![CDATA[🚀 SHAFT 10.3.20260714: What's New and Why You Should Upgrade Today]]></title>
            <link>https://shafthq.github.io/blog/release-10.3.20260714</link>
            <guid>https://shafthq.github.io/blog/release-10.3.20260714</guid>
            <pubDate>Wed, 15 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Hey there, SHAFT community! 👋]]></description>
            <content:encoded><![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.3.20260714</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.3.20260714#-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.3.20260714" 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.3.20260714#-changelog" class="hash-link" aria-label="Direct link to 📋 Changelog" title="Direct link to 📋 Changelog" translate="no">​</a></h2>
<h1>SHAFT 10.3.20260714</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.3.20260714#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="">feat: mobile recorder adopts frozen web Capture glossary (#3497 M0) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3525" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3525</a></li>
<li class="">feat: Playwright recorder joins the shared recorder glossary (#3498) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3527" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3527</a></li>
<li class="">feat: API business-logic recorder — business assertions + shared status glossary (#3499) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3529" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3529</a></li>
<li class="">feat: soft-assert visibility + machine-readable checkpoint JSON (#3516 C/D) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3531" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3531</a></li>
<li class="">feat: SHAFT Overview deep widgets — per-type breakdown + fail-only filter (#3523 P2) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3533" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3533</a></li>
<li class="">feat: web recorder overlay — first-run coach marks + edge transparency (#3510 P2/P3) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3535" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3535</a></li>
<li class="">feat: IntelliJ Assistant shell — failure headline pattern + intent-routing status (#3513 P2/P3) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3537" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3537</a></li>
<li class="">feat: web recorder overlay — labeled toolbar, step overflow menu, suppressed-events log (#3536) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3539" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3539</a></li>
<li class="">feat: IntelliJ setup screen — shaft-mcp version check + copy-run install command (#3538) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3540" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3540</a></li>
<li class="">feat: mobile recorder step surgery — stable IDs + delete/reorder + steps-in-status (#3526) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3541" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3541</a></li>
<li class="">feat: Playwright recorder step surgery + record-at-target via shared step editor (#3528) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3542" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3542</a></li>
<li class="">chore(memory): record session 2026-07-14 durable lessons by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3543" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3543</a></li>
<li class="">fix: Assistant first-run welcome-in-chat + fix clipped Got it/chip overlap by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3544" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3544</a></li>
<li class="">fix(intellij): stop raw stream-json leaking into Assistant transcript on local-agent failure by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3545" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3545</a></li>
<li class="">chore(memory): record IntelliJ UX program #3553 + always-commit-lessons workflow by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3555" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3555</a></li>
<li class="">test(shaft-capture): regression coverage for ENTER-search multi-commit nav suppression + record loop lessons by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3554" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3554</a></li>
<li class="">feat: IntelliJ live-execution transparency — MCP progress streaming (#3546) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3556" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3556</a></li>
<li class="">feat: humanize IntelliJ tool output + fix advancedUiEnabled no-ops (#3552) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3557" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3557</a></li>
<li class="">feat: IntelliJ failure recovery — browser-close + auto-doctor + real test target (#3547) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3558" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3558</a></li>
<li class="">feat: close the recorder-&gt;editor loop — insert/create-class + network-options + include filter (#3548) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3559" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3559</a></li>
<li class="">feat: IntelliJ composer UX + onboarding trust (#3550, #3551) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3560" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3560</a></li>
<li class="">feat: stable per-test checkpoint ids + attribution (#3532 D / #3534 P3) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3562" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3562</a></li>
<li class="">feat: domain-consistent accessibility evidence card (#3532 E) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3563" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3563</a></li>
<li class="">chore: remove accidentally-committed JVM crash dumps + ignore them by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3564" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3564</a></li>
<li class="">feat: domain-consistent visual evidence card (#3532 E) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3565" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3565</a></li>
<li class="">feat: XML API-body evidence cards (#3532 E) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3566" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3566</a></li>
<li class="">feat: HEAD/OPTIONS support across SHAFT.API + capture codegen (#3530 A3) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3567" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3567</a></li>
<li class="">feat: negative-case error-shape assertion templates (#3530) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3568" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3568</a></li>
<li class="">feat: content-type-aware request body rendering (#3530 A3) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3569" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3569</a></li>
<li class="">feat: replay recorded session cookie as an auth bootstrap (#3530 A3) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3570" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3570</a></li>
<li class="">feat: redirect fidelity for SHAFT.API + capture codegen (#3530 A3) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3571" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3571</a></li>
<li class="">feat: per-test attribution in the checkpoint browser details (#3534) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3573" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3573</a></li>
<li class="">feat: filter-by-test control in the checkpoint browser (#3534) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3574" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3574</a></li>
<li class="">feat: jump-to-test control in the checkpoint browser (#3534) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3575" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3575</a></li>
<li class="">feat: one-click in-report trace launcher (#3534) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3576" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3576</a></li>
<li class="">feat: converge Doctor speedboard onto the shared SHAFT report theme (#3534) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3577" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3577</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260713...10.3.20260714" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260713...10.3.20260714</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-community-spotlight">🏆 Community Spotlight<a href="https://shafthq.github.io/blog/release-10.3.20260714#-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>46 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/ammaralfaqi11.png" width="32" height="32" alt="@ammaralfaqi11"> <a href="https://github.com/ammaralfaqi11" target="_blank" rel="noopener noreferrer" class="">@ammaralfaqi11</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.3.20260714#-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.3.20260714</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.3.20260714#-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:encoded>
            <category>shaft_engine</category>
            <category>release</category>
            <category>changelog</category>
            <category>test-automation</category>
            <category>open-source</category>
        </item>
        <item>
            <title><![CDATA[🚀 SHAFT 10.3.20260715: What's New and Why You Should Upgrade Today]]></title>
            <link>https://shafthq.github.io/blog/release-10.3.20260715</link>
            <guid>https://shafthq.github.io/blog/release-10.3.20260715</guid>
            <pubDate>Wed, 15 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Hey there, SHAFT community! 👋]]></description>
            <content:encoded><![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.3.20260715</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.3.20260715#-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.3.20260715" 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.3.20260715#-changelog" class="hash-link" aria-label="Direct link to 📋 Changelog" title="Direct link to 📋 Changelog" translate="no">​</a></h2>
<h1>SHAFT 10.3.20260715</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.3.20260715#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: dedup CLAUDE.md — drop redundant Memory section by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3579" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3579</a></li>
<li class="">memory: centralize durable personal facts into the repo .memory store by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3580" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3580</a></li>
<li class="">fix(test): correct CheckpointCounter reflection cast in Playwright E2E base (#3578 item 1) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3581" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3581</a></li>
<li class="">feat(mcp): add mobile_api_record_transactions live transaction list (#3530 A2) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3582" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3582</a></li>
<li class="">feat(capture): pin volatile/correlated JSON paths as business assertions (#3530) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3583" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3583</a></li>
<li class="">memory: capture the shaft-mcp @Tool drift-gate/manifest/tool-count gotcha by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3584" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3584</a></li>
<li class="">feat(mcp): expose pinnedJsonPaths on capture_api_generate (#3530) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3585" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3585</a></li>
<li class="">feat: auto-reset stale plugin state on IntelliJ plugin upgrade (#3547) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3587" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3587</a></li>
<li class="">feat: polish IntelliJ MCP setup panel — no green by default, merged MCP row, always-on Check/Copy (#3560) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3588" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3588</a></li>
<li class="">fix(capture): suppress phantom navigation step when a click causes a redirect by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3586" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3586</a></li>
<li class="">fix(capture): finalize soft-deleted steps on stop so they never resurface (#3560) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3589" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3589</a></li>
<li class="">Mask database password in DatabaseActions constructor failure reports by @Mochxd in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3590" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3590</a></li>
<li class="">fix(intellij): command-line parsing, API recorder visibility + #3591 plugin hardening by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3592" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3592</a></li>
<li class="">memory: record PluginManagerCore.getPlugin internal-API gotcha by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3593" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3593</a></li>
<li class="">feat(intellij): wire API recording panel to the no-browser mobile API path (#3530 A2) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3594" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3594</a></li>
<li class="">fix(capture): navigation-consequence check compares against wrong interaction after a later, unrelated one arrives by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3596" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3596</a></li>
<li class="">feat: pin volatile response fields as business assertions in the recorder panel (#3530) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3595" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3595</a></li>
<li class="">memory: record navigation-consequence interaction-history gotcha by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3597" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3597</a></li>
<li class="">feat(report): embed a SHAFT Overview toggle/panel in the generated Allure report by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3598" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3598</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260714...10.3.20260715" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260714...10.3.20260715</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-community-spotlight">🏆 Community Spotlight<a href="https://shafthq.github.io/blog/release-10.3.20260715#-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>46 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/ammaralfaqi11.png" width="32" height="32" alt="@ammaralfaqi11"> <a href="https://github.com/ammaralfaqi11" target="_blank" rel="noopener noreferrer" class="">@ammaralfaqi11</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.3.20260715#-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.3.20260715</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.3.20260715#-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:encoded>
            <category>shaft_engine</category>
            <category>release</category>
            <category>changelog</category>
            <category>test-automation</category>
            <category>open-source</category>
        </item>
        <item>
            <title><![CDATA[🚀 SHAFT 10.3.20260713: What's New and Why You Should Upgrade Today]]></title>
            <link>https://shafthq.github.io/blog/release-10.3.20260713</link>
            <guid>https://shafthq.github.io/blog/release-10.3.20260713</guid>
            <pubDate>Mon, 13 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Hey there, SHAFT community! 👋]]></description>
            <content:encoded><![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.3.20260713</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.3.20260713#-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.3.20260713" 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.3.20260713#-changelog" class="hash-link" aria-label="Direct link to 📋 Changelog" title="Direct link to 📋 Changelog" translate="no">​</a></h2>
<h1>SHAFT 10.3.20260713</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.3.20260713#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: sync refresh-workflow allowlist fixture and CodeQL module coverage with validators (closes #3481) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3489" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3489</a></li>
<li class="">fix: resolve IntelliJ Plugin Verifier findings (deprecated APIs + invalid withJUnit descriptor) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3490" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3490</a></li>
<li class="">feat: single-archive SHAFT trace report with unified timeline viewer by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3492" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3492</a></li>
<li class="">fix: deterministic MCP exit diagnostics (#3491) + honest setup/assistant UI claims by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3493" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3493</a></li>
<li class="">fix: recorder no longer invents navigation actions on redirects; back/forward recorded reliably; overlay UX polish by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3495" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3495</a></li>
<li class="">feat: assistant slash commands — replay-proven /codegen, trust-ranked /doctor, timeline UX, MCP tool caching (closes #3494) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3505" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3505</a></li>
<li class="">feat: retry-aware SHAFT trace defaults, failed-attempt retention, and trace viewer UX (#3503) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3507" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3507</a></li>
<li class="">feat: Capture overlay P0 clarity &amp; trust — status pills, steps wording, stop-confirm CTA, suppression transparency (#3496 P0) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3508" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3508</a></li>
<li class="">feat: Capture overlay P1 authoring ergonomics — draggable panel, step badges, undo delete, help sheet, IDE parity (#3496 P1) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3509" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3509</a></li>
<li class="">feat: IDE shell readiness strip, setup checklist, empty-state chips, /codegen sticky review (#3500 slice 1) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3511" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3511</a></li>
<li class="">feat: Guided progressive disclosure + first-run happy-path coach (#3500 slice 2) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3512" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3512</a></li>
<li class="">feat: Allure assertion evidence card — redacted expected/actual/diff per validation (#3502 A+B) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3515" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3515</a></li>
<li class="">feat: unified SHAFT report theming — palette drift-guard, SHAFT categories, branded overview (#3504 P0/P1) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3522" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3522</a></li>
<li class="">feat(validation): matchesScreenshot() executes immediately — no perform() required by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3524" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3524</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260712...10.3.20260713" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260712...10.3.20260713</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-community-spotlight">🏆 Community Spotlight<a href="https://shafthq.github.io/blog/release-10.3.20260713#-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>46 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/ammaralfaqi11.png" width="32" height="32" alt="@ammaralfaqi11"> <a href="https://github.com/ammaralfaqi11" target="_blank" rel="noopener noreferrer" class="">@ammaralfaqi11</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.3.20260713#-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.3.20260713</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.3.20260713#-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:encoded>
            <category>shaft_engine</category>
            <category>release</category>
            <category>changelog</category>
            <category>test-automation</category>
            <category>open-source</category>
        </item>
        <item>
            <title><![CDATA[🚀 SHAFT 10.3.20260712: What's New and Why You Should Upgrade Today]]></title>
            <link>https://shafthq.github.io/blog/release-10.3.20260712</link>
            <guid>https://shafthq.github.io/blog/release-10.3.20260712</guid>
            <pubDate>Sun, 12 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Hey there, SHAFT community! 👋]]></description>
            <content:encoded><![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.3.20260712</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.3.20260712#-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.3.20260712" 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.3.20260712#-changelog" class="hash-link" aria-label="Direct link to 📋 Changelog" title="Direct link to 📋 Changelog" translate="no">​</a></h2>
<h1>SHAFT 10.3.20260712</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.3.20260712#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="">Stream-patch the generated Allure single-file index to fix teardown OOM (#3407) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3433" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3433</a></li>
<li class="">Agentic optimization: repo-local skills, model routing, rebalanced guidance budget by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3434" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3434</a></li>
<li class="">Ship a cached shaft-mcp tool catalog with the SHAFT skills to cut agent token usage by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3435" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3435</a></li>
<li class="">Cap Memory relation-filename length to stop Windows MAX_PATH breakage by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3438" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3438</a></li>
<li class="">Introduce shaft-cli: command-line surface over the full shaft-mcp capability set by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3439" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3439</a></li>
<li class="">Adopt a per-session Learning Loop in agent guidance by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3441" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3441</a></li>
<li class="">Remove key message visibility from assistant and add Gradle wrapper by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3442" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3442</a></li>
<li class="">Add a portable installer for shaft-cli (--install-shaft-cli) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3444" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3444</a></li>
<li class="">fix: relaunch SHAFT capture daemon and dev shaft-mcp via a Java @argfile by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3445" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3445</a></li>
<li class="">Fix the shaft-cli documentation boundary and land epic #3443 parts B, D, E by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3446" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3446</a></li>
<li class="">ci: add PR-blocking path-filtered documentation-boundary gate by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3448" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3448</a></li>
<li class="">fix: OpenCV template-match false negatives (MAX_PATH imread + tiny-screenshot watermark crash) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3449" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3449</a></li>
<li class="">feat: land the remaining composable scope of #3349 (baseline naming, recorder assertions, MCP a11y tools) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3454" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3454</a></li>
<li class="">fix: report-attachment failures no longer fail OpenCV template matches by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3455" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3455</a></li>
<li class="">ci: let LambdaTest web/desktop jobs run despite native plan failures by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3456" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3456</a></li>
<li class="">feat: #3350 part 1 — storage-state parity, SHAFT.API interop, HAR glob filtering by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3458" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3458</a></li>
<li class="">feat: #3350 part 2 — storageStatePath init option, routeFromHar, MCP storage-state tools by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3459" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3459</a></li>
<li class="">fix: regenerate MCP tool catalog for the six tools added by #3454/#3459 by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3460" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3460</a></li>
<li class="">feat: #3350 part 3 — full-body HAR content opt-in and SHAFT.Auth session cache by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3461" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3461</a></li>
<li class="">feat: #3350 part 4 — MCP network tool pack, capture HAR-content wiring (closes the epic) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3462" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3462</a></li>
<li class="">feat: SHAFT Planner agent + shaft_project_init_agents scaffolding (closes #3351) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3464" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3464</a></li>
<li class="">feat: reporting accuracy, checkpoint evidence completeness, and logging UX by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3465" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3465</a></li>
<li class="">feat: IntelliJ Pick-Locator caret action, Heal notification action, Visual Baselines panel by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3468" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3468</a></li>
<li class="">chore: record final Learning Loop memories from the open-issues triage session by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3471" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3471</a></li>
<li class="">fix: replace substring-based step status/type inference with explicit parameters (closes #3466) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3469" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3469</a></li>
<li class="">ci: pause guaranteed-red LambdaTest nightly schedule (#2927 containment) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3473" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3473</a></li>
<li class="">feat: add vscode and opencode loop scaffolding to shaft_project_init_agents (closes #3463) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3476" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3476</a></li>
<li class="">feat: surface accessibility-audit findings as first-class shaft-doctor evidence (closes #3452) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3480" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3480</a></li>
<li class="">feat: mobile aria-snapshot assertion from Appium accessibility XML (closes #3451) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3482" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3482</a></li>
<li class="">feat: persist Appium session capabilities and app-state snapshots for session reuse (closes #3457) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3484" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3484</a></li>
<li class="">feat: IntelliJ SHAFT Tests tree, gutter run/debug, and bounded watch mode (#3467) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3486" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3486</a></li>
<li class="">fix: eliminate live Selenium version ranges blocking the 10.3.20260712 Maven Central delivery by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3487" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3487</a></li>
<li class="">feat: persist recorder pick state so the IDE Pick-Locator action receives real picks (closes #3483) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3488" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3488</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260711...10.3.20260712" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260711...10.3.20260712</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-community-spotlight">🏆 Community Spotlight<a href="https://shafthq.github.io/blog/release-10.3.20260712#-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>46 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/ammaralfaqi11.png" width="32" height="32" alt="@ammaralfaqi11"> <a href="https://github.com/ammaralfaqi11" target="_blank" rel="noopener noreferrer" class="">@ammaralfaqi11</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.3.20260712#-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.3.20260712</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.3.20260712#-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:encoded>
            <category>shaft_engine</category>
            <category>release</category>
            <category>changelog</category>
            <category>test-automation</category>
            <category>open-source</category>
        </item>
        <item>
            <title><![CDATA[🚀 SHAFT 10.3.20260711: What's New and Why You Should Upgrade Today]]></title>
            <link>https://shafthq.github.io/blog/release-10.3.20260711</link>
            <guid>https://shafthq.github.io/blog/release-10.3.20260711</guid>
            <pubDate>Sat, 11 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Hey there, SHAFT community! 👋]]></description>
            <content:encoded><![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.3.20260711</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.3.20260711#-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.3.20260711" 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.3.20260711#-changelog" class="hash-link" aria-label="Direct link to 📋 Changelog" title="Direct link to 📋 Changelog" translate="no">​</a></h2>
<h1>SHAFT 10.3.20260711</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.3.20260711#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="">SHAFT Assistant: pin engine warm-up version, fix codegen-after-recording dead end, retire '+' button for a filtered slash menu by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3420" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3420</a></li>
<li class="">Solidify IntelliJ plugin guided workflows: live web/mobile recorder codegen + doctor runs, capture codegen fixes by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3421" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3421</a></li>
<li class="">Fix RestActions JSON request bodies to honor Jackson annotations (Part of #3412) by @Mochxd in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3423" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3423</a></li>
<li class="">Guided-workflow follow-ups: recorder/codegen/doctor enhancements, plugin UX polish, drift resilience (closes #3422) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3424" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3424</a></li>
<li class="">IntelliJ plugin trustworthy first contact + onboarding/review-loop/differentiation follow-ups (#3426, #3425) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3427" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3427</a></li>
<li class="">First-time-user trust pass: project-scoped MCP workspace, intent-first Assistant, no dead ends by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3428" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3428</a></li>
<li class="">Add act-as-fable skill encoding Fable 5's working methodology by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3430" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3430</a></li>
<li class="">IntelliJ plugin expert quality pass: recorder lifetime, codegen wedge, assistant UX (closes #3429) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3431" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3431</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260710...10.3.20260711" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260710...10.3.20260711</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-community-spotlight">🏆 Community Spotlight<a href="https://shafthq.github.io/blog/release-10.3.20260711#-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>46 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/ammaralfaqi11.png" width="32" height="32" alt="@ammaralfaqi11"> <a href="https://github.com/ammaralfaqi11" target="_blank" rel="noopener noreferrer" class="">@ammaralfaqi11</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.3.20260711#-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.3.20260711</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.3.20260711#-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:encoded>
            <category>shaft_engine</category>
            <category>release</category>
            <category>changelog</category>
            <category>test-automation</category>
            <category>open-source</category>
        </item>
        <item>
            <title><![CDATA[🚀 SHAFT 10.3.20260710: What's New and Why You Should Upgrade Today]]></title>
            <link>https://shafthq.github.io/blog/release-10.3.20260710</link>
            <guid>https://shafthq.github.io/blog/release-10.3.20260710</guid>
            <pubDate>Fri, 10 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Hey there, SHAFT community! 👋]]></description>
            <content:encoded><![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.3.20260710</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.3.20260710#-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.3.20260710" 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.3.20260710#-changelog" class="hash-link" aria-label="Direct link to 📋 Changelog" title="Direct link to 📋 Changelog" translate="no">​</a></h2>
<h1>SHAFT 10.3.20260710</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.3.20260710#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 scheduled E2E CI failures: shaft-sikulix opencv, stale test expectation, Appium install race by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3408" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3408</a></li>
<li class="">Fix SHAFT Assistant timeouts, approve-all checkbox, approval-box overflow, and recorder stop by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3410" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3410</a></li>
<li class="">SHAFT Assistant: real interactive local-agent approval, richer Verbose detail, fix mid-run toggle by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3411" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3411</a></li>
<li class="">Portable setup, deep Test Connection, verbose passthrough, and recorder/codegen fixes (closes #3409) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3418" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3418</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260709...10.3.20260710" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260709...10.3.20260710</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-community-spotlight">🏆 Community Spotlight<a href="https://shafthq.github.io/blog/release-10.3.20260710#-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>46 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/ammaralfaqi11.png" width="32" height="32" alt="@ammaralfaqi11"> <a href="https://github.com/ammaralfaqi11" target="_blank" rel="noopener noreferrer" class="">@ammaralfaqi11</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.3.20260710#-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.3.20260710</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.3.20260710#-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:encoded>
            <category>shaft_engine</category>
            <category>release</category>
            <category>changelog</category>
            <category>test-automation</category>
            <category>open-source</category>
        </item>
        <item>
            <title><![CDATA[🚀 SHAFT 10.3.20260709: What's New and Why You Should Upgrade Today]]></title>
            <link>https://shafthq.github.io/blog/release-10.3.20260709</link>
            <guid>https://shafthq.github.io/blog/release-10.3.20260709</guid>
            <pubDate>Thu, 09 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Hey there, SHAFT community! 👋]]></description>
            <content:encoded><![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.3.20260709</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.3.20260709#-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.3.20260709" 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.3.20260709#-changelog" class="hash-link" aria-label="Direct link to 📋 Changelog" title="Direct link to 📋 Changelog" translate="no">​</a></h2>
<h1>SHAFT 10.3.20260709</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.3.20260709#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 broken release-publish event chain and tighten CI workflow scope by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3388" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3388</a></li>
<li class="">Delete redundant sync-sample-projects-version.yml workflow by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3392" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3392</a></li>
<li class="">Audit and optimize agentic config: fix stale memory, add bounded delegation exception by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3391" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3391</a></li>
<li class="">Fix agentic config enhancements from issue #3390 by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3394" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3394</a></li>
<li class="">Fix SHAFT Capture recorder: process churn, duplicate actions, orphaned placeholder by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3395" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3395</a></li>
<li class="">Harden SHAFT IntelliJ plugin against non-SHAFT projects and misleading MCP results by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3396" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3396</a></li>
<li class="">Fix remaining non-SHAFT-project hardening follow-ups (#3397) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3400" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3400</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260708...10.3.20260709" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260708...10.3.20260709</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-community-spotlight">🏆 Community Spotlight<a href="https://shafthq.github.io/blog/release-10.3.20260709#-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>46 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/ammaralfaqi11.png" width="32" height="32" alt="@ammaralfaqi11"> <a href="https://github.com/ammaralfaqi11" target="_blank" rel="noopener noreferrer" class="">@ammaralfaqi11</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.3.20260709#-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.3.20260709</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.3.20260709#-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:encoded>
            <category>shaft_engine</category>
            <category>release</category>
            <category>changelog</category>
            <category>test-automation</category>
            <category>open-source</category>
        </item>
        <item>
            <title><![CDATA[🚀 SHAFT 10.3.20260708: What's New and Why You Should Upgrade Today]]></title>
            <link>https://shafthq.github.io/blog/release-10.3.20260708</link>
            <guid>https://shafthq.github.io/blog/release-10.3.20260708</guid>
            <pubDate>Wed, 08 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Hey there, SHAFT community! 👋]]></description>
            <content:encoded><![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.3.20260708</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.3.20260708#-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.3.20260708" 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.3.20260708#-changelog" class="hash-link" aria-label="Direct link to 📋 Changelog" title="Direct link to 📋 Changelog" translate="no">​</a></h2>
<h1>SHAFT 10.3.20260708</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.3.20260708#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="">Record API Web: network capture data model, web interceptor, MCP tools, IntelliJ action (P1/4) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3357" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3357</a></li>
<li class="">Record API Web: ApiCaptureGenerator codegen + response validation (P2/4) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3359" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3359</a></li>
<li class="">Record API + Web: mobile API capture via embedded MITM proxy (P3/4) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3360" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3360</a></li>
<li class="">Record API Web P4 + Trace Viewer/Sharding/IDE/A11y/Visual/HAR/Planner (#3346 P4, #3347-#3351) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3361" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3361</a></li>
<li class="">Ways-of-working v2: full 13-item implementation — hooks, gates, workflow surgery, feature-dev (#3367) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3368" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3368</a></li>
<li class="">Fix IntelliJ plugin onboarding flow (#3363) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3366" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3366</a></li>
<li class="">IntelliJ plugin: Gemini cloud provider setup + model/effort selection (#3369) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3371" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3371</a></li>
<li class="">IntelliJ plugin: interactive tool approval, agent approval forwarding, expert mode + factory reset (#3370) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3373" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3373</a></li>
<li class="">Fix /record-web session loss, stop, and guided assertion flow by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3374" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3374</a></li>
<li class="">Fix CaptureManager.isAssetResource() no-op against real capture data by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3377" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3377</a></li>
<li class="">Stop Maven Central CD from failing between releases by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3376" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3376</a></li>
<li class="">Fix stale MCP tool manifest and isolate mobile capture CA in tests by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3379" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3379</a></li>
<li class="">Close remaining #3347 gaps: trace screenshots, IntelliJ trace viewer, sharded merge by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3380" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3380</a></li>
<li class="">Fix mobile capture CA directory permissions breaking Linux CI by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3381" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3381</a></li>
<li class="">Fix recorder overlay toolbar misclicks from bottom-anchored panel growth by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3384" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3384</a></li>
<li class="">Add aria-snapshot assertions and visual regression baselines (#3349) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3383" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3383</a></li>
<li class="">Add PR-triggered browser E2E coverage for shaft-capture by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3386" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3386</a></li>
<li class="">Back off SHAFT Capture polling collector once BiDi is proven healthy by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3387" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3387</a></li>
<li class="">Fix release-publish event chain broken by GITHUB_TOKEN anti-recursion by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3389" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3389</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260707...10.3.20260708" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260707...10.3.20260708</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-community-spotlight">🏆 Community Spotlight<a href="https://shafthq.github.io/blog/release-10.3.20260708#-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>46 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/ammaralfaqi11.png" width="32" height="32" alt="@ammaralfaqi11"> <a href="https://github.com/ammaralfaqi11" target="_blank" rel="noopener noreferrer" class="">@ammaralfaqi11</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.3.20260708#-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.3.20260708</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.3.20260708#-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:encoded>
            <category>shaft_engine</category>
            <category>release</category>
            <category>changelog</category>
            <category>test-automation</category>
            <category>open-source</category>
        </item>
        <item>
            <title><![CDATA[🚀 SHAFT 10.3.20260707: What's New and Why You Should Upgrade Today]]></title>
            <link>https://shafthq.github.io/blog/release-10.3.20260707</link>
            <guid>https://shafthq.github.io/blog/release-10.3.20260707</guid>
            <pubDate>Tue, 07 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Hey there, SHAFT community! 👋]]></description>
            <content:encoded><![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.3.20260707</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.3.20260707#-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.3.20260707" 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.3.20260707#-changelog" class="hash-link" aria-label="Direct link to 📋 Changelog" title="Direct link to 📋 Changelog" translate="no">​</a></h2>
<h1>SHAFT 10.3.20260707</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.3.20260707#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 deprecation warnings in shaft-pilot-core and shaft-mcp by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3291" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3291</a></li>
<li class="">Adopt agentic skills/MCP tooling (partial implementation of #3292) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3298" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3298</a></li>
<li class="">Generalize Allure test-result gating across all 6 pilot modules by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3299" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3299</a></li>
<li class="">Implement agent hierarchy + skill-composition workflows (#3300) by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3301" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3301</a></li>
<li class="">Show a visible indicator when conversation context is truncated by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3307" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3307</a></li>
<li class="">Categorize MCP invocation errors and add recovery guidance in IntelliJ plugin by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3308" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3308</a></li>
<li class="">Add a 0-100 confidence score to Doctor AI advisories by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3303" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3303</a></li>
<li class="">Re-render Assistant transcript on IDE theme switch by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3304" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3304</a></li>
<li class="">Bring natural_act semantic actions to mobile by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3305" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3305</a></li>
<li class="">Add MCP subprocess heartbeat and proactive reconnect affordance by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3306" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3306</a></li>
<li class="">Fix: Persist healing history across runs and track acceptance rate by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3309" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3309</a></li>
<li class="">Fix: Gate natural_act AI fallback behind a deterministic confidence threshold by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3310" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3310</a></li>
<li class="">Fix: Redact sensitive regions in screenshot evidence before AI analysis by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3312" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3312</a></li>
<li class="">Show progress for Test MCP and Refresh Tools background actions by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3313" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3313</a></li>
<li class="">Fix: Harden installer version argument handling for end-to-end command execution by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3328" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3328</a></li>
<li class="">Extend installer to fetch agent validation script with skills by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3330" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3330</a></li>
<li class="">Strip .perform() from generated and remediation code paths by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3329" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3329</a></li>
<li class="">Redesign recorder overlay with single assertion entry point and scored locators by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3331" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3331</a></li>
<li class="">Upgrade AssistantLocalAgentRunner with real-time streaming, token usage parsing, and auto-compact by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3332" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3332</a></li>
<li class="">Fix four rendering defects in ShaftAssistantPanel by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3335" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3335</a></li>
<li class="">Fix: Make wizard-step background continuous and remove label size clamps by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3337" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3337</a></li>
<li class="">Serve guidance tools on stdio manifest fixture by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3338" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3338</a></li>
<li class="">Suppress editing keys in text inputs and coalesce into final value by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3334" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3334</a></li>
<li class="">Fix: ShaftMcpSetupPanel wizard-step background continuity and label cropping by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3336" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3336</a></li>
<li class="">Guard SHAFT.Properties initialization in McpMobileToolchainService by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3333" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3333</a></li>
<li class="">Remove generated Allure/report artifacts committed by mistake by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3340" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3340</a></li>
<li class="">Remove committed per-installation UUID files and stray local Allure script by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3341" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3341</a></li>
<li class="">Rehydrate recorder step list across cross-origin navigations and harden loopback CORS preflight by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3342" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3342</a></li>
<li class="">Fix release-candidate build blocker and shaft-mcp static-cache init gap by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3345" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3345</a></li>
<li class="">Add experimental SSH shell and PTY support (Part of #3132) by @Mochxd in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3220" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3220</a></li>
<li class="">Document reusable SSH terminal lifecycle, SFTP, forwarding, and JSch notes (Part of ShaftHQ/SHAFT_ENGINE#3133) by @Mochxd in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3239" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3239</a></li>
<li class="">Fix saved Workflow scripts to use top-level args instead of exported run() by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3352" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3352</a></li>
<li class="">Fix custom.properties mis-copy from bundled jar in external installs by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3354" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3354</a></li>
<li class="">Make workflow implementer/fixer/escalator prompts commit their work by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3356" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3356</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260705...10.3.20260707" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260705...10.3.20260707</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-community-spotlight">🏆 Community Spotlight<a href="https://shafthq.github.io/blog/release-10.3.20260707#-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>46 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/ammaralfaqi11.png" width="32" height="32" alt="@ammaralfaqi11"> <a href="https://github.com/ammaralfaqi11" target="_blank" rel="noopener noreferrer" class="">@ammaralfaqi11</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.3.20260707#-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.3.20260707</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.3.20260707#-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:encoded>
            <category>shaft_engine</category>
            <category>release</category>
            <category>changelog</category>
            <category>test-automation</category>
            <category>open-source</category>
        </item>
        <item>
            <title><![CDATA[🚀 SHAFT 10.3.20260705: What's New and Why You Should Upgrade Today]]></title>
            <link>https://shafthq.github.io/blog/release-10.3.20260705</link>
            <guid>https://shafthq.github.io/blog/release-10.3.20260705</guid>
            <pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Hey there, SHAFT community! 👋]]></description>
            <content:encoded><![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.3.20260705</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.3.20260705#-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.3.20260705" 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.3.20260705#-changelog" class="hash-link" aria-label="Direct link to 📋 Changelog" title="Direct link to 📋 Changelog" translate="no">​</a></h2>
<h1>SHAFT 10.3.20260705</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.3.20260705#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="">feat(intellij): polish onboarding and assistant chrome by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3267" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3267</a></li>
<li class="">feat(intellij): polish assistant onboarding UX by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3268" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3268</a></li>
<li class="">[codex] add external skills by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3269" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3269</a></li>
<li class="">Simplify IntelliJ assistant onboarding by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3270" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3270</a></li>
<li class="">[codex] Add SHAFT agent skills installer support by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3271" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3271</a></li>
<li class="">Add agentic PDCA loop skill by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3272" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3272</a></li>
<li class="">[codex] Improve IntelliJ onboarding and recorder UX by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3273" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3273</a></li>
<li class="">[codex] Improve IntelliJ onboarding guardrails by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3274" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3274</a></li>
<li class="">Fix IntelliJ plugin setup assets and assistant UI by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3275" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3275</a></li>
<li class="">Fix recorder persistence and assistant capture output by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3276" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3276</a></li>
<li class="">Improve IntelliJ assistant command UX by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3277" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3277</a></li>
<li class="">[codex] Improve recorder codegen review flow by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3278" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3278</a></li>
<li class="">Enhance capture recorder and codegen workflow by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3279" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3279</a></li>
<li class="">Add mobile recorder codegen POM handoff by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3280" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3280</a></li>
<li class="">feat: implement recorder codegen handoff enhancements by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3281" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3281</a></li>
<li class="">[codex] add intellij coding partner plan by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3282" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3282</a></li>
<li class="">Improve IntelliJ coding partner flow by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3283" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3283</a></li>
<li class="">Improve IntelliJ coding partner workflow by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3284" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3284</a></li>
<li class="">Fix IntelliJ Assistant onboarding blockers by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3286" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3286</a></li>
<li class="">Switch IntelliJ AI defaults and Gemini payloads to JSON schema format by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3287" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3287</a></li>
<li class="">IntelliJ + MCP UX enhancements: minimal command surface, coding-partner diff/verify/status, structured codegen, skills by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3289" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3289</a></li>
<li class="">IntelliJ plugin settling pass: gap-analysis audit + 9 UI/UX polish ideas by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3290" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3290</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260703...10.3.20260705" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260703...10.3.20260705</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-community-spotlight">🏆 Community Spotlight<a href="https://shafthq.github.io/blog/release-10.3.20260705#-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>46 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/ammaralfaqi11.png" width="32" height="32" alt="@ammaralfaqi11"> <a href="https://github.com/ammaralfaqi11" target="_blank" rel="noopener noreferrer" class="">@ammaralfaqi11</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.3.20260705#-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.3.20260705</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.3.20260705#-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:encoded>
            <category>shaft_engine</category>
            <category>release</category>
            <category>changelog</category>
            <category>test-automation</category>
            <category>open-source</category>
        </item>
        <item>
            <title><![CDATA[🚀 SHAFT 10.3.20260702: What's New and Why You Should Upgrade Today]]></title>
            <link>https://shafthq.github.io/blog/release-10.3.20260702</link>
            <guid>https://shafthq.github.io/blog/release-10.3.20260702</guid>
            <pubDate>Fri, 03 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Hey there, SHAFT community! 👋]]></description>
            <content:encoded><![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.3.20260702</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.3.20260702#-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.3.20260702" 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.3.20260702#-changelog" class="hash-link" aria-label="Direct link to 📋 Changelog" title="Direct link to 📋 Changelog" translate="no">​</a></h2>
<h1>SHAFT 10.3.20260702</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.3.20260702#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="">Make IntelliJ plugin assistant-first by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3155" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3155</a></li>
<li class="">Polish IntelliJ plugin stable release UX by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3157" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3157</a></li>
<li class="">Add pre-PR conflict resolution rule by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3158" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3158</a></li>
<li class="">Add gap-coverage agent skills and guidance routing by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3159" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3159</a></li>
<li class="">[codex] Refine IntelliJ SHAFT side panel UX by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3160" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3160</a></li>
<li class="">Add SshConnectionOptions for strict SSH host keys and non-key auth by @Mochxd in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3156" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3156</a></li>
<li class="">Add SshCommandResult and performSshCommand by @Mochxd in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3161" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3161</a></li>
<li class="">[codex] Polish IntelliJ SHAFT workbench by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3166" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3166</a></li>
<li class="">[codex] Harden Windows Codex shell safety by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3167" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3167</a></li>
<li class="">[codex] Make IntelliJ plugin production ready by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3168" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3168</a></li>
<li class="">Improve IntelliJ MCP setup guidance by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3169" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3169</a></li>
<li class="">[codex] Add IntelliJ MCP first-run setup by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3170" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3170</a></li>
<li class="">[codex] Enhance IntelliJ assistant provider routing by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3172" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3172</a></li>
<li class="">[codex] Fix IntelliJ MCP first-run project scoping by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3174" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3174</a></li>
<li class="">Improve SHAFT IntelliJ assistant UX by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3175" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3175</a></li>
<li class="">[codex] Record SHAFT IntelliJ first-run video by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3177" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3177</a></li>
<li class="">Improve IntelliJ assistant response rendering and chat sessions by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3183" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3183</a></li>
<li class="">Add optional SikuliX module and Windows desktop E2E flows by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3184" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3184</a></li>
<li class="">[codex] Support DPI-tolerant image actions by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3187" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3187</a></li>
<li class="">MCP installer rerunnable and streaming output by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3186" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3186</a></li>
<li class="">Fix IntelliJ assistant onboarding flow by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3189" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3189</a></li>
<li class="">[codex] Improve IntelliJ onboarding assistant UX by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3191" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3191</a></li>
<li class="">[codex] Finalize IntelliJ assistant onboarding follow-ups by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3192" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3192</a></li>
<li class="">Fix IntelliJ recording Gradle fallback by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3193" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3193</a></li>
<li class="">[codex] fix Dependabot vulnerable transitives by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3195" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3195</a></li>
<li class="">[codex] Fix IntelliJ capture approval workflow by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3196" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3196</a></li>
<li class="">[codex] Prepare IntelliJ plugin release by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3198" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3198</a></li>
<li class="">Fix Jackson security dependency by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3200" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3200</a></li>
<li class="">feat(intellij): expose SHAFT MCP chat commands by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3211" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3211</a></li>
<li class="">[codex] Centralize IntelliJ Assistant command registry by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3212" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3212</a></li>
<li class="">[codex] Route IntelliJ assistant setup-aware commands by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3213" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3213</a></li>
<li class="">Modernize IntelliJ assistant icon controls by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3214" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3214</a></li>
<li class="">IntelliJ Assistant browser control by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3221" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3221</a></li>
<li class="">Add Playwright recording backend and route Assistant capture commands to correct recorder by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3222" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3222</a></li>
<li class="">Codex/issue 3207 mobile assistant by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3223" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3223</a></li>
<li class="">Finalize mobile Assistant recording workflows by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3225" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3225</a></li>
<li class="">IntelliJ Assistant: route Doctor aliases and render Doctor reports as Markdown by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3226" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3226</a></li>
<li class="">Add natural MCP productivity commands to IntelliJ Assistant by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3227" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3227</a></li>
<li class="">Polish IntelliJ Assistant command hint UI by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3228" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3228</a></li>
<li class="">[codex] Finalize IntelliJ assistant icon-only controls by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3229" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3229</a></li>
<li class="">[codex] Improve IntelliJ MCP setup status flow by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3231" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3231</a></li>
<li class="">[codex] Fix IntelliJ recording JDK preflight by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3238" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3238</a></li>
<li class="">[codex] Render IntelliJ assistant chat as Markdown by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3241" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3241</a></li>
<li class="">Add deterministic release PR workflow by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3242" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3242</a></li>
<li class="">[codex] Fix IntelliJ capture agent completion feedback by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3243" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3243</a></li>
<li class="">[codex] Prompt agent guidance optimization after MCP setup by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3250" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3250</a></li>
<li class="">[codex] Improve IntelliJ onboarding sample generation by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3252" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3252</a></li>
<li class="">Enhance release PR internal version updates by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3253" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3253</a></li>
<li class="">Handle malformed Doctor reports in MCP tools by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3254" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3254</a></li>
<li class="">[codex] Fix shaft-sikulix Maven Central dependency convergence by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3255" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3255</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.2.20260628...10.3.20260702" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.2.20260628...10.3.20260702</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-community-spotlight">🏆 Community Spotlight<a href="https://shafthq.github.io/blog/release-10.3.20260702#-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>46 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/ammaralfaqi11.png" width="32" height="32" alt="@ammaralfaqi11"> <a href="https://github.com/ammaralfaqi11" target="_blank" rel="noopener noreferrer" class="">@ammaralfaqi11</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.3.20260702#-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.3.20260702</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.3.20260702#-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:encoded>
            <category>shaft_engine</category>
            <category>release</category>
            <category>changelog</category>
            <category>test-automation</category>
            <category>open-source</category>
        </item>
        <item>
            <title><![CDATA[🚀 SHAFT 10.3.20260703: What's New and Why You Should Upgrade Today]]></title>
            <link>https://shafthq.github.io/blog/release-10.3.20260703</link>
            <guid>https://shafthq.github.io/blog/release-10.3.20260703</guid>
            <pubDate>Fri, 03 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Hey there, SHAFT community! 👋]]></description>
            <content:encoded><![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.3.20260703</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.3.20260703#-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.3.20260703" 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.3.20260703#-changelog" class="hash-link" aria-label="Direct link to 📋 Changelog" title="Direct link to 📋 Changelog" translate="no">​</a></h2>
<h1>SHAFT 10.3.20260703</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.3.20260703#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: polish IntelliJ assistant chat feedback by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3256" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3256</a></li>
<li class="">fix: repair IntelliJ assistant chat UI by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3258" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3258</a></li>
<li class="">Improve IntelliJ assistant mode and command controls by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3260" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3260</a></li>
<li class="">[codex] polish IntelliJ MCP setup troubleshooting by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3262" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3262</a></li>
<li class="">Build IntelliJ guided workbench by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3263" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3263</a></li>
<li class="">[codex] Remove IntelliJ runtime MCP installer by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3264" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3264</a></li>
<li class="">feat(intellij): guide MCP setup from landing by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3266" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3266</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260702...10.3.20260703" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260702...10.3.20260703</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-community-spotlight">🏆 Community Spotlight<a href="https://shafthq.github.io/blog/release-10.3.20260703#-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>46 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/ammaralfaqi11.png" width="32" height="32" alt="@ammaralfaqi11"> <a href="https://github.com/ammaralfaqi11" target="_blank" rel="noopener noreferrer" class="">@ammaralfaqi11</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.3.20260703#-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.3.20260703</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.3.20260703#-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:encoded>
            <category>shaft_engine</category>
            <category>release</category>
            <category>changelog</category>
            <category>test-automation</category>
            <category>open-source</category>
        </item>
        <item>
            <title><![CDATA[🚀 SHAFT 10.2.20260627: What's New and Why You Should Upgrade Today]]></title>
            <link>https://shafthq.github.io/blog/release-10.2.20260627</link>
            <guid>https://shafthq.github.io/blog/release-10.2.20260627</guid>
            <pubDate>Sun, 28 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Hey there, SHAFT community! 👋]]></description>
            <content:encoded><![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.20260627</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.20260627#-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.20260627" 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.20260627#-changelog" class="hash-link" aria-label="Direct link to 📋 Changelog" title="Direct link to 📋 Changelog" translate="no">​</a></h2>
<h1>SHAFT 10.2.20260627</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.20260627#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="">Enhance modular upgrader project coverage by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3023" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3023</a></li>
<li class="">[codex] Strengthen MCP generated-code guardrails by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3037" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3037</a></li>
<li class="">chore: use GitHub Pages user guide URL by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3039" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3039</a></li>
<li class="">Fix Allure steps for upgraded projects by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3041" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3041</a></li>
<li class="">[codex] Reduce redundant element metadata lookups by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3042" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3042</a></li>
<li class="">[codex] Add mobile toolchain diagnostics by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3043" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3043</a></li>
<li class="">[codex] Add capture-to-POM guidance blocks by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3044" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3044</a></li>
<li class="">[codex] Add Playwright visual validation by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3045" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3045</a></li>
<li class="">[codex] Expose semantic MCP element tools by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3046" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3046</a></li>
<li class="">Fix E2E workflow failures by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3047" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3047</a></li>
<li class="">Add Selenium Grid preflight by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3058" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3058</a></li>
<li class="">feat: bridge API and browser auth state by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3059" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3059</a></li>
<li class="">feat: add OpenAPI contract coverage reporting by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3060" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3060</a></li>
<li class="">[codex] add locator health reporting by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3061" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3061</a></li>
<li class="">[codex] Suppress AspectJ Unsafe warnings in samples by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3069" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3069</a></li>
<li class="">Update user guide URL references in tests by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3070" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3070</a></li>
<li class="">Fix Allure report text and visual comparison attachments by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3071" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3071</a></li>
<li class="">[codex] tighten release guard version checks by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3072" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3072</a></li>
<li class="">Improve console summary and progress styling by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3073" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3073</a></li>
<li class="">Improve Allure 3 report usability by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3076" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3076</a></li>
<li class="">[codex] Gate pilot release on SHAFT version changes by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3075" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3075</a></li>
<li class="">[codex] Delete General Validations workflow by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3077" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3077</a></li>
<li class="">[codex] Add SHAFT failure trace viewer by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3079" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3079</a></li>
<li class="">[codex] Apply SHAFT theme to Allure 3 reports by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3078" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3078</a></li>
<li class="">[codex] Add failure diagnostics bundle by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3080" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3080</a></li>
<li class="">Add locator health dashboard scoring by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3081" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3081</a></li>
<li class="">[codex] Add Playwright parity pack by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3083" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3083</a></li>
<li class="">codex: add Allure failure briefs by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3084" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3084</a></li>
<li class="">[codex] Add typed API response mapping helpers by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3085" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3085</a></li>
<li class="">[codex] Add API request retry policies by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3086" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3086</a></li>
<li class="">Add flake profiler reporting by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3087" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3087</a></li>
<li class="">feat: add evidence level profiles by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3090" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3090</a></li>
<li class="">feat: add structured Selenium trace archive by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3097" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3097</a></li>
<li class="">[codex] Add Selenium actionability diagnostics by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3098" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3098</a></li>
<li class="">[codex] Add trace-ready browser observability by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3099" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3099</a></li>
<li class="">[codex] Add mobile trace enrichment by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3101" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3101</a></li>
<li class="">[codex] Fix JUnit retry lifecycle isolation by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3102" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3102</a></li>
<li class="">[codex] Add MCP trace tools by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3103" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3103</a></li>
<li class="">feat: standardize generated HTML report UI by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3105" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3105</a></li>
<li class="">Add HTTP contract recording and replay by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3104" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3104</a></li>
<li class="">Add deterministic Capture generated-code review by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3106" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3106</a></li>
<li class="">feat: add capture assertion mode by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3117" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3117</a></li>
<li class="">Add SHAFT UI design skill by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3118" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3118</a></li>
<li class="">[codex] Respect disabled Allure auto-open by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3119" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3119</a></li>
<li class="">[codex] Add live Capture locator picker by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3120" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3120</a></li>
<li class="">feat: add capture readiness scoring by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3121" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3121</a></li>
<li class="">Delete shaft-engine/src/main/resources/images/shaft.png by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3122" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3122</a></li>
<li class="">feat: add capture fallback locator replay by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3123" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3123</a></li>
<li class="">[codex] Add Capture record-at-target snippets by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3124" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3124</a></li>
<li class="">feat: add Capture flow segmentation by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3125" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3125</a></li>
<li class="">[codex] Add Capture control-flow suggestions by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3126" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3126</a></li>
<li class="">[codex] Unify MCP Playwright recording with Capture metadata by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3127" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3127</a></li>
<li class="">[codex] Support native Capture emulation options by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3128" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3128</a></li>
<li class="">[codex] Close Capture backlog tracking catalog gaps by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3129" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3129</a></li>
<li class="">Improve lazy-loading readiness waits by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3134" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3134</a></li>
<li class="">fix: translate XPath predicates to valid CSS when inside Shadow DOM by @ammaralfaqi11 in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3136" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3136</a></li>
<li class="">Generate recorder code with SHAFT syntax by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3137" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3137</a></li>
<li class="">[codex] Improve click and type actions by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3138" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3138</a></li>
<li class="">test: cover locator builder css and xpath modes by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3139" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3139</a></li>
<li class="">docs: add modular era feature catalog by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3140" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3140</a></li>
<li class="">Prefer locators in mobile inspector recordings by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3141" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3141</a></li>
<li class="">feat: add MCP browser intent orientation by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3142" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3142</a></li>
<li class="">Prepare SHAFT Engine release 10.2.20260627 by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3143" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3143</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="new-contributors">New Contributors<a href="https://shafthq.github.io/blog/release-10.2.20260627#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="">@ammaralfaqi11 made their first contribution in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3136" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3136</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.2.20260623...10.2.20260627" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.2.20260623...10.2.20260627</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-community-spotlight">🏆 Community Spotlight<a href="https://shafthq.github.io/blog/release-10.2.20260627#-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>46 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/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/ammaralfaqi11.png" width="32" height="32" alt="@ammaralfaqi11"> <a href="https://github.com/ammaralfaqi11" target="_blank" rel="noopener noreferrer" class="">@ammaralfaqi11</a> 🌟 <strong>First-time contributor!</strong></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/ammaralfaqi11" target="_blank" rel="noopener noreferrer" class="">@ammaralfaqi11</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.2.20260627#-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.20260627</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.20260627#-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:encoded>
            <category>shaft_engine</category>
            <category>release</category>
            <category>changelog</category>
            <category>test-automation</category>
            <category>open-source</category>
        </item>
        <item>
            <title><![CDATA[🚀 SHAFT 10.2.20260628: What's New and Why You Should Upgrade Today]]></title>
            <link>https://shafthq.github.io/blog/release-10.2.20260628</link>
            <guid>https://shafthq.github.io/blog/release-10.2.20260628</guid>
            <pubDate>Sun, 28 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Hey there, SHAFT community! 👋]]></description>
            <content:encoded><![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.20260628</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.20260628#-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.20260628" 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.20260628#-changelog" class="hash-link" aria-label="Direct link to 📋 Changelog" title="Direct link to 📋 Changelog" translate="no">​</a></h2>
<h1>SHAFT 10.2.20260628</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.20260628#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="">docs: simplify README with theme-aware logo by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3144" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3144</a></li>
<li class="">[codex] remove graphify traces by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3145" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3145</a></li>
<li class="">Fix e2e workflow regressions by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3146" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3146</a></li>
<li class="">[codex] add graphify repository map workflow by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3147" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3147</a></li>
<li class="">[codex] optimize agent guidance routing by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3148" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3148</a></li>
<li class="">chore: optimize project memory by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3150" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3150</a></li>
<li class="">docs: optimize modular era feature catalog by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3149" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3149</a></li>
<li class="">Add IntelliJ plugin beta integration by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3151" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3151</a></li>
<li class="">Add MCP-backed project tools to IntelliJ plugin by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3152" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3152</a></li>
<li class="">Document IntelliJ plugin in feature catalog by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3153" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3153</a></li>
<li class="">Prepare SHAFT Engine release 10.2.20260628 by @MohabMohie in <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3154" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3154</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.2.20260627...10.2.20260628" target="_blank" rel="noopener noreferrer" class="">https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.2.20260627...10.2.20260628</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-community-spotlight">🏆 Community Spotlight<a href="https://shafthq.github.io/blog/release-10.2.20260628#-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>46 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/ammaralfaqi11.png" width="32" height="32" alt="@ammaralfaqi11"> <a href="https://github.com/ammaralfaqi11" target="_blank" rel="noopener noreferrer" class="">@ammaralfaqi11</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.20260628#-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.20260628</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.20260628#-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:encoded>
            <category>shaft_engine</category>
            <category>release</category>
            <category>changelog</category>
            <category>test-automation</category>
            <category>open-source</category>
        </item>
        <item>
            <title><![CDATA[🚀 SHAFT 10.2.20260623: What's New and Why You Should Upgrade Today]]></title>
            <link>https://shafthq.github.io/blog/release-10.2.20260623</link>
            <guid>https://shafthq.github.io/blog/release-10.2.20260623</guid>
            <pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Hey there, SHAFT community! 👋]]></description>
            <content:encoded><![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:encoded>
            <category>shaft_engine</category>
            <category>release</category>
            <category>changelog</category>
            <category>test-automation</category>
            <category>open-source</category>
        </item>
    </channel>
</rss>