Platform lab

Six applications, each chosen because it breaks the browser agent differently. The point is not that they run; it is what they expose. See ops/platforms/README.md.

platformwhat it is here to break
discourse virtualised post stream that recycles DOM, so a ref goes stale mid-run; Ember routing where a view change is not a page load
mattermost a DOM that never settles, which decides whether settling is a signal or the next always-on condition
directus the 120-element cap, drawers inside drawers, relational autocompletes
nextcloud drag-drop upload and contenteditable, neither of which the element list models today
odoo kanban drag, for which there is no action at all; wizards in modals with dependent fields
keycloak multi-step auth, MFA, consent, password reset
mailpit the mailbox the recovery flows need

No credentials here on purpose: this page is reachable from the internet.