Repository navigation
Extraction and Attachments
For a workspace without an archive, Slackpipe builds a Slackdump archive plan.
For an existing archive, it builds a resumable resume plan. Initial ingestion
requires completeness and never applies stale skipping.
Steady-state resumes can use SLACKPIPE_INCREMENTAL_STALE_AFTER to pass bounded
stale-channel and stale-thread windows to Slackdump. This limits repeated work
without changing the initial-ingest contract.
- Commands are assembled as argument arrays, not shell strings.
- Authentication uses Slackdump's real
auth.testbehavior. - Subprocess output is normalized and redacted.
- Authentication, transient execution, timeout, and lock failures are classified.
- A global advisory lock prevents simultaneous raw-archive mutation.
Attachment processing is a distinct stage. Slackpipe:
- downloads or resumes file extraction;
- indexes local files by Slack file identity;
- records exact relative local object paths;
- compares observed bytes with source metadata;
- reports missing, mismatched, accepted-variance, and valid files;
- records reconciliation details for canonical ingestion.
SLACKPIPE_ATTACHMENT_SIZE_ACCEPT is a narrow operator-reviewed exception list
for known upstream byte-count variance. It must not be used as a blanket bypass.
Slackdump archives can use SQLite WAL mode. Copying only the main database file can therefore lose committed WAL content. Slackpipe opens the source read-only and uses SQLite's backup API to produce the transform input.