mirror of
https://github.com/PerpetualSoftware/pad.git
synced 2026-10-25 14:00:40 +00:00
698fe2ff6e
* test(server): a revalidation tick that errors leaves the collab conn writable (BUG-3474, red) A real fault: workspace_members is renamed, so the tick's membership lookup fails with a plain error. After the first failing tick, a frame still persists. Red 3/3 on SQLite. * fix(server): a collab revalidation tick that errors makes the conn read-only, not closed (BUG-3474) Lead ruling: fail closed on WRITE, keep the connection. Both error branches of the tick (GetItem, and a plain error from authorizeCollabAccess) now call SetConnWritable(false) before logging. The next clean tick restores write if the role still allows it. The test faults each branch for real (renamed workspace_members, renamed items). * test(server): a credential re-check store error keeps the collab conn writable; recovery is checked by content (BUG-3474, codex r1, red) * fix(server): an unknown credential re-check makes the collab conn read-only and skips the tick (BUG-3474, codex r1) streamCredentialStillValid reads a store error as valid (right for SSE, which has no write), so the collab tick went on to set write from the role. The collab loop now switches on credentialLiveness: invalid closes as before; unknown sets read-only, logs at warn and re-arms.