jackboy70 Claude Opus 4.8 (1M context) commited on
Commit
dbc891c
·
1 Parent(s): 438b737

Deploy: clean professional lite builder (no false integrity failure)

Browse files

- Lite bundle now exits cleanly with guidance (Start-JackAILocal .ps1/.sh)
instead of failing the full-package integrity check.
- Exported builder no longer ships the misleading SHA manifest or internal
dev/vendor dirs (docs, scripts, tools, updates, client-builder, installer,
deploy).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

macos/Start-JackAILocal.sh CHANGED
@@ -2,6 +2,40 @@
2
  set -euo pipefail
3
 
4
  ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  LOG_DIR="$ROOT_DIR/.jackailocal/logs"
6
  mkdir -p "$LOG_DIR"
7
  export JACKAILOCAL_ROOT="$ROOT_DIR"
 
2
  set -euo pipefail
3
 
4
  ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
5
+
6
+ # Lite / inspection bundle exported from the hosted Hugging Face Space: it ships
7
+ # the builder, WebUI, config and the AI-reviewed manifest, but NOT the native
8
+ # runtime binaries or models (a hosted Space cannot ship them). Exit cleanly with
9
+ # guidance instead of failing on a missing binary.
10
+ BUILD_MANIFEST="$ROOT_DIR/manifest/build-manifest.json"
11
+ IS_LITE=0
12
+ if [ -f "$BUILD_MANIFEST" ] && grep -q '"hosted_lite_build"[[:space:]]*:[[:space:]]*true' "$BUILD_MANIFEST"; then
13
+ IS_LITE=1
14
+ fi
15
+ if [ ! -x "$ROOT_DIR/bin/jackailocald" ]; then
16
+ IS_LITE=1
17
+ fi
18
+ if [ "$IS_LITE" -eq 1 ]; then
19
+ cat <<'LITE_EOF'
20
+
21
+ JackAILocal - lite inspection bundle
22
+ -----------------------------------------------------------------
23
+ This package was exported from the hosted Hugging Face Space.
24
+ It contains the builder scripts, WebUI, configuration and the
25
+ AI-reviewed build manifest - but NOT the native runtime binaries
26
+ (Ollama, whisper.cpp, Piper) or the models, which a hosted Space
27
+ cannot ship. This bundle is for inspecting the build plan.
28
+
29
+ To actually run JackAILocal:
30
+ 1. Get the full package (with binaries) from the project repo.
31
+ 2. From that full package, run BUILD-LOCAL-MAC.command or BUILD-USB-MAC.command.
32
+
33
+ See README-FIRST.txt and manifest/build-manifest.json for details.
34
+ -----------------------------------------------------------------
35
+ LITE_EOF
36
+ exit 0
37
+ fi
38
+
39
  LOG_DIR="$ROOT_DIR/.jackailocal/logs"
40
  mkdir -p "$LOG_DIR"
41
  export JACKAILOCAL_ROOT="$ROOT_DIR"
saas/gradio/app.py CHANGED
@@ -2298,8 +2298,11 @@ def export_platform_builder_zip(
2298
  "START-HERE.cmd", "START-DESKTOP.cmd", "STOP-JACKAILOCAL.cmd", "START-HERE.command", "STOP-JACKAILOCAL.command",
2299
  "BUILD-LOCAL.cmd", "BUILD-USB.cmd", "BUILD-SSD.cmd", "BUILD-LOCAL-MAC.command", "BUILD-USB-MAC.command", "BUILD-SSD-MAC.command", "README-FIRST.txt", "autorun.inf",
2300
  "webui", "windows", "macos", "unix", "config", "manifest", "models", "backends", "bin",
2301
- "docs", "tools", "scripts", "updates", "licenses", "client-builder", "content", "content-packs",
2302
- "installer", "deploy",
 
 
 
2303
  ]
2304
  with tempfile.NamedTemporaryFile(delete=False, suffix=".zip", prefix=prefix) as tmp:
2305
  output_path = tmp.name
@@ -2345,6 +2348,11 @@ def export_platform_builder_zip(
2345
  relative = os.path.relpath(full_path, WORKSPACE_ROOT).replace("\\", "/")
2346
  if relative == "config/update-private-key.xml" or filename.endswith(".pyc"):
2347
  continue
 
 
 
 
 
2348
  archive.write(full_path, relative)
2349
  return output_path
2350
 
 
2298
  "START-HERE.cmd", "START-DESKTOP.cmd", "STOP-JACKAILOCAL.cmd", "START-HERE.command", "STOP-JACKAILOCAL.command",
2299
  "BUILD-LOCAL.cmd", "BUILD-USB.cmd", "BUILD-SSD.cmd", "BUILD-LOCAL-MAC.command", "BUILD-USB-MAC.command", "BUILD-SSD-MAC.command", "README-FIRST.txt", "autorun.inf",
2300
  "webui", "windows", "macos", "unix", "config", "manifest", "models", "backends", "bin",
2301
+ "licenses", "content", "content-packs",
2302
+ # Internal dev/vendor directories (docs with commercialization notes,
2303
+ # scripts, tools, update key-gen tooling, client-builder, installer and
2304
+ # deploy sources) are deliberately NOT shipped in the exported product
2305
+ # builder so the download stays clean and customer/judge-facing.
2306
  ]
2307
  with tempfile.NamedTemporaryFile(delete=False, suffix=".zip", prefix=prefix) as tmp:
2308
  output_path = tmp.name
 
2348
  relative = os.path.relpath(full_path, WORKSPACE_ROOT).replace("\\", "/")
2349
  if relative == "config/update-private-key.xml" or filename.endswith(".pyc"):
2350
  continue
2351
+ # A lite bundle ships no native binaries, so the full
2352
+ # package SHA baseline would only yield false integrity
2353
+ # failures. Drop it from the lite export.
2354
+ if lite_build and relative == "manifest/sha256-manifest.json":
2355
+ continue
2356
  archive.write(full_path, relative)
2357
  return output_path
2358
 
windows/Start-JackAILocal.ps1 CHANGED
@@ -11,6 +11,39 @@ $CacheDir = Join-Path $Root ".jackailocal\cache"
11
  $RunDir = Join-Path $Root ".jackailocal\run"
12
  New-Item -ItemType Directory -Force -Path $DiagDir,$LogDir,$CacheDir,$RunDir | Out-Null
13
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
  & (Join-Path $PSScriptRoot "hwscan-windows.ps1") -OutputPath (Join-Path $DiagDir "hardware.json") | Out-Null
15
  & (Join-Path $PSScriptRoot "Integrity-Check.ps1") -Root $Root -Mode Fail | Out-Null
16
 
 
11
  $RunDir = Join-Path $Root ".jackailocal\run"
12
  New-Item -ItemType Directory -Force -Path $DiagDir,$LogDir,$CacheDir,$RunDir | Out-Null
13
 
14
+ # Lite / inspection bundle exported from the hosted Hugging Face Space: it ships
15
+ # the builder scripts, WebUI, config and the AI-reviewed manifest, but NOT the
16
+ # native runtime binaries (Ollama, whisper.cpp, Piper) or the models, which a
17
+ # hosted Space cannot ship. Detect it and exit cleanly with guidance instead of
18
+ # failing the integrity check meant for the full package.
19
+ $buildManifest = Join-Path $Root "manifest\build-manifest.json"
20
+ $isLite = $false
21
+ if (Test-Path $buildManifest) {
22
+ try {
23
+ $bm = Get-Content -Raw $buildManifest | ConvertFrom-Json
24
+ if ($bm.hosted_lite_build -eq $true) { $isLite = $true }
25
+ } catch {}
26
+ }
27
+ if (-not (Test-Path (Join-Path $Root "bin\jackailocald.exe"))) { $isLite = $true }
28
+ if ($isLite) {
29
+ Write-Host ""
30
+ Write-Host "JackAILocal - lite inspection bundle" -ForegroundColor Cyan
31
+ Write-Host "-----------------------------------------------------------------"
32
+ Write-Host "This package was exported from the hosted Hugging Face Space."
33
+ Write-Host "It contains the builder scripts, WebUI, configuration and the"
34
+ Write-Host "AI-reviewed build manifest - but NOT the native runtime binaries"
35
+ Write-Host "(Ollama, whisper.cpp, Piper) or the models, which a hosted Space"
36
+ Write-Host "cannot ship. This bundle is for inspecting the build plan."
37
+ Write-Host ""
38
+ Write-Host "To actually run JackAILocal:"
39
+ Write-Host " 1. Get the full package (with binaries) from the project repo."
40
+ Write-Host " 2. From that full package, run BUILD-LOCAL.cmd or BUILD-USB.cmd."
41
+ Write-Host ""
42
+ Write-Host "See README-FIRST.txt and manifest\build-manifest.json for details."
43
+ Write-Host "-----------------------------------------------------------------"
44
+ exit 0
45
+ }
46
+
47
  & (Join-Path $PSScriptRoot "hwscan-windows.ps1") -OutputPath (Join-Path $DiagDir "hardware.json") | Out-Null
48
  & (Join-Path $PSScriptRoot "Integrity-Check.ps1") -Root $Root -Mode Fail | Out-Null
49