`GET /api/info` now carries `build` (commit hash, commit date, dirty flag) and `instance`, a fresh uuid per daemon process. Together they let a client name the release it is talking to and, after losing its socket, tell an upgrade from a plain restart from a network blip. The stamp comes from `maestro-daemon/build.rs`, which reads the git checkout it compiles in. The Nix build has no `.git` in the crane-filtered source, so `flake.nix` passes the flake's own revision and last-modified date through `MAESTRO_BUILD_*` instead. Neither available leaves the fields empty. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
34 lines
882 B
Rust
34 lines
882 B
Rust
//! `maestro daemon` — the per-host Maestro daemon.
|
|
//!
|
|
//! Wraps tmux, owns every session on the machine, and serves them to clients
|
|
//! (CLI, TUI, web) over a plain HTTP + WebSocket API on a local bind address.
|
|
//! No registry, no peers, no auth layer: reaching the bind address is the
|
|
//! authorization.
|
|
|
|
#![deny(missing_debug_implementations)]
|
|
|
|
pub mod activity;
|
|
pub mod attach;
|
|
pub mod branches;
|
|
pub mod cli;
|
|
pub mod config;
|
|
pub mod dirlist;
|
|
pub mod gitroot;
|
|
pub mod hooks;
|
|
pub mod local_api;
|
|
pub mod panes;
|
|
pub mod proc;
|
|
pub mod projects;
|
|
pub mod pty;
|
|
pub mod release;
|
|
pub mod session;
|
|
pub mod sidecar;
|
|
pub mod spawn_history;
|
|
pub mod tmux;
|
|
pub mod worktree;
|
|
pub mod worktree_probe;
|
|
|
|
pub use activity::MAX_REPORT_DETAIL_CHARS;
|
|
pub use config::{default_config_path, default_state_dir, load_config, DaemonConfig, EnvOverrides};
|
|
pub use session::{SessionError, SessionManager};
|