DIS-004: delete dirty gate is mtime-only, no --force bypass

be delete <file> should gate on mtime first, then a content-hash double-check when the mtime has drifted, and be delete --force <file> should delete a dirty file anyway. The impl is mtime-only with no hash fallback and no force bypass on the file/dir path, so a file with a drifted-but-identical mtime is wrongly refused and a deliberately dirty delete is impossible. The goal is to match the documented gate (see DELETE). User ruling 2026-05-31.

Issues

sniff/DEL.c implements only the mtime check; the hash double-check and the force bypass are missing code, not bugs in existing logic.

Blockers

None; needs a baseline-tree path→sha lookup exposed to DEL.c for the content double-check.

Planned

Add the hash double-check and thread a force flag.

Landed

Nothing yet.