You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit f37bd19
Browse filesBrowse the repository at this point in the historyBrowse files
Console: serve the static shell past the remote lifetime to its own session (#1006) (#1008)
* Console: serve the static shell past the remote lifetime to its own session (#1006)
On `keel serve --external-host`, a browser with no cached console was refused
the page itself after the 12 h lifetime (#648), so it never reached the
expired-Pulse HALT that #985 serves. A GET/HEAD of a shell path -- a shipped
file under the static root or a client route, by the same resolution
`_serve_static` performs -- carrying THIS session's cookie now skips the
lifetime (`KeelHandler._is_a_sessioned_shell_read`, called from `_admitted`;
`do_GET` is untouched).
The shell is the package's files unaltered: no data, no token. Every `/api/`
read (events included), `/switch/`, unmapped paths and every write keep the
lifetime; a request without the cookie is refused the shell as before, so an
expired session is never more open to a stranger than a live one. The token
exchange already ran before admission, so a first visit via the printed
address gets the cookie and then the page.
Docstrings, docs/remote-access.md and the prose test that used `/` to show
the lifetime are updated.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix(web): exempt the shell by listing its paths, not resolving the request (#1006)
CodeQL counted a second user-controlled flow into resolve_static_asset.
_is_a_sessioned_shell_read now compares the unquoted request path against
staticfiles.shell_request_paths, enumerated from the package side, so the
request path never reaches a filesystem call. Adds the HEAD pin.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
0 commit comments