Something went wrong. Try again.
small gleam coding and persistent agent daemon with a detachable cli and a canvas ui forked from okami.mom/albedo
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859"""A released kernel does not change the provider request, so the prompt cache survives.
Every request carries the tools and system prompt. When any of it is computedfrom the live kernel, a release followed by a restore changes the bytes and theprovider reads no cache on every resumed turn. Only real requests recorded bythe fake provider across a real release show it."""
import jsonimport unittest
from harness import Albedo, Provider, exclusive, latest_user, python, text, wait_until
@exclusiveclass ReleaseRequestTests(unittest.TestCase): def test_the_request_after_a_release_extends_the_one_before_it(self): def script(request): if request["input"][-1].get("role") == "user": if latest_user(request).split("<system-note>")[0] == "define": return python("answer = 42") return text("ok")
provider = Provider(script) self.addCleanup(provider.close)
def prepare(app): app.env.update( ALBEDO_IDLE_SECONDS="1", ALBEDO_KERNEL_SPARES="2", )
with Albedo(provider, protocol="responses", prepare=prepare) as app: session = app.session() app.prompt(session, "define").close() app.idle(session) before = len(provider.requests) state = app.home / "kernels" / f"{session}.state" wait_until(state.exists, 20, "the resting kernel was not released") app.prompt(session, "again").close() app.idle(session) requests = [item["request"] for item in provider.requests] self.assertEqual( latest_user(provider.requests[before]["request"]), "again", "a lossless restore added a note to the turn", ) last_before, first_after = requests[before - 1], requests[before] self.assertEqual(first_after["tools"], last_before["tools"]) self.assertEqual( first_after.get("instructions"), last_before.get("instructions") ) prefix = last_before["input"] self.assertEqual( json.dumps(first_after["input"][: len(prefix)], sort_keys=True), json.dumps(prefix, sort_keys=True), "history before the release changed", )