huskies: rename project from storkit to huskies

Rename all references from storkit to huskies across the codebase:
- .storkit/ directory → .huskies/
- Binary name, Cargo package name, Docker image references
- Server code, frontend code, config files, scripts
- Fix script/test to build frontend before cargo clippy/test
  so merge worktrees have frontend/dist available for RustEmbed

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Timmy
2026-04-03 16:12:52 +01:00
parent a7035b6ba7
commit 2d8ccb3eb6
572 changed files with 1340 additions and 1220 deletions
+10 -10
View File
@@ -33,7 +33,7 @@ pub(crate) async fn ensure_project_root_with_story_kit(
fs::create_dir_all(&path)
.map_err(|e| format!("Failed to create project directory: {}", e))?;
}
if !path.join(".storkit").is_dir() {
if !path.join(".huskies").is_dir() {
scaffold_story_kit(&path, port)?;
}
Ok(())
@@ -230,9 +230,9 @@ mod tests {
assert!(content.contains("localhost"), "mcp.json should reference localhost");
}
/// Regression test for bug 371: no-arg `storkit` in empty directory skips scaffold.
/// `open_project` on a directory without `.storkit/` must create all required scaffold
/// files — the same files that `storkit .` produces.
/// Regression test for bug 371: no-arg `huskies` in empty directory skips scaffold.
/// `open_project` on a directory without `.huskies/` must create all required scaffold
/// files — the same files that `huskies .` produces.
#[tokio::test]
async fn open_project_on_empty_dir_creates_full_scaffold() {
let dir = tempdir().unwrap();
@@ -246,8 +246,8 @@ mod tests {
.unwrap();
assert!(
project_dir.join(".storkit/project.toml").exists(),
"open_project must create .storkit/project.toml"
project_dir.join(".huskies/project.toml").exists(),
"open_project must create .huskies/project.toml"
);
assert!(
project_dir.join(".mcp.json").exists(),
@@ -386,15 +386,15 @@ mod tests {
.await
.unwrap();
// .storkit/ should have been created automatically
assert!(project_dir.join(".storkit").is_dir());
// .huskies/ should have been created automatically
assert!(project_dir.join(".huskies").is_dir());
}
#[tokio::test]
async fn open_project_does_not_overwrite_existing_story_kit() {
let dir = tempdir().unwrap();
let project_dir = dir.path().join("myproject");
let sk_dir = project_dir.join(".storkit");
let sk_dir = project_dir.join(".huskies");
fs::create_dir_all(&sk_dir).unwrap();
let readme = sk_dir.join("README.md");
fs::write(&readme, "custom content").unwrap();
@@ -405,7 +405,7 @@ mod tests {
.await
.unwrap();
// Existing .storkit/ content should not be overwritten
// Existing .huskies/ content should not be overwritten
assert_eq!(fs::read_to_string(&readme).unwrap(), "custom content");
}
}