Public dashboard: hrrs.ai/swarm
The existing GitHub → Cloudflare Pages deployment serves /swarm/. The page starts with 119 trajectories imported from Prime Intellect’s public chart on 2026-09-16. Default references are all three GPT-5.6 Luna / Codex / xhigh runs (A, B and C); every imported run can be selected. A/B/C identify separate full research runs of the same setup, not training seeds within an experiment. Labels show model / agent software / reasoning / run. This snapshot is reference data, not a swarm experiment.
Experiment-count charts are separate: Prime’s published experiment coordinate has not yet been mapped to our GPU launches or seed trials. The hours view can overlay curves, with the 8 H200 / 4 A100 hardware difference visible. Missing coordinates are omitted. Raw imported values and source attribution are included. The primary scientific comparison remains our own N=1 control.
Export locally
python -m swarm.public_export --output .runtime/public-export/swarm
# With no --run arguments, only the Prime references are published.
python -m swarm.public_export --runs-root runs --run RUN_NAME \
--output .runtime/public-export/swarmOnly explicitly named, non-simulated runs are eligible. Inspect the exported research text before first publishing a run. The export includes proposals, reviews, probabilities, stakes, selections, settlements, performance and usage summaries. It excludes raw API prompts/responses, credentials, paths, complete configuration, training stdout and uncontrolled error payloads. Known secret and path patterns are additionally redacted; no text filter can guarantee detection of every arbitrary secret. Full original logs stay in the private run directory. Public agent activity is based on saved responses, not token-by-token streaming.
Each export takes a consistent SQLite backup outside the public directory, then writes immutable content-addressed pages. A manifest becomes visible last. Older event cursors remain usable while visitors browse across updates. Objects are retained; removing a run from the manifest is not a deletion of previously published objects. To retract published data, remove its objects from storage and purge relevant caches. Never export private data as a way to test redaction.
Enable live uploads in Cloudflare
In the existing Pages project for hrrs.ai:
- Create a private R2 bucket, for example
swarm-public-snapshots. - Add its production R2 binding named
SWARM_DATA. - Add a production secret named
SWARM_UPLOAD_TOKEN, containing a new random token of at least 32 characters. This is separate from OpenAI/OpenRouter keys. - Trigger a fresh deployment by pushing a commit to the website repository’s
mainbranch (an empty commit is sufficient). This activates the new binding and secret. Do not use rollback to apply new settings.
The Pages function at functions/swarm/data/[[path]].js is included in the website repository. GET/HEAD serve saved public pages. PUT requires the upload token, checks content hashes and size, and verifies newly referenced objects before publishing a manifest. References in the preceding manifest were already verified and are reused without storage reads. Older timestamps are rejected. Without the binding it falls back to the static reference snapshot. Function routing is limited to /swarm/data/*; the main site is static.
Put the same token in an owner-only file on w7830, inside the repository, e.g. .runtime/swarm-upload-token with permissions 600. Do not commit it or paste it into command-line arguments. From the RDS repository:
source scripts/repo_env.sh
python scripts/publish_dashboard.py --run RUN_NAME \
--token-file .runtime/swarm-upload-token --once
# After inspecting that first public snapshot, run independently in tmux:
python scripts/publish_dashboard.py --run RUN_NAME \
--token-file .runtime/swarm-upload-tokenThe publisher checks local data every 30 seconds, uploads only previously unacknowledged pages, and publishes the manifest last. Unchanged inactive exports keep their timestamp and are not re-uploaded in the same publisher session; later results and resumed runs are still detected. Failed uploads are retried.
The public browser refreshes every 30 seconds while any published run is active, every five minutes when all are inactive, and pauses while hidden or auto-refresh is disabled. Returning to a visible tab refreshes immediately. Active snapshots are marked delayed after two minutes. The private dashboard retains five-second polling, also paused while hidden.
Manifest validation now performs one R2 read for the preceding manifest, plus one check per newly referenced page. An unchanged 500-page history requires one read instead of 501. Initial publication still checks all references; missing new pages cannot go live. The authenticated upload response reports checked_pages. Published pages must remain immutable and retained while referenced. After a manual storage reset, remove the old manifest and restart the uploader with its .uploaded-*.json acknowledgement cache cleared. This forces full verification and re-upload if needed.
Upload failures do not affect research; the last published snapshot remains available. Keep one publisher for this endpoint. --run is repeatable for additional populations. The exporter currently rebuilds the selected history on each cycle; profile it before scaling to 1,000–10,000 agents. Individual pages are limited to 2 MiB.
No inbound port, SSH tunnel, new domain or Vercel account is needed for visitors. The GPU host only makes outbound HTTPS requests. Cloudflare R2 credentials are never installed there; only the narrowly scoped upload token is used.
Website source files
The website’s swarm/ and _site/swarm/ contain the same export. _quarto.yml includes swarm/, _headers and _routes.json as resources so future renders keep the page. public-site/ in the research repository is the source for the Pages function and scoped security/routing settings. Website deployment remains its existing push-to-publish workflow.
Validation commands (no model calls or GPU training):
python -m unittest tests.test_public_export tests.test_prime tests.test_dashboard_history
node tests/test_public_site.mjsCloudflare documentation: Pages routing and R2 bindings.