1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//! The built-in update check: "does a newer `aion-cli` exist?" — slice one,
//! know and show.
//!
//! Four parts, one contract:
//!
//! - [`document`] — the embedded AWL document whose declared `curl` command
//! the server executes through the declared-body spine, with its output on
//! the transcript. The binary's default build keeps ZERO outbound-HTTP
//! dependencies; the transfer is runtime `curl` in a declared command.
//! - [`install`] — boot-time installation of that document into the engine
//! catalog, claiming only a catalog that holds no version of it. Installing
//! makes the check STARTABLE; it never starts one.
//! - `observer` + `index`/`semver` (crate-internal) — the server half: when
//! the check's own dispatch completes, parse the fetched sparse-index lines
//! (skipping yanked releases and prereleases — the versions a plain
//! `cargo install` refuses) and record the greatest installable version.
//! - `status` (crate-internal) — the recorded last check, served by
//! `GET /update-status` beside the installed version from
//! [`crate::build_identity`].
//!
//! # Manual-only is the design, not a default
//!
//! There is no cadence configuration key, no timer, no check-on-startup.
//! Every check is one explicit operator act — the ops console's "check now"
//! or a plain workflow start. And knowing is ALL this slice does: no install,
//! no upgrade, and no restart machinery exists here.
//!
//! # Visibility: only the document and its install are API
//!
//! The parser, the SemVer implementation, the observer, and the status slot
//! are implementation detail behind `GET /update-status`, and publishing them
//! would make a hand-rolled SemVer part of `aion-server`'s public API — a
//! surface that could never be retired. They are `pub(crate)`; the embedded
//! document and its boot install are the exported face (the CLI and the e2e
//! suites drive the feature through them, exactly as with the assistant).
/// The embedded AWL document, its compiled identity, and the verified names
/// the server half keys on.
/// The crates.io sparse-index line parse (crate-internal).
pub
/// Boot-time installation of the embedded document into the engine catalog.
/// The dispatch decorator that records completed checks (crate-internal).
pub
/// Strict SemVer 2.0.0 parsing and precedence (crate-internal).
pub
/// The server's memory of its last completed check (crate-internal).
pub
pub use ;
pub use ;
pub use UpdateCheckObserver;
pub use UpdateStatusState;