Thread Split 1.0.5

Change log

Thread Split automatically splits long-running threads into numbered parts when post or page thresholds are reached, while keeping watchers, navigation, and reading position intact. Define a threshold once globally, override per forum, or override per thread. When a thread crosses the limit, a continuation thread is created, watchers and active readers are carried over, and a chain links every part together with prev/next navigation.

Features

Threshold-based auto-split
  • Trigger split by post count or page count
  • Three-tier cascade: global default -> per node configuration -> per-thread override
Two split modes
  • Grace mode: wait N minutes of inactivity before splitting to avoids cutting an active conversation mid-flow
  • Hard mode: split immediately when the threshold is crossed
Chain navigation
  • Numbered parts with configurable title template
  • Chain menu with parts index and next / previous links
Watcher and viewer continuity
  • Existing thread watchers migrated to the new part (configurable)
  • Users currently viewing the old thread receive a "continued" alert with opt-out
Configurable continuation post
  • Templated continuation post auto-inserted into the new part
  • Title template editable globally or per forum
Thread move handling
  • Choose what happens when a chain part is moved between forums:
    • Detach the moved thread (default)
    • Allow the chain to span forums
    • Move the whole chain together
Error log and stuck-split recovery
  • Dedicated admin Thread split error log page under Logs, with filters by phase, chain, and date range
  • Every deferred job (split execution, watcher migration, viewer alerts, parts-summary rebuild, whole-chain move) wraps failures with full context and writes them to the log
  • Background cron detects stuck or orphaned pending splits, retries them once, and clears the queue automatically
  • Old log entries auto-prune after 30 days; manual "Clear all" available
Built for big boards in mind
  • Query-budgeted: zero queries on disabled forums and one batched query for forum listings regardless of size.
CLI Commands

Code:
mc-threadsplit:show-chain <chain_id> — diagnostic dump for a chain (parts, post counts, watcher counts)
mc-threadsplit:cleanup-orphans — find and delete chain_thread rows pointing to non-existent threads, plus chains with zero members
mc-threadsplit:detach <thread_id> — detach a thread from its chain and renumber survivors
mc-threadsplit:dissolve <chain_id> — delete a chain entirely; member threads remain unchained
mc-threadsplit:relink <thread_id> <chain_id> <position> — attach an unchained thread to an existing chain at a given position
mc-threadsplit:renumber <chain_id> — recompute part_number 1..N ordered by first post date (idempotent)

Release notes

Thread Split automatically splits long-running threads into numbered parts when post or page thresholds are reached, while keeping watchers, navigation, and reading position intact. Define a threshold once globally, override per forum, or override per thread. When a thread crosses the limit, a continuation thread is created, watchers and active readers are carried over, and a chain links every part together with prev/next navigation.

Features

Threshold-based auto-split
  • Trigger split by post count or page count
  • Three-tier cascade: global default -> per node configuration -> per-thread override
Two split modes
  • Grace mode: wait N minutes of inactivity before splitting to avoids cutting an active conversation mid-flow
  • Hard mode: split immediately when the threshold is crossed
Chain navigation
  • Numbered parts with configurable title template
  • Chain menu with parts index and next / previous links
Watcher and viewer continuity
  • Existing thread watchers migrated to the new part (configurable)
  • Users currently viewing the old thread receive a "continued" alert with opt-out
Configurable continuation post
  • Templated continuation post auto-inserted into the new part
  • Title template editable globally or per forum
Thread move handling
  • Choose what happens when a chain part is moved between forums:
    • Detach the moved thread (default)
    • Allow the chain to span forums
    • Move the whole chain together
Error log and stuck-split recovery
  • Dedicated admin Thread split error log page under Logs, with filters by phase, chain, and date range
  • Every deferred job (split execution, watcher migration, viewer alerts, parts-summary rebuild, whole-chain move) wraps failures with full context and writes them to the log
  • Background cron detects stuck or orphaned pending splits, retries them once, and clears the queue automatically
  • Old log entries auto-prune after 30 days; manual "Clear all" available
Built for big boards in mind
  • Query-budgeted: zero queries on disabled forums and one batched query for forum listings regardless of size.
CLI Commands

Code:
mc-threadsplit:show-chain <chain_id> — diagnostic dump for a chain (parts, post counts, watcher counts)
mc-threadsplit:cleanup-orphans — find and delete chain_thread rows pointing to non-existent threads, plus chains with zero members
mc-threadsplit:detach <thread_id> — detach a thread from its chain and renumber survivors
mc-threadsplit:dissolve <chain_id> — delete a chain entirely; member threads remain unchained
mc-threadsplit:relink <thread_id> <chain_id> <position> — attach an unchained thread to an existing chain at a given position
mc-threadsplit:renumber <chain_id> — recompute part_number 1..N ordered by first post date (idempotent)
Back
Top