70 Commits

Author SHA1 Message Date
dependabot[bot]
a60d309a66 chore(deps): bump mockall from 0.13.1 to 0.14.0 in the rust-major group (#14) 2025-11-23 16:15:22 +00:00
Ryan Walters
45e6131121 feat: implement unified deployment with Docker and Railway integration
This commit introduces a comprehensive deployment strategy that unifies the frontend and backend into a single Docker container served by the Rust backend, streamlining the deployment process and improving production architecture.

Key changes:
- Split CI/CD workflows: separated build.yaml (for CI/PR checks) and deploy.yaml (for production deployment)
- Implemented unified Docker deployment where the Axum server serves both API routes (under /api) and frontend static files
- Added GitHub Container Registry integration for Docker image distribution
- Updated Railway configuration to use the new healthcheck path (/api/health)
- Enhanced postgres.ts script with named volumes and constants for better container management
- Added API client utilities (web/lib/api.ts) and environment configuration (web/.env.example) for frontend-backend communication
- Configured Vite proxy for local development while supporting same-origin requests in production
- Updated Dockerfile to include frontend static files and proper environment variable handling

This architecture eliminates the need for separate deployments and CORS configuration, as the frontend and API are served from the same origin.
2025-11-02 19:31:22 -06:00
Ryan Walters
0b5aeceb51 feat: improve test reliability and add request tracing
- Add retry configuration for flaky tests (2 retries for default, 3 for
OAuth)
- Configure test groups with proper concurrency limits (serial: 1,
integration: 4)
- Add tower-http tracing layer with custom span formatting for HTTP
requests
- Simplify database pool handling by removing unnecessary Arc wrapper
- Improve test context setup with better logging and error handling
- Refactor user creation parameters for better clarity and consistency
- Add debug logging for OAuth cookie handling
2025-09-19 17:35:53 -05:00
Ryan Walters
76985f6390 refactor: allow testing of mocked providers via AuthRegistry creation, avoid creation of responses in auth 2025-09-19 11:50:25 -05:00
Ryan Walters
698f95ff32 refactor: clean test setup code, cleanup tests, separate into different files 2025-09-19 09:50:22 -05:00
Ryan Walters
408b660490 fix: drop unused fast_image_resize, drop toolchain back to 1.86, limit emscripten build to pacman project properly 2025-09-18 23:16:55 -05:00
Ryan Walters
e2c725cb95 feat: allow health check forcing in debug, setup test mocking, plan out integration tests 2025-09-18 22:42:00 -05:00
Ryan Walters
350f92ab21 tests: setup basic tests, integration tests with testcontainers 2025-09-18 21:33:15 -05:00
Ryan Walters
3ad00bdcba chore: setup lib for testing, image handling notes in README 2025-09-18 13:18:53 -05:00
Ryan Walters
7f9d3e9158 feat: implement r2 image upload for avatars 2025-09-18 13:18:14 -05:00
Ryan Walters
1be59f474d feat: add Server header middleware, bump version to v0.4.0 2025-09-17 12:37:12 -05:00
Ryan Walters
1cf3b901e8 feat: users table with sqlx, migrations, data persistence 2025-09-17 09:43:52 -05:00
Ryan Walters
18e750fa61 feat: add tracing/tracing-subscriber, setup CustomPrettyFormatter & CustomJsonFormatter 2025-09-17 03:48:35 -05:00
Ryan Walters
f3db44c48b feat: setup github provider with generic trait, proper routes, session & jwt handling, errors & user agent 2025-09-17 03:33:18 -05:00
Ryan Walters
f69a5c7d52 feat: initial server config & Dockerfile 2025-09-16 22:13:35 -05:00
Ryan Walters
7ede82cc5d feat: add pacman-common/pacman-server crates 2025-09-16 09:36:12 -05:00
Ryan Walters
d0ee7db2ef fix: update workspace Cargo.toml, README.md workspace distinctions 2025-09-16 09:19:23 -05:00
Ryan Walters
a3c4c94d42 refactor: create workspace, move 'pacman' into pacman/ subfolder as workspace member 2025-09-16 01:07:16 -05:00
Ryan Walters
a887fae00f feat: separate player/ghost collider sizes, move fruit sprite up 1 pixel, add fruit TTL 2025-09-11 14:46:07 -05:00
Ryan Walters
b58a7a8f63 chore: bump version, add 'dev-release' debug profile 2025-09-11 13:46:05 -05:00
Ryan Walters
126b6ff378 feat: fullscreen toggle key 2025-09-11 09:10:19 -05:00
Ryan Walters
36e9de1a1f chore: bump to v0.80.0, update ROADMAP.md 2025-09-11 02:26:39 -05:00
Ryan Walters
00a65954e6 refactor: unify cross-platform asset loading, avoid hard-coding with folder-based asset embedding for desktop 2025-09-11 01:11:00 -05:00
Ryan Walters
46a73c5ace fix: solve audio glitch/crackling on Emscripten via use higher buffer and AUDIO_S16LSB 2025-09-10 23:08:46 -05:00
Ryan Walters
d86864b6a3 feat: fruit display hud 2025-09-10 22:00:11 -05:00
Ryan Walters
d7a6ee7684 fix: flush world after switching to observer-based item collection 2025-09-10 21:45:10 -05:00
Ryan Walters
ca006b5073 refactor: remove dead code, tune lints, remove useless tests 2025-09-09 14:22:06 -05:00
Ryan Walters
5d56b31353 feat: fruit spawning mechanism, sprites, pellet counting, fruit trigger observer 2025-09-09 11:26:05 -05:00
Ryan Walters
5bdf11dfb6 feat: enhance slow frame timing warning 2025-09-08 19:19:23 -05:00
Ryan Walters
63e1059df8 feat: implement entity-based sprite system for HUD display (lives)
- Spawn HUD elements as Renderables with simple change-based entity updates
- Updated rendering systems to accommodate new precise pixel positioning for life sprites.
2025-09-08 16:22:40 -05:00
Ryan Walters
11af44c469 feat: add bottom row HUD, proper life display sprites 2025-09-08 14:30:33 -05:00
Ryan Walters
7675608391 chore(version): bump to v0.78.0 2025-09-08 14:07:34 -05:00
Ryan Walters
7d5b8e11dd chore: bump dependencies, spin-sleep & windows/windows-sys 2025-09-08 14:06:53 -05:00
Ryan Walters
e87d458121 fix: set PlayerLives default to 3, use resource for HUD lives count in top left
yes I am fully aware that the UP is not the player lives, I'm just
wanting the indicator to be somewhere and I'll make the proper indicator
tomorrow probably
2025-09-08 01:23:26 -05:00
Ryan Walters
c828034d18 chore(version): bump version to v0.77.0 2025-09-08 01:15:40 -05:00
Ryan Walters
fff44faa05 fix: use serial single-thread testing for game integration tests 2025-09-07 00:10:49 -05:00
Ryan Walters
3c50bfeab6 refactor: add ticks to DeltaTime, rewrite Blinking system for tick-based calculations with absolute calculations, rewrite Blinking/Direction tests 2025-09-06 12:15:03 -05:00
Ryan Walters
ed16da1e8f feat: special formatting with game tick counter, remove date from tracing formatter 2025-09-06 12:14:59 -05:00
Ryan Walters
4cc5816d1f refactor: use small_rng for Emscripten only, simplify platform to top-level functions only, no trait/struct 2025-09-03 11:11:04 -05:00
Ryan Walters
f2fc60b250 chore: add LICENSE, add missing metadata, clean up dependencies & use dev-dependencies, document choices 2025-09-02 13:23:43 -05:00
Ryan Walters
d0a68faa51 chore: update dependencies, solve tracing-subscriber vulnerability 2025-09-02 09:47:11 -05:00
Ryan Walters
6637691157 feat: setup windows system console output detection for dynamic console attach 2025-09-02 00:31:59 -05:00
Ryan Walters
6dd0152938 chore: remove unused dependencies 2025-09-01 12:46:39 -05:00
635418a4da refactor: use stack allocated circular buffer, use RwLock+Mutex for concurrent system timing access 2025-08-15 18:06:25 -05:00
31193160a9 feat: debug text rendering of statistics, formatting with tests 2025-08-15 17:52:16 -05:00
5f0ee87dd9 feat: better profiling statistics, less spammy 2025-08-15 15:06:53 -05:00
8c95ecc547 feat: add profiling 2025-08-15 13:46:39 -05:00
a531228b95 chore: update thiserror & phf crates 2025-08-15 13:04:39 -05:00
57d7f75940 feat: implement generic optimized collision system 2025-08-15 12:21:29 -05:00
bc759f1ed4 refactor!: begin switching to bevy ECS, all tests broken, all systems broken 2025-08-14 15:06:56 -05:00