DiscordChatExporter/docs/plans/2026-06-04-059-feat-reclaim-stale-lock-proof-smoke-plan.md
Copilot e82007a2c5 feat(scrape): reclaim stale lock and proof salvage-before smoke
Add --reclaim-stale to scrape-lock-status.sh for dead-holder cleanup and
extend operator-proof smoke to cover --salvage-before-scrape end-to-end.
2026-06-03 07:08:45 -05:00

1.3 KiB

title type status date origin
feat: Reclaim stale scrape lock and proof salvage-before smoke feat active 2026-06-04 /lfg — stale MyBook validation leaves lock/meta; proof lacks salvage-before smoke

feat: Reclaim stale scrape lock and proof salvage-before smoke

Summary

Add --reclaim-stale to scrape-lock-status.sh for operators to clear dead-holder lock artifacts, and extend run-operator-proof-smoke.sh for --salvage-before-scrape.

Problem Frame

After a crashed scrape, {archive_root}/.dce-scrape.lock.meta may reference a dead pid. Operators need a safe reclaim path before restarting KotOR catch-up.

Requirements

ID Requirement
R1 scrape-lock-status.sh --reclaim-stale removes stale .meta when holder pid is not running
R2 Reclaim refuses when flock is actively held or holder pid is running
R3 Reclaim removes unheld orphan lock file when safe
R4 run-operator-proof-smoke.sh covers --salvage-before-scrape
R5 run-all-smokes.sh passes

Implementation Units

U1. Lock reclaim flag

Files: scripts/scrape-lock-status.sh, scripts/tests/scrape-lock-status-smoke.sh

U2. Proof salvage-before smoke

Files: scripts/tests/run-operator-proof-smoke.sh

Scope Boundaries

Deferred

  • GUI bridge doc refresh
  • Live KotOR catch-up on host