{"definition_raw":"---\nid: tvclaw-sync\ntitle: Sync TVClaw repo from GitHub (read-only)\nschedule: \"*/15 * * * *\"\ntimeout: 60\nretry: false\nenabled: true\nnotify_on: never\nrun_as: shell\ncommand: \"cd /home/lucienne/workspace/tvclaw && GIT_SSH_COMMAND='ssh -i /home/lucienne/.ssh/id_ed25519_tvclaw -o IdentitiesOnly=yes' git pull --ff-only --quiet 2>&1 || { echo \\\"tvclaw-sync: dirty tree or conflict, skipping\\\"; exit 0; }; true\"\ntags: [infrastructure, git, tvclaw]\nruntime_profile: direct_shell\n---\n**OVERRIDES runtime profile:** uses `direct_shell` (plain shell, no model) because the command chain never invokes the `claude` CLI or any LLM API \u2014 pure-infra task; scheduler provider env injection is a no-op (MC-4942 U12 sweep).\n\nPulls latest TVClaw code from GitHub. Mac is the write authority \u2014 Luci is read-only.\nUses --ff-only so any local divergence aborts the pull. If dirty tree (shouldn't happen\non read-only mirror), task skips and logs.\n\nPhase 1: Luci does NOT execute TVClaw code. Phase 2 will add scheduled VectorBT\nbacktest re-runs. Phase 3 will add Mode B webhook gate (TV \u2192 Luci \u2192 3Commas).\n\nRead-only deploy key: /home/lucienne/.ssh/id_ed25519_tvclaw (registered as deploy key\non conrelma/tvclaw 2026-04-27).\n","id":"tvclaw-sync","last_run":{"duration_s":1.613679,"log_path":"/home/lucienne/workspace/logs/task-runs/tvclaw-sync/414061.log","output":"","started_at":"2026-06-13T07:15:05.057159+02:00","status":"completed"},"next_run":"2026-06-13 07:30","next_run_iso":"2026-06-13T07:30:00+02:00","runs":[{"duration_s":1.613679,"finished_at":"2026-06-13T07:15:06.674497+02:00","id":414061,"log_path":"/home/lucienne/workspace/logs/task-runs/tvclaw-sync/414061.log","output":"","started_at":"2026-06-13T07:15:05.057159+02:00","status":"completed","task_id":"tvclaw-sync","task_name":"Sync TVClaw repo from GitHub (read-only)"},{"duration_s":1.569127,"finished_at":"2026-06-13T07:00:43.128902+02:00","id":414022,"log_path":"/home/lucienne/workspace/logs/task-runs/tvclaw-sync/414022.log","output":"","started_at":"2026-06-13T07:00:41.556964+02:00","status":"completed","task_id":"tvclaw-sync","task_name":"Sync TVClaw repo from GitHub (read-only)"},{"duration_s":1.57586,"finished_at":"2026-06-13T06:45:06.589856+02:00","id":413971,"log_path":"/home/lucienne/workspace/logs/task-runs/tvclaw-sync/413971.log","output":"","started_at":"2026-06-13T06:45:05.010862+02:00","status":"completed","task_id":"tvclaw-sync","task_name":"Sync TVClaw repo from GitHub (read-only)"},{"duration_s":1.617783,"finished_at":"2026-06-13T06:30:35.688706+02:00","id":413932,"log_path":"/home/lucienne/workspace/logs/task-runs/tvclaw-sync/413932.log","output":"","started_at":"2026-06-13T06:30:34.068658+02:00","status":"completed","task_id":"tvclaw-sync","task_name":"Sync TVClaw repo from GitHub (read-only)"},{"duration_s":1.533145,"finished_at":"2026-06-13T06:15:06.399249+02:00","id":413885,"log_path":"/home/lucienne/workspace/logs/task-runs/tvclaw-sync/413885.log","output":"","started_at":"2026-06-13T06:15:04.863505+02:00","status":"completed","task_id":"tvclaw-sync","task_name":"Sync TVClaw repo from GitHub (read-only)"},{"duration_s":1.565472,"finished_at":"2026-06-13T06:01:16.200982+02:00","id":413846,"log_path":"/home/lucienne/workspace/logs/task-runs/tvclaw-sync/413846.log","output":"","started_at":"2026-06-13T06:01:14.632119+02:00","status":"completed","task_id":"tvclaw-sync","task_name":"Sync TVClaw repo from GitHub (read-only)"},{"duration_s":1.575271,"finished_at":"2026-06-13T05:45:06.508661+02:00","id":413793,"log_path":"/home/lucienne/workspace/logs/task-runs/tvclaw-sync/413793.log","output":"","started_at":"2026-06-13T05:45:04.929698+02:00","status":"completed","task_id":"tvclaw-sync","task_name":"Sync TVClaw repo from GitHub (read-only)"},{"duration_s":1.559582,"finished_at":"2026-06-13T05:30:36.739778+02:00","id":413754,"log_path":"/home/lucienne/workspace/logs/task-runs/tvclaw-sync/413754.log","output":"","started_at":"2026-06-13T05:30:35.178017+02:00","status":"completed","task_id":"tvclaw-sync","task_name":"Sync TVClaw repo from GitHub (read-only)"},{"duration_s":1.602123,"finished_at":"2026-06-13T05:15:06.605380+02:00","id":413709,"log_path":"/home/lucienne/workspace/logs/task-runs/tvclaw-sync/413709.log","output":"","started_at":"2026-06-13T05:15:05.001206+02:00","status":"completed","task_id":"tvclaw-sync","task_name":"Sync TVClaw repo from GitHub (read-only)"},{"duration_s":1.618792,"finished_at":"2026-06-13T05:04:38.576506+02:00","id":413678,"log_path":"/home/lucienne/workspace/logs/task-runs/tvclaw-sync/413678.log","output":"","started_at":"2026-06-13T05:04:36.955017+02:00","status":"completed","task_id":"tvclaw-sync","task_name":"Sync TVClaw repo from GitHub (read-only)"},{"duration_s":1.613019,"finished_at":"2026-06-13T04:45:06.708536+02:00","id":413623,"log_path":"/home/lucienne/workspace/logs/task-runs/tvclaw-sync/413623.log","output":"","started_at":"2026-06-13T04:45:05.092908+02:00","status":"completed","task_id":"tvclaw-sync","task_name":"Sync TVClaw repo from GitHub (read-only)"},{"duration_s":1.625234,"finished_at":"2026-06-13T04:30:35.145935+02:00","id":413582,"log_path":"/home/lucienne/workspace/logs/task-runs/tvclaw-sync/413582.log","output":"","started_at":"2026-06-13T04:30:33.518576+02:00","status":"completed","task_id":"tvclaw-sync","task_name":"Sync TVClaw repo from GitHub (read-only)"},{"duration_s":1.586753,"finished_at":"2026-06-13T04:15:07.992407+02:00","id":413535,"log_path":"/home/lucienne/workspace/logs/task-runs/tvclaw-sync/413535.log","output":"","started_at":"2026-06-13T04:15:06.403547+02:00","status":"completed","task_id":"tvclaw-sync","task_name":"Sync TVClaw repo from GitHub (read-only)"},{"duration_s":1.62631,"finished_at":"2026-06-13T04:04:49.623600+02:00","id":413502,"log_path":"/home/lucienne/workspace/logs/task-runs/tvclaw-sync/413502.log","output":"","started_at":"2026-06-13T04:04:47.993773+02:00","status":"completed","task_id":"tvclaw-sync","task_name":"Sync TVClaw repo from GitHub (read-only)"},{"duration_s":1.601297,"finished_at":"2026-06-13T03:45:06.685172+02:00","id":413446,"log_path":"/home/lucienne/workspace/logs/task-runs/tvclaw-sync/413446.log","output":"","started_at":"2026-06-13T03:45:05.081026+02:00","status":"completed","task_id":"tvclaw-sync","task_name":"Sync TVClaw repo from GitHub (read-only)"},{"duration_s":1.577094,"finished_at":"2026-06-13T03:31:32.928256+02:00","id":413407,"log_path":"/home/lucienne/workspace/logs/task-runs/tvclaw-sync/413407.log","output":"","started_at":"2026-06-13T03:31:31.348385+02:00","status":"completed","task_id":"tvclaw-sync","task_name":"Sync TVClaw repo from GitHub (read-only)"},{"duration_s":1.575359,"finished_at":"2026-06-13T03:15:06.771331+02:00","id":413359,"log_path":"/home/lucienne/workspace/logs/task-runs/tvclaw-sync/413359.log","output":"","started_at":"2026-06-13T03:15:05.191251+02:00","status":"completed","task_id":"tvclaw-sync","task_name":"Sync TVClaw repo from GitHub (read-only)"},{"duration_s":1.600954,"finished_at":"2026-06-13T03:00:46.665990+02:00","id":413318,"log_path":"/home/lucienne/workspace/logs/task-runs/tvclaw-sync/413318.log","output":"","started_at":"2026-06-13T03:00:45.062344+02:00","status":"completed","task_id":"tvclaw-sync","task_name":"Sync TVClaw repo from GitHub (read-only)"},{"duration_s":1.601805,"finished_at":"2026-06-13T02:45:06.638941+02:00","id":413267,"log_path":"/home/lucienne/workspace/logs/task-runs/tvclaw-sync/413267.log","output":"","started_at":"2026-06-13T02:45:05.034124+02:00","status":"completed","task_id":"tvclaw-sync","task_name":"Sync TVClaw repo from GitHub (read-only)"},{"duration_s":1.592991,"finished_at":"2026-06-13T02:30:35.895802+02:00","id":413228,"log_path":"/home/lucienne/workspace/logs/task-runs/tvclaw-sync/413228.log","output":"","started_at":"2026-06-13T02:30:34.299273+02:00","status":"completed","task_id":"tvclaw-sync","task_name":"Sync TVClaw repo from GitHub (read-only)"}],"runs_limit":20,"schedule":"*/15 * * * *","schedule_label":{"description":"Every 15 minutes","is_custom":false,"label":"Every 15 min","sort":1,"sort_time":""},"stats":{"avg_duration":1.5794911982758622,"completed":696,"failed":0,"timeout":0,"total":696},"task":{"_description":"**OVERRIDES runtime profile:** uses `direct_shell` (plain shell, no model) because the command chain never invokes the `claude` CLI or any LLM API \u2014 pure-infra task; scheduler provider env injection is a no-op (MC-4942 U12 sweep).\n\nPulls latest TVClaw code from GitHub. Mac is the write authority \u2014 Luci is read-only.\nUses --ff-only so any local divergence aborts the pull. If dirty tree (shouldn't happen\non read-only mirror), task skips and logs.\n\nPhase 1: Luci does NOT execute TVClaw code. Phase 2 will add scheduled VectorBT\nbacktest re-runs. Phase 3 will add Mode B webhook gate (TV \u2192 Luci \u2192 3Commas).\n\nRead-only deploy key: /home/lucienne/.ssh/id_ed25519_tvclaw (registered as deploy key\non conrelma/tvclaw 2026-04-27).","_file":"tvclaw-sync.md","_path":"/home/lucienne/workspace/tasks/tvclaw-sync.md","command":"cd /home/lucienne/workspace/tvclaw && GIT_SSH_COMMAND='ssh -i /home/lucienne/.ssh/id_ed25519_tvclaw -o IdentitiesOnly=yes' git pull --ff-only --quiet 2>&1 || { echo \"tvclaw-sync: dirty tree or conflict, skipping\"; exit 0; }; true","enabled":true,"id":"tvclaw-sync","notify_on":"never","retry":false,"run_as":"shell","runtime_profile":"direct_shell","schedule":"*/15 * * * *","tags":["infrastructure","git","tvclaw"],"timeout":60,"title":"Sync TVClaw repo from GitHub (read-only)"}}
