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
+12 -12
View File
@@ -1,6 +1,6 @@
//! Deferred agent start via one-shot timers.
//!
//! Provides [`TimerStore`] for persisting timers to `.storkit/timers.json`,
//! Provides [`TimerStore`] for persisting timers to `.huskies/timers.json`,
//! a 30-second tick loop ([`spawn_timer_tick_loop`]) that fires due timers,
//! and command parsing / handling for the `timer` bot command.
@@ -398,7 +398,7 @@ pub async fn handle_timer_command(
// The story must be in backlog or current. When the timer fires,
// backlog stories are moved to current automatically.
let work_dir = project_root.join(".storkit").join("work");
let work_dir = project_root.join(".huskies").join("work");
let in_backlog = work_dir.join("1_backlog").join(format!("{story_id}.md")).exists();
let in_current = work_dir.join("2_current").join(format!("{story_id}.md")).exists();
if !in_backlog && !in_current {
@@ -555,7 +555,7 @@ fn resolve_story_id(number_or_id: &str, project_root: &Path) -> Option<String> {
}
for stage in STAGES {
let dir = project_root.join(".storkit").join("work").join(stage);
let dir = project_root.join(".huskies").join("work").join(stage);
if !dir.exists() {
continue;
}
@@ -931,8 +931,8 @@ mod tests {
async fn handle_schedule_story_not_in_backlog_or_current() {
let dir = TempDir::new().unwrap();
// Set up directory structure with no story in backlog or current
std::fs::create_dir_all(dir.path().join(".storkit/work/1_backlog")).unwrap();
std::fs::create_dir_all(dir.path().join(".storkit/work/2_current")).unwrap();
std::fs::create_dir_all(dir.path().join(".huskies/work/1_backlog")).unwrap();
std::fs::create_dir_all(dir.path().join(".huskies/work/2_current")).unwrap();
let store = TimerStore::load(dir.path().join("timers.json"));
let result = handle_timer_command(
TimerCommand::Schedule {
@@ -952,7 +952,7 @@ mod tests {
#[tokio::test]
async fn handle_schedule_accepts_backlog_story() {
let dir = TempDir::new().unwrap();
let backlog_dir = dir.path().join(".storkit/work/1_backlog");
let backlog_dir = dir.path().join(".huskies/work/1_backlog");
std::fs::create_dir_all(&backlog_dir).unwrap();
std::fs::write(
backlog_dir.join("421_story_foo.md"),
@@ -978,7 +978,7 @@ mod tests {
#[tokio::test]
async fn handle_schedule_success() {
let dir = TempDir::new().unwrap();
let current_dir = dir.path().join(".storkit/work/2_current");
let current_dir = dir.path().join(".huskies/work/2_current");
std::fs::create_dir_all(&current_dir).unwrap();
std::fs::write(current_dir.join("421_story_foo.md"), "---\nname: Foo\n---").unwrap();
let store = TimerStore::load(dir.path().join("timers.json"));
@@ -1001,7 +1001,7 @@ mod tests {
#[tokio::test]
async fn handle_schedule_invalid_time() {
let dir = TempDir::new().unwrap();
let current_dir = dir.path().join(".storkit/work/2_current");
let current_dir = dir.path().join(".huskies/work/2_current");
std::fs::create_dir_all(&current_dir).unwrap();
std::fs::write(current_dir.join("421_story_foo.md"), "---\nname: Foo\n---").unwrap();
let store = TimerStore::load(dir.path().join("timers.json"));
@@ -1058,8 +1058,8 @@ mod tests {
let dir = TempDir::new().unwrap();
let root = dir.path();
let backlog = root.join(".storkit/work/1_backlog");
let current = root.join(".storkit/work/2_current");
let backlog = root.join(".huskies/work/1_backlog");
let current = root.join(".huskies/work/2_current");
fs::create_dir_all(&backlog).unwrap();
fs::create_dir_all(&current).unwrap();
fs::write(backlog.join("421_story_foo.md"), "---\nname: Foo\n---\n").unwrap();
@@ -1103,8 +1103,8 @@ mod tests {
let dir = TempDir::new().unwrap();
let root = dir.path();
let backlog = root.join(".storkit/work/1_backlog");
let current = root.join(".storkit/work/2_current");
let backlog = root.join(".huskies/work/1_backlog");
let current = root.join(".huskies/work/2_current");
fs::create_dir_all(&backlog).unwrap();
fs::create_dir_all(&current).unwrap();
fs::write(