Skip to content

Releases: ShaftHQ/SHAFT_ENGINE

10.3.20260824

Choose a tag to compare

@MohabMohie MohabMohie released this 24 Aug 18:08
63c8e5e

SHAFT 10.3.20260824

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

Enhancements

Bug Fixes

Full Changelog: 10.3.20260820...10.3.20260824

10.3.20260820

Choose a tag to compare

@MohabMohie MohabMohie released this 20 Aug 21:45
d5ff653

SHAFT 10.3.20260820

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

  • feat(harness): portable work-item skill and open-issue Spec Kit hygiene by @MohabMohie in #5190
  • fix(harness): pin playbook first-occurrence companion-docs nouns by @MohabMohie in #5194
  • fix(ci): pin pilot-release isolation fail-closed (#5184 #5185) by @MohabMohie in #5196
  • fix: classify mvn test as runtime and gate coverage continue-on-error by @MohabMohie in #5197
  • fix(doctor): firstFailedLocator same-line getBy* and Autobot shared sanitize by @MohabMohie in #5199
  • fix(harness): pin index-v2 order, retry nested hook flake, promote .toml by @MohabMohie in #5200
  • fix(ci): align pilot-release coverage policy for three JVM jobs by @MohabMohie in #5201
  • fix(harness): specialize Spec Kit hygiene rewrites per issue acceptance by @MohabMohie in #5202
  • fix(harness): map native plan surfaces for R25 receipt events by @MohabMohie in #5203
  • docs(memory): persist leftover local and remote gotchas (#5205) by @MohabMohie in #5206
  • test: replace Local E2E public login sites with repo-owned fixtures by @MohabMohie in #5215
  • fix: emit one Allure step per reported action including navigate by @MohabMohie in #5219
  • fix: split IntelliJ Marketplace verify and publish timeouts by @MohabMohie in #5222
  • fix: lock remaining Allure action-step proofs by @MohabMohie in #5226
  • fix: derive ChaosEngine install source from the invocation URL by @MohabMohie in #5228
  • fix: gate ChaosEngine local bootstrap on a source-tree marker by @MohabMohie in #5230
  • fix: wait out Marketplace listing lag after publishPlugin by @MohabMohie in #5235
  • fix: repair drifted ChaosEngine installs on upgrade by @MohabMohie in #5238
  • fix: escape RFC 8259 control chars in trace JSON by @MohabMohie in #5241
  • test: finish Local E2E fixture leftovers from #5215 by @MohabMohie in #5244
  • feat: portable orchestrator mode and planning follow-ups by @MohabMohie in #5252
  • fix: leftover RFC 8259, Graphify, Memory, Marketplace, ThreadLocal defects by @MohabMohie in #5259
  • IntelliJ Assistant setup, selected-agent launch, and Agentic Tools installer by @MohabMohie in #5251
  • Refresh IntelliJ setup screenshot evidence after #5251 by @MohabMohie in #5262
  • fix(intellij): show Select an option when no agent is selected by @MohabMohie in #5264
  • fix: share one {repo}_main MemPalace wing across worktrees by @MohabMohie in #5268
  • fix: accept MemPalace origin sidecar and pin sqlite_exact MCP env by @MohabMohie in #5269
  • fix(agent): make project hooks authoritative by @MohabMohie in #5270
  • fix(agent): record wrapped plan receipt events by @MohabMohie in #5272
  • fix(ci): bound release version gate checkout by @MohabMohie in #5280

Full Changelog: 10.3.20260818...10.3.20260820

10.3.20260818

Choose a tag to compare

@MohabMohie MohabMohie released this 18 Aug 18:31
7e69e0b

SHAFT 10.3.20260818

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

  • Bundle caveman skill + proxy in ChaosEngine by @MohabMohie in #5027
  • Vendor verbatim Caveman and Ponytail companions by @MohabMohie in #5029
  • feat(chaos-engine): cut companion token tax and ship MIT notices by @MohabMohie in #5031
  • fix(chaos-engine): keep host receipts valid after core uninstall by @MohabMohie in #5036
  • fix(infrastructure): accept current macOS hosts for Playwright setup by @MohabMohie in #5037
  • refactor(chaos-engine): move always-on research receipt behind a reference by @MohabMohie in #5038
  • feat(setup): own iOS and Windows Appium runtime lifecycle by @MohabMohie in #5039
  • feat(setup): own managed Selenium Grid lifecycle by @MohabMohie in #5042
  • feat(setup): own managed Healenium backend lifecycle by @MohabMohie in #5044
  • feat(setup): own managed dev-only ReportPortal lifecycle by @MohabMohie in #5046
  • feat(setup): own managed BrowserStack Local lifecycle by @MohabMohie in #5048
  • fix(setup): wait for BrowserStack Local process death by @MohabMohie in #5049
  • feat(chaos-engine): load Caveman and Ponytail by default by @MohabMohie in #5054
  • feat(setup): diagnose host agent tools without installing them by @MohabMohie in #5052
  • test(setup): add host-gated iOS and Windows Appium acceptance by @MohabMohie in #5058
  • test(setup): audit catalog-vs-provider coverage by @MohabMohie in #5057
  • fix(hooks): make Claude settings command Grok-resolvable on Windows by @MohabMohie in #5062
  • fix(harness): require a MemPalace attempt after plan approval by @MohabMohie in #5064
  • feat(scripts): workstation local Java coding-agent loop by @MohabMohie in #5063
  • feat(scripts): fail-closed cited-path gate for shaft-architect by @MohabMohie in #5069
  • feat(scripts): centralize MemPalace and Graphify access from worktrees by @MohabMohie in #5070
  • fix(scripts): drop empty existing cited-path blocker by @MohabMohie in #5075
  • fix(scripts): rewrite worktree git index to v2 before Aider by @MohabMohie in #5077
  • fix(chaos-engine): degrade SHAFT doctor when checkout palace is missing by @MohabMohie in #5076
  • fix(scripts): accept --query on knowledge_stores search by @MohabMohie in #5085
  • feat(chaos-engine): add portable local-coding-delegate skill by @MohabMohie in #5083
  • feat(chaos-engine): portable must-run lifecycle hooks by @MohabMohie in #5091
  • feat(heal): bound managed local candidate reranking by @MohabMohie in #4988
  • feat(chaos-engine): Windows and POSIX one-liner installers by @MohabMohie in #5094
  • fix(chaos-engine): pin babysit duties and drop flagged installer parsers by @MohabMohie in #5095
  • fix(ci): keep infrastructure unit tests off nightly Grid E2E by @MohabMohie in #5096
  • fix(deps): remediate 18 Dependabot alerts (netty, httpcore5, log4j-api) by @MohabMohie in #5098
  • docs(memory): source-control non-private Memory objects by @MohabMohie in #5099
  • feat(mcp): add grok installer target by @MohabMohie in #5109
  • Keep origin brand and research out of adopter installs by @MohabMohie in #5106
  • feat(intellij): add Grok CLI assistant route by @MohabMohie in #5110
  • fix(chaos-engine): accept healthy Memory v4 and exclude-first MemPalace YAML by @MohabMohie in #5112
  • feat(pilot): add LocalAgentClient.GROK Autobot commands by @MohabMohie in #5111
  • feat(mcp): add grok loop to shaft_project_init_agents by @MohabMohie in #5113
  • fix(chaos-engine): persist portable MCP interpreters by @MohabMohie in #5114
  • fix(chaos-engine): skip empty SHAFT checkout palace init by @MohabMohie in #5116
  • docs(memory): record Grok product-install decision by @MohabMohie in #5115
  • fix(harness): treat unclassified Graphify skips as coverage by @MohabMohie in #5118
  • feat(mcp): add ChaosEngine-shaped SHAFT one-liner installers by @MohabMohie in #5121
  • feat(harness): force-include SHAFT families in MemPalace mine by @MohabMohie in #5123
  • feat(tools): add Soup Agent Forge row-contract harness by @MohabMohie in #5129
  • feat(harness): pin sequential local-coder dispatch (#5126) by @MohabMohie in #5134
  • feat(tools): harvest local-loop reports into Soup JSONL by @MohabMohie in #5135
  • fix(ai): bound Heal, Capture, and MCP callers behind AiExecutionService by @MohabMohie in #5122
  • feat(trace): enforce session archive budgets and integrity by @MohabMohie in #5139
  • test(tools): pin source_endpoint and accept quoted operationIds by @MohabMohie in #5148
  • feat(ai): close managed local AI operations, inventory, and docs (#4866) by @MohabMohie in #5140
  • feat(harness): require companion user-guide PRs (#5146) by @MohabMohie in #5149
  • docs(memory): clear project-scope task and record Soup objects by @MohabMohie in #5153
  • docs(harness): ground first plans and pin Memory project-scope by @MohabMohie in #5159
  • fix(doctor): bound provider diagnosis payloads and extend locator redaction by @MohabMohie in #5164
  • fix(harness): fail project-scoped Memory task and branch by @MohabMohie in #5162
  • docs(harness): discover companion docs root in AGENTS.md (#5152) by @MohabMohie in #5163
  • docs(harness): SHAFT multi-ticket assignments orchestrate by default by @MohabMohie in #5167
  • docs(harness): pin owner-gated soup train and never-overwrite rules by @MohabMohie in #5158
  • test(harness): pin companion-docs sibling path and AI-detail nouns (#5154, #5155) by @MohabMohie in #5170
  • fix(ci): tolerate Codecov action 429 on PR Gate and retry watcher 503 by @MohabMohie in #5169
  • fix(harness): keep report.json when Aider writes outside the allowlist by @MohabMohie in #5168
  • fix(ci): wrap Flutter emulator restartable builds with build_retry.sh by @MohabMohie in #5177
  • test(harness): pin companion-docs first-occurrence and leftover nouns (#5173, #5174, #5175) by @MohabMohie in #5176
  • ci: isolate shaft-pilot-release jobs for faster feedback by @MohabMohie in #5181

Full Changelog: 10.3.20260817...10.3.20260818

10.3.20260817

Choose a tag to compare

@MohabMohie MohabMohie released this 16 Aug 23:53
9c803b2

SHAFT 10.3.20260817

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

Read more

10.3.20260809

Choose a tag to compare

@MohabMohie MohabMohie released this 09 Aug 18:53
e38c793

SHAFT 10.3.20260809

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

Full Changelog: 10.3.20260806...10.3.20260809

10.3.20260806

Choose a tag to compare

@MohabMohie MohabMohie released this 09 Aug 00:37
c332d1d

SHAFT 10.3.20260806

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

Full Changelog: 10.3.20260801...10.3.20260806

10.3.20260801

Choose a tag to compare

@MohabMohie MohabMohie released this 02 Aug 06:52
2134fa7

SHAFT 10.3.20260801

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

Full Changelog: 10.3.20260728...10.3.20260801

10.3.20260728

Choose a tag to compare

@MohabMohie MohabMohie released this 28 Jul 19:36
772b9fd

SHAFT 10.3.20260728

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

  • docs: fix inaccurate facts and converge the root entry docs by @MohabMohie in #4295
  • docs: converge the modular-era feature catalog (774 -> 514 lines) by @MohabMohie in #4296
  • memory: record docs-verification learnings from the root docs quality pass by @MohabMohie in #4297
  • Upgrade CODE_OF_CONDUCT.md to Contributor Covenant v2.1 by @MohabMohie in #4298
  • Fix SafariDriver accessible-name catch and native tag-name case sensitivity by @MohabMohie in https://github.com//pull/4301 Add IntelliJ SHAFT capture-demo scaffolding: reset-scripted demo project, local-scope Windows-MCP installer, runbook by @MohabMohie in https://github.com//pull/4302 Wire FlutterTest.java into the Android_Native_BrowserStack nightly job by @MohabMohie in https://github.com//pull/4303 Fix #4304: shorten 2 overlong .memory/memory/gotchas id pairs by @MohabMohie in https://github.com//pull/4305 test: migrate MultipleElementsFailureTest off data: URL to TestPageServer by @MohabMohie in https://github.com//pull/4309 test: drop dead ${HIDDEN} placeholder and unused button/script in NoSuchElementFailureTest by @MohabMohie in https://github.com//pull/4312 Fix #4308: revert unverified FlutterTest enablement in Android_Native_BrowserStack nightly by @MohabMohie in https://github.com//pull/4315 Fix #4311: capture_api_generate dropped codeBlocks on UNCONFIRMED status by @MohabMohie in https://github.com//pull/4317 memory: record gotcha -- subagent sessions get gh pr merge --auto blocked by classifier by @MohabMohie in https://github.com//pull/4323 Group current-agent label + settings gear into one chip in ShaftAssistantPanel routeRow by @MohabMohie in https://github.com//pull/4320 Fix #4319: local-agent approval selector never showed, final answer duplicated by @MohabMohie in https://github.com//pull/4324 Fix #4314: installer wizard polish pass (dead copy, agent check, merged buttons, recheck icon, blank Next badge) by @MohabMohie in https://github.com//pull/4325 Fix #4313: build a correctly-wired Flutter demo app in CI for Android_Native_BrowserStack by @MohabMohie in https://github.com//pull/4329 Group current-agent label + configure gear into one chip in ShaftSettingsConfigurable by @MohabMohie in https://github.com//pull/4330 memory: mark Flags gotcha resolved by PR #4331 by @MohabMohie in https://github.com//pull/4333 Fixes #4328: reset Flags to pristine snapshot at test-class boundaries by @MohabMohie in https://github.com//pull/4331 Fix #4321: self-heal MultipleElementsFoundException when exactly one match is actionable by @MohabMohie in https://github.com//pull/4326 Wire MultipleElementsFailureTest into pr-gate.yml's shaft-engine unit-tests step by @MohabMohie in https://github.com//pull/4337 Fixes #4334 by @MohabMohie in https://github.com//pull/4338 memory: record TouchActions AssertionError vs RuntimeException gotcha by @MohabMohie in https://github.com//pull/4342 Fixes #4332: last-resort disambiguation for touch/tap's identifyUniqueElement path by @MohabMohie in https://github.com//pull/4340 Fixes #4327 by @MohabMohie in https://github.com//pull/4343 Fixes #4341: ElementActionsHelper.failAction throws RuntimeException, not AssertionError by @MohabMohie in https://github.com//pull/4344 Fixes #4339: wire TouchMultipleElementsFailureTest and LazyLoadingFixtureLiveTest into pr-gate.yml by @MohabMohie in https://github.com//pull/4345 Optimize memory subsystem: prune 22 dead entries, SessionStart memory nudge, delete-over-stale-mark policy by @MohabMohie in https://github.com//pull/4347 Record gotcha: Agent tool isolation:worktree worktrees the orchestrator repo by @MohabMohie in https://github.com//pull/4348 Merge 6 findings from the 22-community-skills integration scan by @MohabMohie in https://github.com//pull/4351 Full Changelog: https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.3.20260727...10.3.20260728

10.3.20260727

Choose a tag to compare

@MohabMohie MohabMohie released this 27 Jul 19:40
a62c064

SHAFT 10.3.20260727

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

  • Revert global -Xmx1024m Surefire cap that OOMs E2E and Local E2E nightlies by @MohabMohie in #4009
  • Fix #3996: FlutterIntegration TouchActions.swipeElementIntoView issues flutter: scrollTillVisible by @MohabMohie in #4010
  • Skill corpus: cut the always-on metadata tax and fix three routing/accuracy defects by @MohabMohie in #4008
  • Dedup owner-binding orchestrator rules: chaos-engine.md -> act-as-fable by @MohabMohie in #4013
  • Fix(mcp): capture_api_start networkOptions schema wrongly requires all 6 fields by @MohabMohie in #4012
  • Harness: reconcile canonical settings.json with deployed ~/.claude values by @MohabMohie in #4015
  • Fix: chain recorded accessible name onto ROLE-strategy capture locators by @MohabMohie in #4011
  • Memory: shaft-mcp BOM import ordering silently beats reactor/sibling pins (selenium, netty, postgresql) by @MohabMohie in #4020
  • Fix two of three Live Tools Nightly E2E leads (#3988) by @MohabMohie in #4022
  • Fix #4001 (item 1) + #4004: FlutterAndroidDriver/FlutterIOSDriver construction and loud scroll-to-end guard by @MohabMohie in #4023
  • Reconcile locator-strategy guidance across the skill corpus by @MohabMohie in #4031
  • Deprecate appium_flutterfinder_java; migrate FlutterTest.java to native java-client Flutter API by @MohabMohie in #4033
  • Fix: close 12 open Dependabot alerts in shaft-mcp (netty + postgresql) by @MohabMohie in #4019
  • Memory: record 3 gotchas (scanner patch fragility, TestNG -Dtest=A+B, XML comment --) by @MohabMohie in #4036
  • Fix: measure real locator uniqueness for ROLE/LABEL capture-recorder candidates by @MohabMohie in #4035
  • Fix #4006: exclude Playwright E2E classes from Grid-job GLOBAL_TESTING_SCOPE by @MohabMohie in #4039
  • Fix #4038: exclude LazyLoadingFixtureLiveTest from Grid-job GLOBAL_TESTING_SCOPE by @MohabMohie in #4043
  • Enforce POM in generated code + flip SMART_LOCATOR severity to ERROR by @MohabMohie in #4042
  • Fix: retry local Safari session creation after clearing a stale pairing (#1548) by @MohabMohie in #4041
  • Fix(mcp): annotate CaptureCodegenStartRequest fields with @ToolParam descriptions by @MohabMohie in #4050
  • Fix #4040: propagate throttle-test properties onto the background thread by @MohabMohie in #4051
  • Fix #4032: drop appium_flutterfinder_java dependency by @MohabMohie in #4049
  • Fix #4026: server-side ACCESSIBLE_NAME backfill + in-page XPath emitter by @MohabMohie in #4052
  • Fix #4048: harvest guidance from spec-kit / humanizer / taste-skill (SHAFT_ENGINE half) by @MohabMohie in #4058
  • Fix #3991: shorten over-length gotcha memory filename by @MohabMohie in #4059
  • Fix #4002: HealingManager opts out of AppiumBy.FlutterBy locators by @MohabMohie in #4055
  • Fix #4014: pin the excludeAssets<->includeAssetTypes polarity inversion by @MohabMohie in #4056
  • Fix #4007: force UTF-8 stdout in extract_allure_failures.py by @MohabMohie in #4060
  • Fix #4044: enforce Smart Locator/POM guardrail ERRORs at the MCP boundary by @MohabMohie in #4061
  • Memory: record four session gotchas (thread-local Properties, worktree node_modules, guardrail enforcement, shared .m2 cache) by @MohabMohie in #4063
  • Fix #4053: clarify bridges are read as files, not Skill-invocable by @MohabMohie in #4065
  • Fix #4057: wire enabled/captureRequestBodies/captureResponseBodies through network capture by @MohabMohie in #4064
  • Test: reproduce #4046 Guided Workflows Live E2E hang (disabled, no fix) by @MohabMohie in #4068
  • Fix #4021: decouple the panel gate fixture from HealerService's repositoryRoot check by @MohabMohie in #4062
  • Remove orphaned unitTestSuite.xml by @MohabMohie in #4069
  • Fix #4066: bound CaptureManager.invoke() so a recorder hang cannot hang the MCP tool call forever by @MohabMohie in #4073
  • Memory: record four gotchas from #4021, #4046, #4066, #4014, #4057 by @MohabMohie in #4075
  • Fix reentrant WebDriver call inside CDP Fetch interception callback (#4046) by @MohabMohie in #4076
  • Fix #4081: bound every CI workflow job with timeout-minutes by @MohabMohie in #4082
  • Fix #4084: reconcile orchestrator concurrency cap to 2-4, strengthen plan/architecture duty by @MohabMohie in #4085
  • Memory: npx cache is a second, unpatched @aictx/memory copy by @MohabMohie in #4087
  • Fix #4078: detect Cucumber-over-TestNG runs from suite classes, not the call stack by @MohabMohie in #4089
  • Fix #4088: validate the PATH-resolved memory CLI, not an npx-cached copy by @MohabMohie in #4093
  • Fix #4077: stop acceptNetworkEvent() reentrant getWindowHandle() inside the CDP Fetch callback by @MohabMohie in #4092
  • Fix #4080: cover both auto-close mechanisms in work-github playbook by @MohabMohie in #4096
  • Fix #4037: stop silent no-op when remote Grid session lacks CDP access for basic-auth by @MohabMohie in #4095
  • Fix #4074: bound JunitExtension retry re-execution timeout by @MohabMohie in #4094
  • Fix #4072: skip Gemini thought parts and surface finishReason in parseStructuredPayload by @MohabMohie in #4099
  • Fix #4101: remove false branch-naming auto-close claim from playbook by @MohabMohie in #4102
  • Fix #4046: fix GuidedWorkflowLiveE2ETest's premature-stop race in the API capture wait gate by @MohabMohie in #4100
  • Close the archive output stream when unpacking fails by @Mochxd in #4098
  • Fix #4079: fail zero-scenario Cucumber CI jobs instead of reporting green by @MohabMohie in #4106
  • Fix #4105: guard post-test-report's find call against an absent allure-results directory by @MohabMohie in #4109
  • Fix #4103: forbid delegate CI-watch, add five Learning Loop entries by @MohabMohie in #4108
  • Fix #4037: stop pre-registering AddHasAuthentication, let Augmenter sequence it correctly by @MohabMohie in #4104
  • Fix #4107: distinguish Gemini output-truncation from malformed JSON by @MohabMohie in #4111
  • Fix #4071: delete redundant cucumber_testSuite.xml, add orphaned-suite-XML CI guard by @MohabMohie in #4112
  • Fix #4114: make the 20-minute stall watch two-sided by @MohabMohie in #4120
  • Memory: record six gotchas from the #4086 orchestration run by @MohabMohie in #4122
  • Fix #4121: reclaim byte headroom in act-as-fable SKILL.md by @MohabMohie in #4123
  • Fix #4115: add targeted workflow_dispatch inputs to the E2E workflows by @MohabMohie in #4124
  • Fix #4116, #4118: incremental Learning Loop recording and a stall watch that covers local commands by @MohabMohie in #4125
  • Fix #4067: reclaim AGENTS.md byte headroom by moving the routing bridge list out of the budget glob by @MohabMohie in h...
Read more

10.3.20260722

Choose a tag to compare

@MohabMohie MohabMohie released this 22 Jul 14:10
c52c613

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 #3787
  • Closes #3786: fix ShaftTestsPanelTest full-suite + screenshotDir breakage (missed L&F isolation, not a platform latch) by @MohabMohie in #3789
  • memory: record Windows MAX_PATH supersede-shorthand gotcha (Closes #3790) by @MohabMohie in #3791
  • Fix chromium double-HasCdp augmentation, green-masked example CI, and stale sample test data (#3788) by @MohabMohie in #3793
  • Fix failure-screenshot exception masking the real action failure by @MohabMohie in #3796
  • Fix #3794: restore UnsupportedCommandException fallback for remote CDP screenshots by @MohabMohie in #3797
  • Closes #3798: freshen generated project workflow templates + guard against future drift by @MohabMohie in #3799
  • Add GitHub-star CTA to console execution summary on clean runs by @MohabMohie in #3801
  • Add persistent User Guide + Star SHAFT header buttons to Allure 3 reports by @MohabMohie in #3813
  • Resolve loopback-sink sentinel to the tab's real BiDi browsing context by @MohabMohie in #3815
  • Add pr-gate.yml: consolidated path-conditioned PR gate (Phase 1 of #3814) by @MohabMohie in #3818
  • Sync stale API unit tests with the explicit-status and HEAD/OPTIONS refactors by @MohabMohie in #3819
  • Skip supplementary validation evidence when rich evidence is already attached by @MohabMohie in #3823
  • Quit leaked remote sessions on post-creation failure; decouple attempt timeout by @MohabMohie in #3825
  • Pre-stage the classpath OpenCV native into SikuliX's libs folder by @MohabMohie in #3827
  • Tee the Allure failure list into the job log, not only the step summary by @MohabMohie in #3829
  • Restore automaticallyAssertResponseStatusCode after Test_LTMobAPKRelativePath by @MohabMohie in #3831
  • Enable grid preflight fail-fast in nightly E2E; harden readiness and teardown by @MohabMohie in #3828
  • Skip execution-summary rows for retry-suppressed attempts by @MohabMohie in #3832
  • Capture the Appium server's own log in the Windows desktop nightly job by @MohabMohie in #3830
  • Record six durable gotchas from the nightly-campaign and CI-overhaul session by @MohabMohie in #3834
  • Match the binary attachment route on whole tokens, not raw substrings by @MohabMohie in #3835
  • CI overhaul Phase 3: fold per-area PR workflows into pr-gate, narrow security.yml by @MohabMohie in #3836
  • Annotate retry-suppressed console lines as Failed (retried), not Skipped by @MohabMohie in #3837
  • Read the two legacy remote-server timeouts live instead of caching at class-load by @MohabMohie in #3838
  • Decompose reportValidationState into focused evidence/outcome helpers (NPath 56,880 → per-method ≤4 decisions) by @MohabMohie in #3839
  • Add browser-level regressions for the async-login loopback race by @MohabMohie in #3841
  • Fix guidance gate: trim act-as-fable SKILL.md and shorten overlong gotcha ids by @MohabMohie in #3844
  • Trim the dead rich-evidence flag from ValidationsHelper's driver paths by @MohabMohie in #3843
  • Fix #3821: isolate CheckpointCounter state to stop AllureManagerCoverageUnitTest batch flake by @MohabMohie in #3847
  • Escape raw control bytes reaching the console/job log sink by @MohabMohie in #3848
  • Harness optimization: adopt harvested bmad-method patterns + codebase examples pass by @MohabMohie in #3850
  • Fix Chromium alert auto-dismiss and invalid-select test on modern Chrome/Edge by @MohabMohie in #3851
  • pr-gate: add path-conditioned unit-test leg(s) for core Java modules by @MohabMohie in #3852
  • Add CheckpointCounter.resetForTesting() and route test resetters through it (#3846) by @MohabMohie in #3853
  • Phase 4 of #3814: notify-nightly-failure composite for the 3 nightly workflows by @MohabMohie in #3855
  • Gitignore runtime-regenerated properties/ in shaft-ai/shaft-doctor/shaft-pilot-core (#3856) by @MohabMohie in #3857
  • Fix Windows_Appium_Desktop_Local: keep the Appium server alive across the test (#3806) by @MohabMohie in #3858
  • CI overhaul Phase 3 sweep: remove dead validate_refresh_workflow guard (#3814) by @MohabMohie in #3859
  • Agent harness revamp: Chaos Engine orchestrator + coder/reviewer/tester L1 agents by @MohabMohie in #3862
  • CI overhaul Phase 5: composite dedup, sharded-report retirement, guidance-rot sweep (#3814 remainder) by @MohabMohie in #3865
  • Report BrowserActionsHelper failures under the correct class by @Mochxd in #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 #3881
  • Tool sweep T4/#3870: index-fed IntelliJ deterministic tool selector by @MohabMohie in #3882
  • Coverage pass: sweep new/changed classes to 80-90% (JaCoCo-measured) by @MohabMohie in #3886
  • Memory: tool-sweep session gotchas by @MohabMohie in #3888
  • Tool sweep T6/#3872: live E2E — every MCP/CLI service from the IntelliJ chat view by @MohabMohie in #3887
  • Close-out batch 2026-07-21: coverage wiring, tool-schema, hygiene, and IntelliJ selector follow-ups (#3889) by @MohabMohie in #3891
  • Follow-ups from the 2026-07-21 batch: gitignore dedupe, omitted-targetBrowser e2e, catalog-diff note, NPath flatten (#3890) by @MohabMohie in #3898
  • (#3897): dedupe module-local .gitignore stubs against the root scheme by @MohabMohie in #3903
  • #3902: explicit MIT license metadata across published modules by @MohabMohie in #3904
  • fix #3899: driver_initialize mobile args + stale union-status test assertions by @MohabMohie in #3906
  • #3900: fix pr-gate shaft-cli reactor resolution and shaded-jar false positives by @MohabMohie in #3901
  • fix #3905: generate the missing Role import for ROLE-strategy locators by @MohabMohie in #3907
  • shaft-mcp: fix McpMobileInitOptions schema wrongly requiring every nested field by @MohabMohie in #3911
  • shaft-intellij: fix GuidedWorkflowPanel stale capture_start mode/includeSensitiveValues args by @MohabMohie in #3913
  • shaft-intellij: drive element_type/element_click in live E2E after #3881 A1 tool unification by @MohabMohie in #3915
  • shaft-intellij: send sessionPath/backend to unified capture_code_blocks from the guided workflow panel by @MohabMohie in #3924
  • Fix grid-CI test-isolation and portability bugs (S2) by @MohabMohie in #3936
  • Fix Maven Central release: extend publish poll timeout + add failure alerting by @MohabMohie in #3937
  • shaft-intellij: add live E2E for the record-api-to-codegen chain by @MohabMohie in #3938
  • Fix macOS nightly Local E2E heap OOM: cap surefireArgLin...
Read more