Move `fennel` into `quire-core`
First runtime module to land in the shared crate per
`docs/plans/2026-05-08-workspace-split.md`. `quire-server` re-exports
`fennel` so existing `crate::fennel::*` callers stay put until later
modules pull them along.
Assisted-by: Claude Opus 4.7 (1M context) via Claude Code
diff --git a/Cargo.lock b/Cargo.lock
index 4e25dcd..c658e26 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2133,6 +2133,15 @@ dependencies = [
[[package]]
name = "quire-core"
version = "0.1.0"
+dependencies = [
+ "fs-err",
+ "miette",
+ "mlua",
+ "regex",
+ "serde",
+ "tempfile",
+ "thiserror",
+]
[[package]]
name = "quire-server"
diff --git a/quire-core/Cargo.toml b/quire-core/Cargo.toml
index 34f654c..4c876a4 100644
--- a/quire-core/Cargo.toml
+++ b/quire-core/Cargo.toml
@@ -2,3 +2,14 @@
name = "quire-core"
version = "0.1.0"
edition = "2024"
+
+[dependencies]
+fs-err = "*"
+miette = "*"
+mlua = { version = "*", features = ["lua54", "serde", "vendored", "error-send"] }
+regex = "*"
+serde = { version = "*", features = ["derive"] }
+thiserror = "*"
+
+[dev-dependencies]
+tempfile = "*"
diff --git a/quire-server/src/fennel.rs b/quire-core/src/fennel.rs
similarity index 100%
rename from quire-server/src/fennel.rs
rename to quire-core/src/fennel.rs
diff --git a/quire-core/src/lib.rs b/quire-core/src/lib.rs
index 2ad8d80..9e35ad0 100644
--- a/quire-core/src/lib.rs
+++ b/quire-core/src/lib.rs
@@ -1,3 +1,4 @@
//! Shared runtime modules for the quire orchestrator (`quire-server`)
-//! and the in-container runner (`quire-ci`). Empty until module
-//! migration begins.
+//! and the in-container runner (`quire-ci`).
+
+pub mod fennel;
diff --git a/quire-server/vendor/fennel.lua b/quire-core/vendor/fennel.lua
similarity index 100%
rename from quire-server/vendor/fennel.lua
rename to quire-core/vendor/fennel.lua
diff --git a/quire-server/src/lib.rs b/quire-server/src/lib.rs
index ab7b623..0c5b85f 100644
--- a/quire-server/src/lib.rs
+++ b/quire-server/src/lib.rs
@@ -2,7 +2,7 @@ pub mod ci;
pub mod db;
mod error;
pub mod event;
-pub mod fennel;
+pub use quire_core::fennel;
pub mod quire;
pub mod secret;