Conversation
Contributor
Author
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Snapshot WarningsEnsure that dependencies are being submitted on PR branches and consider enabling retry-on-snapshot-warnings. See the documentation for more information and troubleshooting advice. Scanned Files
|
…race (#9444) The previous ApplyDeferred approach was placed after BufferToLink (too late) due to schedule cycle constraints. Replace with an exclusive system that calls world.flush() before LinkSystems::Receive. This forces all pending deferred commands (including AeronetLinkOf inserts from the on_connection observer) to apply before the receive system tries to drain Session.recv into Link.recv. Exclusive systems can be ordered against parent sets without causing cycles.
nx run isometric:run — local server (default ws://127.0.0.1:5000) nx run isometric:run:production — production server (wss://kbve.com/ws)
* fix(dashboard): handle empty response from KubeVirt start/stop/restart KubeVirt subresource API returns empty body on success (200 with no content). The apiFetch helper called resp.json() unconditionally, which threw "The string did not match the expected pattern" (browser JSON parse error on empty string). Fix: read as text first, only parse JSON if non-empty. Returns empty object for void responses. * fix(dashboard): install @novnc/novnc + guacamole-common-js VNC and Guacamole viewer components dynamically import these packages but they were never installed. Adds: - @novnc/novnc ^1.6.0 — noVNC WebSocket VNC client - guacamole-common-js ^1.5.0 — Apache Guacamole JS client
…ic HTTPS (#9445) The dedicated https-game-chuckrpg listener with hostname filter was claiming game.chuckrpg.com at the Envoy level, preventing the HTTP listener (port 80) from routing ACME HTTP-01 challenges for that domain. cert-manager's solver HTTPRoute attached correctly but Envoy returned 404 because the hostname was owned by the HTTPS listener. Fix: remove the dedicated listener and add all chuckrpg certs (chuckrpg-tls, chuckrpg-api-tls, game-chuckrpg-tls) as certificate refs on the generic HTTPS listener. Envoy uses SNI to select the correct cert — no hostname filter needed. This establishes the pattern for all future domains: no per-domain HTTPS listeners, just add the cert ref to the generic listener. Post-merge: kubectl delete challenge -n chuckrpg --all kubectl delete order -n chuckrpg --all
…#9446) * fix(dashboard): map VMI Succeeded/Failed phase to Stopped KubeVirt VMI lingers in Succeeded phase after clean shutdown. getPhase() returned raw VMI phase which isn't in the VMPhase union, causing the UI to show no action buttons (no Start after first run). Fix: cast raw API phase to string, map Succeeded/Failed → Stopped and Pending/Scheduling → Starting before returning VMPhase. * feat(dashboard): add bitmask VM state for composable UI decisions Replace string-based phase matching with bitmask flags: - VMState.CAN_START, CAN_STOP, CAN_RESTART, CAN_CONNECT, etc. - phaseToState() maps every KubeVirt phase to flags - stateToPhase() resolves back to display label - VMInfo.state field for components to check capabilities Handles all edge cases: Succeeded, Failed, Pending, Scheduling, CrashLoopBackOff, ErrorUnschedulable, WaitingForVolumeBinding. UI usage: if (info.state & VMState.CAN_START) showStartButton();
New kasmService.ts alongside vmService.ts: - Discovers KASM deployments in kasm namespace via K8s API proxy - Tracks workspace state: replicas, VPN status, image, port - Uses same bitmask pattern as VMState (KasmState.CAN_START, etc.) - Start/Stop via Deployment scale (replicas 0/1) - Auto-refresh every 15s - Detects Gluetun VPN sidecar status Ready to wire into AstroVMDashboard.astro as a KASM section.
…deploy bot in shared namespace (#9448) Strip all Discord bot code from axum-discordsh (34 source files, 3 data files, 11 templates). Remove poise, serenity, bevy_*, dashmap, and 8 other bot-only deps. Slim main.rs to HTTP-only, state.rs to 4 fields. Move discordsh-bot deployment into discordsh namespace to share existing secrets (Redis, Supabase). Remove separate discordsh-bot namespace and ArgoCD app. Both pods (HTTP + bot) now live side-by-side in discordsh. Both crates compile independently with zero errors. Closes #9286 Phase 3C
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release: Dev → Main
11 atomic commits ready for main
Features
81390e4)e8a6909)Bug Fixes
554a842)d4d5412)f7f5348)384d7a4)Documentation
d52af63)Refactoring
89647f6)Chores
acc4ac9)dc4dc9c)93319a1)This PR is automatically maintained by CI — KBVE Studio