DiscordChatExporter/docs/plans/2026-05-29-019-feat-lfg-closure-plan.md
Boden 10cd2a534d feat(scrape): offline prove smoke and snapshot-only mode
Add --snapshot-only and --compare-snapshots to prove-incremental-append,
fix EXIT trap status, wire prove smoke into CI, and document LFG closure plan.
2026-05-29 14:12:18 -05:00

1.8 KiB

title: feat: LFG closure — prove smoke and workspace bridge type: feat status: complete date: 2026-05-29 origin: Repeated /lfg — recurring scrape stack complete; close gaps for operators and CI

feat: LFG closure — prove smoke and workspace bridge

Summary

Recurring scrape is feature-complete on feat/recurring-cli-scrape. This slice adds an offline prove smoke test, documents audit/salvage in the GUI zip bridge, and refreshes the open PR summary.

Requirements

ID Requirement
R1 prove-incremental-append.sh supports --snapshot-only for offline verification
R2 scripts/tests/prove-incremental-append-smoke.sh validates invalid JSON skip + grow-only compare
R3 CI recurring-scrape-smoke job runs prove smoke
R4 DiscordChatExporter.linux-x64/RECURRING-SCRAPE.md mentions audit/salvage
R5 PR #1538 body includes plan 018 audit/salvage summary

Implementation Units

U1. Prove snapshot-only mode

Files: scripts/prove-incremental-append.sh

Add --snapshot-only that writes snapshot TSV and exits (no Discord scrape).

U2. Prove smoke test

Files: scripts/tests/prove-incremental-append-smoke.sh

Fixture archives: valid JSON, invalid JSON (skipped), then simulate grow-only compare.

U3. Workspace bridge

Files: ../DiscordChatExporter.linux-x64/RECURRING-SCRAPE.md (sibling path from repo: document in plan as operator copy target — implement via scripts/sync-workspace-bridge.sh or direct edit if path exists)

Use repo-relative note: bridge file lives beside repo at DiscordChatExporter.linux-x64/RECURRING-SCRAPE.md.

U4. PR body refresh

Update PR #1538 via gh pr edit with Latest section for a2aeaaa and plan 019.

Verification

  • ./scripts/tests/prove-incremental-append-smoke.sh
  • All existing scripts/tests/*.sh pass