1"use strict";(self.webpackChunkshaft_user_guide=self.webpackChunkshaft_user_guide||[]).push([["22304"],{89613(t,e,h){h.r(e),h.d(e,{assets:()=>r,contentTitle:()=>l,default:()=>d,frontMatter:()=>n,metadata:()=>i,toc:()=>o});var i=h(27548),a=h(74848),s=h(28453);let n={slug:"release-10.3.20260712",title:"\u{1F680} SHAFT 10.3.20260712: What's New and Why You Should Upgrade Today",authors:["autobot"],tags:["shaft_engine","release","changelog","test-automation","open-source"]},l,r={authorsImageUrls:[void 0]},o=[{value:"\u26A1 What Changed?",id:"-what-changed",level:2},{value:"\u{1F4CB} Changelog",id:"-changelog",level:2},{value:"What's Changed",id:"whats-changed",level:2},{value:"\u{1F3C6} Community Spotlight",id:"-community-spotlight",level:2},{value:"\u{1F680} Get Started in Seconds",id:"-get-started-in-seconds",level:2},{value:"\u{1F4AC} Join the Conversation",id:"-join-the-conversation",level:2}];function c(t){let e={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,s.R)(),...t.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(e.p,{children:"Hey there, SHAFT community! \u{1F44B}"}),"\n",(0,a.jsxs)(e.p,{children:["A fresh release just dropped and it's packed with improvements you don't want to miss. ",(0,a.jsx)(e.strong,{children:"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."]}),"\n",(0,a.jsx)(e.h2,{id:"-what-changed",children:"\u26A1 What Changed?"}),"\n",(0,a.jsxs)(e.ul,{children:["\n",(0,a.jsx)(e.li,{children:"Auto-generated release notes are included below. Users upgrading from"}),"\n",(0,a.jsx)(e.li,{children:"SHAFTENGINE should read the"}),"\n",(0,a.jsx)(e.li,{children:"modular SHAFT upgrade guide."}),"\n",(0,a.jsx)(e.li,{children:"SHAFT Pilot adds deterministic Capture, TestNG generation, Doctor diagnosis,"}),"\n",(0,a.jsx)(e.li,{children:"reviewed repair proposals, and MCP interoperability. AI is optional, disabled"}),"\n"]}),"\n",(0,a.jsxs)(e.p,{children:["\u{1F449} ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/releases/tag/10.3.20260712",children:"View the full release on GitHub"})]}),"\n",(0,a.jsx)(e.h2,{id:"-changelog",children:"\u{1F4CB} Changelog"}),"\n",(0,a.jsx)(e.h1,{id:"shaft-10320260712",children:"SHAFT 10.3.20260712"}),"\n",(0,a.jsxs)(e.p,{children:["Auto-generated release notes are included below. Users upgrading from\n",(0,a.jsx)(e.code,{children:"SHAFT_ENGINE"})," should read the\n",(0,a.jsx)(e.a,{href:"https://shafthq.github.io/docs/start/upgrade",children:"modular SHAFT upgrade guide"}),"."]}),"\n",(0,a.jsx)(e.p,{children:"SHAFT Pilot adds deterministic Capture, TestNG generation, Doctor diagnosis,\nreviewed repair proposals, and MCP interoperability. AI is optional, disabled\nby default, and direct OpenAI, Anthropic, Gemini, or Ollama access requires\nexplicit enablement and consent. Microsoft/GitHub Copilot integrates through\nMCP rather than a generic provider API-key adapter."}),"\n",(0,a.jsxs)(e.p,{children:["See the ",(0,a.jsx)(e.a,{href:"https://shafthq.github.io/docs/agentic/pilot",children:"SHAFT Pilot guide"}),"\nfor installation, configuration, privacy, troubleshooting, and usage examples."]}),"\n",(0,a.jsx)(e.h2,{id:"whats-changed",children:"What's Changed"}),"\n",(0,a.jsxs)(e.ul,{children:["\n",(0,a.jsxs)(e.li,{children:["Stream-patch the generated Allure single-file index to fix teardown OOM (#3407) by @MohabMohie in ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3433",children:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3433"})]}),"\n",(0,a.jsxs)(e.li,{children:["Agentic optimization: repo-local skills, model routing, rebalanced guidance budget by @MohabMohie in ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3434",children:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3434"})]}),"\n",(0,a.jsxs)(e.li,{children:["Ship a cached shaft-mcp tool catalog with the SHAFT skills to cut agent token usage by @MohabMohie in ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3435",children:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3435"})]}),"\n",(0,a.jsxs)(e.li,{children:["Cap Memory relation-filename length to stop Windows MAX_PATH breakage by @MohabMohie in ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3438",children:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3438"})]}),"\n",(0,a.jsxs)(e.li,{children:["Introduce shaft-cli: command-line surface over the full shaft-mcp capability set by @MohabMohie in ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3439",children:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3439"})]}),"\n",(0,a.jsxs)(e.li,{children:["Adopt a per-session Learning Loop in agent guidance by @MohabMohie in ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3441",children:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3441"})]}),"\n",(0,a.jsxs)(e.li,{children:["Remove key message visibility from assistant and add Gradle wrapper by @MohabMohie in ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3442",children:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3442"})]}),"\n",(0,a.jsxs)(e.li,{children:["Add a portable installer for shaft-cli (--install-shaft-cli) by @MohabMohie in ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3444",children:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3444"})]}),"\n",(0,a.jsxs)(e.li,{children:["fix: relaunch SHAFT capture daemon and dev shaft-mcp via a Java @argfile by @MohabMohie in ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3445",children:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3445"})]}),"\n",(0,a.jsxs)(e.li,{children:["Fix the shaft-cli documentation boundary and land epic #3443 parts B, D, E by @MohabMohie in ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3446",children:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3446"})]}),"\n",(0,a.jsxs)(e.li,{children:["ci: add PR-blocking path-filtered documentation-boundary gate by @MohabMohie in ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3448",children:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3448"})]}),"\n",(0,a.jsxs)(e.li,{children:["fix: OpenCV template-match false negatives (MAX_PATH imread + tiny-screenshot watermark crash) by @MohabMohie in ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3449",children:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3449"})]}),"\n",(0,a.jsxs)(e.li,{children:["feat: land the remaining composable scope of #3349 (baseline naming, recorder assertions, MCP a11y tools) by @MohabMohie in ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3454",children:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3454"})]}),"\n",(0,a.jsxs)(e.li,{children:["fix: report-attachment failures no longer fail OpenCV template matches by @MohabMohie in ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3455",children:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3455"})]}),"\n",(0,a.jsxs)(e.li,{children:["ci: let LambdaTest web/desktop jobs run despite native plan failures by @MohabMohie in ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3456",children:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3456"})]}),"\n",(0,a.jsxs)(e.li,{children:["feat: #3350 part 1 \u2014 storage-state parity, SHAFT.API interop, HAR glob filtering by @MohabMohie in ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3458",children:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3458"})]}),"\n",(0,a.jsxs)(e.li,{children:["feat: #3350 part 2 \u2014 storageStatePath init option, routeFromHar, MCP storage-state tools by @MohabMohie in ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3459",children:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3459"})]}),"\n",(0,a.jsxs)(e.li,{children:["fix: regenerate MCP tool catalog for the six tools added by #3454/#3459 by @MohabMohie in ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3460",children:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3460"})]}),"\n",(0,a.jsxs)(e.li,{children:["feat: #3350 part 3 \u2014 full-body HAR content opt-in and
1SHAFT.Auth session cache by @MohabMohie in ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3461",children:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3461"})]}),"\n",(0,a.jsxs)(e.li,{children:["feat: #3350 part 4 \u2014 MCP network tool pack, capture HAR-content wiring (closes the epic) by @MohabMohie in ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3462",children:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3462"})]}),"\n",(0,a.jsxs)(e.li,{children:["feat: SHAFT Planner agent + shaft_project_init_agents scaffolding (closes #3351) by @MohabMohie in ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3464",children:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3464"})]}),"\n",(0,a.jsxs)(e.li,{children:["feat: reporting accuracy, checkpoint evidence completeness, and logging UX by @MohabMohie in ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3465",children:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3465"})]}),"\n",(0,a.jsxs)(e.li,{children:["feat: IntelliJ Pick-Locator caret action, Heal notification action, Visual Baselines panel by @MohabMohie in ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3468",children:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3468"})]}),"\n",(0,a.jsxs)(e.li,{children:["chore: record final Learning Loop memories from the open-issues triage session by @MohabMohie in ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3471",children:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3471"})]}),"\n",(0,a.jsxs)(e.li,{children:["fix: replace substring-based step status/type inference with explicit parameters (closes #3466) by @MohabMohie in ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3469",children:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3469"})]}),"\n",(0,a.jsxs)(e.li,{children:["ci: pause guaranteed-red LambdaTest nightly schedule (#2927 containment) by @MohabMohie in ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3473",children:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3473"})]}),"\n",(0,a.jsxs)(e.li,{children:["feat: add vscode and opencode loop scaffolding to shaft_project_init_agents (closes #3463) by @MohabMohie in ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3476",children:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3476"})]}),"\n",(0,a.jsxs)(e.li,{children:["feat: surface accessibility-audit findings as first-class shaft-doctor evidence (closes #3452) by @MohabMohie in ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3480",children:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3480"})]}),"\n",(0,a.jsxs)(e.li,{children:["feat: mobile aria-snapshot assertion from Appium accessibility XML (closes #3451) by @MohabMohie in ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3482",children:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3482"})]}),"\n",(0,a.jsxs)(e.li,{children:["feat: persist Appium session capabilities and app-state snapshots for session reuse (closes #3457) by @MohabMohie in ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3484",children:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3484"})]}),"\n",(0,a.jsxs)(e.li,{children:["feat: IntelliJ SHAFT Tests tree, gutter run/debug, and bounded watch mode (#3467) by @MohabMohie in ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3486",children:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3486"})]}),"\n",(0,a.jsxs)(e.li,{children:["fix: eliminate live Selenium version ranges blocking the 10.3.20260712 Maven Central delivery by @MohabMohie in ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3487",children:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3487"})]}),"\n",(0,a.jsxs)(e.li,{children:["feat: persist recorder pick state so the IDE Pick-Locator action receives real picks (closes #3483) by @MohabMohie in ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3488",children:"https://github.com/ShaftHQ/SHAFT_ENGINE/pull/3488"})]}),"\n"]}),"\n",(0,a.jsxs)(e.p,{children:[(0,a.jsx)(e.strong,{children:"Full Changelog"}),": ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260711...10.3.20260712",children:"https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260711...10.3.20260712"})]}),"\n",(0,a.jsx)(e.h2,{id:"-community-spotlight",children:"\u{1F3C6} Community Spotlight"}),"\n",(0,a.jsxs)(e.p,{children:["This release was made possible by ",(0,a.jsx)(e.strong,{children:"46 amazing contributors"})," who have poured their time and expertise into making SHAFT better for everyone."]}),"\n",(0,a.jsx)(e.p,{children:"Open source thrives because of people like these. Every bug fix, every feature, every review \u2014 it all c
1ounts."}),"\n",(0,a.jsxs)(e.ul,{children:["\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/MohabMohie.png",width:"32",height:"32",alt:"@MohabMohie"})," ",(0,a.jsx)(e.a,{href:"https://github.com/MohabMohie",children:"@MohabMohie"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/MahmoudElSharkawy.png",width:"32",height:"32",alt:"@MahmoudElSharkawy"})," ",(0,a.jsx)(e.a,{href:"https://github.com/MahmoudElSharkawy",children:"@MahmoudElSharkawy"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/MennaMagedm.png",width:"32",height:"32",alt:"@MennaMagedm"})," ",(0,a.jsx)(e.a,{href:"https://github.com/MennaMagedm",children:"@MennaMagedm"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/AhmdZanoon.png",width:"32",height:"32",alt:"@AhmdZanoon"})," ",(0,a.jsx)(e.a,{href:"https://github.com/AhmdZanoon",children:"@AhmdZanoon"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/MustafaAgamy.png",width:"32",height:"32",alt:"@MustafaAgamy"})," ",(0,a.jsx)(e.a,{href:"https://github.com/MustafaAgamy",children:"@MustafaAgamy"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/magdyheiba.png",width:"32",height:"32",alt:"@magdyheiba"})," ",(0,a.jsx)(e.a,{href:"https://github.com/magdyheiba",children:"@magdyheiba"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/Mochxd.png",width:"32",height:"32",alt:"@Mochxd"})," ",(0,a.jsx)(e.a,{href:"https://github.com/Mochxd",children:"@Mochxd"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/KyrillosNageh.png",width:"32",height:"32",alt:"@KyrillosNageh"})," ",(0,a.jsx)(e.a,{href:"https://github.com/KyrillosNageh",children:"@KyrillosNageh"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/amfarid.png",width:"32",height:"32",alt:"@amfarid"})," ",(0,a.jsx)(e.a,{href:"https://github.com/amfarid",children:"@amfarid"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/Mohab-Osama.png",width:"32",height:"32",alt:"@Mohab-Osama"})," ",(0,a.jsx)(e.a,{href:"https://github.com/Mohab-Osama",children:"@Mohab-Osama"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/RihamMostafa.png",width:"32",height:"32",alt:"@RihamMostafa"})," ",(0,a.jsx)(e.a,{href:"https://github.com/RihamMostafa",children:"@RihamMostafa"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/MhmdElGazzar.png",width:"32",height:"32",alt:"@MhmdElGazzar"})," ",(0,a.jsx)(e.a,{href:"https://github.com/MhmdElGazzar",children:"@MhmdElGazzar"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/MohamedHazem95.png",width:"32",height:"32",alt:"@MohamedHazem95"})," ",(0,a.jsx)(e.a,{href:"https://github.com/MohamedHazem95",children:"@MohamedHazem95"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/mohamedtawfek05354.png",width:"32",height:"32",alt:"@mohamedtawfek05354"})," ",(0,a.jsx)(e.a,{href:"https://github.com/mohamedtawfek05354",children:"@mohamedtawfek05354"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/samiir95.png",width:"32",height:"32",alt:"@samiir95"})," ",(0,a.jsx)(e.a,{href:"https://github.com/samiir95",children:"@samiir95"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/MamdouhMansour.png",width:"32",height:"32",alt:"@MamdouhMansour"})," ",(0,a.jsx)(e.a,{href:"https://github.com/MamdouhMansour",children:"@MamdouhMansour"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/Kinasr.png",width:"32",height:"32",alt:"@Kinasr"})," ",(0,a.jsx)(e.a,{href:"https://github.com/Kinasr",children:"@Kinasr"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/MahmoudMabrok.png",width:"32",height:"32",alt:"@MahmoudMabrok"})," ",(0,a.jsx)(e.a,{href:"https://github.com/MahmoudMabrok",children:"@MahmoudMabrok"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/hammad101088.png",width:"32",height:"32",alt:"@hammad101088"})," ",(0,a.jsx)(e.a,{href:"https://github.com/hammad101088",children:"@hammad101088"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/ieZaky.png",width:"32",height:"32",alt:"@ieZaky"})," ",(0,a.jsx)(e.a,{href:"https://github.com/ieZaky",children:"@ieZaky"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/sys123-data.png",width:"32",height:"32",alt:"@sys123-data"})," ",(0,a.jsx)(e.a,{href:"https://github.com/sys123-data",children:"@sys123-data"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/georgii-musikhin.png",width:"32",height:"32",alt:"@georgii-musikhin"})," ",(0,a.jsx)(e.a,{href:"https://github.com/georgii-musikhin",children:"@georgii-musikhin"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/hjsblogger.png",width:"32",height:"32",alt:"@hjsblogger"})," ",(0,a.jsx)(e.a,{href:"https://github.com/hjsblogger",children:"@hjsblogger"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/xValenciax.png",width:"32",height:"32",alt:"@xValenciax"})," ",(0,a.jsx)(e.a,{href:"https://github.com/xValenciax",children:"@xValenciax"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/MarwaYoussef1.png",width:"32",height:"32",alt:"@MarwaYoussef1"})," ",(0,a.jsx)(e.a,{href:"https://github.com/MarwaYoussef1",children:"@MarwaYoussef1"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/sultanpaymob.png",width:"32",height:"32",alt:"@sultanpaymob"})," ",(0,a.jsx)(e.a,{href:"https://github.com/sultanpaymob",children:"@sultanpaymob"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/osamaayman1005.png",width:"32",height:"32",alt:"@osamaayman1005"})," ",(0,a.jsx)(e.a,{href:"https://github.com/osamaayman1005",children:"@osamaayman1005"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/Salma2018170.png",width:"32",height:"32",alt:"@Salma2018170"})," ",(0,a.jsx)(e.a,{href:"https://github.com/Salma2018170",children:"@Salma2018170"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/TarekGaafar.png",width:"32",height:"32",alt:"@TarekGaafar"})," ",(0,a.jsx)(e.a,{href:"https://github.com/TarekGaafar",children:"@TarekGaafar"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/Waleedmohammed.png",width:"32",height:"32",alt:"@Waleedmohammed"})," ",(0,a.jsx)(e.a,{href:"https://github.com/Waleedmohammed",children:"@Waleedmohammed"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/khaledskhamis.png",width:"32",height:"32",alt:"@khaledskhamis"})," ",(0,a.jsx)(e.a,{href:"https://github.com/khaledskhamis",children:"@khaledskhamis"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/themosaeed.png",width:"32",height:"32",alt:"@themosaeed"})," ",(0,a.jsx)(e.a,{href:"https://github.com/themosaeed",children:"@themosaeed"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/we
1samhamed.png",width:"32",height:"32",alt:"@wesamhamed"})," ",(0,a.jsx)(e.a,{href:"https://github.com/wesamhamed",children:"@wesamhamed"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/DavidIshakGorgy.png",width:"32",height:"32",alt:"@DavidIshakGorgy"})," ",(0,a.jsx)(e.a,{href:"https://github.com/DavidIshakGorgy",children:"@DavidIshakGorgy"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/BojteTamas.png",width:"32",height:"32",alt:"@BojteTamas"})," ",(0,a.jsx)(e.a,{href:"https://github.com/BojteTamas",children:"@BojteTamas"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/blacelle.png",width:"32",height:"32",alt:"@blacelle"})," ",(0,a.jsx)(e.a,{href:"https://github.com/blacelle",children:"@blacelle"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/Ayanasrallah.png",width:"32",height:"32",alt:"@Ayanasrallah"})," ",(0,a.jsx)(e.a,{href:"https://github.com/Ayanasrallah",children:"@Ayanasrallah"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/AmrAdelElkholy.png",width:"32",height:"32",alt:"@AmrAdelElkholy"})," ",(0,a.jsx)(e.a,{href:"https://github.com/AmrAdelElkholy",children:"@AmrAdelElkholy"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/ammaralfaqi11.png",width:"32",height:"32",alt:"@ammaralfaqi11"})," ",(0,a.jsx)(e.a,{href:"https://github.com/ammaralfaqi11",children:"@ammaralfaqi11"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/amlosman.png",width:"32",height:"32",alt:"@amlosman"})," ",(0,a.jsx)(e.a,{href:"https://github.com/amlosman",children:"@amlosman"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/ahmednasr95.png",width:"32",height:"32",alt:"@ahmednasr95"})," ",(0,a.jsx)(e.a,{href:"https://github.com/ahmednasr95",children:"@ahmednasr95"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/ahmed-madyan.png",width:"32",height:"32",alt:"@ahmed-madyan"})," ",(0,a.jsx)(e.a,{href:"https://github.com/ahmed-madyan",children:"@ahmed-madyan"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/AhmedHelalyy.png",width:"32",height:"32",alt:"@AhmedHelalyy"})," ",(0,a.jsx)(e.a,{href:"https://github.com/AhmedHelalyy",children:"@AhmedHelalyy"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/A-Alii.png",width:"32",height:"32",alt:"@A-Alii"})," ",(0,a.jsx)(e.a,{href:"https://github.com/A-Alii",children:"@A-Alii"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/AbdelrahmanFahd.png",width:"32",height:"32",alt:"@AbdelrahmanFahd"})," ",(0,a.jsx)(e.a,{href:"https://github.com/AbdelrahmanFahd",children:"@AbdelrahmanFahd"})]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)("img",{src:"https://github.com/Abdelrhman-Ellithy.png",width:"32",height:"32",alt:"@Abdelrhman-Ellithy"})," ",(0,a.jsx)(e.a,{href:"https://github.com/Abdelrhman-Ellithy",children:"@Abdelrhman-Ellithy"})]}),"\n"]}),"\n",(0,a.jsx)(e.h2,{id:"-get-started-in-seconds",children:"\u{1F680} Get Started in Seconds"}),"\n",(0,a.jsx)(e.p,{children:"Import the SHAFT BOM once, then use the modular engine:"}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-xml",children:"<dependencyManagement>\n <dependencies>\n <dependency>\n <groupId>io.github.shafthq</groupId>\n <artifactId>shaft-bom</artifactId>\n <version>10.3.20260712</version>\n <type>pom</type>\n <scope>import</scope>\n </dependency>\n </dependencies>\n</dependencyManagement>\n\n<dependencies>\n <dependency>\n <groupId>io.github.shafthq</groupId>\n <artifactId>shaft-engine</artifactId>\n </dependency>\n</dependencies>\n"})}),"\n",(0,a.jsx)(e.h2,{id:"-join-the-conversation",children:"\u{1F4AC} Join the Conversation"}),"\n",(0,a.jsx)(e.p,{children:"We'd love to hear what you think! Found a bug? Have an idea? Just want to say hi?"}),"\n",(0,a.jsxs)(e.ul,{children:["\n",(0,a.jsxs)(e.li,{children:["\u2B50 ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE",children:"Star SHAFT on GitHub"})," \u2014 it helps more than you think"]}),"\n",(0,a.jsxs)(e.li,{children:["\u{1F4A1} Share feedback or ideas in ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/issues",children:"SHAFT_ENGINE Issues"})," ",(0,a.jsx)(e.em,{children:"(this post originally linked GitHub Discussions, which is no longer enabled for the repository)"})]}),"\n",(0,a.jsxs)(e.li,{children:["\u{1F41B} ",(0,a.jsx)(e.a,{href:"https://github.com/ShaftHQ/SHAFT_ENGINE/issues/new",children:"Report an Issue"})," \u2014 help us squash bugs faster"]}),"\n",(0,a.jsxs)(e.li,{children:["\u{1F4D6}
1 ",(0,a.jsx)(e.a,{href:"https://shafthq.github.io/docs/start/overview",children:"Read the Docs"})," \u2014 dive deeper into SHAFT"]}),"\n"]}),"\n",(0,a.jsx)(e.p,{children:"Thanks for being part of the SHAFT journey. Until the next release \u2014 happy testing! \u{1F3AF}"})]})}function d(t={}){let{wrapper:e}={...(0,s.R)(),...t.components};return e?(0,a.jsx)(e,{...t,children:(0,a.jsx)(c,{...t})}):c(t)}},28453(t,e,h){h.d(e,{R:()=>n,x:()=>l});var i=h(96540);let a={},s=i.createContext(a);function n(t){let e=i.useContext(s);return i.useMemo(function(){return"function"==typeof t?t(e):{...e,...t}},[e,t])}function l(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(a):t.components||a:n(t.components),i.createElement(s.Provider,{value:e},t.children)}},27548(t){t.exports=JSON.parse('{"permalink":"/blog/release-10.3.20260712","editUrl":"https://github.com/ShaftHQ/shafthq.github.io/blob/master/blog/2026-07-12-release-10.3.20260712.md","source":"@site/blog/2026-07-12-release-10.3.20260712.md","title":"\u{1F680} SHAFT 10.3.20260712: What\'s New and Why You Should Upgrade Today","description":"Hey there, SHAFT community! \u{1F44B}","date":"2026-07-12T00:00:00.000Z","tags":[{"inline":true,"label":"shaft_engine","permalink":"/blog/tags/shaft-engine"},{"inline":true,"label":"release","permalink":"/blog/tags/release"},{"inline":true,"label":"changelog","permalink":"/blog/tags/changelog"},{"inline":true,"label":"test-automation","permalink":"/blog/tags/test-automation"},{"inline":true,"label":"open-source","permalink":"/blog/tags/open-source"}],"readingTime":9.06,"hasTruncateMarker":true,"authors":[{"name":"AutoBot","title":"SHAFT\'s AI-Powered Release Assistant","url":"https://github.com/ShaftHQ/SHAFT_ENGINE","imageURL":"/img/autobot-avatar.svg","key":"autobot","page":null}],"frontMatter":{"slug":"release-10.3.20260712","title":"\u{1F680} SHAFT 10.3.20260712: What\'s New and Why You Should Upgrade Today","authors":["autobot"],"tags":["shaft_engine","release","changelog","test-automation","open-source"]},"unlisted":false,"prevItem":{"title":"\u{1F680} SHAFT 10.3.20260713: What\'s New and Why You Should Upgrade Today","permalink":"/blog/release-10.3.20260713"},"nextItem":{"title":"\u{1F680} SHAFT 10.3.20260711: What\'s New and Why You Should Upgrade Today","permalink":"/blog/release-10.3.20260711"}}')}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.