Add tagged VFS undo journal, host API, and world CLI

This commit is contained in:
2026-11-07 13:01:43 +00:00
parent a26721194e
commit 7ce839e908
26 changed files with 1568 additions and 39 deletions
+7 -3
View File
@@ -1,5 +1,5 @@
//! The host HTTP listener and console startup share one owned API and credentials store.
use super::{Api, respond};
use super::Api;
use crate::cred::{Caller, Cred};
use std::{net::SocketAddr, path::Path, sync::Arc};
@@ -37,6 +37,10 @@ impl Listener {
);
let serving = server.clone();
let thread = std::thread::spawn(move || {
let runtime = tokio::runtime::Builder::new_current_thread()
.enable_all()
.build()
.expect("API runtime");
for mut request in serving.incoming_requests() {
let response = (|| -> anyhow::Result<_> {
let mut body = Vec::new();
@@ -45,7 +49,7 @@ impl Listener {
.method(request.method().as_str())
.uri(request.url())
.body(bytes::Bytes::from(body))?;
Ok(respond(
Ok(runtime.block_on(super::handle(
&api,
Caller {
program: "/host/browser".into(),
@@ -53,7 +57,7 @@ impl Listener {
conversations: Vec::new(),
},
request,
))
)))
})();
let response = response.unwrap_or_else(|_| {
http::Response::builder()