diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index d24698b9..902ecea1 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -105,9 +105,12 @@ Fixed channel timelines so refreshed thread parents remain visible after direct ### [@thomasmaerz](https://github.com/thomasmaerz) Fixed database dedupe joins for non-null keys, restoring fast dedupe previews on archives with many duplicate channel users. +### [@beeckrumi0000](https://github.com/beeckrumi0000) - ulises.millan +Fixed `resume -refresh` so `-member-only` also filters newly discovered channels. + --- -**Total Contributors**: 33 +**Total Contributors**: 34 This list is sorted by number of contributions. Every contribution, no matter how small, helps make Slackdump better for everyone! diff --git a/cmd/slackdump/internal/man/assets/changelog.md b/cmd/slackdump/internal/man/assets/changelog.md index 1db055f8..8c9c244e 100644 --- a/cmd/slackdump/internal/man/assets/changelog.md +++ b/cmd/slackdump/internal/man/assets/changelog.md @@ -4,6 +4,13 @@ ### Bug Fixes +- `slackdump resume -refresh -member-only` now skips newly discovered public + channels that the current user has not joined (#758). Channels already in + the resume list are still processed. +- Fixed MCP archive switching so `load_source` waits for active reads before + closing the previous archive (#753). Failed opens or canceled waits leave + the previous archive active, queued reads can be canceled, and the server + closes the active archive at shutdown. - Fix slow database deduplication on large channels (#750), including cleanup after `resume -dedupe`. Existing archives automatically build a message index on first open after upgrading; this can take extra time and disk space. diff --git a/cmd/slackdump/internal/mcp/assets/mcp.md b/cmd/slackdump/internal/mcp/assets/mcp.md index 40fb5cc1..98ffcb53 100644 --- a/cmd/slackdump/internal/mcp/assets/mcp.md +++ b/cmd/slackdump/internal/mcp/assets/mcp.md @@ -267,7 +267,9 @@ load_source(path="/path/to/another/archive.db") ``` `load_source` also works when the server was started with an initial archive — -it closes the current one and opens the new one. +it opens the new archive and waits for active reads before replacing the +current one. If opening fails or the wait is canceled, the current archive +remains active. ## Integrating with Claude Desktop diff --git a/cmd/slackdump/internal/resume/assets/resume.md b/cmd/slackdump/internal/resume/assets/resume.md index d5f914d7..2e14f518 100644 --- a/cmd/slackdump/internal/resume/assets/resume.md +++ b/cmd/slackdump/internal/resume/assets/resume.md @@ -34,6 +34,19 @@ steps: slackdump convert -format slackdump_20241231_150405 ``` +### Discovering new channels. + +Use `-refresh` to discover additional channels while resuming an existing +archive. Add `-member-only` to skip newly discovered public channels that you +have not joined: + +```plaintext +slackdump resume -refresh -member-only +``` + +The membership filter applies to newly discovered channels. Channels already +in the resume list are still processed, even if you are no longer a member. + ### Deduplicating resume overlap. Resume uses a lookback window to avoid missing edits, replies, and other diff --git a/internal/chunk/backend/dbase/dbase.go b/internal/chunk/backend/dbase/dbase.go index 372fae4c..36e1fb12 100644 --- a/internal/chunk/backend/dbase/dbase.go +++ b/internal/chunk/backend/dbase/dbase.go @@ -83,6 +83,9 @@ func WithVerbose(v bool) Option { } } +// WithOnlyNewOrChangedUsers instructs to insert the user in consequent session +// only in case if it is a new user or the user details were updated. Default - +// to insert the user regardless. func WithOnlyNewOrChangedUsers(v bool) Option { return func(o *options) { o.onlyNewOrChangedUsers = v