Glozr docs

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 to default.
  • --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=done
  • board:seed
  • changelog: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.