Skip to content

Portal v0.38.0 — A vanished runbook, a deny that matched nothing, and a session that would not end

Choose a tag to compare

@AndrewDryga AndrewDryga released this 08 Aug 23:56
· 731 commits to main since this release
Immutable release. Only release title and notes can be modified.
v0.38.0
f05b384

Three things in this release looked like something they were not: a size limit that answered like a missing record, a deny rule that read as protection while matching nothing, and an ended session that stayed open.

Runbooks

A runbook too large to project answered as if it did not exist. That answer is deliberate for an untrusted pack or a runner outside your scope — those have to stay indistinguishable from absence, or the error itself tells you infrastructure exists that you cannot see. Size is not that kind of fact, and folding it in meant list_runbooks quietly dropped the runbook while get_runbook denied one sitting in the operator's own console.

It was reachable rather than theoretical. The projection budget is counted in bytes, but the title and description limits counted characters, and characters carry no byte bound: a description at the documented 4,096-character limit encodes to 12,288 bytes in Japanese and 8,192 in accented Latin. Writing your description in your own language was enough to make your runbook vanish.

A size failure now reports its size, and those character limits carry byte bounds derived from the budget rather than assumed against it.

Security

Ending a member's sessions now disconnects the session they are looking at, not only the cookie behind it. The disconnect asked for the addresses of sessions the same transaction had already deleted, found none, and left an open console working until the next navigation. An administrator ending sessions mid-incident was not ending them.

Policies

A policy override that cannot match anything is now flagged while you write it. The glob grammar treats every character except * as a literal, so an override written out of regex habit — cassandra\.drop_* — validates, saves, and matches no action id that can exist. For a deny rule, that reads as protection the fleet does not have.

The warning is advisory and never blocks: an override may legitimately name a pack you have not installed yet.

Website

Eight documentation and marketing links no longer render a stray space before the punctuation that follows them.


No upgrade steps. Runner and the MCP bridge are unchanged in this release — runner-v0.18.0 and mcp-v0.7.0 remain current.