Rackula can now model how your gear is actually wired. Ports carry direction, signal type and connector gender, connections are drawn between them on the canvas, and the device library understands pro audio and AV connectors. This release also moves production hosting to Cloudflare, retiring the server that took count.racku.la offline in August.
Added
- Connections replace cables. Create a connection between two ports on the canvas, see it drawn as a path, and undo it like any other edit. Connections survive save and load with stable port identity, and are removed automatically when a device is deleted (#369, PR #3113; PR #3116; PR #3118; #639, PR #3114; PR #3115)
- Ports carry direction, inferred from the interface type where it is not set explicitly (#1930, PR #3111)
- Ports carry an optional signal type, inferred from the connector and direction (PR #3120)
- Connector gender is shown for connectors where the convention is unambiguous: XLR by direction per AES14, Speakon always male. DMX XLR is deliberately left blank, since DMX512 reverses the XLR convention (#1944, PR #3121)
- Pro audio and AV interface types: XLR, TRS, ADAT, MIDI, BNC, DB25, plus the remaining AV types, an AV category, and port colour tokens (PR #3087; #1929, PR #3109)
- Starter library AV devices carry interface data (PR #3110)
Changed
- Production is served from Cloudflare Workers Static Assets instead of a VPS. No API, no server-side storage, and no origin server to fall over (#2029, PR #3216)
- Upgrade action for OIDC deployments: with
RACKULA_OIDC_REDIRECT_URIunset, Rackula now advertisesRACKULA_BASE_URL+/auth/callbackto the identity provider instead of/api/auth/oauth2/callback/oidc. If OIDC login was working for you without that variable set, registerhttps://<your-host>/auth/callbackin your identity provider before upgrading, or pin the old path by settingRACKULA_OIDC_REDIRECT_URIexplicitly (#3140, PR #3215)
Fixed
- OIDC login no longer loops until the browser reports
ERR_TOO_MANY_REDIRECTS.RACKULA_OIDC_REDIRECT_URIwas documented as defaulting toRACKULA_BASE_URL+/auth/callback, but that default was never applied, so Rackula advertised a callback path it did not serve and the identity provider's callback was bounced back to the login route (#3140, PR #3215) - An OAuth callback arriving on a path Rackula does not serve now returns a 400 naming
RACKULA_OIDC_REDIRECT_URI, instead of redirecting to login and looping (PR #3215) - Better Auth's own callback path,
/api/auth/oauth2/callback/oidc, is served for deployments whose identity provider is already registered against it (PR #3215) - The API warns at startup when
RACKULA_OIDC_REDIRECT_URInames a path it does not serve, listing the paths that are served (PR #3215) - Container-child devices announce their hierarchy to screen readers (#2890, PR #3105)
- Dragged devices no longer snap to the origin under reduced-motion (#2883, PR #3104)
- NetBox import writes device definitions and image manifest entries (PR #3106)
- Undo, redo and restore-from-file are gated under read-only mode (#2804, PR #3079)
- Muted device colours meet WCAG AA against the label token (#3016, PR #3070)
- Roving tabindex re-anchors when virtualised palette rows unmount (#3015, PR #3071)
managementaccepted as an interface type (#3085, PR #3103, PR #3107)- New-layout confirm guard is storage-mode aware (#2801, PR #3080)
- Toasts clear on sheet open, exempting undo affordances (#3030, PR #3073)
Technical
- Scheduled soak-smoke against production, and a rollback workflow that bypasses the release approval gate (PR #3098, PR #3216)
- The self-hosted e2e tier is opt-in, so a missing runner label no longer fails every PR after a 24 hour queue (PR #3207)
- arm64 Docker images build on native arm64 runners (PR #3083)
- Release pipeline is idempotent on re-run (#2709, PR #3082)
- Trivy gates fixable HIGH and CRITICAL findings (#2720, PR #3084)
- Cable model retired, with a cables-to-connections migration (PR #3119)