Commit Graph

13 Commits

Author SHA1 Message Date
89e1ab097d refactor: cleanup struct fields, resolve clippy lints, resolve/ignore svelte lints, checks error on warn 2026-01-14 22:56:57 -06:00
e83133cfcc feat: add media upload pipeline with multipart support, blurhash generation, and R2 storage
- Add project_media table with image/video variants, ordering, and metadata
- Implement multipart upload handlers with 50MB limit
- Generate blurhash placeholders and resize images to thumb/medium/full variants
- Update ProjectCard to use media carousel instead of mock gradients
- Add MediaManager component for drag-drop upload and reordering
2026-01-14 22:34:15 -06:00
72f1129555 refactor: consolidate serde rename attributes using rename_all = camelCase 2026-01-14 10:38:27 -06:00
4299f65665 fix: normalize camelCase serialization for project API fields, request serialization casing 2026-01-14 09:51:06 -06:00
c7dbd77b72 feat: add GitHub activity sync background job
Adds automatic syncing of repository activity for projects with github_repo set. Background task fetches latest activity from GitHub API (issues, PRs, default branch commits) and updates last_github_activity timestamp. Configurable sync interval (default: 15 minutes), requires GITHUB_TOKEN env var.
2026-01-13 22:54:48 -06:00
f79c7711f0 refactor: use GitHub activity for project sorting instead of update timestamp 2026-01-13 21:43:45 -06:00
bf1bcb736c fix: increase DB acquire timeout, add page padding, fix modal scaling on mobile 2026-01-13 21:30:33 -06:00
019cbe76f8 add tag colors to seed data and reverse tag order in project cards
- Add color parameter to seed tags (Rust red, Python blue, etc.)
- Reverse tag display order in ProjectCard (flex-row-reverse)
- Enable release binary stripping in Cargo.toml
- Increase Railway health check timeout to 120s
- Remove backup favicon/icon files
2026-01-13 21:07:51 -06:00
34f610cdd9 fix: improve slugify to handle periods and use filter_map 2026-01-13 20:23:09 -06:00
aa56d31067 feat: add comprehensive CLI with API client, session management, and data seeding
- Binary renamed from 'api' to 'xevion' with full CLI command structure
- Authentication: login/logout with session persistence to .xevion-session
- API commands: projects, tags, settings CRUD operations with JSON/table output
- Serve command: run production server with configurable listen addresses
- Seed command: moved from bin/ to CLI subcommand for database initialization
- HTTP client abstraction supporting both TCP and Unix socket connections
2026-01-13 19:55:45 -06:00
ec6bb4ebfb refactor: replace shell entrypoint with TypeScript, add DB retry logic
- Migrate Docker entrypoint from inline shell script to TypeScript for better maintainability
- Add exponential backoff DB connection retry (prod only, dev fails fast)
- Increase healthcheck start-period to account for DB warmup
2026-01-13 15:08:38 -06:00
dd1ce186d2 refactor: consolidate HTTP client for TCP/Unix socket handling
Extract reqwest client creation into dedicated HttpClient abstraction that handles both TCP and Unix socket connections transparently. Simplifies proxy logic by removing duplicate URL construction and client selection throughout the codebase.
2026-01-07 14:34:32 -06:00
cf599d09d6 refactor: reorganize Rust codebase into modular handlers and database layers
- Split monolithic src/db.rs (1122 lines) into domain modules: projects, tags, settings
- Extract API handlers from main.rs into separate handler modules by domain
- Add proxy module for ISR/SSR coordination with Bun process
- Introduce AppState for shared application context
- Add utility functions for asset serving and request classification
- Remove obsolete middleware/auth.rs in favor of session checks in handlers
2026-01-07 13:55:23 -06:00