Add container-native scheduled task system with timezone support
Introduces a cron-based scheduler that lets Claude set up recurring and one-time tasks inside containers. Tasks run as separate Claude Code agents and persist across container recreation via the named volume. New files: - container/triple-c-scheduler: CLI for add/remove/enable/disable/list/logs/run/notifications - container/triple-c-task-runner: cron wrapper with flock, logging, notifications, auto-cleanup Key changes: - Dockerfile: add cron package and COPY both scripts - entrypoint.sh: timezone setup, cron daemon, crontab restore, env saving - container.rs: init=true for zombie reaping, TZ env, scheduler instructions, timezone recreation check - image.rs: embed scheduler scripts in build context - app_settings.rs + types.ts: timezone field - settings_commands.rs: detect_host_timezone via iana-time-zone crate - SettingsPanel.tsx: timezone input with auto-detection Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -29,6 +29,33 @@ pub async fn pull_image(
|
||||
.await
|
||||
}
|
||||
|
||||
#[tauri::command]
|
||||
pub async fn detect_host_timezone() -> Result<String, String> {
|
||||
// Try the iana-time-zone crate first (cross-platform)
|
||||
match iana_time_zone::get_timezone() {
|
||||
Ok(tz) => return Ok(tz),
|
||||
Err(e) => log::debug!("iana_time_zone::get_timezone() failed: {}", e),
|
||||
}
|
||||
|
||||
// Fallback: check TZ env var
|
||||
if let Ok(tz) = std::env::var("TZ") {
|
||||
if !tz.is_empty() {
|
||||
return Ok(tz);
|
||||
}
|
||||
}
|
||||
|
||||
// Fallback: read /etc/timezone (Linux)
|
||||
if let Ok(tz) = std::fs::read_to_string("/etc/timezone") {
|
||||
let tz = tz.trim().to_string();
|
||||
if !tz.is_empty() {
|
||||
return Ok(tz);
|
||||
}
|
||||
}
|
||||
|
||||
// Default to UTC if detection fails
|
||||
Ok("UTC".to_string())
|
||||
}
|
||||
|
||||
#[tauri::command]
|
||||
pub async fn detect_aws_config() -> Result<Option<String>, String> {
|
||||
if let Some(home) = dirs::home_dir() {
|
||||
|
||||
Reference in New Issue
Block a user