Releases: ShaftHQ/SHAFT_ENGINE
Release list
10.3.20260824
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
- feat(chaos-engine): add transparent installer UX by @MohabMohie in #5320
- fix(chaos-engine): harden installer and merge audit by @MohabMohie in #5327
Bug Fixes
- fix: curate releases and harden lifecycle hooks by @MohabMohie in #5310
- Fix ChaosEngine research, Plan Mode, and managed runtimes by @MohabMohie in #5316
- Fix R25 research-first hook failures by @MohabMohie in #5319
- fix(chaos-engine): installer probe, ETA, Quantum Mandate, failure UX by @MohabMohie in #5334
- Isolate sessions in worktrees and retire act-as-mohab by @MohabMohie in #5332
- fix(chaos-engine): harden Grok lifecycle writes by @MohabMohie in #5341
Full Changelog: 10.3.20260820...10.3.20260824
10.3.20260820
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
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
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
- feat: prove and enforce SHAFT skill quality across native clients by @MohabMohie in #4647
- Consolidate agent routing and CI Python dependencies by @MohabMohie in #4657
- Recover agent-skill routing and planning contract by @MohabMohie in #4662
- fix(harness): preserve merge ancestry by @MohabMohie in #4669
- fix(harness): enforce research before implementation by @MohabMohie in #4670
- chore(memory): reconcile durable repository knowledge by @MohabMohie in #4671
- fix: run Graphify refresh through installed CLI by @MohabMohie in #4673
- fix(intellij): restore recording codegen assistant flow by @MohabMohie in #4679
- feat(intellij): complete Assistant capability and setup UX by @MohabMohie in #4684
- feat(agents): modernize candidate intake by @MohabMohie in #4706
- docs(memory): align docs merge policy by @MohabMohie in #4707
- fix(ci): repair Local E2E and live Gemini nightlies by @MohabMohie in #4708
- feat(agents): add pinned external guardrail evaluation by @MohabMohie in #4709
- feat(agents): add pinned agnix conformance by @MohabMohie in #4712
- docs(memory): record Windows junction staging gotcha by @MohabMohie in #4713
- ci: report complete JaCoCo coverage to Codecov by @MohabMohie in #4711
- docs: refresh repository readmes and ownership by @MohabMohie in #4714
- docs: deliver IntelliJ capture demo workflow by @MohabMohie in #4718
- fix(capture): preserve replay failures and input fidelity by @MohabMohie in #4724
- feat: complete SHAFT cross-backend automation experience by @MohabMohie in #4698
- feat(agents): add governed self-improvement loop by @MohabMohie in #4729
- Enforce standalone GitHub issues for actionable learning by @MohabMohie in #4741
- feat(mobile): add bounded Appium performance data by @MohabMohie in #4732
- feat(mobile): add bounded screen recording by @MohabMohie in #4744
- fix(intellij): complete plugin issue follow-ups by @MohabMohie in #4761
- feat: add bounded mobile evidence bundles by @MohabMohie in #4759
- feat(agents): add portable repository runtime by @MohabMohie in #4753
- fix(graphify): restore extraction coverage by @MohabMohie in #4748
- fix(agents): require PR at reviewed checkpoint by @MohabMohie in #4760
- fix(ci): remove ignored PR path-filter base by @MohabMohie in #4747
- fix: resolve nightly E2E failures by @MohabMohie in #4780
- fix(intellij): resolve plugin integration issues by @MohabMohie in #4778
- fix(intellij): complete Password Safe agent connection by @MohabMohie in #4782
- fix(harness): resolve delivery and planning backlog by @MohabMohie in #4777
- fix(harness): pass complete delivery context by @MohabMohie in #4785
- fix(intellij): isolate runIde crash logs by @MohabMohie in #4786
- feat(validation): expand lazy focused validation DSL by @MohabMohie in #4767
- feat(trace): add offline filmstrip comparison viewer by @MohabMohie in #4788
- feat(trace): complete network and console viewer panels by @MohabMohie in #4790
- feat(trace): add mobile observability viewer by @MohabMohie in #4803
- feat(trace): surface artifact integrity in viewer by @MohabMohie in #4805
- fix(mcp): bound persisted trace extraction by @MohabMohie in #4807
- fix(api): preserve JSON list bytecode compatibility by @MohabMohie in #4808
- feat: add safe nightly knowledge refresh by @MohabMohie in #4810
- test: run mobile recording on a compatible Appium provider by @MohabMohie in #4811
- docs(memory): retain feature-completeness delivery gotchas by @MohabMohie in #4812
- feat: add local OCR and visible-text automation by @MohabMohie in #4828
- feat(agent-harness): ship portable latest-main ChaosEngine by @MohabMohie in #4800
- Enhance trace reports toward Playwright parity by @MohabMohie in #4827
- Enhance OpenCV, OCR, and mobile visual automation by @MohabMohie in #4834
- fix(trace): make browser observability session-owned by @MohabMohie in #4835
- Complete visual/OCR accuracy and mobile acceptance by @MohabMohie in #4837
- Record Surefire profile composition gotcha by @MohabMohie in #4839
- feat(trace): add private v3 archive compatibility by @MohabMohie in #4838
- Fix Android nightly visual OCR isolation by @MohabMohie in #4842
- feat(trace): import and correlate Playwright evidence by @MohabMohie in #4841
- Refresh README for developer trust and adoption by @MohabMohie in #4854
- feat: add multipage PDF OCR workflows by @MohabMohie in #4853
- chore: record PDF OCR architecture decision by @MohabMohie in #4867
- test: add managed local AI research PoC by @MohabMohie in #4868
- docs: correct local AI cgroup fallback note by @MohabMohie in #4869
- docs: remember managed local AI architecture by @MohabMohie in #4870
- feat(setup): add verified reporting lifecycle CLI by @MohabMohie in #4871
- feat(engine): expose setup through SHAFT.Infrastructure and properties by @MohabMohie in #4874
- feat(ai): add deterministic managed local hardware selection by @MohabMohie in #4880
- Keep SHAFT branding visible across Allure report routes by @MohabMohie in #4879
- feat(ocr): add verified shared model setup by @MohabMohie in #4881
- feat(ai): build managed local runtime foundation by @MohabMohie in #4873
- fix(ocr): satisfy setup quality gates by @MohabMohie in #4882
- docs: publish the ChaosEngine identity system by @MohabMohie in #4885
- feat(infrastructure): manage a pinned Lighthouse toolchain by @MohabMohie in #4893
- fix(agents): bound disposable reviewer lifecycle by @MohabMohie in #4895
- feat(infrastructure): add batteries-included setup foundation by @MohabMohie in #4855
- feat(mcp): expose unified setup tools by @MohabMohie in #4897
- feat(chaos-engine): introduce Quantum Mandate identity by @MohabMohie in #4903
- feat(agents): add ethical conduct and harden Graphify retrieval by @MohabMohie in #4912
- feat: add managed Android Appium setup by @MohabMohie in https://github.com/ShaftHQ/SHAFT_...
10.3.20260809
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
- test: replace retired nightly form fixture by @MohabMohie in #4609
- test: use Selenium-owned stable nightly form fixture by @MohabMohie in #4611
- fix: make harness sync failures actionable by @MohabMohie in #4612
- Fix #4613: guard multiline shell transport by @MohabMohie in #4614
- Fix #4546: report stale foreign worktrees by @MohabMohie in #4615
- Refactor #4616: simplify activity signal collection by @MohabMohie in #4617
- feat: add harness adherence evaluation by @MohabMohie in #4619
- feat(ci): add Agent Plugin phase-0 contract validation by @MohabMohie in #4621
- feat(ci): assemble portable act-as-mohab plugin by @MohabMohie in #4623
- docs(memory): record portable plugin assembly boundary by @MohabMohie in #4624
- test(harness): correct R19 portability fixture by @MohabMohie in #4626
- feat(harness): add portable plugin client adapters by @MohabMohie in #4627
- test(intellij): isolate panel agent resends by @MohabMohie in #4628
- fix(intellij): complete local-agent lifecycle teardown by @MohabMohie in #4629
- ci(intellij): pin verifier and trim cache by @MohabMohie in #4630
- fix(intellij): dispose terminal typing timer by @MohabMohie in #4631
- test(capture): synchronize Back/Forward recorder journey by @MohabMohie in #4632
- ci: generate JavaDocs before publishing by @MohabMohie in #4634
- ci: package portable SHAFT skills by @MohabMohie in #4635
- ci: release portable Agent Plugin packages by @MohabMohie in #4638
- Fix Cucumber TestNG data-provider thread count by @MohabMohie in #4648
- fix: require immutable reconciliation source by @MohabMohie in #4652
- Fix Agent Plugin asset build in Maven Central delivery by @MohabMohie in #4651
- fix: verify reconciled release commit by @MohabMohie in #4653
Full Changelog: 10.3.20260806...10.3.20260809
10.3.20260806
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
- Refactor(agent): embed lean core harness rules by @MohabMohie in #4406
- Fix(agent): require fresh task branches by @MohabMohie in #4409
- Refactor(agent): make act-as-mohab a global router with an enforced consult gate by @MohabMohie in #4418
- docs: align engine APIs and Javadocs with user guide by @MohabMohie in #4419
- Fix #4417: recognize explicit Maven exec goals by @MohabMohie in #4420
- Fix Codex Assistant runs in non-git workspaces by @MohabMohie in #4425
- Assistant: live model discovery and provider connectivity by @MohabMohie in #4433
- Feat: enforce Claude Codex harness parity by @MohabMohie in #4441
- Fix #4440: give the CI Maven cache a restore-key fallback by @MohabMohie in #4443
- Fix(harness): clear the 24 Codacy findings left on main by #4441 by @MohabMohie in #4446
- Docs(memory): note that Codacy PR issues are a delta, not open findings by @MohabMohie in #4449
- Fix #4444: move the release/publish workflows onto cache-maven-repo by @MohabMohie in #4451
- Fix #4445: retry a Maven Central refusal in a fresh process by @MohabMohie in #4453
- Delete the guidance that restates other guidance by @MohabMohie in #4462
- Pin the unchecked harness rules, and stop reporting a non-measurement by @MohabMohie in #4461
- Decide the guidance ratchet and the skills-map duplication by @MohabMohie in #4475
- Re-land the memory object stranded on an unmerged branch (#4450) by @MohabMohie in #4470
- Fix the sentence splitter and the field asymmetry in the superseded-policy scan, and pin every sub-rule by @MohabMohie in #4477
- Distil the working method into checked mechanism: the unbound check by @MohabMohie in #4479
- Gate the memory store's two unread integrity signals (#4460, #4465) by @MohabMohie in #4476
- Record the guidance-budget decision from #4458 as a memory object by @MohabMohie in #4483
- Fix #4481: make list-valued guidance globs fail loudly when empty by @MohabMohie in #4492
- Annotate 14 remaining subprocess imports and record CRLF measurement trap by @MohabMohie in #4491
- Reach 100% of the harness from the act-as-mohab entrypoint by @MohabMohie in #4497
- Fix #4424: surface sandbox bootstrap failures on a successful CLI exit by @MohabMohie in #4493
- Gate the plugin marketplace manifest against the skill dirs on disk (#4478) by @MohabMohie in #4499
- Fix #4502: source-control the TDD failure-mode doctrine by @MohabMohie in #4503
- Fix #4501: catch shaft-skills directories missing SKILL.md by @MohabMohie in #4510
- Fix #4450 item 3: guard against PR-less remote branches by @MohabMohie in #4512
- Fix #4495 #4505: count memory objects from git, refuse an untargeted memory write from a linked worktree by @MohabMohie in #4507
- Fix #4484: replace the prose-parsing regex grammar in the superseded-policy scan with a phrase list plus an explicit allowlist by @MohabMohie in #4513
- Fix #4496: enforce the ChaosEngine/* branch prefix in check_r9_worktree_add by @MohabMohie in #4517
- Record the superseded-policy scan doctrine, and its first live allowlist entry by @MohabMohie in #4519
- Learning loop: mutation-test guard.py's CRLF with Python, not a PowerShell regex by @MohabMohie in #4520
- Fix #4500: give the abandoned local-agent run and its flush timer a lifecycle owner by @MohabMohie in #4522
- Fix #4494: retry the IntelliJ plugin gate in a fresh process on a connect timeout by @MohabMohie in #4523
- Fix #4480 and #4490: scan the skills map, and catch a law demoted out of its own list by @MohabMohie in #4524
- Harness policy batch: eight fixes across the superseded-policy scan, the guidance banner, and the module-boundary gate by @MohabMohie in #4537
- One skill, whole harness: close the reachability boundary and the harness-governance batch by @MohabMohie in #4539
- Harness enforcement batch: every open rule-enforcement ticket, one branch by @MohabMohie in #4554
- Quality program: cap the review loop and close the spec/TDD enforcement gaps (#4567) by @MohabMohie in #4568
- Require adapted delegate retrieval and learning routes by @MohabMohie in #4572
- Retain repository context for R21 writes by @MohabMohie in #4577
- test: isolate parallel storage-state cleanup by @MohabMohie in #4591
- test: stabilize mobile web nightly fixture by @MohabMohie in #4593
- test: pin Stop-gate isolation coverage by @MohabMohie in #4594
- fix: run guard queries in hook worktree by @MohabMohie in #4595
- test: inspect rendered Stop messages by @MohabMohie in #4598
- fix: make ledger reaping race-safe by @MohabMohie in #4599
- fix: route guard blocks through learning loop by @MohabMohie in #4600
- fix: skip dependency review for release version edits by @MohabMohie in #4603
- fix: identify installer metadata probe by @MohabMohie in #4605
- test: avoid duplicate Windows CLI packaging in PR gate by @MohabMohie in #4607
Full Changelog: 10.3.20260801...10.3.20260806
10.3.20260801
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
- Record memory gotcha: bazel test cached PASSED isn't proof of a fresh run by @MohabMohie in #4353
- Fix #4351 review finding: restore dropped identifying words in AGENTS.md by @MohabMohie in #4352
- Drop hardcoded orchestrator model; always HIGH effort by @MohabMohie in #4357
- Clarify auto-notify does not cover a delegate's own backgrounded work by @MohabMohie in #4362
- Record memory: month-old stash pile was debris, and the safe drop pattern used to clear it by @MohabMohie in #4363
- Record memory: Selenium PR #17832's multi-round review lesson by @MohabMohie in #4360
- Fix #4359 + #4361: stale failAction expectation and clamped AI timeout ceiling by @MohabMohie in #4364
- Address #4350: ship shaft-skills distribution via plugin marketplace + skills CLI by @MohabMohie in #4366
- Record memory: marketplace.json skills entries must list individual skill dirs by @MohabMohie in #4367
- Read each index in a multi-index YAML list key by @Mochxd in #4372
- Unify the agent harness behind act-as-mohab by @MohabMohie in #4378
- Clean up harness-test static analysis by @MohabMohie in #4380
- Validate only tracked agent guidance by @MohabMohie in #4382
- Fix(ci): harden live launcher retries by @MohabMohie in #4384
- Improve memory role coverage and evidence provenance by @MohabMohie in #4386
- Feat(#4350): support standalone SHAFT agent tool installs by @MohabMohie in #4385
- Fix #4358: complete memory provenance hygiene by @MohabMohie in #4387
- feat(skills): deliver lean SHAFT lifecycle skill pack by @MohabMohie in #4397
- IntelliJ plugin: simplify installer and Assistant UX by @MohabMohie in #4389
- Fix #4398 E2E nightly failures by @MohabMohie in #4403
Full Changelog: 10.3.20260728...10.3.20260801
10.3.20260728
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
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...
10.3.20260722
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...