Platform Updates
What's new in Carrier — the latest features, improvements, and fixes across the Automation, Experimentation, and Collaboration workspaces.
A person can now run a chamber's mediator role directly in the browser, with the same controls as an AI mediator — broadcast to everyone, prompt a specific participant, and pause or re-enable a participant's chat — all from a live message log.
Watch any active chatroom unfold in real time. An Observe live link on the dashboard opens a read-only mediator view for the experiment's owner and collaborators, and each viewing session is recorded.
Build computed variables in the Variables Manager with a guided form — pick a value or a formula, or layer When → then rules — instead of hand-writing JSON. An Advanced (JSON) escape hatch stays available for anything the form can't express.
Variables drawn from survey answers can now use a question's displayed label — for example Strongly agree — instead of its stored value such as 1, so instructions and AI prompts read naturally.
Bring your team's Claude Code agent sessions into one shared, self-hosted workspace. Review how the lab builds studies — every prompt, edit, and decision becomes transparent and auditable. Link a GitHub repo or upload directly from each machine; your data stays on infrastructure you control.
Annotate CSV datasets with large language models using codebooks drawn straight from peer-reviewed research. Compare OpenAI, Anthropic, and Google under one prompt, repeat rows to check consistency, and preview real token cost on a sample before you commit.
Define per-participant variables — fixed constants, survey-derived values, random or counterbalanced conditions, and computed expressions — then reference them with {{ }} across instructions, AI prompts, participant matching, and chamber visibility.
One click smoke-tests every AI configuration in your experiment before launch, surfacing missing API keys, invalid models, and truncated or empty responses up front instead of mid-study.
Agent and participant messages now render Markdown with syntax-highlighted code blocks, sanitised for safety across the experiment, dashboard, and workspace views.
Model dropdowns refresh daily from each provider, so newly released models — the GPT-5 family, Claude 4.x, and recent Gemini models — appear automatically.
Display multiple overlays inside a single chat segment, chained one after another, without juggling absolute timers. Chains can also end the chat automatically when the last child completes.
Carrier now spans Automation, Experimentation, and Collaboration, with a refreshed landing page and an expanded Researcher's Guide covering all three.
When a participant moves ahead to the next segment, their partners now see a clear notice in the chat — so no one is left wondering why the conversation has gone quiet.
The platform now frames the whole research lifecycle — Design → Deploy → Analyse — around accountable, human-in-the-loop AI: agents propose, you decide, and every action stays visible.
Counterbalanced condition assignment now balances against the live waiting cohort rather than every historical participant, so drop-outs and completed runs no longer skew which condition comes next.
The in-app documentation was rewritten around Carrier's four systems — chamberlines, roles, variables, and triggers — with worked examples and clearer cross-references.
Annotator failures now surface the provider's actual error message instead of a bare "400 Bad Request", making misconfigurations far easier to diagnose.
The matching screen now appears on the first chamber even when it's set to be hidden, so participants see they're waiting for a match instead of a blank screen.
After reconnecting partway through a segment, the continue button now re-enables correctly once the minimum time has passed, instead of staying greyed out.
Fixed AI configurations that failed with a "model not found" error caused by an invalid, over-specified model identifier saved into bot configs.
Variables derived from survey answers now resolve correctly at run time, so matching and visibility rules that depend on survey responses fire reliably.
Annotator CSV upload now handles Excel "CSV UTF-8" files whose hidden byte-order mark previously broke column matching, with an on-screen notice when it's stripped.
Participants now see a clear offline badge when a partner disconnects — and when they reconnect — even in human-only chambers.
Segment timers and the "available in" gate stay accurate when a participant's browser tab is backgrounded and the browser throttles timers.
Experiment export now includes the full Variables definition, so Export → Import round-trips cleanly without losing variable references.
Real-time connections are now tied to the browser session that created them, so a guessed participant identifier can no longer be used to impersonate someone — chatting as them, triggering broadcasts, or pulling them from the matching queue.
The "segment advanced" notices peers see are now built from the server's own configuration rather than client-supplied text, preventing a malicious client from injecting authoritative-looking messages.
Manual workspace uploads are now capped on their decompressed size — blocking a "zip-bomb" disk-exhaustion trick — rate-limited per key, and any upload containing unsafe file paths is rejected and recorded in the audit trail.
Hardened the workspace session viewer against path-traversal, so a session identifier can't be used to read files outside its own workspace.
Stripped any embedded access tokens out of workspace status messages before they're stored or shown, as defence in depth.
Looking for how things work rather than what changed? See the Researcher's Guide. Questions or feedback? Get in touch.