Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
9861987
feat(desktop): one exit path, one startup surface and a real tray probe
lidge-jun Sep 20, 2026
92bddec
test(desktop): pin exit ownership, the startup surface and tray avail…
lidge-jun Sep 20, 2026
f434e33
docs(structure): record the desktop shell's exit, startup and tray co…
lidge-jun Sep 20, 2026
4a63dc6
fix(desktop): keep the macOS-only menu out of every other platform's …
lidge-jun Sep 21, 2026
b3b59c6
test(desktop): follow the shell contracts to where they now live
lidge-jun Sep 21, 2026
e4d743b
docs(structure): state the tray verdict, registration and spawn rules…
lidge-jun Sep 21, 2026
08aa92f
test(desktop): follow claim_drain into the match that replaced its guard
lidge-jun Sep 21, 2026
d6130e1
feat(desktop): hold this installation's own id and read ownership by …
lidge-jun Sep 21, 2026
83cb5cc
test(desktop): read both halves of the ownership claim together
lidge-jun Sep 21, 2026
14e64a9
docs(structure): record the app's half of the runtime-ownership claim
lidge-jun Sep 21, 2026
a0f0e3c
fix(desktop): drain before an update installs, and stop calling a fai…
lidge-jun Sep 21, 2026
5e64205
fix(desktop): confirm the instance before owning it or sending it a c…
lidge-jun Sep 21, 2026
56bf8f9
test(desktop): pin the update order, the failure states and the insta…
lidge-jun Sep 21, 2026
2ce8507
docs(structure): record the update order, the drain verdicts and the …
lidge-jun Sep 21, 2026
b9cde2a
fix(desktop): let a refused restart be tried again
lidge-jun Sep 21, 2026
46de9cf
test(desktop): follow finish_drain into its verdict argument
lidge-jun Sep 21, 2026
2f54d38
feat(desktop): resolve the runtime through the bundled CLI, and stop …
lidge-jun Sep 21, 2026
56cf8de
fix(desktop): stop the runtime with the bundled ocx stop, and read wh…
lidge-jun Sep 21, 2026
af2d42e
test(desktop): read both CLI contracts against the CLI that defines them
lidge-jun Sep 21, 2026
a54092a
docs(structure): record that the shell resolves and stops through the…
lidge-jun Sep 21, 2026
7c5f69e
fix(desktop): follow the stop outcome into its own type
lidge-jun Sep 21, 2026
2b81596
fix(desktop): merge the app-origin rule rather than pick a side of it
lidge-jun Sep 21, 2026
68d6b0a
fix(desktop): give a foreign runtime its own widget state
lidge-jun Sep 21, 2026
576899f
test(clients): follow the owner check into the install-state contract
lidge-jun Sep 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions desktop/src-tauri/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions desktop/src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,12 @@ tauri-plugin-single-instance = "=2.4.0"
tauri-plugin-updater = "=2.9.0"
tokio = { version = "=1.45.1", features = ["sync", "time"] }

# Linux only, and already in this graph: `tao` enables its own `dbus` feature by default, so
# `libdbus-sys` is compiled for every Linux build of this shell today. Naming it here adds a
# session-bus probe for the StatusNotifier watcher without adding a package or a system library.
[target.'cfg(target_os = "linux")'.dependencies]
dbus = "=0.9.12"

[profile.release]
codegen-units = 1
lto = "thin"
Expand Down
116 changes: 0 additions & 116 deletions desktop/src-tauri/src/discovery.rs

This file was deleted.

33 changes: 33 additions & 0 deletions desktop/src-tauri/src/endpoint.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
//! The loopback endpoint the shell talks to.
//!
//! This file was `discovery.rs`, and it resolved the endpoint itself: it read `runtime-port.json`,
//! fell back to 10100 and let the shell start there, so a user with a configured `config.port` was
//! started on a port they had not chosen. Resolution belongs to the bundled CLI now — see
//! `resolve.rs` — and what is left here is the value it hands back.

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct ProxyEndpoint {
pub host: &'static str,
pub port: u16,
}

impl ProxyEndpoint {
pub fn url(&self, path: &str) -> String {
format!("http://{}:{}{}", self.host, self.port, path)
}
}

#[cfg(test)]
mod tests {
use super::ProxyEndpoint;

#[test]
fn the_endpoint_is_loopback_and_carries_its_port() {
let endpoint = ProxyEndpoint {
host: "127.0.0.1",
port: 12345,
};
assert_eq!(endpoint.url("/healthz"), "http://127.0.0.1:12345/healthz");
assert_eq!(endpoint.url(""), "http://127.0.0.1:12345");
}
}
Loading
Loading