BMAD-METHOD/tools
Brian 560a2e3a6f
feat: installer detects Python version and warns when 3.11+ (tomllib) is missing (#2466)
* feat: installer detects Python version and warns when 3.11+ (tomllib) is missing

Several BMAD features need Python at runtime: memlog (3.8+) and the TOML
config resolution scripts (3.11+ for stdlib tomllib). Users install into
varied environments (Linux, Windows, WSL, Docker) where Python may be
missing or too old, and previously only found out via runtime errors.

The installer now probes PATH at startup (py -3 / python3 / python) and
classifies the result: 3.11+ passes silently with a success line; 3.8-3.10
or missing/too-old Python gets a warning naming exactly which features
degrade, plus per-platform install hints. The warning requires an explicit
ack — continue (fix later, no reinstall needed) or quit and re-run after
installing Python. Warn-don't-block: most of BMAD works without Python, so
the install is never refused. In --yes mode the warning logs and continues
without prompting.

* fix: align Python check with runtime truth (python3) and harden edge cases

Review fixes for the installer Python check:

- Probe python3 first on all platforms: every runtime call site invokes a
  literal python3, so only that command vouches for BMAD features. Python
  found via py/python now gets an explicit mismatch warning instead of a
  false "all BMAD features supported".
- Treat closed/piped stdin as non-interactive (in addition to --yes) so
  scripted installs no longer silently exit 0 via clack's cancel path.
- Retry probes with shell:true on win32 EINVAL (CVE-2024-27980 hardening
  rejects .bat/.cmd shims like pyenv-win's without a shell).
- Add Suite 46 branch tests for checkPythonEnvironment with stubbed
  detection, prompts, and process.exit.
2026-06-11 21:27:52 -05:00
..
docs feat(installer): expand to 42 platforms with shared target_dir coordination (#2313) 2026-04-25 21:14:00 -05:00
installer feat: installer detects Python version and warns when 3.11+ (tomllib) is missing (#2466) 2026-06-11 21:27:52 -05:00
build-docs.mjs fix(docs): community feedback — typo, locale 404s, llms-full (#2091) 2026-03-21 16:42:57 -06:00
bundle-web-bundles.js feat(web-bundles): release packager + manifest for bmadcode.com/web-bundles/ (#2424) 2026-05-25 11:43:55 -05:00
fix-doc-links.js fix(docs): comprehensive documentation site review fixes (#1578) 2026-02-08 11:58:22 -06:00
format-workflow-md.js check alignment 2025-10-22 12:36:39 -05:00
javascript-conventions.md refactor(installer): restructure installer with clean separation of concerns (#2129) 2026-03-27 06:50:07 -06:00
migrate-custom-module-paths.js fix(installer): replace fs-extra with native node:fs to prevent file loss 2026-04-13 00:44:28 -05:00
skill-validator.md refactor(bmad-ux): spine-based UX skill (DESIGN.md + EXPERIENCE.md) (#2413) 2026-05-22 23:16:06 -05:00
validate-doc-links.js docs(fr): sync French docs with latest English source + fix non-ASCII anchor validation (#2408) 2026-06-06 20:34:42 -05:00
validate-file-refs.js feat(skills): TOML-based agent and workflow customization (#2284) 2026-04-19 19:30:29 -05:00
validate-sidebar-order.js feat(docs): Add sidebar order validator for doc frontmatter (#2409) 2026-05-25 10:15:37 -05:00
validate-skills.js refactor(bmad-ux): spine-based UX skill (DESIGN.md + EXPERIENCE.md) (#2413) 2026-05-22 23:16:06 -05:00
validate-svg-changes.sh Project Cleanup of Agents Menus, BMB module removal to other repo 2026-01-19 02:04:14 -06:00