TODOยถ
logs/prod/prod.login thesuitecrm_datavolume still holds the Redis password from theSessionHandler::read(): open(tcp://...)warnings written before the session handler override infiles/session.yaml. Options: truncate the file once after the password was rotated, or let a log rotation drop it.The biber logout spec (
files/playwright/saml.spec.js, โthe in-app logout ends the sessionโ) passes about three runs in five. A user created by the SAML login has no completed login wizard, so the shellโs route guard redirects every navigation to/users/Wizard, andinAppLogouttriggers one such navigation per attempt. When the logout click lands inside one of them, the shell reads nologoutsystem config and falls back toPOST /logout, which the SAML firewall does not intercept: the controller throws โThis will be intercepted by the logout keyโ (HTTP 500) and the session stays. The administrator hits the same guard on a fresh install: the first shell navigation of the design spec (โthe shell takes frame, bars, rows, links and menusโ) lands on the โWelcome to SuiteCRM!โ wizard instead of the accounts list, so that test fails its first attempt and passes on the retry (fresh deploy of 2026-10-17). Options: complete the login wizard for the administrator and for users the SAML user factory creates, or let the spec finish the wizard before it logs out.The design spec โthe shell takes frame, bars, rows, links and menus from the paletteโ fails on its first run after a fresh install or container start (the shell list or its rows are not visible yet) and passes on the retry.