Skip to content

Release: 2 features, 3 fixes, 1 chore → Main#9415

Merged
h0lybyte merged 6 commits intomainfrom
dev
Apr 1, 2026
Merged

Release: 2 features, 3 fixes, 1 chore → Main#9415
h0lybyte merged 6 commits intomainfrom
dev

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot commented Apr 1, 2026

Release: Dev → Main

6 atomic commits ready for main

Features

Bug Fixes

Chores

  • chore(api): preparing next version of kbve.com (d8b02b4)

This PR is automatically maintained by CI — KBVE Studio

* fix(dashboard): remove empty body from KubeVirt VM start/stop/restart

The PUT to KubeVirt subresource endpoints was sending an empty JSON
body {} which triggered OpenAPI schema validation error: "The string
did not match the expected pattern". KubeVirt start/stop/restart
subresources expect no request body.

Also makes Content-Type header conditional — only set when a body
is present to avoid strict validators rejecting it.

* feat(dashboard): add KASM workspace backend + fix VM start error

Backend:
- Add KASM proxy routes (/dashboard/kasm/proxy, workspaces, scale)
- init_kasm_proxy() for reverse proxying to KASM web UI (port 6901)
- kasm_workspaces_handler lists deployments in kasm namespace via K8s API
- kasm_scale_handler scales workspace deployments (0 or 1 replicas)
- All endpoints require JWT + DASHBOARD_VIEW permission

Fix:
- Remove empty body {} from KubeVirt start/stop/restart PUT requests
  (was triggering OpenAPI "string did not match expected pattern" error)
- Make Content-Type header conditional on body presence
chuckrpg-tls (chuckrpg.com) and chuckrpg-api-tls (api.chuckrpg.com)
certificates existed in cluster but not in git, causing ArgoCD
OutOfSync. Also adds chuckrpg-api-routes HTTPRoute for api.chuckrpg.com.

All three ChuckRPG certs are now in git:
- chuckrpg-tls (chuckrpg.com)
- chuckrpg-api-tls (api.chuckrpg.com)
- game-chuckrpg-tls (game.chuckrpg.com)
@github-actions
Copy link
Copy Markdown
Contributor Author

github-actions Bot commented Apr 1, 2026

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Snapshot Warnings

⚠️: No snapshots were found for the head SHA 40dd539.
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.

OpenSSF Scorecard

PackageVersionScoreDetails
npm/guacamole-common-js 1.5.0 🟢 3.5
Details
CheckScoreReason
Maintained⚠️ 00 commit(s) out of 30 and 0 issue activity out of 6 found in the last 90 days -- score normalized to 0
Code-Review⚠️ 0no reviews found
CII-Best-Practices⚠️ 0no badge detected
Vulnerabilities🟢 10no vulnerabilities detected
Signed-Releases⚠️ -1no releases found
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
Packaging⚠️ -1no published package detected
License🟢 10license file detected
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Token-Permissions⚠️ 0non read-only tokens detected in GitHub workflows
Security-Policy⚠️ 0security policy file not detected
Binary-Artifacts🟢 10no binaries found in the repo
Dependency-Update-Tool⚠️ 0no update tool detected
Pinned-Dependencies⚠️ 2dependency not pinned by hash detected -- score normalized to 2
Fuzzing⚠️ 0project is not fuzzed

Scanned Files

  • pnpm-lock.yaml

@github-actions github-actions Bot changed the title Release: 1 feature → Main Release: 1 feature, 1 fix → Main Apr 1, 2026
@github-actions github-actions Bot changed the title Release: 1 feature, 1 fix → Main Release: 1 feature, 1 fix, 1 chore → Main Apr 1, 2026
Backend:
- Add Guacamole proxy routes (/dashboard/guac/proxy/*) for WebSocket
  tunnel to guacamole.angelscript.svc.cluster.local:8080
- init_guacamole_proxy() with session-based auth passthrough

Frontend:
- Add guacamole-common-js dependency (v1.5.0)
- Create ReactVMGuacViewer component — Guacamole WebSocket tunnel
  client with toolbar (Ctrl+Alt+Del, keyboard toggle, fullscreen)
- Add $guacTarget nanostore + openGuac/closeGuac to vmService
- Add RDP button to VM cards alongside existing VNC button
- Wire GuacViewer island into AstroVMDashboard
The npm @novnc/novnc package uses top-level await in CJS (browser.js)
which breaks Rollup bundling. The previous fix externalized it, but
then the dynamic import fails at runtime in production with:
"Module name '@novnc/novnc/lib/rfb' does not resolve to a valid URL"

Load the ESM build from esm.sh CDN instead, which avoids both the
Rollup CJS parsing issue and the runtime module resolution failure.
@github-actions github-actions Bot changed the title Release: 1 feature, 1 fix, 1 chore → Main Release: 2 features, 2 fixes, 1 chore → Main Apr 1, 2026
…e limit (#9418)

5 github-runner triggers at 30s = 10 API calls/min = 600/hour.
Increased all to 300s (5 min) = 1 call/min = 60/hour.

VMs don't need 30-second response time — 5 minute polling is
sufficient for CI job detection. This reduces GitHub API usage
by 90% and prevents rate limit errors.

Before: 600 API calls/hour → rate limit hit
After:  60 API calls/hour → well within 5,000/hour limit
@github-actions github-actions Bot changed the title Release: 2 features, 2 fixes, 1 chore → Main Release: 2 features, 3 fixes, 1 chore → Main Apr 1, 2026
@h0lybyte h0lybyte merged commit b0d7844 into main Apr 1, 2026
5 checks passed
@github-project-automation github-project-automation Bot moved this from Review to Done in KBVE Apr 1, 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