๐ SHAFT 10.3.20260712: What's New and Why You Should Upgrade Today
Hey there, SHAFT community! ๐
A fresh release just dropped and it's packed with improvements you don't want to miss. SHAFT 10.3.20260712 is here, and whether you're a seasoned SHAFT user or just getting started, there's something in this release for you.
โก What Changed?โ
- Auto-generated release notes are included below. Users upgrading from
- SHAFTENGINE should read the
- modular SHAFT upgrade guide.
- SHAFT Pilot adds deterministic Capture, TestNG generation, Doctor diagnosis,
- reviewed repair proposals, and MCP interoperability. AI is optional, disabled
๐ View the full release on GitHub
๐ Changelogโ
SHAFT 10.3.20260712
Auto-generated release notes are included below. Users upgrading from
SHAFT_ENGINE should read the
modular SHAFT upgrade guide.
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.
See the SHAFT Pilot guide for installation, configuration, privacy, troubleshooting, and usage examples.
What's Changedโ
- Stream-patch the generated Allure single-file index to fix teardown OOM (#3407) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3433
- Agentic optimization: repo-local skills, model routing, rebalanced guidance budget by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3434
- Ship a cached shaft-mcp tool catalog with the SHAFT skills to cut agent token usage by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3435
- Cap Memory relation-filename length to stop Windows MAX_PATH breakage by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3438
- Introduce shaft-cli: command-line surface over the full shaft-mcp capability set by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3439
- Adopt a per-session Learning Loop in agent guidance by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3441
- Remove key message visibility from assistant and add Gradle wrapper by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3442
- Add a portable installer for shaft-cli (--install-shaft-cli) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3444
- fix: relaunch SHAFT capture daemon and dev shaft-mcp via a Java @argfile by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3445
- Fix the shaft-cli documentation boundary and land epic #3443 parts B, D, E by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3446
- ci: add PR-blocking path-filtered documentation-boundary gate by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3448
- fix: OpenCV template-match false negatives (MAX_PATH imread + tiny-screenshot watermark crash) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3449
- feat: land the remaining composable scope of #3349 (baseline naming, recorder assertions, MCP a11y tools) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3454
- fix: report-attachment failures no longer fail OpenCV template matches by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3455
- ci: let LambdaTest web/desktop jobs run despite native plan failures by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3456
- feat: #3350 part 1 โ storage-state parity, SHAFT.API interop, HAR glob filtering by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3458
- feat: #3350 part 2 โ storageStatePath init option, routeFromHar, MCP storage-state tools by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3459
- fix: regenerate MCP tool catalog for the six tools added by #3454/#3459 by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3460
- feat: #3350 part 3 โ full-body HAR content opt-in and SHAFT.Auth session cache by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3461
- feat: #3350 part 4 โ MCP network tool pack, capture HAR-content wiring (closes the epic) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3462
- feat: SHAFT Planner agent + shaft_project_init_agents scaffolding (closes #3351) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3464
- feat: reporting accuracy, checkpoint evidence completeness, and logging UX by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3465
- feat: IntelliJ Pick-Locator caret action, Heal notification action, Visual Baselines panel by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3468
- chore: record final Learning Loop memories from the open-issues triage session by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3471
- fix: replace substring-based step status/type inference with explicit parameters (closes #3466) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3469
- ci: pause guaranteed-red LambdaTest nightly schedule (#2927 containment) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3473
- feat: add vscode and opencode loop scaffolding to shaft_project_init_agents (closes #3463) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3476
- feat: surface accessibility-audit findings as first-class shaft-doctor evidence (closes #3452) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3480
- feat: mobile aria-snapshot assertion from Appium accessibility XML (closes #3451) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3482
- feat: persist Appium session capabilities and app-state snapshots for session reuse (closes #3457) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3484
- feat: IntelliJ SHAFT Tests tree, gutter run/debug, and bounded watch mode (#3467) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3486
- fix: eliminate live Selenium version ranges blocking the 10.3.20260712 Maven Central delivery by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3487
- feat: persist recorder pick state so the IDE Pick-Locator action receives real picks (closes #3483) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3488
Full Changelog: https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260711...10.3.20260712
๐ Community Spotlightโ
This release was made possible by 46 amazing contributors who have poured their time and expertise into making SHAFT better for everyone.
Open source thrives because of people like these. Every bug fix, every feature, every review โ it all counts.
@MohabMohie
@MahmoudElSharkawy
@MennaMagedm
@AhmdZanoon
@MustafaAgamy
@magdyheiba
@Mochxd
@KyrillosNageh
@amfarid
@Mohab-Osama
@RihamMostafa
@MhmdElGazzar
@MohamedHazem95
@mohamedtawfek05354
@samiir95
@MamdouhMansour
@Kinasr
@MahmoudMabrok
@hammad101088
@ieZaky
@sys123-data
@georgii-musikhin
@hjsblogger
@xValenciax
@MarwaYoussef1
@sultanpaymob
@osamaayman1005
@Salma2018170
@TarekGaafar
@Waleedmohammed
@khaledskhamis
@themosaeed
@wesamhamed
@DavidIshakGorgy
@BojteTamas
@blacelle
@Ayanasrallah
@AmrAdelElkholy
@ammaralfaqi11
@amlosman
@ahmednasr95
@ahmed-madyan
@AhmedHelalyy
@A-Alii
@AbdelrahmanFahd
@Abdelrhman-Ellithy
๐ Get Started in Secondsโ
Import the SHAFT BOM once, then use the modular engine:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.github.shafthq</groupId>
<artifactId>shaft-bom</artifactId>
<version>10.3.20260712</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>io.github.shafthq</groupId>
<artifactId>shaft-engine</artifactId>
</dependency>
</dependencies>
๐ฌ Join the Conversationโ
We'd love to hear what you think! Found a bug? Have an idea? Just want to say hi?
- โญ Star SHAFT on GitHub โ it helps more than you think
- ๐ก Start a Discussion โ share feedback or ideas
- ๐ Report an Issue โ help us squash bugs faster
- ๐ Read the Docs โ dive deeper into SHAFT
Thanks for being part of the SHAFT journey. Until the next release โ happy testing! ๐ฏ