Repository navigation
Security
- With
scan_tool_results=True,trace_toolsand anobservershowed the raw tool result -- the model got the redacted result, but MCP tools and wrapped native tools reported the result from inside the tool, before the scan, so the console line and the trace'sresult_previewheld the PII or secret the scan had removed. They now show the result the model gets: the redacted text, or the withheld notice.observe=Truetraces were not affected.
Fixed
- An MCP server approval handler that raised an error gave the client
INTERNAL_ERROR-- the call was refused, but with no approval reason and no request id.ApprovalGateMiddlewarenow denies withAPPROVAL_DENIED, "approval handler error: " in the message andapproval_request_idin the details, like the agent's gate; the error itself goes to the server log. A handler that raises anMCPError(such asApprovalDeniedError) still has it sent as is. - A sandbox container that failed to start was left behind --
DockerBackend.create_containercreated the container, and whenstart()failed (for example an image without/bin/bash) it raised without removing it, sodocker ps -akept aCreatedcontainer for every failed session. It is now removed before the error is raised. - Breaking out of
astream()orastream_with_tools()logged "Task exception was never retrieved: ValueError: <Token ...> was created in a different Context" -- a consumer that leavesasync forwithbreakleaves the stream to the event loop, which closes it in another task, where resetting the run's context variables failed. The stream now cleans up there quietly. Wrapping the stream incontextlib.aclosing()still closes it at once. - A scanner set to
BLOCKPII or credentials withoutredact_input=Truenow says it doesn't block input -- on input those findings are warnings unlessredact_input=True, soCredentialDetector(action=Action.BLOCK)alone never refused a message.PromptiseSecurityScannernow logs a warning when it is created with such a setting. Behaviour is unchanged. - The
promptise runevent bus could count one failing subscriber twice -- a subscriber that raised in two publishing threads at the same time was dropped once but added toEventBus.dropped_subscribersby both, and the count was updated outside the bus lock. Only the thread that removes it counts it now.
Docs
- The event payload table lists
streamingforinvocation.timeout.
Full changelog: https://docs.promptise.com/resources/changelog/#v1101-2026-10-24