13eb0c85f1
feat(orch): add NodeSelector — warm-first GPU scoring
2026-04-02 11:18:44 -07:00
7aa0ad7a51
feat(dashboard): add self-hosted coordinator dashboard at GET /
...
- dashboard.html: node-centric layout — GPU cards with VRAM bars and
sparklines, active leases table with TTL progress bars, service health
pill, auto-refreshes every 5s via fetch() against the local JSON API
- All dynamic content set via DOM textContent / createElementNS — no
innerHTML with user-sourced strings
- coordinator/app.py: serves dashboard.html at GET / (HTMLResponse,
excluded from OpenAPI schema); HTML read at import time from package dir
- test_dashboard_serves_html: verifies 200, content-type text/html,
and key route markers present
2026-03-31 18:57:25 -07:00
d755e9ea2c
test(resources): add integration tests for full lease/eviction cycle
2026-03-30 22:37:06 -07:00
70017abd35
feat(resources): add cf-orch CLI with start, agent, status, install-service commands
2026-03-30 22:27:11 -07:00
4bcd297b18
feat(resources): add cforch-coordinator FastAPI app with lease/node/profile endpoints
2026-03-30 22:01:46 -07:00
cede761d82
feat(resources): add AgentSupervisor and EvictionEngine
2026-03-30 21:44:42 -07:00
7718911652
feat(resources): add cforch-agent FastAPI app with /health /gpu-info /evict
2026-03-30 20:51:08 -07:00
4a857d5339
feat(resources): add EvictionExecutor with SIGTERM/grace/SIGKILL sequence
2026-03-30 20:46:45 -07:00
a79fd10f45
fix(resources): patch subprocess at import site in gpu_monitor tests
2026-03-30 20:45:01 -07:00
3dcbe801f1
feat(resources): add GpuMonitor for nvidia-smi polling
2026-03-30 20:42:57 -07:00
6b239b76e3
fix(resources): rename lambda var; convert asyncio.run test to async
2026-03-30 20:41:03 -07:00
d60503f059
feat(resources): add LeaseManager with VRAM tracking and eviction candidate selection
2026-03-30 20:38:51 -07:00
cdd8072b32
fix(resources): move MagicMock import to module level in profile registry tests
2026-03-30 20:36:40 -07:00
0389f4f167
feat(resources): add ProfileRegistry with auto-detect and public profile loading
2026-03-30 20:34:16 -07:00
bfc1f7b7b9
fix(resources): guard non-dict YAML in load_profile; remove unused FIXTURES constant
2026-03-30 20:30:30 -07:00
c6a58b6a37
feat(resources): add GPU profile schema and public 8GB/6GB/2GB profiles
2026-03-30 20:28:06 -07:00
b774afb6b0
fix(resources): add expires_at sentinel comment; move pytest import to module level
2026-03-30 20:25:58 -07:00
0888f0f16b
feat(resources): add shared VRAMLease, GpuInfo, NodeInfo models
2026-03-30 20:21:37 -07:00