# coe-mirror notes - **Created**: 2026-06-11. Purpose: autonomous mirroring of Nightmare_Eclipse repos from Church of Malware to local pCloud storage. - **Source API**: Forgejo public REST at `git.churchofmalware.org`, no auth needed. - **Owner being mirrored**: `Nightmare_Eclipse` (8 active repos as of creation). - **Destination**: `~/pCloudDrive/Hacking/Nightmare_Eclipse/`. - **Schedule**: 00:00 + 12:00 daily, catch-up on boot via Persistent timer + OnBootSec. - **Design rationale**: - FUSE-safe placement uses `shutil.copy2 + size verify + unlink`, not `os.rename`, to handle pCloud FUSE semantics. - pCloud daemon auto-start was rejected — no user unit exists; DISPLAY=:0 spawning is unreliable. Tool relies on Persistent timer + pending-flush for recovery. - `commit.sha` is NOT in the repo-list API response — two-call approach (list, then per-repo branch) is retained. - **DevTrack**: Not created at creation time (oraculo offline, Tailscale last seen 2d ago, carbon roaming off home LAN). Add a `coe-mirror` project + item retroactively when oraculo returns. - **Matrix notification**: Stub-only at creation time, Matrix server down. Real implementation deferred until home Matrix server is back. ## 2026-06-14 — Matrix notification swap - Replaced `notify()` stub with real Synapse send. Targets General room (`!MBpPtYlQYMcngtpvJt:m.mealeyfamily.com`). - Auth: password login via `MATRIX_USER` + `MATRIX_PASSWORD` from Infisical `matrix/` at refresh time. Token cache at `~/.local/share/coe-mirror/matrix-token.json` (chmod 0600), refreshed when <30 min left or on 401. - Non-fatal failures — Matrix outage does not break the mirror. - Env overrides: `COE_MIRROR_MATRIX_ROOM`, `COE_MIRROR_MATRIX_HOMESERVER`. - Pre-deploy step: invite `@intel-bot:m.mealeyfamily.com` to General once Synapse is back. Without joined membership, sends will 403. - DevTrack: #1172.