pi_wake_agent: --pane targeting + crontab backend fallback + cronicle HCL fix + hermetic tests
- --pane/--pane-id: write-chars AND write(13) hit terminal_1 (bottom pane) - cronicle_available()=shutil.which + daemon-live check; crontab/crnd auto-fallback (cronicle daemon down here -> live scheduler is system crnd) - fix cronicle_install invalid HCL (command=[...] array, was bare comma-list) - rewrite TestCrontabEntry hermetic (subprocess mocked; real crontab never touched) - add --pane-id / no-pane omission / HCL-array mutation-litmus tests; .sh --pane - cronicle.hcl: corrected pi_wake_pi_test_20m (msg + --pane terminal_1), valid HCL - live 20m crontab doorbell installed for pi_test/terminal_1, bell verified delivered - SIGQUIT rescued a locked pi (final_test @1318s); steer queued + bus-posted
This commit is contained in:
24
cronicle.hcl
Normal file
24
cronicle.hcl
Normal file
@@ -0,0 +1,24 @@
|
||||
# pi_wake_agent schedules (cronicle backend).
|
||||
#
|
||||
# IMPORTANT (see AGENTS.md): on this host the cronicle daemon is NOT running
|
||||
# (not supervised), so these schedules are INERT. The LIVE scheduler is system
|
||||
# crnd via crontab (see `crontab -l`). This HCL is only served when
|
||||
# `cronicle run --path <this-file>` is supervised. The pi_test 20m wake is
|
||||
# installed into crontab as well, so it actually fires regardless.
|
||||
|
||||
schedule "pi_wake_pi_test_20m" {
|
||||
cron = "@every 20m"
|
||||
|
||||
task "wake" {
|
||||
command = ["/mnt/dolphinng5_predict/pi_wake_agent.py", "--run", "--interval", "20m", "--sessions", "pi_test", "--pane", "terminal_1", "--msg", "Please carefully continue your work"]
|
||||
}
|
||||
}
|
||||
|
||||
# Sample multi-session schedule (kept from the original config).
|
||||
schedule "pi_wake_s1_s2_1h" {
|
||||
cron = "@every 1h"
|
||||
|
||||
task "wake" {
|
||||
command = ["/mnt/dolphinng5_predict/pi_wake_agent.py", "--run", "--interval", "1h", "--sessions", "s1,s2", "--msg", "test"]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user