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
+11 -11
View File
@@ -59,7 +59,7 @@ fn is_dangerous(command: &str) -> Option<String> {
}
/// Validates that `working_dir` exists and is inside the project's
/// `.storkit/worktrees/` directory. Returns the canonicalized path.
/// `.huskies/worktrees/` directory. Returns the canonicalized path.
fn validate_working_dir(working_dir: &str, ctx: &AppContext) -> Result<PathBuf, String> {
let wd = PathBuf::from(working_dir);
@@ -71,7 +71,7 @@ fn validate_working_dir(working_dir: &str, ctx: &AppContext) -> Result<PathBuf,
}
let project_root = ctx.agents.get_project_root(&ctx.state)?;
let worktrees_root = project_root.join(".storkit").join("worktrees");
let worktrees_root = project_root.join(".huskies").join("worktrees");
let canonical_wd = wd
.canonicalize()
@@ -88,7 +88,7 @@ fn validate_working_dir(working_dir: &str, ctx: &AppContext) -> Result<PathBuf,
if !canonical_wd.starts_with(&canonical_wt) {
return Err(format!(
"working_dir must be inside .storkit/worktrees/. Got: {working_dir}"
"working_dir must be inside .huskies/worktrees/. Got: {working_dir}"
));
}
@@ -406,14 +406,14 @@ mod tests {
fn validate_working_dir_rejects_path_outside_worktrees() {
let tmp = tempfile::tempdir().unwrap();
// Create the worktrees dir so it exists
let wt_dir = tmp.path().join(".storkit").join("worktrees");
let wt_dir = tmp.path().join(".huskies").join("worktrees");
std::fs::create_dir_all(&wt_dir).unwrap();
let ctx = test_ctx(tmp.path());
// Try to use /tmp (outside worktrees)
let result = validate_working_dir(tmp.path().to_str().unwrap(), &ctx);
assert!(result.is_err());
assert!(
result.unwrap_err().contains("inside .storkit/worktrees"),
result.unwrap_err().contains("inside .huskies/worktrees"),
"expected sandbox error"
);
}
@@ -423,7 +423,7 @@ mod tests {
let tmp = tempfile::tempdir().unwrap();
let story_wt = tmp
.path()
.join(".storkit")
.join(".huskies")
.join("worktrees")
.join("42_test_story");
std::fs::create_dir_all(&story_wt).unwrap();
@@ -477,7 +477,7 @@ mod tests {
#[tokio::test]
async fn tool_run_command_rejects_path_outside_worktrees() {
let tmp = tempfile::tempdir().unwrap();
let wt_dir = tmp.path().join(".storkit").join("worktrees");
let wt_dir = tmp.path().join(".huskies").join("worktrees");
std::fs::create_dir_all(&wt_dir).unwrap();
let ctx = test_ctx(tmp.path());
let result = tool_run_command(
@@ -500,7 +500,7 @@ mod tests {
let tmp = tempfile::tempdir().unwrap();
let story_wt = tmp
.path()
.join(".storkit")
.join(".huskies")
.join("worktrees")
.join("42_test");
std::fs::create_dir_all(&story_wt).unwrap();
@@ -528,7 +528,7 @@ mod tests {
let tmp = tempfile::tempdir().unwrap();
let story_wt = tmp
.path()
.join(".storkit")
.join(".huskies")
.join("worktrees")
.join("43_test");
std::fs::create_dir_all(&story_wt).unwrap();
@@ -554,7 +554,7 @@ mod tests {
let tmp = tempfile::tempdir().unwrap();
let story_wt = tmp
.path()
.join(".storkit")
.join(".huskies")
.join("worktrees")
.join("44_test");
std::fs::create_dir_all(&story_wt).unwrap();
@@ -580,7 +580,7 @@ mod tests {
let tmp = tempfile::tempdir().unwrap();
let story_wt = tmp
.path()
.join(".storkit")
.join(".huskies")
.join("worktrees")
.join("45_test");
std::fs::create_dir_all(&story_wt).unwrap();