|
| 1 | +--- |
| 2 | +slug: release-10.3.20260716 |
| 3 | +title: "🚀 SHAFT 10.3.20260716: What's New and Why You Should Upgrade Today" |
| 4 | +authors: [autobot] |
| 5 | +tags: [shaft_engine, release, changelog, test-automation, open-source] |
| 6 | +--- |
| 7 | + |
| 8 | +Hey there, SHAFT community! 👋 |
| 9 | + |
| 10 | +A fresh release just dropped and it's packed with improvements you don't want to miss. **SHAFT 10.3.20260716** is here, and whether you're a seasoned SHAFT user or just getting started, there's something in this release for you. |
| 11 | + |
| 12 | +<!-- truncate --> |
| 13 | + |
| 14 | +## ⚡ What Changed? |
| 15 | + |
| 16 | +- Auto-generated release notes are included below. Users upgrading from |
| 17 | +- SHAFTENGINE should read the |
| 18 | +- modular SHAFT upgrade guide. |
| 19 | +- SHAFT Pilot adds deterministic Capture, TestNG generation, Doctor diagnosis, |
| 20 | +- reviewed repair proposals, and MCP interoperability. AI is optional, disabled |
| 21 | + |
| 22 | +👉 [View the full release on GitHub](https://github.com/ShaftHQ/SHAFT_ENGINE/releases/tag/10.3.20260716) |
| 23 | + |
| 24 | +## 📋 Changelog |
| 25 | + |
| 26 | +# SHAFT 10.3.20260716 |
| 27 | + |
| 28 | +Auto-generated release notes are included below. Users upgrading from |
| 29 | +`SHAFT_ENGINE` should read the |
| 30 | +[modular SHAFT upgrade guide](https://shafthq.github.io/docs/start/upgrade). |
| 31 | + |
| 32 | +SHAFT Pilot adds deterministic Capture, TestNG generation, Doctor diagnosis, |
| 33 | +reviewed repair proposals, and MCP interoperability. AI is optional, disabled |
| 34 | +by default, and direct OpenAI, Anthropic, Gemini, or Ollama access requires |
| 35 | +explicit enablement and consent. Microsoft/GitHub Copilot integrates through |
| 36 | +MCP rather than a generic provider API-key adapter. |
| 37 | + |
| 38 | +See the [SHAFT Pilot guide](https://shafthq.github.io/docs/agentic/pilot) |
| 39 | +for installation, configuration, privacy, troubleshooting, and usage examples. |
| 40 | + |
| 41 | +<!-- Release notes generated using configuration in .github/release.yml at main --> |
| 42 | + |
| 43 | +## What's Changed |
| 44 | +* IntelliJ plugin: onboarding/setup/Assistant trust polish (#3601 prioritized top 5) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3602 |
| 45 | +* IntelliJ plugin: onboarding/setup/Assistant trust polish (#3601 remaining scope) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3604 |
| 46 | +* IntelliJ plugin: A5 tool-result disclosure, #3603 a11y sweep, /work-github skill by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3607 |
| 47 | +* Investigate reported IntelliJ plugin crash: platform bug, not shaft-intellij by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3608 |
| 48 | +* fix(intellij): get ShaftPluginUpgradeActivity off the startup coroutine dispatcher (marketplace release blocker) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3609 |
| 49 | +* IntelliJ plugin: remaining setupStatusLabel/testStatus-style accessible-description sweep (#3605) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3610 |
| 50 | +* Agent-guidance token audit: restructure test-driven-development skill (#3606) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3612 |
| 51 | +* Non-blocking graphify pre-check nudge; gbrain adoption spike (#3611) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3613 |
| 52 | +* memory: gbrain PGLite embed-backfill root cause (issue 3611 follow-up) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3614 |
| 53 | +* Non-blocking TDD nudge (R6); link enforced skills in act-as-fable by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3615 |
| 54 | +* memory: gbrain embed-coverage resolved; headroom compression proxy adopted by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3616 |
| 55 | +* Optimize agent guidance: dedupe, token cuts, binding act-as-fable, gbrain/headroom wiring by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3617 |
| 56 | +* memory: IntelliJ plugin audit learning-loop update by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3644 |
| 57 | + |
| 58 | + |
| 59 | +**Full Changelog**: https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260715...10.3.20260716 |
| 60 | + |
| 61 | +## 🏆 Community Spotlight |
| 62 | + |
| 63 | +This release was made possible by **46 amazing contributors** who have poured their time and expertise into making SHAFT better for everyone. |
| 64 | + |
| 65 | +Open source thrives because of people like these. Every bug fix, every feature, every review — it all counts. |
| 66 | + |
| 67 | +- <img src="https://github.com/MohabMohie.png" width="32" height="32" alt="@MohabMohie" /> [@MohabMohie](https://github.com/MohabMohie) |
| 68 | +- <img src="https://github.com/MahmoudElSharkawy.png" width="32" height="32" alt="@MahmoudElSharkawy" /> [@MahmoudElSharkawy](https://github.com/MahmoudElSharkawy) |
| 69 | +- <img src="https://github.com/MennaMagedm.png" width="32" height="32" alt="@MennaMagedm" /> [@MennaMagedm](https://github.com/MennaMagedm) |
| 70 | +- <img src="https://github.com/AhmdZanoon.png" width="32" height="32" alt="@AhmdZanoon" /> [@AhmdZanoon](https://github.com/AhmdZanoon) |
| 71 | +- <img src="https://github.com/MustafaAgamy.png" width="32" height="32" alt="@MustafaAgamy" /> [@MustafaAgamy](https://github.com/MustafaAgamy) |
| 72 | +- <img src="https://github.com/magdyheiba.png" width="32" height="32" alt="@magdyheiba" /> [@magdyheiba](https://github.com/magdyheiba) |
| 73 | +- <img src="https://github.com/Mochxd.png" width="32" height="32" alt="@Mochxd" /> [@Mochxd](https://github.com/Mochxd) |
| 74 | +- <img src="https://github.com/KyrillosNageh.png" width="32" height="32" alt="@KyrillosNageh" /> [@KyrillosNageh](https://github.com/KyrillosNageh) |
| 75 | +- <img src="https://github.com/amfarid.png" width="32" height="32" alt="@amfarid" /> [@amfarid](https://github.com/amfarid) |
| 76 | +- <img src="https://github.com/Mohab-Osama.png" width="32" height="32" alt="@Mohab-Osama" /> [@Mohab-Osama](https://github.com/Mohab-Osama) |
| 77 | +- <img src="https://github.com/RihamMostafa.png" width="32" height="32" alt="@RihamMostafa" /> [@RihamMostafa](https://github.com/RihamMostafa) |
| 78 | +- <img src="https://github.com/MhmdElGazzar.png" width="32" height="32" alt="@MhmdElGazzar" /> [@MhmdElGazzar](https://github.com/MhmdElGazzar) |
| 79 | +- <img src="https://github.com/MohamedHazem95.png" width="32" height="32" alt="@MohamedHazem95" /> [@MohamedHazem95](https://github.com/MohamedHazem95) |
| 80 | +- <img src="https://github.com/mohamedtawfek05354.png" width="32" height="32" alt="@mohamedtawfek05354" /> [@mohamedtawfek05354](https://github.com/mohamedtawfek05354) |
| 81 | +- <img src="https://github.com/samiir95.png" width="32" height="32" alt="@samiir95" /> [@samiir95](https://github.com/samiir95) |
| 82 | +- <img src="https://github.com/MamdouhMansour.png" width="32" height="32" alt="@MamdouhMansour" /> [@MamdouhMansour](https://github.com/MamdouhMansour) |
| 83 | +- <img src="https://github.com/Kinasr.png" width="32" height="32" alt="@Kinasr" /> [@Kinasr](https://github.com/Kinasr) |
| 84 | +- <img src="https://github.com/MahmoudMabrok.png" width="32" height="32" alt="@MahmoudMabrok" /> [@MahmoudMabrok](https://github.com/MahmoudMabrok) |
| 85 | +- <img src="https://github.com/hammad101088.png" width="32" height="32" alt="@hammad101088" /> [@hammad101088](https://github.com/hammad101088) |
| 86 | +- <img src="https://github.com/ieZaky.png" width="32" height="32" alt="@ieZaky" /> [@ieZaky](https://github.com/ieZaky) |
| 87 | +- <img src="https://github.com/sys123-data.png" width="32" height="32" alt="@sys123-data" /> [@sys123-data](https://github.com/sys123-data) |
| 88 | +- <img src="https://github.com/georgii-musikhin.png" width="32" height="32" alt="@georgii-musikhin" /> [@georgii-musikhin](https://github.com/georgii-musikhin) |
| 89 | +- <img src="https://github.com/hjsblogger.png" width="32" height="32" alt="@hjsblogger" /> [@hjsblogger](https://github.com/hjsblogger) |
| 90 | +- <img src="https://github.com/xValenciax.png" width="32" height="32" alt="@xValenciax" /> [@xValenciax](https://github.com/xValenciax) |
| 91 | +- <img src="https://github.com/MarwaYoussef1.png" width="32" height="32" alt="@MarwaYoussef1" /> [@MarwaYoussef1](https://github.com/MarwaYoussef1) |
| 92 | +- <img src="https://github.com/sultanpaymob.png" width="32" height="32" alt="@sultanpaymob" /> [@sultanpaymob](https://github.com/sultanpaymob) |
| 93 | +- <img src="https://github.com/osamaayman1005.png" width="32" height="32" alt="@osamaayman1005" /> [@osamaayman1005](https://github.com/osamaayman1005) |
| 94 | +- <img src="https://github.com/Salma2018170.png" width="32" height="32" alt="@Salma2018170" /> [@Salma2018170](https://github.com/Salma2018170) |
| 95 | +- <img src="https://github.com/TarekGaafar.png" width="32" height="32" alt="@TarekGaafar" /> [@TarekGaafar](https://github.com/TarekGaafar) |
| 96 | +- <img src="https://github.com/Waleedmohammed.png" width="32" height="32" alt="@Waleedmohammed" /> [@Waleedmohammed](https://github.com/Waleedmohammed) |
| 97 | +- <img src="https://github.com/khaledskhamis.png" width="32" height="32" alt="@khaledskhamis" /> [@khaledskhamis](https://github.com/khaledskhamis) |
| 98 | +- <img src="https://github.com/themosaeed.png" width="32" height="32" alt="@themosaeed" /> [@themosaeed](https://github.com/themosaeed) |
| 99 | +- <img src="https://github.com/wesamhamed.png" width="32" height="32" alt="@wesamhamed" /> [@wesamhamed](https://github.com/wesamhamed) |
| 100 | +- <img src="https://github.com/DavidIshakGorgy.png" width="32" height="32" alt="@DavidIshakGorgy" /> [@DavidIshakGorgy](https://github.com/DavidIshakGorgy) |
| 101 | +- <img src="https://github.com/BojteTamas.png" width="32" height="32" alt="@BojteTamas" /> [@BojteTamas](https://github.com/BojteTamas) |
| 102 | +- <img src="https://github.com/blacelle.png" width="32" height="32" alt="@blacelle" /> [@blacelle](https://github.com/blacelle) |
| 103 | +- <img src="https://github.com/Ayanasrallah.png" width="32" height="32" alt="@Ayanasrallah" /> [@Ayanasrallah](https://github.com/Ayanasrallah) |
| 104 | +- <img src="https://github.com/AmrAdelElkholy.png" width="32" height="32" alt="@AmrAdelElkholy" /> [@AmrAdelElkholy](https://github.com/AmrAdelElkholy) |
| 105 | +- <img src="https://github.com/ammaralfaqi11.png" width="32" height="32" alt="@ammaralfaqi11" /> [@ammaralfaqi11](https://github.com/ammaralfaqi11) |
| 106 | +- <img src="https://github.com/amlosman.png" width="32" height="32" alt="@amlosman" /> [@amlosman](https://github.com/amlosman) |
| 107 | +- <img src="https://github.com/ahmednasr95.png" width="32" height="32" alt="@ahmednasr95" /> [@ahmednasr95](https://github.com/ahmednasr95) |
| 108 | +- <img src="https://github.com/ahmed-madyan.png" width="32" height="32" alt="@ahmed-madyan" /> [@ahmed-madyan](https://github.com/ahmed-madyan) |
| 109 | +- <img src="https://github.com/AhmedHelalyy.png" width="32" height="32" alt="@AhmedHelalyy" /> [@AhmedHelalyy](https://github.com/AhmedHelalyy) |
| 110 | +- <img src="https://github.com/A-Alii.png" width="32" height="32" alt="@A-Alii" /> [@A-Alii](https://github.com/A-Alii) |
| 111 | +- <img src="https://github.com/AbdelrahmanFahd.png" width="32" height="32" alt="@AbdelrahmanFahd" /> [@AbdelrahmanFahd](https://github.com/AbdelrahmanFahd) |
| 112 | +- <img src="https://github.com/Abdelrhman-Ellithy.png" width="32" height="32" alt="@Abdelrhman-Ellithy" /> [@Abdelrhman-Ellithy](https://github.com/Abdelrhman-Ellithy) |
| 113 | + |
| 114 | + |
| 115 | +## 🚀 Get Started in Seconds |
| 116 | + |
| 117 | +Import the SHAFT BOM once, then use the modular engine: |
| 118 | + |
| 119 | +```xml |
| 120 | +<dependencyManagement> |
| 121 | + <dependencies> |
| 122 | + <dependency> |
| 123 | + <groupId>io.github.shafthq</groupId> |
| 124 | + <artifactId>shaft-bom</artifactId> |
| 125 | + <version>10.3.20260716</version> |
| 126 | + <type>pom</type> |
| 127 | + <scope>import</scope> |
| 128 | + </dependency> |
| 129 | + </dependencies> |
| 130 | +</dependencyManagement> |
| 131 | + |
| 132 | +<dependencies> |
| 133 | + <dependency> |
| 134 | + <groupId>io.github.shafthq</groupId> |
| 135 | + <artifactId>shaft-engine</artifactId> |
| 136 | + </dependency> |
| 137 | +</dependencies> |
| 138 | +``` |
| 139 | + |
| 140 | +## 💬 Join the Conversation |
| 141 | + |
| 142 | +We'd love to hear what you think! Found a bug? Have an idea? Just want to say hi? |
| 143 | + |
| 144 | +- ⭐ [Star SHAFT on GitHub](https://github.com/ShaftHQ/SHAFT_ENGINE) — it helps more than you think |
| 145 | +- 💡 [Start a Discussion](https://github.com/ShaftHQ/SHAFT_ENGINE/discussions) — share feedback or ideas |
| 146 | +- 🐛 [Report an Issue](https://github.com/ShaftHQ/SHAFT_ENGINE/issues/new) — help us squash bugs faster |
| 147 | +- 📖 [Read the Docs](https://shafthq.github.io/docs/start/overview) — dive deeper into SHAFT |
| 148 | + |
| 149 | +Thanks for being part of the SHAFT journey. Until the next release — happy testing! 🎯 |
0 commit comments