Skip to content

Release: 4 features, 4 fixes, 3 chores → Main#9369

Merged
h0lybyte merged 15 commits intomainfrom
dev
Mar 31, 2026
Merged

Release: 4 features, 4 fixes, 3 chores → Main#9369
h0lybyte merged 15 commits intomainfrom
dev

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot commented Mar 31, 2026

Release: Dev → Main

15 atomic commits ready for main

Features

Bug Fixes

Style

  • style(astro-kbve): more improvements to the kanban. (212ad4d)

Chores

Other Changes

  • feat|style(astro-kbve): better astro kanban display for kbve repo. (060d9c4)
  • feat|style: better kanban with gsap + chore of cargo lock. (d679fde)
  • style|fix(astro-kbve): updating the data rendering for kanban. (48775b3)

This PR is automatically maintained by CI — KBVE Studio

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
The map.proto source had new fields (HexCoord, SeedPolicy,
EnvironmentConfig, GenerationMode, PersistenceMode, StreamingHint,
ReplicationHint, ResourceType, ContainerType, CraftingStationType)
that were never reflected in the vendored map.rs. Regenerate with
BUILD_PROTO=1 to sync vendored code with proto source of truth.
Workflow had no jobs: key (entire section was commented out), causing
GitHub Actions to reject the YAML on every push to main. Added a
minimal stub job so the workflow is valid until macOS VM is provisioned.
@h0lybyte h0lybyte self-requested a review as a code owner March 31, 2026 02:03
@github-actions
Copy link
Copy Markdown
Contributor Author

github-actions Bot commented Mar 31, 2026

Dependency Review

The following issues were found:
  • ✅ 0 vulnerable package(s)
  • ✅ 0 package(s) with incompatible licenses
  • ✅ 0 package(s) with invalid SPDX license definitions
  • ⚠️ 2 package(s) with unknown licenses.
See the Details below.

Snapshot Warnings

⚠️: No snapshots were found for the head SHA 89d57b4.
Ensure that dependencies are being submitted on PR branches and consider enabling retry-on-snapshot-warnings. See the documentation for more information and troubleshooting advice.

License Issues

package.json

PackageVersionLicenseIssue Type
@novnc/novnc^1.6.0NullUnknown License

apps/kbve/axum-kbve/Cargo.toml

PackageVersionLicenseIssue Type
tokio-tungstenite>= 0.26.0, < 0.27.0NullUnknown License

OpenSSF Scorecard

PackageVersionScoreDetails
cargo/cookie_store 0.22.1 🟢 3.4
Details
CheckScoreReason
Code-Review⚠️ 0Found 0/9 approved changesets -- score normalized to 0
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Maintained🟢 68 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 6
Binary-Artifacts🟢 10no binaries found in the repo
Packaging⚠️ -1packaging workflow not detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0
Security-Policy⚠️ 0security policy file not detected
Signed-Releases⚠️ -1no releases found
Fuzzing⚠️ 0project is not fuzzed
License🟢 10license file detected
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
cargo/ureq 3.3.0 🟢 5.6
Details
CheckScoreReason
Code-Review⚠️ 2Found 7/25 approved changesets -- score normalized to 2
Binary-Artifacts🟢 10no binaries found in the repo
Packaging⚠️ -1packaging workflow not detected
Token-Permissions🟢 10GitHub workflow tokens follow principle of least privilege
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Maintained🟢 1014 commit(s) and 11 issue activity found in the last 90 days -- score normalized to 10
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Security-Policy⚠️ 0security policy file not detected
License🟢 10license file detected
Fuzzing⚠️ 0project is not fuzzed
Signed-Releases⚠️ -1no releases found
Branch-Protection⚠️ -1internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
cargo/ureq-proto 0.6.0 UnknownUnknown
cargo/utf8-zero 0.8.1 UnknownUnknown
npm/@novnc/novnc ^1.6.0 UnknownUnknown
cargo/tokio-tungstenite >= 0.26.0, < 0.27.0 UnknownUnknown
npm/@novnc/novnc 1.6.0 🟢 4.5
Details
CheckScoreReason
Code-Review🟢 3Found 7/20 approved changesets -- score normalized to 3
Maintained🟢 107 commit(s) and 7 issue activity found in the last 90 days -- score normalized to 10
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Binary-Artifacts🟢 10no binaries found in the repo
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0
Security-Policy⚠️ 0security policy file not detected
License🟢 9license file detected
Fuzzing⚠️ 0project is not fuzzed
Signed-Releases⚠️ -1no releases found
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
Packaging🟢 10packaging workflow detected
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0

Scanned Files

  • Cargo.lock
  • apps/kbve/axum-kbve/Cargo.toml
  • package.json
  • pnpm-lock.yaml

@github-actions github-actions Bot changed the title Release: 1 chore → Main Release: 1 fix, 2 chores → Main Mar 31, 2026
Adds a WebSocket-to-WebSocket VNC bridge in the axum backend and
integrates noVNC on the frontend for interactive remote desktop
access to KubeVirt virtual machines from the dashboard.

Backend (axum-kbve):
- New /dashboard/vm/vnc/{name} WebSocket endpoint
- Authenticates via JWT + DASHBOARD_VIEW permission (staff-only)
- Opens upstream WebSocket to K8s VNC subresource API
- Bidirectional frame relay using tokio::select! for concurrency
- VM name sanitization (alphanumeric + hyphens only)
- tokio-tungstenite added for upstream WebSocket client

Frontend (astro-kbve):
- ReactVMVncViewer rewritten with @novnc/novnc RFB client
- Full interactive desktop: keyboard, mouse, clipboard forwarding
- Toolbar: Ctrl+Alt+Del, virtual keyboard toggle, fullscreen
- Scale-to-fit viewport with quality/compression tuning
- vmService URL updated to use dedicated /vnc/ route

Navigation:
- VM dashboard added to sidebar under staff-only items
p3terx/aria2-pro requires root (s6-overlay) and fails with
runAsNonRoot security context. Replace with alpine:3.21 + aria2c
package — minimal, non-root, no s6/tracker bloat.

aria2c runs directly with all config via command-line flags:
16 connections/server, auto-resume, 10 retries, falloc allocation.
Prevents staff from accidentally stopping a KubeVirt VM while a GitHub
Actions CI job may be running on it.

vmService changes:
- VMInfo now tracks uptimeMinutes, runnerLabel, isKedaManaged, and
  mayHaveActiveJob computed from VMI creation timestamp and VM labels
- KEDA-managed VMs detected via runner/github-actions-runner labels
- mayHaveActiveJob is true when a KEDA VM has been running < 30 min
  (matches the idle shutdown CronJob threshold)

ReactVMCards changes:
- New banner on KEDA-managed VMs: amber warning when a job may be
  active, cyan info when idle/auto-managed
- Shows runner label, uptime, and risk description
- Stop/Restart buttons now show a confirmation dialog when
  mayHaveActiveJob is true, warning that stopping kills CI builds
- VNC and Start buttons remain unguarded (safe operations)
@github-actions github-actions Bot changed the title Release: 1 fix, 2 chores → Main Release: 2 features, 2 fixes, 2 chores → Main Mar 31, 2026
* feat(kasm): scaffold VPN-tunneled KASM workspace namespace

Add KASM ecosystem under apps/kube/kasm with:
- Namespace + ArgoCD Application
- Gluetun WireGuard sidecar + KASM desktop deployment (replicas: 0)
- VPN secret placeholder (WireGuard config)
- CiliumNetworkPolicy for egress lockdown (all traffic exits via VPN)
- Service for cluster-internal access to KASM web UI on port 6901

Deployment starts scaled to 0 — set replicas to 1 after configuring
the vpn-wireguard secret with a real WireGuard provider config.

* feat(kasm): seal ProtonVPN WireGuard credentials + add seal script

- Seal WireGuard config (ProtonVPN DE#214) as SealedSecret
- Add seal-vpn-secret.sh for re-sealing if keys rotate
- Remove plaintext vpn-secret.yaml placeholder

* feat(kasm): switch to Discord image + add PVC for session persistence

- Use kasmweb/discord:1.16.1 instead of generic desktop
- Add 5Gi Longhorn PVC mounted at /home/kasm-user for browser profile
- Discord session survives pod restarts (no re-login needed)

* fix(kasm): update Discord image to 1.18.0-rolling-daily
…ss (#9375)

Architecture:
  Browser → Ingress (TLS) → guacamole → guacd → ClusterIP → VM RDP (3389)
  RDP never exposed publicly. Single audited browser entry point.

Components:
- guacd: protocol proxy daemon (RDP/VNC/SSH translation)
- guacamole: web frontend (Tomcat, connection management)
- windows-builder-rdp Service: ClusterIP targeting VM on port 3389
- KEDA ScaledObjects: scale with UE5-Win jobs (0 idle, 1 active)
- ArgoCD application: automated sync, selfHeal disabled for KEDA

TODO stubs for: PostgreSQL backend, user-mapping.xml, HTTPRoute/Ingress
@github-actions github-actions Bot changed the title Release: 2 features, 2 fixes, 2 chores → Main Release: 4 features, 2 fixes, 2 chores → Main Mar 31, 2026
#9376)

The lightyear_webtransport patch crate (which added ::new() and
builder methods) was lost when other PRs merged. Revert to the
upstream struct literal syntax which works without the patch.
@github-actions github-actions Bot changed the title Release: 4 features, 2 fixes, 2 chores → Main Release: 4 features, 3 fixes, 2 chores → Main Mar 31, 2026
@github-actions github-actions Bot changed the title Release: 4 features, 3 fixes, 2 chores → Main Release: 4 features, 4 fixes, 2 chores → Main Mar 31, 2026
@github-actions github-actions Bot changed the title Release: 4 features, 4 fixes, 2 chores → Main Release: 4 features, 4 fixes, 3 chores → Main Mar 31, 2026
@h0lybyte h0lybyte added this pull request to the merge queue Mar 31, 2026
Merged via the queue into main with commit ccf1269 Mar 31, 2026
5 checks passed
@github-project-automation github-project-automation Bot moved this from Review to Done in KBVE Mar 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

1 participant