๐ SHAFT 10.3.20260722: 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.20260722 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.20260722
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โ
- Closes #3782: shared LookAndFeelIsolationExtension for shaft-intellij Swing tests by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3787
- Closes #3786: fix ShaftTestsPanelTest full-suite + screenshotDir breakage (missed L&F isolation, not a platform latch) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3789
- memory: record Windows MAX_PATH supersede-shorthand gotcha (Closes #3790) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3791
- Fix chromium double-HasCdp augmentation, green-masked example CI, and stale sample test data (#3788) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3793
- Fix failure-screenshot exception masking the real action failure by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3796
- Fix #3794: restore UnsupportedCommandException fallback for remote CDP screenshots by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3797
- Closes #3798: freshen generated project workflow templates + guard against future drift by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3799
- Add GitHub-star CTA to console execution summary on clean runs by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3801
- Add persistent User Guide + Star SHAFT header buttons to Allure 3 reports by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3813
- Resolve loopback-sink sentinel to the tab's real BiDi browsing context by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3815
- Add pr-gate.yml: consolidated path-conditioned PR gate (Phase 1 of #3814) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3818
- Sync stale API unit tests with the explicit-status and HEAD/OPTIONS refactors by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3819
- Skip supplementary validation evidence when rich evidence is already attached by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3823
- Quit leaked remote sessions on post-creation failure; decouple attempt timeout by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3825
- Pre-stage the classpath OpenCV native into SikuliX's libs folder by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3827
- Tee the Allure failure list into the job log, not only the step summary by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3829
- Restore automaticallyAssertResponseStatusCode after Test_LTMobAPKRelativePath by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3831
- Enable grid preflight fail-fast in nightly E2E; harden readiness and teardown by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3828
- Skip execution-summary rows for retry-suppressed attempts by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3832
- Capture the Appium server's own log in the Windows desktop nightly job by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3830
- Record six durable gotchas from the nightly-campaign and CI-overhaul session by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3834
- Match the binary attachment route on whole tokens, not raw substrings by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3835
- CI overhaul Phase 3: fold per-area PR workflows into pr-gate, narrow security.yml by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3836
- Annotate retry-suppressed console lines as Failed (retried), not Skipped by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3837
- Read the two legacy remote-server timeouts live instead of caching at class-load by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3838
- Decompose reportValidationState into focused evidence/outcome helpers (NPath 56,880 โ per-method โค4 decisions) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3839
- Add browser-level regressions for the async-login loopback race by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3841
- Fix guidance gate: trim act-as-fable SKILL.md and shorten overlong gotcha ids by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3844
- Trim the dead rich-evidence flag from ValidationsHelper's driver paths by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3843
- Fix #3821: isolate CheckpointCounter state to stop AllureManagerCoverageUnitTest batch flake by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3847
- Escape raw control bytes reaching the console/job log sink by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3848
- Harness optimization: adopt harvested bmad-method patterns + codebase examples pass by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3850
- Fix Chromium alert auto-dismiss and invalid-select test on modern Chrome/Edge by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3851
- pr-gate: add path-conditioned unit-test leg(s) for core Java modules by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3852
- Add CheckpointCounter.resetForTesting() and route test resetters through it (#3846) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3853
- Phase 4 of #3814: notify-nightly-failure composite for the 3 nightly workflows by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3855
- Gitignore runtime-regenerated properties/ in shaft-ai/shaft-doctor/shaft-pilot-core (#3856) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3857
- Fix Windows_Appium_Desktop_Local: keep the Appium server alive across the test (#3806) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3858
- CI overhaul Phase 3 sweep: remove dead validate_refresh_workflow guard (#3814) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3859
- Agent harness revamp: Chaos Engine orchestrator + coder/reviewer/tester L1 agents by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3862
- CI overhaul Phase 5: composite dedup, sharded-report retirement, guidance-rot sweep (#3814 remainder) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3865
- Report BrowserActionsHelper failures under the correct class by @Mochxd in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3875
- Tool architecture sweep: trim shaft-mcp to 89 tools, canonical tool-index, shaft-cli one-shots, skills router, GitHub-tracking process by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3881
- Tool sweep T4/#3870: index-fed IntelliJ deterministic tool selector by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3882
- Coverage pass: sweep new/changed classes to 80-90% (JaCoCo-measured) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3886
- Memory: tool-sweep session gotchas by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3888
- Tool sweep T6/#3872: live E2E โ every MCP/CLI service from the IntelliJ chat view by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3887
- Close-out batch 2026-07-21: coverage wiring, tool-schema, hygiene, and IntelliJ selector follow-ups (#3889) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3891
- Follow-ups from the 2026-07-21 batch: gitignore dedupe, omitted-targetBrowser e2e, catalog-diff note, NPath flatten (#3890) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3898
- (#3897): dedupe module-local .gitignore stubs against the root scheme by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3903
- #3902: explicit MIT license metadata across published modules by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3904
- fix #3899: driver_initialize mobile args + stale union-status test assertions by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3906
- #3900: fix pr-gate shaft-cli reactor resolution and shaded-jar false positives by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3901
- fix #3905: generate the missing Role import for ROLE-strategy locators by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3907
- shaft-mcp: fix McpMobileInitOptions schema wrongly requiring every nested field by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3911
- shaft-intellij: fix GuidedWorkflowPanel stale capture_start mode/includeSensitiveValues args by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3913
- shaft-intellij: drive element_type/element_click in live E2E after #3881 A1 tool unification by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3915
- shaft-intellij: send sessionPath/backend to unified capture_code_blocks from the guided workflow panel by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3924
- Fix grid-CI test-isolation and portability bugs (S2) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3936
- Fix Maven Central release: extend publish poll timeout + add failure alerting by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3937
- shaft-intellij: add live E2E for the record-api-to-codegen chain by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3938
- Fix macOS nightly Local E2E heap OOM: cap surefireArgLine -Xmx1024m by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3942
- Wire the six live E2E test classes into CI (#3932) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3941
- docs: fix retired mobile_recording_code_blocks shape in feature catalog by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3944
- Fix stale javadoc @link references in shaft-mcp by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3945
- Fix Firefox-grid WWW-Authenticate/ClosedChannelException cluster: isolate LambdaTestHelperUnitTest (#3929) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3947
- Commit accumulated session memory gotchas (2026-07-21) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3950
- shaft-intellij: add Record API entry point to GuidedWorkflowPanel by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3948
- ci: roll out notify-nightly-failure to E2E Tests and Local E2E Tests by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3951
- shaft-intellij: remove emoji/glyph custom thinking messages from Assistant transcript by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3953
- shaft-intellij: unwrap capture_status/capture_api_status union before reading fields by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3954
- Fix host-OS-specific mobile_app absolute path detection in Appium capabilities by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3957
- shaft-intellij: gate three more raw-output paths behind Verbose (#3918) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3958
- ci: extract environment-dependent unit tests out of browser E2E matrix jobs by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3952
- shaft-intellij: close silent content drops in Assistant transcript pipeline (#3920) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3961
- shaft-intellij: additive raw-CLI terminal tab for Claude Code and Codex (#3959) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3960
- Process rule: track every deferred/out-of-scope PR-body mention as a GitHub issue by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3966
- shaft-intellij: message-kind model + central style registry (#3921) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3967
- shaft-intellij: fix incorrect off-EDT javadoc on terminal pre-type callback by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3969
- shaft-intellij: add GitHub Copilot CLI terminal action by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3970
- Trim copilot host-context guidance to restore token-budget margin by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3972
- shaft-intellij: align StructuredStreamParser with real Codex/Claude stream schemas by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3973
- shaft-intellij: unwrap capture_status union in ShaftAssistantPanel diagnostic (#3955) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3975
- shaft-intellij: thread Verbose gating through agentOutput/failureOutput by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3977
- Record ShaftAssistantPanel dual-Message-graph gotcha from #3968 by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3979
- shaft-intellij: thread explicit message kinds through ShaftAssistantPanel (#3968) by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3978
- Record squash-merge auto-close gotcha from issue #3965 by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3980
- Add on-demand Maven Central release reconciliation by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3983
- shaft-intellij: wire panel Verbose checkbox into local-agent stderr gating by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3982
- shaft-intellij: keep Verbose raw stream buffer reachable on normal completion by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3984
- shaft-intellij: split StructuredStreamParser into per-protocol mapper classes by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3990
- Agent charters: state mempalace/memory discovery-first explicitly for coder/reviewer/tester by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3992
Full Changelog: https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260719...10.3.20260722
๐ 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
@Mochxd
@magdyheiba
@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.20260722</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! ๐ฏ