Repository navigation
Check-ins that can always look, pause all, and a Bot's routines on its page and in its conversations - #1561
Open
guidovizoso wants to merge 37 commits into
Open
Check-ins that can always look, pause all, and a Bot's routines on its page and in its conversations#1561guidovizoso wants to merge 37 commits into
guidovizoso wants to merge 37 commits into
Conversation
…e says worked on or dismissed, and a Bot that can read nothing says to connect one in Connections
…asks as in progress
…ot, and its ping's push is filed under that Bot
…reads that app alone, and each says when it can't look
…en there is nothing to offer
…t could never look
… its page, with the step that fixes it
…t, which counts channel requests only
…wn pause is, and refuse Work on it while paused
…s and each Bot's page while they are paused
…ge's rows show running and paused
…en For you and Activity
…Routines list can be drawn in a dialog
…and lists them in a dialog
guidovizoso
requested review from
MikeRyanDev,
davidmckayv,
dustywusty,
mxmzb,
samjulien and
tylerslaton
as code owners
November 13, 2026 14:51
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What a person saw
An audit of check-ins (OpenBot's answer to proactive agents) on a personal and a team server found the mechanism sound and the experience around it failing:
Spec:
docs/superpowers/specs/2026-11-13-check-in-gaps-and-pause-all-design.md(not checked in). It planned one PR per part; the commits here are grouped by part, in the spec's order, so it can be split if that is easier to review.What changed
Part 4: wording
Part 3: a check-in belongs to its Bot
proactive_settings.channel_idis nullable. New check-ins store no conversation. The API still acceptschannelId, ignores it, and answers it as null.canUseBot: the person isn't revoked and can still use the Bot. No conversation is read at create, at each run, or at Work on it.delivery_outbox.channel_idandthread_idare nullable.Part 1: a check-in can always look
source_kind(apps,apporpage) andsource_server_id. Every existing row becomesapps.offer_check_intakesreadWith, the tool the Bot read the thing with, and the server works out what the check-in reads from it. Anything read another way (the browser, the computer, a Shared app, an app on the admin's key) is answered "Nothing to offer", and no card is drawn.scopeForRun).engine.createrefuses a check-in that could never look, with the spec's sentences.GET /api/proactive/readable.GET /api/proactive/settingsaddshealth(why it can't look, and the fix) andreadsto each check-in. "Can't look" shows on the check-in's row (which sorts first), as the first row of its Bot's group under Needs you, on its page, and as the Bots badge's dot. It isn't counted in the badge's number and sends no ping.Part 2: watching a public web page
source_linkitself, through the Bot's page-read tool, as the person and under the run's initiator.suggest_next_stepandclear_next_step.callTooladmits a page-read call only when it comes from a runningpagecheck-in and asks for exactly that check-in's address. That holds on the free and the keyed web-search entries alike.Part 5: pause all
readPauseanswers paused when the Bot is paused or the person paused all (users.preferences.pausedAllAt). Every caller ofisBotPausedandguardBotTurnhonours it, and each Bot's own pause is kept.paused_all. The skip-reason check constraint is widened to allow it.PUT /api/bots/pause-allsets it, andGET /api/bots/attentionanswerspausedAll.Part 6: a Bot's page lists its routines
Part 7: a clock in a conversation's header
?from=).Migrations:
0092–0095add or loosen columns only. No existing row is rewritten. They are listed in the changelog's "Before upgrading".Tests
check-in-belongs-to-bot,check-in-can-look,check-in-page(engine page runs, plus the door with a real plugin store onexaandexa-authenticated), and pause-all cases inbot-lifecycleandbot-lifecycle-routes. Existing proactive and delivery suites were updated.bot-routines,routines-clock,pause-all, plus additions toneeds-you,check-in-row,check-in-offer-card,new-routine-form,routines-merged,update-routing-settingsandskins-opendots-frame.typecheck,typecheck:tests(no change to the baseline), biome anddrizzle-kit checkare clean.Not checked