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
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,15 @@ All notable changes to Looper are documented here. Versions follow
[Semantic Versioning](https://semver.org/); the loop spec format is versioned
separately via `version:` in `loop.yaml` (currently `1`).

## 0.2.1 — 2026-07-05

### Fixed
- `install.ps1` crashed on Windows PowerShell 5.1 with "Argument expected for
the -c option": the Python probe passed an empty string (which PowerShell
drops for native executables) and its stderr redirect became a terminating
error under the script's `Stop` preference. The probe now runs `--version`
with stderr tolerated and validates the exit code (#14).

## 0.2.0 — 2026-07-05

Remediation release from a full audit of the runner, compiler, installers,
Expand Down
22 changes: 16 additions & 6 deletions install.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,25 @@ if (-not (Get-Command git -ErrorAction SilentlyContinue)) {

# Validate by executing, not just locating: on Windows, "python" on PATH is
# often the Microsoft Store alias stub, which exists but cannot run scripts.
# The probe must tolerate stub stderr output without tripping the script's
# ErrorActionPreference = "Stop".
$Python = $null
foreach ($Candidate in @("python", "py")) {
$Command = Get-Command $Candidate -ErrorAction SilentlyContinue
if ($Command) {
& $Command.Source -c "" 2>$null
if ($LASTEXITCODE -eq 0) {
$Python = $Command
break
}
if (-not $Command) { continue }
$PreviousEAP = $ErrorActionPreference
$ErrorActionPreference = "Continue"
try {
$null = & $Command.Source --version 2>&1
$Works = ($LASTEXITCODE -eq 0)
} catch {
$Works = $false
} finally {
$ErrorActionPreference = $PreviousEAP
}
if ($Works) {
$Python = $Command
break
}
}
if (-not $Python) {
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "looper-skill"
version = "0.2.0"
version = "0.2.1"
description = "A Claude Code skill that scaffolds well-designed agent loops."
readme = "README.md"
requires-python = ">=3.9"
Expand Down
Loading