Release ForgeFlow 0.8.1

Add advanced Git and deployment workflows, secure backups and auditing, live Gitea integration, desktop notifications, connection validation, and the premium responsive UX refresh.
This commit is contained in:
NuklearRabbit
2026-07-26 00:42:17 +02:00
parent 971896a1d5
commit 4ad698c4eb
47 changed files with 9114 additions and 1648 deletions
+15 -30
View File
@@ -10,18 +10,17 @@ function Assert-Command {
}
function Invoke-Step {
param(
[Parameter(Mandatory = $true)][string]$Title,
[Parameter(Mandatory = $true)][scriptblock]$Action
)
param([Parameter(Mandatory = $true)][string]$Title, [Parameter(Mandatory = $true)][scriptblock]$Action)
Write-Host "`n$Title" -ForegroundColor Yellow
& $Action
if ($LASTEXITCODE -ne 0) {
throw "$Title failed with exit code $LASTEXITCODE."
}
if ($LASTEXITCODE -ne 0) { throw "$Title failed with exit code $LASTEXITCODE." }
}
Write-Host "ForgeFlow v0.4.2 self-service setup" -ForegroundColor Cyan
$package = Get-Content ".\package.json" -Raw | ConvertFrom-Json
$version = [string]$package.version
if ($package.name -ne "forgeflow" -or [string]::IsNullOrWhiteSpace($version)) { throw "This folder is not a valid ForgeFlow source release." }
Write-Host "ForgeFlow v$version self-service setup" -ForegroundColor Cyan
Write-Host "No Gitea token, SSH key or server password is requested by this script." -ForegroundColor DarkGray
Assert-Command node
@@ -30,33 +29,19 @@ Assert-Command git
$nodeVersionText = (node --version).Trim()
$nodeMajor = [int]($nodeVersionText.TrimStart('v').Split('.')[0])
if ($nodeMajor -lt 22) {
throw "Node.js 22 or newer is required. Detected: $nodeVersionText"
}
if ($nodeMajor -lt 22) { throw "Node.js 22 or newer is required. Detected: $nodeVersionText" }
Write-Host "Node: $nodeVersionText" -ForegroundColor DarkGray
Write-Host "npm: $((npm --version).Trim())" -ForegroundColor DarkGray
Write-Host "Git: $((git --version).Trim())" -ForegroundColor DarkGray
Invoke-Step "Installing project dependencies..." {
if (Test-Path ".\package-lock.json") {
npm ci --no-audit --no-fund
} else {
Write-Host "No package-lock.json is present; installing the pinned top-level dependency versions." -ForegroundColor DarkGray
npm install --no-audit --no-fund
}
Invoke-Step "Installing exact project dependencies..." {
if (-not (Test-Path ".\package-lock.json")) { throw "package-lock.json is required for a reproducible ForgeFlow installation." }
npm ci --no-audit --no-fund
}
Invoke-Step "Running the environment doctor..." { npm run doctor }
Invoke-Step "Running source verification and automated tests..." { npm run check }
Invoke-Step "Running the environment doctor..." {
npm run doctor
}
Invoke-Step "Running source verification and automated tests..." {
npm run check
}
Write-Host "`nAll local checks passed." -ForegroundColor Green
Write-Host "ForgeFlow will now open the five-step setup wizard." -ForegroundColor Green
Write-Host "Enter credentials only inside the local ForgeFlow password field." -ForegroundColor DarkGray
Write-Host "`nForgeFlow v$version is ready." -ForegroundColor Green
Write-Host "Starting ForgeFlow with your existing local configuration..." -ForegroundColor Green
npm start