Skip to content

Add Windows AI Flywheel bootstrap - #9

Open
infoconex wants to merge 5 commits into
mainfrom
feature/windows-bootstrap
Open

Add Windows AI Flywheel bootstrap#9
infoconex wants to merge 5 commits into
mainfrom
feature/windows-bootstrap

Conversation

@infoconex

@infoconex infoconex commented Aug 8, 2026

Copy link
Copy Markdown
Owner

Summary

Refactors the Windows Python bootstrap to consume the published AI Flywheel Framework installer instead of duplicating framework installation logic, and adds an explicit choice between repository-owned editable source and a managed CLI.

Responsibility boundary

  • The AI Flywheel Framework installer owns framework release acquisition, SHA-256 verification, archive safety, provenance, staging, atomic .flywheel publication, rollback, and refusal to overwrite.
  • The Windows Python bootstrap owns framework compatibility detection, official-installer delegation when absent, Python prerequisite handling, CLI installation-mode selection, runtime setup, and health checks.
  • The Python CLI validates and operates an installed framework. It does not install or upgrade framework artifacts.
  • Hybrid managed-CLI extension discovery is not implemented in this PR.

Framework contract

  • Framework version: 2026.08.08
  • Framework installer commit: fe11b801b5dfeef812377a978558fd563b67fa9e
  • Default compatible CLI source commit: 2d84294cbe9922ec907fe718e9dd06e9944e0ebc
  • Public launcher bootstrap commit: 4f787819df1617d0a6b8435196e9c978cfbf1457

Installation modes

  • Repository-owned source (recommended): seeds pyproject.toml, README, package source, tests, and project tasks under .flywheel/tools; creates an editable runtime under .flywheel/.runtime/python-cli; and preserves repository adaptations on repeat runs.
  • Managed CLI: retains the versioned environment under %LOCALAPPDATA%\AI-Flywheel\environments and does not copy CLI source into the repository.
  • Noninteractive setup requires -CliInstallMode Source|Managed. Initial source installation also requires -Apply.
  • Existing untracked .flywheel/tools content is protected from overwrite.
  • Selecting managed mode for a repository already marked as source-owned is rejected because hybrid operation is deferred.

Other changes

  • Delegates absent-framework installation to the official published framework installer.
  • Preserves a compatible framework without mutation.
  • Stops on older, newer, malformed, inconsistent, legacy, or untracked frameworks.
  • Adds reusable Python framework compatibility classification.
  • Expands flywheel doctor with deterministic compatibility and repository-health output.
  • Removes Python-owned framework install/upgrade and publication logic.
  • Preserves repository locking and the no-onboarding guarantee.
  • Updates documentation and deterministic regression coverage.

Validation

Validated against exact remote head dc51459fadda9d4939a8c5209d1d11cdeb9b5bc7:

  • Ruff lint and formatting
  • strict mypy
  • 97 pytest tests
  • 84.73% total coverage
  • source distribution and wheel builds
  • PowerShell parser and PSScriptAnalyzer
  • public launcher regression tests
  • Windows bootstrap mode, source-seeding, preservation, conflict, and archive-safety tests

No onboarding or lifecycle operation is started by bootstrap.

@infoconex
infoconex force-pushed the feature/windows-bootstrap branch from 0d6faf7 to 1bf1262 Compare August 9, 2026 04:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant