Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
2b9b333
Merge pull request #6 from NetworkBuster/main
Cleanskiier27 Dec 17, 2025
1db2622
CI: add AI Robot test workflow (mock mode) for PRs
Cleanskiier27 Dec 21, 2025
e066cf5
docs: add sterilization procedures and supplies; helper script to upd…
Cleanskiier27 Dec 21, 2025
e13685f
docs: add sterilization checklist, template, record scripts; add docs…
Cleanskiier27 Dec 21, 2025
ef475c0
chore: add watchdog, task installer, crash test, and service plan doc
Cleanskiier27 Dec 21, 2025
bbffbac
chore: add NSSM install script and document example
Cleanskiier27 Dec 21, 2025
c3f0881
Add NetworkBuster firewall output
Cleanskiier27 Dec 21, 2025
6ec0914
chore: update publish.sh
Cleanskiier27 Dec 21, 2025
41cd3e3
feat: add start-test-instance helper (pending approval, auto-accept)
Cleanskiier27 Dec 21, 2025
59b39c9
fix: allow fractional AutoAcceptSeconds (default 0.001s)
Cleanskiier27 Dec 21, 2025
2bc2b78
fix: coerce -StartProcess to boolean when passed as string/number
Cleanskiier27 Dec 21, 2025
76b27b6
CI: install puppeteer and render hi-res PNGs for diagrams; add png li…
Cleanskiier27 Dec 21, 2025
f9e64ec
CI: trigger render-diagrams on push to bigtree for immediate run
Cleanskiier27 Dec 21, 2025
8b46697
Add Android antigravity module skeleton; update README and .gitignore
Cleanskiier27 Dec 21, 2025
91e489a
Document gcloud-startup helper in README
Cleanskiier27 Dec 21, 2025
289b412
Document gcloud-startup helper in README
Cleanskiier27 Dec 21, 2025
1f4308a
Add gcloud startup helper script
Cleanskiier27 Dec 21, 2025
fad3ad6
Fix: robust Node ZIP extraction/rename in render-local.ps1 (handle no…
Cleanskiier27 Dec 21, 2025
03db12c
feat(auth): disable auth by default (AUTH_ENABLED=false); gate auth U…
Cleanskiier27 Dec 21, 2025
fc1e6bd
chore: remove bundled Node tools and add tools/ to .gitignore
Cleanskiier27 Dec 21, 2025
c859e40
feat(lfs): scaffold x86_64 rootfs build and add manual kernel build (…
Cleanskiier27 Dec 21, 2025
6f82063
ci(lfs): add cache validation workflow and local validation scripts
Cleanskiier27 Dec 21, 2025
5588f62
chore(scripts): add WSL update scripts (host PowerShell + WSL bash) a…
Cleanskiier27 Dec 21, 2025
eb9c063
feat(scripts): allow -WorkingDir and -RegisterScheduledTask to run/up…
Cleanskiier27 Dec 24, 2025
4ac3bdb
feat(scripts): add -LogDir support and transcript logging; include Lo…
Cleanskiier27 Dec 24, 2025
ff2db67
feat(scripts): add copy-to-drive script to prepare artifacts for uplo…
Cleanskiier27 Dec 24, 2025
44a2a4a
feat: implement kernel cache restoration and build optimizations; add…
Cleanskiier27 Dec 24, 2025
d0456db
feat: Implement device registration API and ingestion pipeline
Cleanskiier27 Dec 24, 2025
7d4d6d7
go boost
Cleanskiier27 Dec 24, 2025
3fd1c3b
feat: Add Android project structure with build configuration, main ac…
Cleanskiier27 Dec 24, 2025
5e436b2
feat: Add AI Proxy Gateway and repository cleanup tools
Dec 25, 2025
c7dca3c
feat: Add SatGPU realtime Linux GPU monitoring to overlay
Dec 25, 2025
38a796f
feat: Add test-reports folder with cadil user reports and branch summary
Dec 25, 2025
6edabce
feat: Add comprehensive network path optimizer with DNS caching and c…
Dec 25, 2025
b4caf79
feat: Implement rapid AI streaming, fix package.json BOM, and optimiz…
Dec 25, 2025
059739b
feat: integrate luna.eu to dashboard and backend api
Dec 25, 2025
759d61a
feat: complete Hyper-V environmental upgrade and provisioning script
Dec 25, 2025
897a826
Update dependencies: upgrade React, Vite plugin, and add Vercel support
Jan 3, 2026
a3dae4b
Add WiFi 7 Mesh Overlay HTML with interactive features and visualizat…
Jan 3, 2026
38b92b6
Add NetworkBuster application installer and GUI launcher with shortcu…
Jan 3, 2026
06d6367
feat: Add satellite maps, gateway management, and production WSGI server
Jan 3, 2026
d7c5ec8
Merge: Accept remote package updates
Jan 3, 2026
d1a20af
Branding: add ' AI style' display and footer
Jan 8, 2026
c630375
Merge branch 'bigtree' of https://github.com/NetworkBuster/networkbus…
Jan 8, 2026
bc16a71
chore: update subproject commit reference
Cleanskiier27 Jan 8, 2026
3c48b93
Add files via upload
Cleanskiier27 Jan 8, 2026
86d3c4b
Initial plan (#28)
Copilot Feb 6, 2026
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
21 changes: 21 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Copy this file to .env and fill in the values. Do NOT commit your real secrets.

# AI Provider API Keys (set at least one)
OPENAI_API_KEY=
AZURE_OPENAI_ENDPOINT=
AZURE_OPENAI_KEY=
AZURE_OPENAI_DEPLOYMENT=gpt-4o
ANTHROPIC_API_KEY=
GOOGLE_GEMINI_KEY=
CUSTOM_AI_ENDPOINT=http://localhost:11434/v1
CUSTOM_AI_KEY=

# AI Gateway Configuration
AI_GATEWAY_PORT=3002
AI_DEFAULT_PROVIDER=openai
AI_RATE_LIMIT_PER_MINUTE=60
AI_CACHE_TTL_SECONDS=300
AI_ALLOW_ANONYMOUS=true
AI_ALLOW_UNREGISTERED=true
AI_API_KEY=your-api-key-for-testing
ADMIN_KEY=your-admin-key
5 changes: 5 additions & 0 deletions .github/cspell/cspell.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"version": "0.1",
"language": "en",
"words": ["sterilization","datacentra","NetworkBuster","regolith","PAPR","UV-C"]
}
23 changes: 23 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: CI

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: '24'
- name: Install dependencies
run: npm ci
- name: Run tests
run: npm test
- name: Run npm audit
run: npm audit --audit-level=moderate || true
54 changes: 54 additions & 0 deletions .github/workflows/integration-device-registration.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: CI - Device Registration Integration Tests

on:
push:
branches: [ main, master ]
pull_request:
branches: [ main, master ]
workflow_dispatch: {}

jobs:
integration-tests:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [24.x]
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'

- name: Install dependencies
run: npm ci

- name: Start server (background)
run: |
nohup node server.js > server.log 2>&1 &
sleep 1

- name: Wait for server
run: |
for i in {1..30}; do
if curl -sSf http://localhost:3001/api/health >/dev/null; then
echo "server ready"; exit 0
fi
sleep 1
done
echo "Server not ready" && cat server.log && exit 1

- name: Run E2E integration test
env:
BASE: http://localhost:3001
run: npm run test:integration:devices

- name: Upload server logs on failure
if: failure()
uses: actions/upload-artifact@v4
with:
name: server-log
path: server.log
88 changes: 88 additions & 0 deletions .github/workflows/lfs-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
name: Build LFS rootfs (PoC)

on:
push:
paths:
- 'os/lfs/**'
workflow_dispatch:
inputs:
build_kernel:
description: 'Build kernel during job? ("true" or "false")'
required: false
default: 'false'
kernel_version:
description: 'Kernel version to build (e.g., 6.8.13)'
required: false
default: '6.8.13'

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set kernel build flags
run: |
echo "event_name=${{ github.event_name }}"
# If manually dispatched and build_kernel==true, enable kernel build
if [ "${{ github.event_name }}" = "workflow_dispatch" ] && [ "${{ github.event.inputs.build_kernel }}" = "true" ]; then
echo "SKIP_KERNEL=false" >> $GITHUB_ENV
echo "KERNEL_VERSION=${{ github.event.inputs.kernel_version }}" >> $GITHUB_ENV
echo "Kernel build enabled: $KERNEL_VERSION"
else
echo "SKIP_KERNEL=true" >> $GITHUB_ENV
echo "KERNEL_VERSION=${{ github.event.inputs.kernel_version }}" >> $GITHUB_ENV
echo "Kernel build disabled (default)"
fi

- name: Restore kernel cache
uses: actions/cache@v4
with:
path: .cache/linux-${{ env.KERNEL_VERSION }}
key: linux-kernel-${{ env.KERNEL_VERSION }}-${{ runner.os }}-v1

- name: Build container image
run: |
docker build -t lfs-build -f os/lfs/Dockerfile .

- name: Run build in container
env:
SKIP_KERNEL: ${{ env.SKIP_KERNEL }}
KERNEL_VERSION: ${{ env.KERNEL_VERSION }}
run: |
mkdir -p os/lfs/output
mkdir -p .cache/linux-${{ env.KERNEL_VERSION }}
docker run --rm -e SKIP_KERNEL="$SKIP_KERNEL" -e KERNEL_VERSION="$KERNEL_VERSION" -e KERNEL_CACHE_DIR="/workspace/kernel-cache" -v "$PWD/.cache/linux-${{ env.KERNEL_VERSION }}:/workspace/kernel-cache" -v "$PWD/os/lfs/output:/workspace/output" lfs-build || true

- name: Upload rootfs artifact
uses: actions/upload-artifact@v4
with:
name: lfs-rootfs
path: os/lfs/output/rootfs.tar.gz

- name: Attempt QEMU smoke boot (best-effort)
if: always()
run: |
# install QEMU on runner
sudo apt-get update && sudo apt-get install -y qemu-system-x86

# choose kernel: prefer built artifact
if [ -f os/lfs/output/vmlinuz-${{ env.KERNEL_VERSION }} ]; then
KERNEL=$(pwd)/os/lfs/output/vmlinuz-${{ env.KERNEL_VERSION }}
echo "Using built kernel: $KERNEL"
elif ls /boot/vmlinuz-* 1>/dev/null 2>&1 && [ -f os/lfs/output/rootfs.cpio.gz ]; then
KERNEL=$(ls -1 /boot/vmlinuz-* | tail -n1)
echo "Using host kernel: $KERNEL"
else
KERNEL=""
fi

if [ -n "$KERNEL" ] && [ -f os/lfs/output/rootfs.cpio.gz ]; then
timeout 30s qemu-system-x86_64 -kernel "$KERNEL" -initrd os/lfs/output/rootfs.cpio.gz -nographic -append "console=ttyS0 root=/dev/ram0 rw init=/init" -m 512 -no-reboot || true
else
echo "No kernel + initramfs available on runner — skipping QEMU boot test"
fi

- name: List artifacts
run: ls -lh os/lfs/output || true
63 changes: 63 additions & 0 deletions .github/workflows/lfs-cache-validate.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Validate LFS kernel cache

on:
workflow_dispatch:
inputs:
kernel_version:
description: 'Kernel version to validate (e.g., 6.8.13)'
required: false
default: '6.8.13'

jobs:
build-and-cache:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Restore cache (initial)
uses: actions/cache@v4
with:
path: .cache/linux-${{ github.event.inputs.kernel_version }}
key: linux-kernel-${{ github.event.inputs.kernel_version }}-${{ runner.os }}-v1

- name: Build container image
run: docker build -t lfs-build -f os/lfs/Dockerfile .

- name: Run build to populate cache
run: |
mkdir -p .cache/linux-${{ github.event.inputs.kernel_version }}
docker run --rm -e SKIP_KERNEL=false -e KERNEL_VERSION="${{ github.event.inputs.kernel_version }}" -e KERNEL_CACHE_DIR=/workspace/kernel-cache -v "$PWD/.cache/linux-${{ github.event.inputs.kernel_version }}:/workspace/kernel-cache" -v "$PWD/os/lfs/output:/workspace/output" lfs-build || true

verify-cache:
runs-on: ubuntu-latest
needs: build-and-cache
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Restore cache (verify)
uses: actions/cache@v4
with:
path: .cache/linux-${{ github.event.inputs.kernel_version }}
key: linux-kernel-${{ github.event.inputs.kernel_version }}-${{ runner.os }}-v1

- name: Check cached vmlinuz exists
run: |
if [ -f .cache/linux-${{ github.event.inputs.kernel_version }}/vmlinuz-${{ github.event.inputs.kernel_version }} ]; then
echo "Cached kernel found"
else
echo "Cached kernel missing" >&2
exit 1
fi

- name: Run build and check logs for cache usage
run: |
mkdir -p os/lfs/output
docker run --rm -e SKIP_KERNEL=false -e KERNEL_VERSION="${{ github.event.inputs.kernel_version }}" -e KERNEL_CACHE_DIR=/workspace/kernel-cache -v "$PWD/.cache/linux-${{ github.event.inputs.kernel_version }}:/workspace/kernel-cache" -v "$PWD/os/lfs/output:/workspace/output" lfs-build | tee build.log || true
if grep -q "Using cached kernel tarball" build.log || grep -q "Using cached built kernel" build.log; then
echo "Cache used during build"
else
echo "Cache not used (check output)" >&2
exit 1
fi
52 changes: 52 additions & 0 deletions .github/workflows/network-boost-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Network Boost CI

on:
pull_request:
paths:
- 'contrib/Cleanskiier27-final/**'
- 'scripts/network-boost.*'

jobs:
lint-and-dryrun-linux:
name: Lint (shellcheck) & Dry-run (Linux)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install ShellCheck
run: sudo apt-get update && sudo apt-get install -y shellcheck
- name: Run ShellCheck on Linux script
run: |
shellcheck contrib/Cleanskiier27-final/scripts/network-boost.sh || true
- name: Run Linux dry-run
run: |
bash contrib/Cleanskiier27-final/scripts/network-boost.sh || true

lint-and-dryrun-windows:
name: Lint (PSScriptAnalyzer) & Dry-run (Windows)
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Install PSScriptAnalyzer
shell: pwsh
run: |
Install-Module -Name PSScriptAnalyzer -Force -Scope CurrentUser -Confirm:$false
- name: Run PSScriptAnalyzer
shell: pwsh
run: |
Invoke-ScriptAnalyzer -Path .\contrib\Cleanskiier27-final\scripts\network-boost.ps1 -Recurse -Severity Error || true
- name: Windows dry-run
shell: pwsh
run: |
powershell -NoProfile -ExecutionPolicy Bypass -File .\contrib\Cleanskiier27-final\scripts\network-boost.ps1

optional-checks:
name: Optional checks (formatters/linter)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run shellcheck on all shell scripts (contrib)
run: |
for f in $(git ls-files 'contrib/**.sh'); do shellcheck "$f" || true; done
- name: Display generated files (for review)
run: |
ls -R contrib/Cleanskiier27-final || true
23 changes: 23 additions & 0 deletions .github/workflows/recycle-ai-demo.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: Recycle AI demo

on:
workflow_dispatch:

jobs:
demo:
runs-on: ubuntu-latest
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
steps:
- uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 24
- name: Install dependencies
run: npm ci
- name: Run simple recycle API test
run: |
node server.js &
sleep 2
curl -sS -X POST http://localhost:3001/api/recycle/recommend -H 'Content-Type: application/json' -d '{"items":[{"name":"plastic bottle"}],"location":"94107"}' | jq '.' || true
Loading
Loading