Operate
Artisan commands
Glozr ships a set of artisan commands for operations, recovery, and admin chores. Command signatures are stable — schedule them in cron or invoke them manually as needed. The prefix pitchbar: is a physical signature in the codebase and is intentionally preserved across builds.
Operational commands
pitchbar:queue-tick
php artisan pitchbar:queue-tick --queues=crawl,index,default --max-jobs=20 --max-time=55
Processes a bounded batch of queued jobs and exits. Designed for external cron drivers on shared hosting (for example a Cloudflare Worker pinging an internal endpoint every minute). Use it when running a long-lived Horizon worker isn't practical.
--queues— comma-separated queue names; defaults todefault.--max-jobs— stop after N jobs.--max-time— stop after N seconds.
qdrant:setup
php artisan qdrant:setup
Idempotently creates the vector index or collection — Vectorize on Cloudflare, or Qdrant. Run once on fresh installs before the first crawl. Safe to re-run.
vector:rebuild-index
php artisan vector:rebuild-index --force --dim=768
Recovery path for embedding-model changes. Drops the Vectorize index, deletes all chunks rows, resets sources to pending, recreates the index at the dim of the configured embedding model, and re-dispatches indexing jobs. Use this after switching CLOUDFLARE_EMBED_MODEL between models with different dimensions.
--force— skip the interactive confirmation.--dim=N— override auto-detected dim.
pitchbar:audit-vectors
php artisan pitchbar:audit-vectors
Compares chunks in Postgres against the vector index and reports drift. Read-only. Useful after Vectorize re-provisioning or when investigating knowledge gaps.
pitchbar:refresh-stale-sources
php artisan pitchbar:refresh-stale-sources --days=7
Re-crawls sources whose last fetch is older than --days (default 7). Schedule nightly via cron to keep auto-refresh working.
pitchbar:sync-oauth-sources
php artisan pitchbar:sync-oauth-sources
Re-ingests Notion and Google Doc sources whose content may have changed upstream. Focused on OAuth-backed integrations where webhooks aren't always available.
pitchbar:suggest-from-gaps
php artisan pitchbar:suggest-from-gaps
Walks recurring unanswered questions in knowledge_gaps and drafts CuratedAnswer suggestions. Generates admin notifications; draft answers are never auto-published.
Admin convenience commands
pitchbar:make-admin
php artisan pitchbar:make-admin [email protected]
php artisan pitchbar:make-admin [email protected] --demote
Promotes an existing user to super_admin. The --demote flag reverses the action and returns the user to customer.
pitchbar:build-wp-plugin
php artisan pitchbar:build-wp-plugin
Packages the WordPress companion plugin into an install-ready zip for distribution. Language files are compiled automatically before zipping.
pitchbar:seed-demo-agent
php artisan pitchbar:seed-demo-agent
Creates or refreshes the demo agent used when DEMO=true. Idempotent.
pitchbar:seed-local-test
php artisan pitchbar:seed-local-test
Creates a “Local Test” agent with a pre-baked embed snippet, for local development.
Internal board & changelog
The codebase also ships a small set of internal commands used to track its own roadmap and changelog. Most operators won't need these.
board:add "Title" --body="..." --label=...board:start <id-or-title>board:done <id-or-title> --test="..." --release="v1.3.0"board:stamp-version vX.Y.Z --status=doneboard:seedchangelog:bootstrap-entries— replays changelog entry files into the runtime table.changelog:add— appends a new entry interactively.
Note. The pitchbar: prefix on command signatures is a physical identifier in the codebase. Don't rename it — cron jobs, scheduled tasks, and ops runbooks all reference these signatures verbatim.