Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
180 commits
Select commit Hold shift + click to select a range
1293cc6
docs: reserve Gate 13 replacement run
flujo-app Aug 31, 2026
eb54b2b
docs: bind Gate 13 route runtime
flujo-app Aug 31, 2026
2c4f941
docs: bind Gate 13 client IAP access
flujo-app Aug 31, 2026
ddfb7c6
gate13: add durable run state contract
flujo-app Aug 31, 2026
bdaea0e
docs: record Gate 13 failed durable-run attempt
flujo-app Aug 31, 2026
2fe0de9
gate13: add durable native host jobs
flujo-app Aug 31, 2026
0e16ac2
gate13: close native job binding gaps
flujo-app Aug 31, 2026
1d30e3d
docs: record Gate 13 durable host prerequisite
flujo-app Aug 31, 2026
ee0c05f
gate13: bind actions to live budget reservation
flujo-app Aug 31, 2026
c1e1f86
docs: authorize straightforward Gate 13 retry
flujo-app Aug 31, 2026
0dc2345
docs: reserve Gate 13 retry after clean pre-VM failure
flujo-app Aug 31, 2026
1a65096
docs: reserve direct Gate 13 completion run
flujo-app Aug 31, 2026
3a1d1fc
gate13: make Windows host job headless
flujo-app Aug 31, 2026
7ee3c58
docs: authorize Gate 13 Windows supervisor repair
flujo-app Aug 31, 2026
56a96ea
docs: retire failed Gate 13 run d
flujo-app Aug 31, 2026
0f481d7
gate13: keep route setup reusable
flujo-app Aug 31, 2026
a561c58
docs: reserve corrected Gate 13 run e
flujo-app Aug 31, 2026
e547e2b
docs: move Gate 13 route to available zone
flujo-app Aug 31, 2026
6b27858
docs: keep Gate 13 resources in available zone
flujo-app Aug 31, 2026
2b895f5
gate13: retain bounded Windows failure phase
flujo-app Aug 31, 2026
6feb635
docs: authorize direct Gate 13 completion run
flujo-app Aug 31, 2026
8c56fec
gate13: preserve Windows user runtime environment
flujo-app Sep 1, 2026
4a1237e
docs: authorize corrected Gate 13 run
flujo-app Sep 1, 2026
0c67f0b
docs: retire incomplete Gate 13 staging run
flujo-app Sep 1, 2026
a7aabcc
docs: authorize complete Gate 13 staging run
flujo-app Sep 1, 2026
9ad67da
test: bind Gate 13 fixture to its ledger row
flujo-app Sep 1, 2026
805a1a5
docs: authorize manual Gate 13 completion run
flujo-app Sep 1, 2026
f1dc3a0
fix: support long Windows model cache paths
flujo-app Sep 1, 2026
d03826c
docs: complete Gate 13 manual qualification
flujo-app Sep 1, 2026
1476d67
test: automate Gate 13 desktop replay
flujo-app Sep 1, 2026
905cabd
ops: bind automated Gate 13 cloud replay
flujo-app Sep 1, 2026
1971f60
docs: authorize automated Gate 13 cloud replay
flujo-app Sep 1, 2026
d5dc353
gate13: replay inside native desktop sessions
flujo-app Sep 1, 2026
80ea591
docs: bind Gate 13 desktop session replay
flujo-app Sep 1, 2026
389661c
gate13: support Windows startup PowerShell crypto
flujo-app Sep 1, 2026
2fa2e89
docs: bind Windows bootstrap compatibility fix
flujo-app Sep 1, 2026
5f1eef1
gate13: restore Windows SSH after provisioning reboot
flujo-app Sep 1, 2026
dbf09b8
docs: bind Windows reboot service recovery
flujo-app Sep 1, 2026
e60c357
gate13: replay exact one-token inference
flujo-app Sep 1, 2026
01e3918
docs: bind one-token Gate 13 packages
flujo-app Sep 1, 2026
d957aac
gate13: replay proven CPU sharing policy
flujo-app Sep 1, 2026
cd3e347
gate13: replay exact manual desktop sequences
flujo-app Sep 2, 2026
2381226
gate13: match route fence to live API schema
flujo-app Sep 2, 2026
9258ef2
gate13: bind exact paid replay inputs
flujo-app Sep 2, 2026
5b0453d
gate13: make Windows bootstrap membership idempotent
flujo-app Sep 2, 2026
05fbe4f
gate13: replay manual inference recovery
flujo-app Sep 2, 2026
62b0dc3
gate13: clear replay CI blockers
flujo-app Sep 2, 2026
984aef3
gate13: show sharing page before UI actions
flujo-app Sep 2, 2026
e904d36
gate13: normalize automatic sharing before start
flujo-app Sep 2, 2026
b093b85
gate13: allow bounded GPU route restarts
flujo-app Sep 2, 2026
66f440b
gate13: retry stale route advertisements
flujo-app Sep 2, 2026
4c6eaca
gate13: accept fresh Linux supervisor inventory
flujo-app Sep 2, 2026
9c9a4ac
docs: record automated Gate 13 cloud pass
flujo-app Sep 2, 2026
b03ef94
docs: restore machine-readable spend ledger
flujo-app Sep 2, 2026
c0f2342
gate14: bind hardware qualification lifecycle
flujo-app Sep 2, 2026
a813ef1
docs: record Gate 14 software preflight
flujo-app Sep 2, 2026
727690c
gate14: add source-bound hardware executor
flujo-app Sep 2, 2026
6afa170
gate14: bind automatic intent acknowledgement
flujo-app Sep 2, 2026
5632cc5
gate14: add source-bound native host job
flujo-app Sep 2, 2026
f7a06e1
gate14: bind Linux desktop session paths
flujo-app Sep 2, 2026
da60d3d
gate14: add packaged lifecycle checkpoint contract
flujo-app Sep 2, 2026
79b45a6
Harden Gate 14 Windows lifecycle transport
flujo-app Sep 2, 2026
d4586f0
Bind Gate 14 release audit and warm cache
flujo-app Sep 2, 2026
1d572ef
Record Gate 14 production artifact evidence
flujo-app Sep 2, 2026
fee0bce
Add Gate 14 cross-platform lifecycle transport
flujo-app Sep 3, 2026
a1d7ad3
Checkpoint Gate 14 Linux product actions
flujo-app Sep 3, 2026
1aef936
Link Gate 14 restart ticket
flujo-app Sep 3, 2026
3089139
Verify Gate 14 Linux product cleanup
flujo-app Sep 3, 2026
f686016
Verify Gate 14 Windows product actions
flujo-app Sep 3, 2026
c30e2b7
Bind Gate 14 cache materialization handoff
flujo-app Sep 3, 2026
9a2483b
Keep Gate 14 promoted inputs readable
flujo-app Sep 3, 2026
a490cf8
Bind Gate 14 packaged acquisition inputs
flujo-app Sep 3, 2026
2861d29
ops: add one-click Gate 13 GCP replay
flujo-app Sep 3, 2026
de15d9c
Add Qwen3.8 FP8 dequantized block loading
flujo-app Sep 3, 2026
a48ce32
Record Qwen3.8 FP8 loader checkpoint
flujo-app Sep 3, 2026
93daa9f
Enforce exact Qwen worker artifact spans
flujo-app Sep 3, 2026
af7d887
Bind Qwen worker plans to server execution
flujo-app Sep 3, 2026
870e97e
docs: record source-bound Qwen3.8 span outcome
flujo-app Sep 3, 2026
22b544b
Add source-bound Qwen route controller
flujo-app Sep 3, 2026
da91918
Add fail-closed Qwen GCP adapter
flujo-app Sep 3, 2026
6cf2ce9
style: format Gate 13 cloud operations
flujo-app Sep 3, 2026
4264d33
feat: bind Qwen3.8 Linux runtime package
flujo-app Sep 3, 2026
ae72305
docs: record Qwen3.8 Linux package validation
flujo-app Sep 3, 2026
50dd0a3
feat: bind Qwen3.8 runtime package to route plan
flujo-app Sep 3, 2026
bd44375
docs: record Qwen3.8 runtime plan binding
flujo-app Sep 3, 2026
caf9bc8
feat: prepare protected Qwen3.8 Linux runtime
flujo-app Sep 3, 2026
5765f07
docs: record Qwen3.8 Linux host preparation
flujo-app Sep 3, 2026
96bb6d1
Bind Qwen route observations to instance generations
flujo-app Sep 3, 2026
848982b
Record Qwen instance generation latch checkpoint
flujo-app Sep 3, 2026
a0d5484
Authenticate Qwen host status envelopes
flujo-app Sep 3, 2026
1e8244b
Record authenticated Qwen host status checkpoint
flujo-app Sep 3, 2026
f3e70ad
Ground Qwen host status in protected runtime state
flujo-app Sep 3, 2026
ba5886a
Record protected Qwen host status grounding
flujo-app Sep 3, 2026
8fcb22b
Publish authenticated Qwen host status safely
flujo-app Sep 3, 2026
a615544
Bind Qwen IAP firewall into route plan
flujo-app Sep 3, 2026
bd53c29
Consume authenticated Qwen host status safely
flujo-app Sep 3, 2026
dc02c95
Record protected Qwen status transport checkpoint
flujo-app Sep 3, 2026
b1505fc
Vault Qwen instance-generation keys safely
flujo-app Sep 3, 2026
b807fff
Deliver Qwen host transport over protected IAP
flujo-app Sep 3, 2026
6a0f2ab
Record Qwen protected delivery checkpoint
flujo-app Sep 3, 2026
fe60d72
Record native Qwen Linux host probe
flujo-app Sep 3, 2026
e6d06d8
ops: wait for Gate 13 route startup
flujo-app Sep 3, 2026
21f9eca
gate13: build fresh release packages
flujo-app Sep 3, 2026
b335d38
gate13: preserve readable route catalog
flujo-app Sep 3, 2026
22770c4
gate13: run the staged route check directly
flujo-app Sep 4, 2026
172f295
gate13: make Windows gcloud SSH noninteractive
flujo-app Sep 4, 2026
e6f34d1
gate13: report one-click failure reasons
flujo-app Sep 4, 2026
5d6fe08
gate13: accept Linux stage SSH preamble
flujo-app Sep 4, 2026
9f384ef
gate13: survive transient GCP connection failures
flujo-app Sep 4, 2026
9e0beec
gate13: bound linux startup and improve retries
flujo-app Sep 4, 2026
15bf0f7
gate13: pin bounded linux startup
flujo-app Sep 4, 2026
02ae919
gate13: accept route SSH terminal framing
flujo-app Sep 4, 2026
1c075cb
gate13: parse framed SSH results
flujo-app Sep 4, 2026
283d308
gate13: make linux startup failures observable
flujo-app Sep 4, 2026
ae6507f
gate13: pin retrying linux startup
flujo-app Sep 4, 2026
3783a6f
gate13: retain failed linux host output
flujo-app Sep 4, 2026
9752938
gate13: retain failed linux lifecycle evidence
flujo-app Sep 4, 2026
10986d2
gate13: retire linux-only diagnostic runner
flujo-app Sep 4, 2026
ae12a2d
gate13: repair route retry and preserve failed qualification output
flujo-app Sep 4, 2026
fd04076
gate13: recover interrupted catalog bootstrap and expose startup erro…
flujo-app Sep 5, 2026
0981c28
gate13: repair Linux security repository transport [skip ci]
flujo-app Sep 5, 2026
bdff453
gate13: pin HTTPS Linux startup and read its failure status [skip ci]
flujo-app Sep 5, 2026
d9e8710
gate13: remove automatic previous-run recovery [skip ci]
flujo-app Sep 5, 2026
a08f207
fix: preserve stable routes and reap Linux worker descendants [skip ci]
flujo-app Sep 5, 2026
14f11d0
fix: pin one-click GCP route worker lifecycle repair [skip ci]
flujo-app Sep 5, 2026
283a23d
fix: persist Qwen product recovery and maintained replay [skip ci]
flujo-app Sep 6, 2026
2cb38c4
feat: add Qwen qualification runner using Gate 13 pattern [skip ci]
flujo-app Sep 6, 2026
7fb28a3
Fix automatic block formation and add bounded desktop cloud qualifica…
flujo-app Sep 7, 2026
161523c
Allow bounded formation retries in available us-central1 zones
flujo-app Sep 7, 2026
40bad0d
Add bounded Modal formation replay with real remote desktop controls
flujo-app Sep 7, 2026
a0c02d4
Detect unsupported settings persistence and qualify remote GCP desktops
flujo-app Sep 7, 2026
f496b8d
Keep unique blocks stable while an incomplete swarm grows
flujo-app Sep 7, 2026
3732ef2
Record live slow-growth failure and verified cleanup
flujo-app Sep 7, 2026
17ffeb2
Bound discovery startup and wait safely for formation coverage
flujo-app Sep 7, 2026
f9bf5a3
Record 32-block formation proof and discovery startup failure
flujo-app Sep 7, 2026
8d8fedf
Match Gate 13 policy-gated startup for formation recovery
flujo-app Sep 7, 2026
ef2672f
Record automatic 64-block inference and bounded fallback evidence
flujo-app Sep 7, 2026
16043d8
Record unattended desktop formation and recovery qualification pass
flujo-app Sep 7, 2026
f768cad
Add desktop VRAM and processing budget sliders with runtime pacing
flujo-app Sep 7, 2026
3438daf
Align desktop and Qwen checks with repository CI formatting
flujo-app Sep 7, 2026
5d9eec9
Match qualification checks to canonical health digests and bounded HT…
flujo-app Sep 7, 2026
b09aa2d
Show model block health, peer reservations and verified download prog…
flujo-app Sep 7, 2026
0b875c1
Add Windows and Debian engineering installers with shutdown checks
flujo-app Sep 7, 2026
40de496
Prepare signed APT snapshots and allow cold verifier startup in CI
flujo-app Sep 7, 2026
9c9b8c4
Record packaged Qwen controls, installer lifecycle and signing inquiry
flujo-app Sep 7, 2026
84c681c
Stop low-VRAM restart loops and qualify packaged resource sliders
flujo-app Sep 7, 2026
2b77d21
Preserve existing line endings in worker runtime sources
flujo-app Sep 7, 2026
76b6d84
Preserve model settings when catalog migration moves manifests
flujo-app Sep 7, 2026
d2608ae
Declare Linux X11 dependency and record release validation
flujo-app Sep 7, 2026
bf67f0d
Keep optional Triton JIT out of frozen Linux inference
flujo-app Sep 7, 2026
66fcb64
Record passing Gate 14 Windows and Linux acceptance
flujo-app Sep 7, 2026
03169d5
Refuse Linux replacement when process ownership is unreadable
flujo-app Sep 7, 2026
7a2620f
Run Linux installer process checks with dpkg privileges
flujo-app Sep 7, 2026
61ab7b1
Recheck installed helpers throughout Linux shutdown
flujo-app Sep 7, 2026
e811036
Record corrected Debian installer lifecycle and cleanup
flujo-app Sep 7, 2026
23a1f99
Record release sprint acceptance and harden desktop replay cleanup
flujo-app Sep 8, 2026
e47873c
Add bounded live canary RPC and catalog qualification drivers
flujo-app Sep 8, 2026
cc92991
Qualify Ubuntu installers and frozen Linux login and catalog startup
flujo-app Sep 8, 2026
64e4cf0
Complete bounded Gate 15 with frozen Windows login acceptance
flujo-app Sep 8, 2026
076b4b1
Fix Linux qualification transport and checkbox checks
flujo-app Sep 8, 2026
84205f9
Reduce packaged runtime duplication and add verified online installers
flujo-app Sep 8, 2026
fdd8d0b
Match repository import ordering for archive checks
flujo-app Sep 8, 2026
b6c8aad
Fix resumable Windows installer downloads and optional progress
flujo-app Sep 9, 2026
467848d
Publish qualified alpha installer links and acceptance evidence
flujo-app Sep 9, 2026
672cc6e
Repair desktop home, sharing controls and legacy catalogue migration
flujo-app Sep 9, 2026
fad2a1c
Format desktop qualification dispatch regression
flujo-app Sep 9, 2026
634c8ec
Match repository import ordering for desktop repair checks
flujo-app Sep 9, 2026
15e1757
Add signed automatic desktop updates with verified installer handoff
flujo-app Sep 9, 2026
420db84
Publish updater alpha downloads and signed feed [skip ci]
flujo-app Sep 9, 2026
c74efcf
Document desktop alpha system requirements [skip ci]
flujo-app Sep 9, 2026
1c773a5
Serve community inference through text peers and preserve full sharin…
flujo-app Sep 9, 2026
bda8d57
Set text mesh alpha application version
flujo-app Sep 9, 2026
d7f4333
Accept weight-free model status throughout the desktop
flujo-app Sep 9, 2026
dd37c51
Publish text-only mesh alpha and full sharing budget [skip ci]
flujo-app Sep 9, 2026
9fe4eb9
Keep current README screenshots and add alpha requirements [skip ci]
flujo-app Sep 9, 2026
cef8c06
Record installed client download and update offer [skip ci]
flujo-app Sep 9, 2026
121af8a
Add direct downloads for the current alpha [skip ci]
flujo-app Sep 9, 2026
540035f
Fix long Qwen text prompts and virtualized peer startup
flujo-app Sep 9, 2026
40b9e53
Stop community chat generation at the tokenizer turn boundary
flujo-app Sep 9, 2026
9d26632
Keep community discovery working across worker handovers
flujo-app Sep 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
103 changes: 95 additions & 8 deletions .github/workflows/desktop.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,11 @@ on:
- "src/**"
- "scripts/build_hivemind_windows.py"
- "scripts/hivemind-win32.patch"
- "scripts/gate13_linux_packaged_lifecycle.py"
- "scripts/gateq38_linux_host_runtime.py"
- "tests/test_runtime_archive_hardlinks.py"
- "tests/test_windows_download_helper.py"
- "tests/test_windows_online_integration.py"
- "docs/REVIVAL.md"
- "docs/REVIVAL_TEST_RESULTS.md"
workflow_dispatch:
Expand All @@ -21,7 +26,7 @@ jobs:
matrix:
# Public-alpha packaging is Windows/Linux only; macOS is explicitly deferred.
include:
- os: ubuntu-latest
- os: ubuntu-22.04
platform: linux
install_archive: communityai-desktop-linux.tar.gz
- os: windows-latest
Expand Down Expand Up @@ -49,7 +54,10 @@ jobs:
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install --no-install-recommends --yes libdbus-1-3 libegl1 libgl1 libxkbcommon0
sudo apt-get install --no-install-recommends --yes \
libdbus-1-3 libegl1 libgl1 libglib2.0-0 libfontconfig1 libfreetype6 \
libxkbcommon0 libxkbcommon-x11-0 libxcb-cursor0 libxcb-icccm4 \
libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-shape0 libwayland-cursor0 xvfb xauth
- name: Build patched Windows Hivemind runtime
if: runner.os == 'Windows'
run: |
Expand All @@ -58,8 +66,7 @@ jobs:
$wheel = Get-ChildItem ../dist/hivemind-1.1.12-*-win_amd64.whl | Select-Object -Last 1
if (-not $wheel) { throw "Hivemind wheel build produced no artifact" }
python -m pip install $wheel.FullName
- name: Install qualified Windows CUDA runtime
if: runner.os == 'Windows'
- name: Install qualified CUDA runtime
run: >-
python -m pip install
--index-url https://download.pytorch.org/whl/cu124
Expand All @@ -68,35 +75,115 @@ jobs:
run: |
python -m pip install -e "..[api]"
python -m pip install -e ".[dev]"
- name: Verify qualified Windows CUDA runtime
if: runner.os == 'Windows'
- name: Verify qualified CUDA runtime
run: python -c "import torch; assert torch.__version__ == '2.6.0+cu124'"
- name: Run protocol and runtime-boundary tests
working-directory: .
run: |
python -m unittest discover -s desktop/tests -v
communityai-desktop --self-test
- name: Verify normalized archive consumers
working-directory: .
run: python -m unittest discover -s tests -p test_runtime_archive_hardlinks.py -v
- name: Verify Linux installer process ownership as package-maintenance user
if: runner.os == 'Linux'
working-directory: .
run: sudo "$(command -v python)" -m unittest discover -s desktop/tests -p test_installers.py -v
- name: Reverify qualified CUDA runtime before bundling
run: python -c "import torch; assert torch.__version__ == '2.6.0+cu124'"
- name: Build and smoke unsigned public-alpha bundle
run: >-
python build_desktop.py
--publication-bundle ../public-alpha/catalog-v1
--publication-bundle ../public-alpha/catalog-qwen-v2
--source-commit "${{ github.sha }}"
--build-workflow "${{ github.workflow_ref }}"
- name: Independently verify release checksums and expected provenance
run: >-
python build_desktop.py
--verify-release-output dist/desktop
--publication-bundle ../public-alpha/catalog-v1
--publication-bundle ../public-alpha/catalog-qwen-v2
--source-commit "${{ github.sha }}"
--build-workflow "${{ github.workflow_ref }}"
--verify-build-environment
- name: Exercise frozen native CPU runtime without model downloads
run: ./dist/desktop/CommunityAI/node/CommunityAI-Node --native-self-test
- name: Exercise frozen desktop through X11
if: runner.os == 'Linux'
env:
QT_QPA_PLATFORM: xcb
run: |
xvfb-run --auto-servernum dist/desktop/CommunityAI/CommunityAI --ui-self-test
xvfb-run --auto-servernum dist/desktop/CommunityAI/CommunityAI --onboarding-ui-self-test
- name: Exercise packaged node, native credentials, and public seed
if: runner.os == 'Windows'
run: >-
python ../scripts/smoke_desktop_managed_node.py
--node-command dist/desktop/CommunityAI/node/CommunityAI-Node.exe
- name: Build unsigned Windows engineering installer
if: runner.os == 'Windows'
shell: pwsh
run: |
$innoInstaller = Join-Path $env:RUNNER_TEMP 'innosetup-6.7.3.exe'
$innoDirectory = Join-Path $env:RUNNER_TEMP 'inno-compiler'
Invoke-WebRequest -Uri 'https://github.com/jrsoftware/issrc/releases/download/is-6_7_3/innosetup-6.7.3.exe' -OutFile $innoInstaller
$signature = Get-AuthenticodeSignature -LiteralPath $innoInstaller
if ($signature.Status -ne 'Valid' -or $signature.SignerCertificate.Subject -notmatch 'Pyrsys') {
throw 'Unexpected Inno Setup publisher signature'
}
$process = Start-Process -FilePath $innoInstaller -ArgumentList @('/VERYSILENT','/SUPPRESSMSGBOXES','/NORESTART','/CURRENTUSER','/NOICONS',"/DIR=$innoDirectory") -WindowStyle Hidden -Wait -PassThru
if ($process.ExitCode -ne 0) { throw 'Inno Setup compiler installation failed' }
./installers/build_windows_installer.ps1 -Bundle dist/desktop/CommunityAI -OutputDirectory dist/installers -Version '0.1.0-alpha.${{ github.run_number }}' -Compiler (Join-Path $innoDirectory 'ISCC.exe') -UnsignedEngineering
- name: Compile online downloader with inert fixture metadata
if: runner.os == 'Windows'
shell: pwsh
run: |
# Compile the Pascal boundary without publishing or running a downloader.
# This intentionally unreachable fixture is kept outside uploaded artifacts.
$fixtureDirectory = Join-Path $env:RUNNER_TEMP 'communityai-online-compile-fixture'
New-Item -ItemType Directory -Path $fixtureDirectory -Force | Out-Null
$fixtureManifest = Join-Path $fixtureDirectory 'release-downloads.json'
@{
schema_version = 1
artifacts = @{
'windows-x64' = @{
platform = 'windows-x64'
kind = 'offline-installer'
format = 'exe'
version = '0.0.0-test'
filename = 'communityai-0.0.0-test-windows-setup.exe'
url = 'https://example.invalid/releases/0.0.0-test/communityai-0.0.0-test-windows-setup.exe'
sha256 = ('a' * 64)
size_bytes = 2519046440
}
}
} | ConvertTo-Json -Depth 10 | Set-Content -LiteralPath $fixtureManifest -Encoding utf8
./installers/build_windows_online_installer.ps1 -Manifest $fixtureManifest -OutputDirectory (Join-Path $fixtureDirectory 'output') -Compiler (Join-Path $env:RUNNER_TEMP 'inno-compiler/ISCC.exe') -UnsignedAlpha
- name: Verify resumable Windows downloader and owned setup handoff
if: runner.os == 'Windows'
working-directory: .
shell: pwsh
run: |
$env:COMMUNITYAI_INNO_COMPILER = Join-Path $env:RUNNER_TEMP 'inno-compiler/ISCC.exe'
python -m unittest discover -s tests -p test_windows_download_helper.py -v
if ($LASTEXITCODE -ne 0) { throw 'Resumable downloader tests failed' }
python -m unittest discover -s tests -p test_windows_online_integration.py -v
if ($LASTEXITCODE -ne 0) { throw 'Online setup integration tests failed' }
- name: Build Debian engineering package
if: runner.os == 'Linux'
run: >-
python installers/build_deb.py
--bundle dist/desktop/CommunityAI
--output dist/installers
--version '0.1.0~alpha.${{ github.run_number }}'
--maintainer 'CommunityAI engineering <engineering@example.invalid>'
- name: Upload engineering setup artifacts
uses: actions/upload-artifact@v6
with:
name: communityai-setup-${{ matrix.platform }}
path: desktop/dist/installers/*
if-no-files-found: error
compression-level: 0
retention-days: 7
- name: Upload self-contained install archive
uses: actions/upload-artifact@v6
with:
Expand Down
18 changes: 18 additions & 0 deletions .github/workflows/run-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -55,21 +55,34 @@ jobs:
tests/test_api_keys.py \
tests/test_cache.py \
tests/test_catalog_bootstrap.py \
tests/test_catalog_desktop_cleanup.py \
tests/test_catalog_publication.py \
tests/test_catalog_refresh.py \
desktop/tests/test_build_desktop.py \
desktop/tests/test_native_runtime_self_test.py \
desktop/tests/test_release_downloads.py \
desktop/tests/test_runtime_packaging.py \
desktop/tests/test_startup.py \
desktop/tests/test_windows_online_installer.py \
tests/test_deepseek_v3.py \
tests/test_discovery.py \
tests/test_edge_benchmark.py \
tests/test_external_qualification.py \
tests/test_device_portability.py \
tests/test_gate16_catalog_channel.py \
tests/test_gate16_catalog_drill.py \
tests/test_gemma4_block.py \
tests/test_gemma4_multimodal_loading.py \
tests/test_gemma4_unified.py \
tests/test_inference_recovery.py \
tests/test_join_token.py \
tests/test_kv_cache_strategy.py \
tests/test_loading_diagnostics.py \
tests/test_linux_online_installer.py \
tests/test_login_startup_linux.py \
tests/test_login_startup_windows_cycle.py \
tests/test_login_startup_windows_safety.py \
tests/test_login_startup_windows_state.py \
tests/test_model_catalog.py \
tests/test_model_manager.py \
tests/test_model_manifest.py \
Expand All @@ -87,9 +100,11 @@ jobs:
tests/test_qualification_matrix.py \
tests/test_qualification_cost_guard.py \
tests/test_qualification_image_contract.py \
tests/test_qualify_catalog_desktop.py \
tests/test_qwen3_5_block.py \
tests/test_qwen3_5_multimodal_loading.py \
tests/test_route_health.py \
tests/test_runtime_archive_hardlinks.py \
tests/test_server_registry.py \
tests/test_startup_guard.py \
tests/test_tied_embeddings_from_pretrained.py \
Expand All @@ -102,7 +117,10 @@ jobs:
# Atomic config exchange and shared admission are Windows/Linux public-alpha contracts.
# The production desktop workflow separately exercises the packaged Windows node.
# macOS remains outside the supported release matrix.
# Gate 16 additionally uses actual loopback-only TLS p2pd and the real handler,
# with no model allocation, external peers or public route mutation.
python -m pytest -v --durations=0 --durations-min=1.0 \
tests/test_gate16_live_rpc.py \
tests/test_policy_store.py \
tests/test_server_admission.py

Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -132,3 +132,6 @@ dmypy.json

.idea/
/.gate*

# Owner-requested local emergency publisher backup; never commit key material.
/.publisher-secrets/
Loading
Loading