Skip to content

Commit c211016

Browse files
committed
chore: publish r17 Spark CLI installer
1 parent 8076d2a commit c211016

16 files changed

Lines changed: 228 additions & 37 deletions

docs/AGENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ Spark Swarm network submission and hosted workspace review are upcoming private
129129

130130
## Current Installer Pins
131131

132-
- Spark CLI commit: `f2ae90330b07db135cafb913e37c20c4bd960831`
132+
- Spark CLI commit: `c4b9a909402ff1a14d810529b5625802a4d47f28`
133133
- Node: `22.18.0`
134134
- Python: `3.11`
135135
- uv: `0.11.7`

docs/install-safety.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ If you are non-technical, ask your coding assistant to open this page, run the d
2323
## Current Hashes
2424

2525
```text
26-
b1c156a62fa76146d57caa3881a807f1612a22d77798d256f71773527f1ba04a install.sh
27-
67ead15caa6cebbedaeed68cacc73d85db53c2b1b948b9b89b430973dbc5be0d install.ps1
26+
e8056c6eb553e1268cb14c51d2a64d1296822669fde8f3a46c5a9ffd6f5d6c52 install.sh
27+
75d590d596144f36d0d8b351dabdace4c304ed1f53af3131973520f53129f9a9 install.ps1
2828
```
2929

3030
## Safe Procedure
@@ -113,7 +113,7 @@ Users can change this later in Telegram with `/access 1`, `/access 2`, `/access
113113

114114
## Pinned Parts
115115

116-
- Spark CLI commit: `f2ae90330b07db135cafb913e37c20c4bd960831`
116+
- Spark CLI commit: `c4b9a909402ff1a14d810529b5625802a4d47f28`
117117
- Node: `22.18.0`
118118
- Python: `3.11`
119119
- uv: `0.11.7`

docs/llms-full.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ Do not send Telegram tokens or LLM keys to websites.
139139

140140
## Current Installer Pins
141141

142-
- Spark CLI commit: `f2ae90330b07db135cafb913e37c20c4bd960831`
142+
- Spark CLI commit: `c4b9a909402ff1a14d810529b5625802a4d47f28`
143143
- Node: `22.18.0`
144144
- Python: `3.11`
145145
- uv: `0.11.7`

docs/pages/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,8 @@ The installer has checksums, a release manifest, pinned managed runtimes, immuta
7070

7171
Current public installer state:
7272

73-
- Release: `spark-cli-public-installer-2026-05-29-r16`
74-
- Installed Spark CLI runtime commit: `f2ae90330b07db135cafb913e37c20c4bd960831`
73+
- Release: `spark-cli-public-installer-2026-05-29-r17`
74+
- Installed Spark CLI runtime commit: `c4b9a909402ff1a14d810529b5625802a4d47f28`
7575
- Local installer hashes match the committed release manifest.
7676
- Hosted installer verification passed after deploy.
7777
- Windows and WSL sandbox install checks are part of the release gate.

docs/pages/install-safety.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ Only then run the real install.
5050
## Current Hashes
5151

5252
```text
53-
b1c156a62fa76146d57caa3881a807f1612a22d77798d256f71773527f1ba04a install.sh
54-
67ead15caa6cebbedaeed68cacc73d85db53c2b1b948b9b89b430973dbc5be0d install.ps1
53+
e8056c6eb553e1268cb14c51d2a64d1296822669fde8f3a46c5a9ffd6f5d6c52 install.sh
54+
75d590d596144f36d0d8b351dabdace4c304ed1f53af3131973520f53129f9a9 install.ps1
5555
```
5656

5757
## Safe Human Procedure

docs/updates.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ This update publishes the safe public surfaces we can share now, without making
66

77
## Included
88

9-
- May 29 Spark CLI installer pin with hosted checksums, release manifest, command metadata, attestations, voice-safe setup defaults, stale Windows shim cleanup, and production smoke checks.
9+
- May 29 Spark CLI r17 installer pin with hosted checksums, release manifest, command metadata, attestations, voice-safe setup defaults, stale Windows shim cleanup, production smoke checks, and a softer upgrade-refresh pause when existing secrets need a secure backend before rewrite.
1010
- Telegram recursive loops now have a local-only public path for Builder chip loops: `/recursive start <chipKey> rounds <n>`, `/recursive sessions`, `/recursive report`, and `/recursive trace` work from local status files without Spark Swarm.
1111
- `spark-domain-chip-labs` as the public creator lab for domain chips, benchmark packs, specialization paths, autoloop policies, tool integrations, and publish packet standards.
1212
- `spark-character` as the public character and voice-consistency layer.
@@ -40,6 +40,6 @@ spark verify --installers --hosted-installers
4040
The expected Spark CLI release is:
4141

4242
```text
43-
spark-cli-public-installer-2026-05-29-r16
44-
f2ae90330b07db135cafb913e37c20c4bd960831
43+
spark-cli-public-installer-2026-05-29-r17
44+
c4b9a909402ff1a14d810529b5625802a4d47f28
4545
```

docs/updates/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ <h1>Public labs are open. Spark Swarm stays private for now.</h1>
4545
<section class="doc-section">
4646
<h2>What changed.</h2>
4747
<div class="doc-grid doc-grid-3">
48-
<div class="doc-card"><span class="doc-kicker">Installer</span><h3>May 29 pin</h3><p>The hosted installer now points at <code>spark-cli-public-installer-2026-05-29-r16</code> with matching checksums, manifest, command metadata, attestations, voice-safe defaults, stale Windows shim cleanup, and production smoke.</p></div>
48+
<div class="doc-card"><span class="doc-kicker">Installer</span><h3>May 29 r17 pin</h3><p>The hosted installer now points at <code>spark-cli-public-installer-2026-05-29-r17</code> with matching checksums, manifest, command metadata, attestations, voice-safe defaults, stale Windows shim cleanup, production smoke, and a softer upgrade-refresh pause when existing secrets need a secure backend before rewrite.</p></div>
4949
<div class="doc-card"><span class="doc-kicker">Creator Lab</span><h3>Domain Chip Labs</h3><p>Public standards for domain chips, benchmarks, specialization paths, autoloop policies, tool integrations, and publish packet drafts.</p></div>
5050
<div class="doc-card"><span class="doc-kicker">Telegram</span><h3>Local recursive loops</h3><p>Builder chip loops can now start and report from Telegram using local status files, without depending on Spark Swarm workspace APIs.</p></div>
5151
<div class="doc-card"><span class="doc-kicker">Identity</span><h3>Character And Personality</h3><p>Spark Character is public, and Personality Chip Labs is public for modular profile experiments.</p></div>
@@ -66,7 +66,7 @@ <h3>Spark Swarm comes later</h3>
6666
<section class="doc-section">
6767
<h2>Verify the release.</h2>
6868
<pre class="docs-code">spark verify --installers --hosted-installers</pre>
69-
<p>Expected release: <code>spark-cli-public-installer-2026-05-29-r16</code> at <code>f2ae90330b07db135cafb913e37c20c4bd960831</code>.</p>
69+
<p>Expected release: <code>spark-cli-public-installer-2026-05-29-r17</code> at <code>c4b9a909402ff1a14d810529b5625802a4d47f28</code>.</p>
7070
</section>
7171
</article>
7272
</main>

install.ps1

Lines changed: 58 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
param(
22
[string]$Prefix = "$HOME\.spark",
33
[string]$Source = "https://github.com/vibeforge1111/spark-cli",
4-
[string]$Ref = "f2ae90330b07db135cafb913e37c20c4bd960831",
4+
[string]$Ref = "c4b9a909402ff1a14d810529b5625802a4d47f28",
55
[string]$NodeVersion = "22.18.0",
66
[string]$PythonVersion = "3.11",
77
[string]$UvVersion = "0.11.7",
@@ -30,7 +30,7 @@ param(
3030
)
3131

3232
$ErrorActionPreference = "Stop"
33-
$SparkCliReleaseName = "spark-cli-public-installer-2026-05-29-r16"
33+
$SparkCliReleaseName = "spark-cli-public-installer-2026-05-29-r17"
3434
$RefWasProvided = $PSBoundParameters.ContainsKey("Ref")
3535
$Script:InstallLockDir = ""
3636
$Script:PythonExe = ""
@@ -607,8 +607,9 @@ function Install-CliVenv {
607607
& $Script:PythonExe -m venv $venvDir
608608
Write-SparkLog "Upgrading pip in Spark CLI virtualenv"
609609
& (Join-Path $venvDir "Scripts\python.exe") -m pip install --upgrade pip | Out-Null
610-
Write-SparkLog "Installing Spark CLI package"
611-
& (Join-Path $venvDir "Scripts\python.exe") -m pip install -e $CliDir | Out-Null
610+
Write-SparkLog "Installing Spark CLI package with browser-use support"
611+
& (Join-Path $venvDir "Scripts\python.exe") -m pip install -e "$CliDir[browser-use]" | Out-Null
612+
& (Join-Path $venvDir "Scripts\browser-use.exe") install | Out-Null
612613
return $venvDir
613614
}
614615

@@ -710,13 +711,22 @@ function Run-Setup {
710711
if ($MiniMaxApiKey) { $setupArgs += @("--minimax-api-key", (New-SetupSecretRef $MiniMaxApiKey)) }
711712
$setupArgs += $SetupArg
712713
Write-SparkLog "Running spark setup $Bundle"
714+
$previousSetupOptional = $env:SPARK_SETUP_OPTIONAL_ON_UPGRADE
713715
try {
716+
if ($UpgradeExisting) {
717+
$env:SPARK_SETUP_OPTIONAL_ON_UPGRADE = "1"
718+
}
714719
$setupStartArgs = if ($NoAutostart) { @("--no-start-now", "--no-autostart") } else { @("--start-now", "--autostart") }
715720
& $sparkCmd setup $Bundle @setupStartArgs @setupArgs
716721
if ($LASTEXITCODE -ne 0) {
717722
throw "spark setup failed with exit code $LASTEXITCODE"
718723
}
719724
} finally {
725+
if ($null -eq $previousSetupOptional) {
726+
Remove-Item Env:\SPARK_SETUP_OPTIONAL_ON_UPGRADE -ErrorAction SilentlyContinue
727+
} else {
728+
$env:SPARK_SETUP_OPTIONAL_ON_UPGRADE = $previousSetupOptional
729+
}
720730
foreach ($secretFile in $secretFiles) {
721731
Remove-Item -LiteralPath $secretFile -Force -ErrorAction SilentlyContinue
722732
}
@@ -730,6 +740,49 @@ function Run-Autostart {
730740
Write-SparkLog "Spark startup was handled by setup"
731741
}
732742

743+
function Test-SetupRefreshPaused {
744+
$pendingSetupPath = Join-Path $Script:SparkPrefix "state\setup.pending.json"
745+
if (-not (Test-Path -LiteralPath $pendingSetupPath)) {
746+
return $false
747+
}
748+
try {
749+
return (Get-Content -LiteralPath $pendingSetupPath -Raw -ErrorAction Stop).Contains('"event": "setup_refresh_paused"')
750+
} catch {
751+
return $false
752+
}
753+
}
754+
755+
function Show-InstallOutcome {
756+
$pendingSetupPath = Join-Path $Script:SparkPrefix "state\setup.pending.json"
757+
if ($SkipSetup) {
758+
$setupLine = "[SKIP] Setup: skipped by request"
759+
$runtimeLine = "[MANUAL] Runtime: start after setup"
760+
$telegramLine = "[VERIFY] Telegram: run spark verify --onboarding after setup"
761+
} elseif (Test-SetupRefreshPaused) {
762+
$setupLine = "[PAUSED] Setup refresh: secrets need a secure backend before Spark rewrites them"
763+
$runtimeLine = "[OK] Existing runtime: can keep running with the current setup"
764+
$telegramLine = "[VERIFY] Telegram: run spark verify --onboarding"
765+
} elseif (Test-Path -LiteralPath $pendingSetupPath) {
766+
$setupLine = "[PAUSED] Setup: run spark doctor"
767+
$runtimeLine = "[MANUAL] Runtime: resume setup before changing secrets"
768+
$telegramLine = "[VERIFY] Telegram: run spark verify --onboarding after setup resumes"
769+
} else {
770+
$setupLine = "[OK] Setup: configured"
771+
if ($NoAutostart) {
772+
$runtimeLine = "[MANUAL] Runtime: start after setup"
773+
} else {
774+
$runtimeLine = "[STARTED] Runtime: setup handled start/autostart"
775+
}
776+
$telegramLine = "[VERIFY] Telegram: run spark verify --onboarding"
777+
}
778+
Write-Host ""
779+
Write-Host "Install outcome:"
780+
Write-Host " [OK] CLI upgrade: complete"
781+
Write-Host " $setupLine"
782+
Write-Host " $runtimeLine"
783+
Write-Host " $telegramLine"
784+
}
785+
733786
function Invoke-Install {
734787
$Script:SparkPrefix = Resolve-FullPath $Prefix
735788
Apply-InstallDefaults
@@ -778,6 +831,7 @@ function Invoke-Install {
778831
Write-Host ""
779832
Write-Host "Install log:"
780833
Write-Host " $Script:InstallLogPath"
834+
Show-InstallOutcome
781835
Write-Host ""
782836
if ($SkipSetup) {
783837
Write-Host "Setup was skipped."

0 commit comments

Comments
 (0)