urbnywrt
5416ae7565
fix: safe DATABASE_URL parsing and redact exception from client response
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-15 00:10:28 +03:00
urbnywrt
94c01fe532
feat: add FastAPI app with config delivery endpoint
2026-05-15 00:08:00 +03:00
urbnywrt
5000079cbe
fix: guard against empty YAML and missing proxy name in expander
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-15 00:05:03 +03:00
urbnywrt
c597a1add7
feat: add config expander and Mihomo config builder
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-14 23:57:45 +03:00
urbnywrt
e7b44eb99a
fix: use get_running_loop, guard updatedAt, pass auth on wait_ready
2026-05-14 23:56:15 +03:00
urbnywrt
21437c78ad
feat: add Mihomo API client with refresh polling
...
Implements MihomoClient wrapping Mihomo's REST API with provider refresh
polling, config reload, and startup readiness check. Also fixes a
Python 3.14 + respx 0.21.1 compatibility issue where the httpcore mocker
passes bytes method to httpx.Request causing Method pattern matching to
fail; resolved by switching respx DEFAULT_MOCKER to the httpx-level mocker.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-14 23:49:17 +03:00
urbnywrt
927abe6111
feat: add database models with cascade delete
...
Implements SQLAlchemy 2.0 async ORM models (Config, Subscription, ExportLog) with cascade delete-orphan relationships. Upgrades SQLAlchemy to 2.0.49 for Python 3.14 compatibility. Adds pytest conftest with in-memory SQLite fixture; all 4 TDD tests pass.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-14 23:35:50 +03:00
urbnywrt
e8b0c3ce0f
feat: add Python app Dockerfile and dependencies
2026-05-14 23:27:41 +03:00
urbnywrt
17a4a7bb2f
fix: gitignore data dirs to prevent secret leakage
2026-05-14 23:26:27 +03:00
urbnywrt
7aa439d7a7
feat: add Docker infrastructure scaffold
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-14 23:22:13 +03:00