diff --git a/.storkit/work/1_backlog/426_bug_mergemaster_pipeline_marks_story_done_without_verifying_code_landed_on_master.md b/.storkit/work/1_backlog/426_bug_mergemaster_pipeline_marks_story_done_without_verifying_code_landed_on_master.md index 533d5a1f..73d50954 100644 --- a/.storkit/work/1_backlog/426_bug_mergemaster_pipeline_marks_story_done_without_verifying_code_landed_on_master.md +++ b/.storkit/work/1_backlog/426_bug_mergemaster_pipeline_marks_story_done_without_verifying_code_landed_on_master.md @@ -12,6 +12,15 @@ The mergemaster pipeline can mark a story as done even when the feature code nev Observed on stories 422 and 403. For 422: mergemaster created merge-queue branch, resolved 2 conflicts in chat/commands/mod.rs and http/mcp/mod.rs, passed quality gates, created merge-queue commit cb2ef6b (4 files, 333 insertions including unblock.rs). But the done commit on master (05db012) only moves the story file — zero code changes. There is no 'storkit: merge 422' commit on master at all. The feature branch (db3157f) still has the code but it was never cherry-picked onto master. +## Manual Merge Notes + +When manually cherry-picking 422 onto master, two conflicts arose: + +1. `server/src/chat/commands/mod.rs` — both 421 (timer) and 422 (unblock) added entries to the same BotCommand registry. Resolution: keep both. +2. `server/src/http/mcp/mod.rs` — 420 (loc_file) and 422 (unblock) both bumped the tool count assertion from 49→50. Resolution: keep loc_file assertion, bump count to 51. + +Additionally, the cherry-pick could not proceed at all because master was on the `merge-queue/424` branch with 3 unresolved files (notifications.rs, ws.rs, watcher.rs). A concurrent in-progress merge left the working tree dirty, which likely caused the original cherry-pick to fail silently. This suggests a race condition: the filesystem watcher commits (story file moves) can leave master in a state where the cherry-pick step in merge.rs fails. + ## Actual Result Story moved to done with no code on master. The merge-queue commit exists on a detached branch but was never applied to master. No merge commit appears in git log on master.