Conversation
… and rate limits (#8179) Uses axum::serve as a mock GitHub API to test HTTP status → JediError mapping (401, 403, 404, 429, 500), rate limit header parsing, PR filtering in list_issues, and invalid JSON handling. 11 new tests.
…etworking, pool indexing (#8176) * feat(axum-kbve): add captured creature sync and PendingAuth timeout - send_captured_state_to_new_clients: sends all captured creatures to newly authenticated clients so they skip rendering those slots - timeout_pending_auth: despawns clients that sit in PendingAuth for more than 10 seconds without sending a valid JWT Ref: #8152 * feat(isometric): add client-side creature capture networking Add CreaturePoolIndex component to all creature spawn pools (firefly, butterfly, frog) for server-side creature identification. Add receive_creature_captured system that processes CreatureCaptured messages from the server and marks matching pool entities as Captured + Hidden. Add CapturedCreatures resource to track captured state client-side, cleared on disconnect for clean reconnect. * feat(isometric): add CreatureCaptureEvent observer for server requests Add CreatureCaptureEvent and forward_creature_capture_to_server observer that sends CreatureCaptureRequest messages to the game server when triggered. Future creature interaction systems (click/proximity) can fire this event to initiate server-validated captures.
Add POST /api/servers/submit endpoint with belt-and-suspenders validation, IP-based rate limiting (5 req/60s), and edge function forwarding. Frontend submitServer() now routes through Rust API instead of direct edge calls. Closes #7727
Contributor
Author
Dependency ReviewThe following issues were found:
License Issues.github/workflows/kanban-sync.yml
OpenSSF Scorecard
Scanned Files
|
…as (#8185) Add DroidDownscaleSchema and DroidUpscaleSchema to DroidEventSchemas to fix TS2345 errors in main.ts where emit() calls used unregistered event types. Add 67 new tests covering event bus, UI state, toast state, auth state, event type schemas, and bento tile validation.
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
…#8188) * feat(ci): add daily kanban sync workflow for project board snapshots Add kanban-sync.yml that fetches all items from KBVE Project Board (GitHub Projects V2) via GraphQL, generates nx-kanban.json (machine- readable) and nx-kanban.mdx (static dashboard page), and opens a PR to dev. Runs daily at 06:00 UTC with manual dispatch support. Uses fixed branch (automated/kanban-sync) to avoid PR spam — force- pushes updates to existing open PR instead of creating duplicates. Closes #8137 * fix(ci): escape MDX-unsafe characters in security audit generator Add _escape_mdx() to nx-security-to-mdx.py that converts <, >, {, }, &, and | to HTML entities before writing advisory titles into MDX tables. Fixes Astro build failure caused by literal << in js-yaml advisory title being parsed as JSX. * feat(ci): add mermaid charts and MDX escaping to kanban sync Add escapeMdx() to sanitize issue titles with <, >, {, }, | characters before writing to MDX tables. Add mermaid pie chart (items by status) and flowchart (pipeline flow with counts) to the generated kanban page. * fix(api): wrap npcdb.json response as { npcs, index } to match other DB endpoints Aligns npcdb.json with itemdb/mapdb/questdb response format so external consumers (Bevy, e2e tests) can parse all DB APIs uniformly.
#8187) * feat(bevy_npc): add creature feature with game-agnostic ECS components Add `creature` feature flag to bevy_npc providing shared ECS types for creature pooling and capture that work across any Bevy game: - CreaturePoolIndex(u32) — pool entity identification - CreatureState enum — Pooled/Active/Captured lifecycle - CapturedCreatures resource — ProtoNpcId-keyed capture tracking - CreatureCaptureEvent — generic capture trigger - CreaturePlugin — registers resources Uses ProtoNpcId instead of hardcoded CreatureKind enum so new creature types don't require protocol changes. Re-exported via bevy_kbve_net npcdb feature for downstream access. * refactor(isometric,axum-kbve): migrate to shared bevy_npc::creature types Replace local CapturedCreatures, CreatureState, CreaturePoolIndex, and CreatureCaptureEvent with shared types from bevy_npc::creature feature. Both client and server now use ProtoNpcId-keyed CapturedCreatures resource instead of hardcoded CreatureKind tuples. Adds bidirectional mapping helpers (creature_kind_to_npc_id, npc_id_to_creature_kind) as bridge until protocol migrates away from CreatureKind enum.
h0lybyte
approved these changes
Mar 17, 2026
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
7 atomic commits ready for main
Features
21eae40)5c7da66)75995b7)9124147)Bug Fixes
0294a82)Tests
f8a90cf)Chores
37c5dc2)This PR is automatically maintained by CI — KBVE Studio