Commit Graph

10 Commits

Author SHA1 Message Date
95cb98b084 feat: implement per-project GitHub sync scheduler with dynamic intervals
Replaces fixed-interval polling with a priority queue scheduler that adjusts
check frequency based on activity recency (15min for active projects, up to
24hr for stale ones). Includes exponential backoff on errors and staggered
initial checks to prevent API rate limit issues.
2026-01-15 00:40:09 -06:00
c4a08a1477 feat: add universal slug/UUID support for project and tag endpoints
All API routes now accept either UUID or slug as {ref} parameters. Routes auto-detect format and query accordingly, enabling human-readable URLs while maintaining stable UUID references.
2026-01-14 23:56:03 -06:00
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
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