Group site generation into section tasks followed by search indexing #14
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
Make full generation and validation-apply use the bDS2 task structure: one task group with section render tasks, followed by a final search-index task.
Current state
Message::GenerateSiteincrates/bds-ui/src/app/engine_handlers.rscurrently wraps the entire operation in one coarse task.specs/generation.allium, especiallyGenerationRuntimeSurface.ProgressReporting, is normative.Required behavior
For full generation, submit a single visible group containing these render tasks:
Render Site CoreRender Single PostsRender Category ArchivesRender Tag ArchivesRender Date ArchivesAfter all requested render tasks complete successfully, submit
Build Search Indexin the same group. The index task must not start after a failed or cancelled render phase.Validation apply uses the same structure but creates only tasks for affected sections, then refreshes ancillary output/search data as required by
specs/generation.allium.Each render task reports one progress message per written URL using the specified
Generated /url (n/total)orRewrote /url (n/total)wording. Preserve published-snapshot-only generation, incremental content-hash skipping, language routing, and existing page-level parallelism.Implementation notes
TaskManager::submit_groupedand the existing generation engine. Do not add another scheduler.../bDS2/lib/bds/desktop/shell_commands.exsection task queuing and../bDS2/lib/bds/generation.exwhen the spec is silent.Acceptance criteria
Build Search Indextask in one group.allium check specs/*.allium,cargo fmt --all -- --check,cargo build --workspace, andcargo test --workspacepass.Implemented in commit
90a9002. Full generation now queues Render Site Core, Render Single Posts, Render Category Archives, Render Tag Archives, and Render Date Archives in one group, followed by Build Search Index only after every render task succeeds. Validation apply queues only affected sections, rewrites only reported URLs, and rebuilds search output. Failure and cancellation settle the group without indexing; progress, published snapshots, multilingual routes, day archives, 404 pages, localized Pagefind assets, and stale index cleanup are covered. Verified with allium check specs/*.allium, cargo fmt --all -- --check, cargo clippy --workspace --all-targets -- -D warnings, cargo build --workspace, and cargo test --workspace.