Bug
crosslink serve starts the API server successfully but serves no web UI — the root URL returns 404 with an empty body. Safari redirects to about:blank.
The installation docs only mention cargo install crosslink, and the web dashboard guide presents crosslink serve as a single command that opens in the browser.
Investigation
Looking at routes.rs, the dashboard is only served when --dashboard-dir is provided:
if let Some(dir) = dashboard_dir {
use tower_http::services::ServeDir;
app = app.fallback_service(ServeDir::new(dir));
}
Without --dashboard-dir, there's no fallback service, so / returns 404.
There's no dashboard/ directory in the crate, no rust-embed or include_dir! for bundling assets, and no build step in the docs. The --dashboard-dir flag exists in crosslink serve --help but there's nothing to point it to.
Also, types.rs has #![allow(dead_code, unused_imports)] with a comment saying "these types are pre-declared as the API contract for later phase agents" — suggesting the React frontend hasn't been built yet.
Expected behavior
Either:
crosslink serve should serve a bundled dashboard (embed assets at compile time), or
- The docs should mention that the dashboard frontend needs to be built separately and passed via
--dashboard-dir, or
crosslink serve without --dashboard-dir should print a clear message explaining the dashboard isn't available
Environment
- crosslink 0.5.1 via
cargo install crosslink
- macOS (Darwin 25.3.0)
Bug
crosslink servestarts the API server successfully but serves no web UI — the root URL returns 404 with an empty body. Safari redirects toabout:blank.The installation docs only mention
cargo install crosslink, and the web dashboard guide presentscrosslink serveas a single command that opens in the browser.Investigation
Looking at
routes.rs, the dashboard is only served when--dashboard-diris provided:Without
--dashboard-dir, there's no fallback service, so/returns 404.There's no
dashboard/directory in the crate, norust-embedorinclude_dir!for bundling assets, and no build step in the docs. The--dashboard-dirflag exists incrosslink serve --helpbut there's nothing to point it to.Also,
types.rshas#![allow(dead_code, unused_imports)]with a comment saying "these types are pre-declared as the API contract for later phase agents" — suggesting the React frontend hasn't been built yet.Expected behavior
Either:
crosslink serveshould serve a bundled dashboard (embed assets at compile time), or--dashboard-dir, orcrosslink servewithout--dashboard-dirshould print a clear message explaining the dashboard isn't availableEnvironment
cargo install crosslink