## 作成 LocalTicketBackend によって作成されました。 --- ## Intake summary Marked ready by `yoi ticket state`. --- ## State changed Marked ready by `yoi ticket state`. --- ## State changed Ticket を `yoi ticket` が queued にしました。 --- ## State changed State changed to `inprogress`. --- ## Implementation report workdir materialization の dirty source check を `selector == "HEAD"` の場合だけ実行するようにした。 変更点: - `LocalGitWorktreeMaterializer::materialize` で selector を先に確定。 - selector が `HEAD` の時だけ `git status --porcelain` による dirty source rejection を行う。 - 明示 branch selector では source worktree が dirty でも `git rev-parse ^{commit}` で commit 解決し、detached worktree を作る。 - branch selector + dirty source の回帰テストを追加し、未コミットファイルが materialized worktree に入らないことを確認。 検証: - `cargo test -p worker-runtime --features ws-server,fs-store branch_selector_allows_dirty_source_materialization --quiet` - `cargo test -p worker-runtime --features ws-server,fs-store dirty_source_is_rejected_by_materialization --quiet` - `cargo test -p worker-runtime --features ws-server,fs-store local_git_repo_materializes_detached_worktree_under_runtime_root --quiet` - `cargo fmt --check` - `git diff --check` --- ## State changed Ticket を closed にしました。 --- ## 完了 Workdir dirty source rejection is now scoped to the `HEAD` selector. Explicit branch selectors can materialize detached workdirs from their resolved commit even when the source worktree has uncommitted changes. ---