* Release under the SolidCraft name: binaries, assets and installers The desktop binary is now `solidcraft` and the CLI `solidcraft-cli` (the two app packages are renamed; their folders move with the rest of the rename later). Every release asset is named solidcraft-<ver>-… / SolidCraft-<ver>-windows-x64.exe, and the installers show the SolidCraft product name. Kept so existing installs keep updating (docs/compatibility.md): - `solvecraft-cli` alias binary in every package, forwarding to solidcraft-cli with a deprecation note on stderr (tests/legacy_alias.rs). - Linux app ID ai.storyteller.solvecraft (Flatpak ID, desktop entry, Wayland app_id). - MSI UpgradeCode, so the MSI upgrades in place. - deb Replaces/Conflicts/Provides and rpm Obsoletes/Provides solvecraft. - An old-named .zsync copy so earlier AppImages find updates; a legacy .flatpakrepo copy. - .solvecraft file associations; SOLVECRAFT_* fallbacks in the packaging scripts. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT * MSI: register the legacy .solvecraft extension without a duplicate open verb Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT --------- Co-authored-by: Claude Opus 5.5 <[email protected]>
19 lines
795 B
Rust
19 lines
795 B
Rust
//! `mcp --connect` to a port where no app listens tells the user how to start one (#270).
|
|
|
|
use std::net::TcpListener;
|
|
use std::process::{Command, Stdio};
|
|
|
|
#[test]
|
|
fn mcp_connect_without_a_listening_app_names_the_control_flag() {
|
|
// A port that was free a moment ago: nothing listens on it.
|
|
let port = TcpListener::bind("127.0.0.1:0").unwrap().local_addr().unwrap().port();
|
|
let output = Command::new(env!("CARGO_BIN_EXE_solidcraft-cli"))
|
|
.args(["mcp", "--connect", &format!("127.0.0.1:{port}")])
|
|
.stdin(Stdio::null())
|
|
.output()
|
|
.unwrap();
|
|
let stderr = String::from_utf8_lossy(&output.stderr);
|
|
assert!(!output.status.success(), "{stderr}");
|
|
assert!(stderr.contains("--control"), "say how to start the app with a control port: {stderr}");
|
|
}
|