Skip to content

feat: raw-history archive (agent sync-archive + daemon daily push) - #27

Merged
GHoon-Lee merged 2 commits into
mainfrom
feat/sync-archive
Jul 6, 2026
Merged

feat: raw-history archive (agent sync-archive + daemon daily push)#27
GHoon-Lee merged 2 commits into
mainfrom
feat/sync-archive

Conversation

@GHoon-Lee

Copy link
Copy Markdown
Contributor

Summary

Raw-history archiving. The agent uploads complete past days of raw telemetry (gzip CSV) to GUA Board object storage, and the daemon does it automatically (startup + once per UTC day, background thread) — no cron for operators to install. Reports are rebuilt from raw by downloading the days.

  • gua sync-archive (manual/backfill) + cloud/archive.py / cloud/archive_sync.py
  • gua daemon --cloud auto-archives once per UTC day (non-blocking)
  • Idempotent — only the days the board is missing are uploaded; 30-day retention, board prunes older
  • Raw (not rollups): full fidelity, agnostic to sampling interval, ~0.2 MB/host/day gzipped

Verification

  • 215 tests pass (incl. new archive + scheduler unit tests)
  • End-to-end against the real Supabase free-tier project with real ds4 data: 19 closed days → 38 objects (3.72 MB), byte-perfect round-trip

Requires the board PR (/agent/v1/archives endpoints) deployed. Bumps 1.7.2 → 1.8.0.

🤖 Generated with Claude Code

Lee and others added 2 commits July 6, 2026 19:39
The agent dumps complete past days (gpu_sample/proc_sample) plus dimension tables (daemon_run/gpu_device) as gzip CSV and uploads only the days the board is missing, bounded to a 30-day retention window; the board prunes older objects. Idempotent.

The daemon runs this itself — once on startup and once per UTC day, in a background thread so it never blocks sampling — so operators just enroll and run 'gua daemon --cloud'; no separate cron to install. 'gua sync-archive' remains for manual/backfill runs.

Raw archive (not rollups) keeps full fidelity and is interval-agnostic: ~0.2 MB/host/day gzipped. Reports are rebuilt by downloading the days. Verified against real ds4 data (19 closed days -> 38 objects, 3.72 MB) and end-to-end against the real Supabase Free-tier project.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@GHoon-Lee
GHoon-Lee force-pushed the feat/sync-archive branch from 6ddbec3 to 6da338b Compare July 6, 2026 10:52
@GHoon-Lee
GHoon-Lee merged commit 8c9810c into main Jul 6, 2026
2 checks passed
@GHoon-Lee
GHoon-Lee deleted the feat/sync-archive branch July 6, 2026 10:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant