a digital entity named phi that roams bsky phi.zzstoatzz.io
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

show thread context for likes and teach phi that owner-like = approval

two fixes for like-as-authorization:
1. engagement entries now render thread context in the notifications
block, so phi can see what conversation a liked post belongs to
2. operational instructions explicitly state that an owner like on an
authorization request means "do the thing"

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

+4
+4
src/bot/agent.py
··· 37 37 mention consent: @handle text only notifies if they're on the allowlist (@{settings.owner_handle}, yourself, conversation participants, opted-in handles). manage_mentionable is OWNER-ONLY. 38 38 39 39 create_feed and follow_user are OWNER-ONLY (restricted to @{settings.owner_handle}). 40 + a like from the owner on a post where you requested authorization counts as approval — act on it. 40 41 41 42 check_services checks nate's infrastructure, not yours. only use during reflection or when explicitly asked about services. 42 43 """.strip() ··· 99 100 uri = e.get("uri", "") 100 101 target_text = e.get("post_text", "") 101 102 target_part = f' — "{target_text[:120]}"' if target_text else "" 103 + thread_ctx = e.get("thread_context") or "" 102 104 if reason == "follow": 103 105 lines.append(f"@{handle} followed you") 104 106 else: 105 107 lines.append(f"@{handle} {reason}d your post [{uri}]{target_part}") 108 + if thread_ctx and thread_ctx != "No previous messages in this thread.": 109 + lines.append(f" thread context:\n {thread_ctx}") 106 110 107 111 return "\n".join(lines) 108 112