# Static Publisher Operations

Static Publisher runs on queued jobs and external execution. The plugin stores state under `wp-content/uploads/smartcloud-static-publisher/runtime`, including `config.json`, `queue.json`, `current-run.json`, `last-run.json`, and `export.lock`. The admin UI can queue `publish`, `crawl`, `deploy`, `invalidate`, `retry-timeouts`, and single-URL `url` jobs. Professional and Agency scheduler rules can also create targeted `content-sync` jobs.

Scheduler rules are evaluated by `publisher-exporter queue-runner` when the external runner starts, so production setups should use cron, systemd, CI, or another external scheduler. A one-minute runner tick is the recommended baseline, and equivalent queued or running jobs are skipped within the same interval bucket to avoid duplicate work.

Content sync requires a verified baseline from a successful normal full or incremental publish. It coalesces equivalent demand, keeps changes that arrive during a claimed range as trailing work, and retries failures with bounded backoff without advancing the journal cursor. Theme, plugin, permalink, sitemap, rewrite, scope, or deployment-target changes require a new normal publish. Abandoning a retry clears its local plan but leaves the journal range unacknowledged so the scheduler can rediscover it.

Finished, failed, and stopped jobs archive their log artifacts under the configured log directory, which makes retry and audit workflows more predictable. Static Publisher also supports deployment profiles, so a single crawl artifact can be reused for several target environments without recrawling the WordPress origin each time.
