Ryan Walters
b1ed2434f8
feat: add ESLint configuration and testing infrastructure
...
Add comprehensive ESLint setup with React and TypeScript support, create basic integration tests for the shutdown utilities, and enhance the Justfile with a new check command that runs all validation steps (cargo check, clippy, tests, and linting).
2025-11-03 02:21:35 -06:00
Ryan Walters
47c23459f1
refactor: implement comprehensive graceful shutdown across all services
...
Implements graceful shutdown with broadcast channels and proper timeout handling
for scraper workers, scheduler, bot service, and status update tasks. Introduces
centralized shutdown utilities and improves service manager to handle parallel
shutdown with per-service timeouts instead of shared timeout budgets.
Key changes:
- Add utils module with shutdown helper functions
- Update ScraperService to return errors on shutdown failures
- Refactor scheduler with cancellable work tasks and 5s grace period
- Extract worker shutdown logic into helper methods for clarity
- Add broadcast channel shutdown support to BotService and status task
- Improve ServiceManager to shutdown services in parallel with individual timeouts
2025-11-03 02:10:01 -06:00
Ryan Walters
8af9b0a1a2
refactor(scraper): implement graceful shutdown with broadcast channels
...
Replace task abortion with broadcast-based graceful shutdown for scheduler and workers. Implement cancellation tokens for in-progress work with 5s timeout. Add tokio-util dependency for CancellationToken support. Update ServiceManager to use completion channels and abort handles for better service lifecycle control.
2025-11-03 01:22:12 -06:00
020a00254f
chore: improve database pool connection options, tighter thresholds & limits
2025-09-14 12:18:39 -05:00
45de5be60d
refactor: redistribute main.rs into new modules for app & service initialization
2025-09-14 12:18:15 -05:00
8384f418c8
refactor: remove unused/dead code, apply allowances to the rest
2025-09-14 01:57:30 -05:00
3dca896a35
feat(web): add 10 second timeout layer
2025-09-14 01:47:52 -05:00
1b7d2d2824
fix: make version retrieval search current dir, add basic logs, existence check
2025-09-13 22:08:48 -05:00
e370008d75
fix: pass RAILWAY_GIT_COMMIT_SHA through Docker, provide Cargo.toml for frontend (version retrieval)
2025-09-13 22:04:44 -05:00
176574343f
fix: provide proper theme-based colors to all elements necessary
2025-09-13 21:57:56 -05:00
91899bb109
fix: limit devtools panel to dev mode
2025-09-13 21:52:14 -05:00
08ae54c093
fix: use wildcard COPY for .git directory, use RAILWAY_GIT_COMMIT_SHA as fallback
2025-09-13 21:20:16 -05:00
33b8681b19
chore: use locale-based number formatting
2025-09-13 21:12:13 -05:00
398a1b9474
feat: dark mode with theme toggle button
2025-09-13 21:11:16 -05:00
a732ff9a15
feat: better frontend state implementation, acquire version in frontend build time
2025-09-13 20:29:18 -05:00
bfcd868337
refactor: proper implementation of services status, better styling/appearance/logic
2025-09-13 19:34:34 -05:00
99f0d0bc49
fix: add build.rs and .git dir to Dockerfile COPY build step, add git dependency
2025-09-13 19:09:27 -05:00
8b7729788d
chore: replace template properties
2025-09-13 19:02:01 -05:00
27b0cb877e
feat: display project version on frontend
2025-09-13 18:58:35 -05:00
8ec2f7d36f
chore: bump version to 0.3.2
2025-09-13 18:52:23 -05:00
28a8a15b6b
feat: embed git commit into binary, provide link on frontend
2025-09-13 18:51:48 -05:00
19b3a98f66
feat: setup span recording for CustomJsonFormatter, use 'yansi' for better ANSI terminal colors in CustomPrettyFormatter
2025-09-13 18:40:55 -05:00
b64aa41b14
feat: better profile-based router assembly, tracing layer for responses with span-based request paths
2025-09-13 18:03:20 -05:00
64449e8976
feat: setup pretty frontend for system status
2025-09-13 17:49:35 -05:00
2e0fefa5ee
feat: implement interval backoff for presence indicator
2025-09-13 16:15:33 -05:00
97488494fb
chore: bump version to 0.3.0
2025-09-13 15:52:40 -05:00
b3322636a9
feat: setup frontend build code, tune .dockerignore patterns
...
also removed diesel.toml
2025-09-13 15:48:25 -05:00
878cc5f773
docs: setup proper documentation, organize & clean README
2025-09-13 15:27:32 -05:00
94fb6b4190
chore: set banner URL default in config, remove old mentions of redis
2025-09-13 14:48:49 -05:00
e3b638a7d8
feat: add ETag & Cache-Control headers, cached hexadecimal hashes via rapidhash
2025-09-13 13:24:54 -05:00
404a52e64c
feat: cache mime types for valid assets, use octet-stream content type
2025-09-13 12:37:36 -05:00
a917315967
fix: simplify asset serving, use fallback primarily
2025-09-13 12:23:27 -05:00
9d51fde893
feat: add arguments for enabling/disabling srevices
2025-09-13 12:06:10 -05:00
79fc931077
refactor: remove 'auto' mode, just specify value via constant for better clap visibility
2025-09-13 11:38:43 -05:00
f3861a60c4
chore: add dev-release helper profile into Cargo.toml
2025-09-13 11:34:25 -05:00
26b1a88860
chore: use clippy by default for check command, fix lint
2025-09-13 11:31:09 -05:00
27ac9a7302
feat: add formatter CLI argument, setup asset embedding in release mode
2025-09-13 11:30:57 -05:00
1d345ed247
chore: customize bacon, add 'dev' job
2025-09-13 11:30:23 -05:00
6f831f5fa6
feat: setup web/ for tanstack router frontend
2025-09-13 11:30:11 -05:00
ac2638dd9a
feat: implement proper SIGTERM handling for container shutdown
2025-09-13 09:43:47 -05:00
cfb847f2e5
feat: holiday exclusion logic for ICS command
2025-09-13 02:20:27 -05:00
e7d47f1f96
feat: implement ICS command
2025-09-13 01:50:18 -05:00
9a48587479
chore: drop redis
2025-09-13 01:49:47 -05:00
624247ee14
feat: basic activity status
2025-09-13 01:04:46 -05:00
430e2a255b
fix: avoid crashing due to odd url parse
2025-09-13 01:01:49 -05:00
bbc78131ec
feat: setup recoverable/unrecoverable job error distinction, delete unrecoverable jobs
2025-09-13 00:48:11 -05:00
77ab71d4d5
feat: map RAILWAY_DEPLOYMENT_DRAINING_SECONDS to SHUTDOWN_TIMEOUT
2025-09-13 00:36:11 -05:00
9d720bb0a7
feat: implement common job trait & better interface for scheduler & workers
2025-09-13 00:17:53 -05:00
dcc564dee6
fix: credit_hour_session is optional
2025-09-12 23:50:36 -05:00
4ca55a1fd4
feat: schedule & query jobs efficiently in batches
2025-09-12 23:41:27 -05:00