Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,11 +113,11 @@ But it's not just archiving. The goal is a family operating system: something th
### Requirements

- macOS on Apple Silicon (M1+)
- [Homebrew](https://brew.sh) — used to install Python 3.11+, OrbStack, and managed AI
- [OrbStack](https://orbstack.dev) (recommended) or Docker Desktop
- [Homebrew](https://brew.sh) (Optional: Only for managed AI right now)


OrbStack has its own installer at [orbstack.dev](https://orbstack.dev).
The installer will guide you through what's missing. If your `python3` is
Apple's Command Line Tools build (3.9), run `brew install python` first.

### Install

Expand Down
35 changes: 10 additions & 25 deletions docs/todos/refactor-cleanup-plan.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ reduce long-term complexity.
- We are still pre-1.0 and can change internal patterns safely.
- `sys.path.insert(...)` import wiring is widespread and brittle.
- Host framework and Docker bot runtimes share code without clear boundaries.
- Python 3.9 compatibility adds drag for testing and packaging.
- HTTP behavior is inconsistent (timeouts, TLS policy, error handling).

## Design goals
Expand Down Expand Up @@ -124,20 +123,9 @@ Without these wiring changes, the proposed structure will fail in containers.

## Python version policy

### Direction

- Move baseline to Python `>=3.11` for framework and bot runtime.
- End active 3.9 compatibility after migration window.

### Why

- 3.9 is EOL and increases compatibility overhead (`pytest<9`, shims, guard code).
- 3.11 improves performance, typing ergonomics, and dependency support.

### Transition (short-lived)

- One migration cycle can run dual CI (3.9 + 3.11) to catch regressions.
- After parity, remove 3.9 constraints and simplify codepaths.
Baseline: Python 3.11+. Enforced at launch by the `./stack` wrapper (which
picks `python3.11`/`3.12`/`3.13` from PATH and refuses Apple's CLT 3.9).
`tomllib` is stdlib at this baseline — no compat shim is needed.

## HTTP request conventions

Expand Down Expand Up @@ -250,7 +238,7 @@ Testing should enforce module boundaries and protect refactors from silent regre
- Phase 3 gate:
- HTTP wrappers validated for timeout/auth/decode/connect failure classes.
- Phase 4 gate:
- Test matrix proves 3.11 baseline; 3.9 jobs removed only after parity confirmation.
- Baseline enforced at the wrapper level; no CI matrix needed.
- Phase 5 gate:
- Large-module splits preserve command/lifecycle behavior via unchanged blackbox tests.

Expand Down Expand Up @@ -301,17 +289,14 @@ Exit criteria:

- Runtime HTTP callsites use consistent policy and error semantics.

## Phase 4 - Python baseline lift

- Switch project baseline to 3.11.
- Remove 3.9-only constraints and compatibility leftovers.
- Update CI and container base images.
- Add explicit startup/preflight message in host CLI when interpreter is below baseline.
## Phase 4 - Python baseline lift (DONE)

Exit criteria:
- ✅ Project baseline switched to 3.11 (`pyproject.toml`).
- ✅ Removed `_compat` shim and vendored tomli (`lib/stack/_vendor/`).
- ✅ Containers were already on `python:3.12-slim`.
- ✅ `./stack` wrapper enforces 3.11+ at launch with a brew hint.

- CI green on 3.11 baseline.
- No remaining 3.9 compatibility blockers.
No CI to update; baseline is enforced at the wrapper.

## Phase 5 - Structural cleanup

Expand Down
10 changes: 0 additions & 10 deletions lib/stack/_compat.py

This file was deleted.

Empty file removed lib/stack/_vendor/__init__.py
Empty file.
21 changes: 0 additions & 21 deletions lib/stack/_vendor/tomli/LICENSE

This file was deleted.

12 changes: 0 additions & 12 deletions lib/stack/_vendor/tomli/__init__.py

This file was deleted.

Loading