-
released this
2026-08-24 16:04:01 -05:00 | 86 commits to main since this releaseA healthy keepalive and a dead one logged the same thing: nothing.
Found by reading the deployed tenant's log, not by the suite — which asserted what the
tick DOES and never whether anyone could see it.Fixed
-
keepalive okis logged atinforather thandebug. The deployment runs at
LOG_LEVEL=info, where a tick that succeeded WITHOUT a rotation produced no output at
all — so silence meant either "healthy, Canvas just did not re-issue" or "the thread
died an hour ago", with no way to tell which. The one mechanism keeping this tenant's
credential alive was the one thing the log could not confirm was running, which is the
"up but doing nothing" casepreflight.pyexists to prevent, arriving an hour at a time
instead of at boot.session rotatedis not a substitute, and is why this looked covered: it fires only
when Canvas chooses to re-issue, so reading it as a heartbeat is reading Canvas's
cadence and calling it ours. -
Two new tests. The first asserts at the level the deployment runs at rather than
checking which method was called — what matters is what survivesLOG_LEVEL=info.
Proved by putting it back todebugand watching it fail. The second pins that a line
running hourly and forever never carries a cookie value.
1351 tests green.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-