Skip to content

Release: 4 features, 2 fixes, 1 chore → Main#7756

Merged
h0lybyte merged 7 commits intomainfrom
dev
Mar 8, 2026
Merged

Release: 4 features, 2 fixes, 1 chore → Main#7756
h0lybyte merged 7 commits intomainfrom
dev

Conversation

@github-actions
Copy link
Contributor

@github-actions github-actions bot commented Mar 7, 2026

Release: Dev → Main

7 atomic commits ready for main

Features

Bug Fixes

Chores


This PR is automatically maintained by CI — KBVE Studio

* feat(isometric): scaffold Bevy + React + Tauri isometric game

Adds a new Diablo-style isometric game at apps/kbve/isometric/ using:
- Bevy 0.15.1 for wgpu rendering (isometric camera, tilemap, player)
- Tauri 2 for desktop shell with custom Bevy-Tauri event bridge
- React 19 + Vite 6 for HUD overlay (health/mana bars, inventory, FPS)
- IPC commands for game state and FPS monitoring

* fix(isometric): simplify Bevy-Tauri bridge, fix camera scaling, add icons

- Simplify TauriPlugin to builder closure API without wgpu bridge
- Let Bevy create its own native window (Tauri handles IPC only)
- Fix camera with FixedVertical scaling (viewport_height: 20.0)
- Add tonemapping_luts and bevy_winit features to Cargo.toml
- Generate proper app icons from 1024x1024 source via cargo tauri icon
- Add pnpm lockfile and workspace config for frontend deps
- Remove unused PI import from camera.rs

* feat(isometric): upgrade Bevy to 0.18 and add pixelation post-processing

Upgrade from Bevy 0.15.1 to 0.18.1 with all migration changes applied:
- AmbientLight resource split to GlobalAmbientLight
- ScalingMode moved to bevy::camera
- Query::get_single() replaced with Query::single()
- WindowResolution::new takes u32 instead of f32
- wgpu updated to v27, renderer.rs updated for new API

Add pixelation post-processing effect using Bevy 0.18 FullscreenMaterial:
- pixelate.wgsl shader quantizes UVs for retro pixel look
- PixelateSettings component with configurable pixel_size (default 4.0)
- Runs after tonemapping in the Core3d render graph

* feat(isometric): add scene objects, collision, shadows, and DPI-independent pixelation

- Add test scene objects (boxes, crystal, pillar, sphere) with animations
- Add AABB collision detection for player movement with wall-sliding
- Add occlusion transparency when player walks behind objects
- Improve shadow visibility with cascade config and offset light angle
- Rewrite pixelation shader to work in UV/logical pixel space for
  consistent rendering across Retina and non-Retina displays
- Add tunable edge_strength and depth_edge_strength uniforms
- Sync window DPI scale_factor into shader each frame

* feat(isometric): add object registry, hover highlights, DashMap snapshots, and shadow tuning

Centralized object management via ObjectRegistry with ObjectKind enum, message-driven spawn/despawn, spatial index, and IPC snapshot. Added mouse hover highlight system with emissive glow boost and wireframe gizmo outlines via MeshPickingPlugin. Replaced Mutex<Option<T>> with DashMap for lock-free concurrent snapshot reads. Tuned ambient/directional lighting and edge detection strength.
h0lybyte added 2 commits March 7, 2026 18:58
Rewrite McSkinViewer with correct UV mapping (flipY=false), overlay
layers, and self-hosted texture proxy. Consolidate three LRU caches
into a single DashMap<CachedPlayer> in McService. Add
/api/v1/mc/textures/{hash} Axum endpoint to proxy Mojang skin PNGs.
…7757)

The ScheduledBackup cron '0 2 * * *' was a 5-field format being
parsed as 6-field by CNPG (sec=0 min=2 hour=* → every hour at :02).
Fix to '0 0 2 * * *' for daily at 2 AM UTC. This was causing 24x
more base backups per day and inflating S3 costs.

Also adds instanceSidecarConfiguration with retentionPolicyIntervalSeconds
to clean up WAL files beyond the retention window. Increased retention
from 3d to 7d for safety.
@github-actions github-actions bot changed the title Release: 1 feature → Main Release: 1 feature, 2 fixes → Main Mar 7, 2026
@github-actions
Copy link
Contributor Author

github-actions bot commented Mar 7, 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
  • ⚠️ 8 package(s) with unknown licenses.
  • ⚠️ 21 packages with OpenSSF Scorecard issues.

View full job summary

Crossplane-managed BucketLifecycleConfiguration as a safety net
for the kilobase backup bucket. Expires WAL files after 14 days
and base backups after 30 days at the S3 level, independent of
barman's 7-day retention. Also cleans up incomplete multipart
uploads after 3 days.
@github-actions github-actions bot changed the title Release: 1 feature, 2 fixes → Main Release: 2 features, 2 fixes → Main Mar 8, 2026
@github-actions github-actions bot changed the title Release: 2 features, 2 fixes → Main Release: 2 features, 2 fixes, 1 chore → Main Mar 8, 2026
* feat(staff): add bitwise staff permission system and lock down Grafana proxy

Implement a staff permission system using bitwise flags for granular access
control. The proto defines the contract, SQL schema enforces it with SECURITY
DEFINER functions and RLS, and the Rust backend caches permissions alongside
JWT tokens. The Grafana proxy now requires DASHBOARD_VIEW permission. The
dashboard component is expanded to a unified view with 12 metrics across
Nodes and Kubernetes sections.

* fix(staff): harden authorization scope guards and fix bit numbering

- Fix superadmin bit numbering: 0x40000000 is bit 30 (zero-indexed), not 31
- Add revoke/remove scope guards: actors cannot revoke/remove permissions
  they don't hold, and non-superadmins cannot touch superadmin targets
- Fix proxy_has_permission to require ALL bits in composite masks (= p_flag)
  instead of ANY bit (!= 0)
- Rename granted_by to last_granted_by for clearer semantics
- Add explicit ALTER FUNCTION OWNER TO postgres for all SECURITY DEFINER fns
- Qualify to_hex as pg_catalog.to_hex in SECURITY DEFINER functions
- Document RLS belt-and-suspenders pattern and zero-perms deletion invariant
- Document NULL actor_id as privileged bootstrap-only bypass

* fix(staff): add row locking, input validation, and idempotent triggers

- Add FOR UPDATE row locking in service_grant/revoke/remove to prevent
  lost updates under concurrent modifications
- Guard proxy_has_permission against p_flag <= 0 (prevents silent
  authorization when 0 is passed — (v & 0) = 0 is always true)
- Add negative mask validation to service_revoke (consistency with grant)
- Make triggers idempotent with DROP TRIGGER IF EXISTS before CREATE
- Qualify NOW() as pg_catalog.now() in SECURITY DEFINER trigger functions

* fix(staff): advisory lock for audit race, idempotent policies, skip churn

- Add pg_advisory_xact_lock(hashtext(user_id)) in service_grant to
  serialize concurrent first-insert operations, preventing audit rows
  that record stale old_perms=0 when two grants race for a new user
- Skip UPDATE-then-DELETE in service_revoke when permissions hit zero;
  delete directly to avoid unnecessary trigger churn and WAL writes
- Add DROP POLICY IF EXISTS before CREATE POLICY for full idempotency

* fix(staff): collision-resistant lock key, audit requested_perms, rename tiers

- Replace hashtext() advisory lock with two-key lock derived from UUID
  halves (64-bit total) to eliminate 32-bit hash collision risk
- Add requested_perms column to audit_log for forensic fidelity — records
  what the actor attempted, not just what changed
- Rename "Core tiers" to "Core role flags" in proto and SQL comments to
  align terminology with the actual bitwise-containment authority model
@github-actions github-actions bot changed the title Release: 2 features, 2 fixes, 1 chore → Main Release: 3 features, 2 fixes, 1 chore → Main Mar 8, 2026
* feat(isometric): scaffold Bevy + React + Tauri isometric game

Adds a new Diablo-style isometric game at apps/kbve/isometric/ using:
- Bevy 0.15.1 for wgpu rendering (isometric camera, tilemap, player)
- Tauri 2 for desktop shell with custom Bevy-Tauri event bridge
- React 19 + Vite 6 for HUD overlay (health/mana bars, inventory, FPS)
- IPC commands for game state and FPS monitoring

* fix(isometric): simplify Bevy-Tauri bridge, fix camera scaling, add icons

- Simplify TauriPlugin to builder closure API without wgpu bridge
- Let Bevy create its own native window (Tauri handles IPC only)
- Fix camera with FixedVertical scaling (viewport_height: 20.0)
- Add tonemapping_luts and bevy_winit features to Cargo.toml
- Generate proper app icons from 1024x1024 source via cargo tauri icon
- Add pnpm lockfile and workspace config for frontend deps
- Remove unused PI import from camera.rs

* feat(isometric): upgrade Bevy to 0.18 and add pixelation post-processing

Upgrade from Bevy 0.15.1 to 0.18.1 with all migration changes applied:
- AmbientLight resource split to GlobalAmbientLight
- ScalingMode moved to bevy::camera
- Query::get_single() replaced with Query::single()
- WindowResolution::new takes u32 instead of f32
- wgpu updated to v27, renderer.rs updated for new API

Add pixelation post-processing effect using Bevy 0.18 FullscreenMaterial:
- pixelate.wgsl shader quantizes UVs for retro pixel look
- PixelateSettings component with configurable pixel_size (default 4.0)
- Runs after tonemapping in the Core3d render graph

* feat(isometric): add scene objects, collision, shadows, and DPI-independent pixelation

- Add test scene objects (boxes, crystal, pillar, sphere) with animations
- Add AABB collision detection for player movement with wall-sliding
- Add occlusion transparency when player walks behind objects
- Improve shadow visibility with cascade config and offset light angle
- Rewrite pixelation shader to work in UV/logical pixel space for
  consistent rendering across Retina and non-Retina displays
- Add tunable edge_strength and depth_edge_strength uniforms
- Sync window DPI scale_factor into shader each frame

* feat(isometric): add object registry, hover highlights, DashMap snapshots, and shadow tuning

Centralized object management via ObjectRegistry with ObjectKind enum, message-driven spawn/despawn, spatial index, and IPC snapshot. Added mouse hover highlight system with emissive glow boost and wireframe gizmo outlines via MeshPickingPlugin. Replaced Mutex<Option<T>> with DashMap for lock-free concurrent snapshot reads. Tuned ambient/directional lighting and edge detection strength.

* feat(isometric): add procedural terrain with elevation, jump physics, and chunked loading

- Add noise-based terrain generation with height bands (grass/dirt/stone/snow)
- Implement chunked terrain loading/unloading around player position
- Add jump mechanics (Space), gravity, and fall damage
- Terrain-aware movement with auto-step up to 1 unit
- Column-based tile rendering with cap/body differentiation and cliff edge insets
- Camera smooth-follow system for player tracking
- Cylinder collider support for scene objects
- Terrain-relative Y positioning for spawned objects
@github-actions github-actions bot changed the title Release: 3 features, 2 fixes, 1 chore → Main Release: 4 features, 2 fixes, 1 chore → Main Mar 8, 2026
@h0lybyte h0lybyte merged commit ccca41b into main Mar 8, 2026
13 checks passed
@github-project-automation github-project-automation bot moved this from Review to Done in KBVE Mar 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant