Skip to main content
OrbitPilot

Catch — turn an OrbitPilot reply into a Blink

What Catch does

Next to Copy and the thumbs-up/thumbs-down on every OrbitPilot reply is a bookmark icon — Catch. Tap it and that reply becomes a Blink: the text (cleaned up — no stray Markdown, no "from your file"/"my memory is stale" notices, just what OrbitPilot actually told you), a title suggested from the first line, and a link back to the exact conversation it came from.

You can also catch the whole conversation in one action, from the ☰ menu → "Catch this conversation" (in the full chat page, the same button sits in the conversation's header). That makes ONE Blink containing everything said so far.

Already caught?

Once a reply (or the session) has been caught, the bookmark icon fills in and the button becomes "Already caught" — a link straight to the Blink. Catching the same reply again never makes a second Blink; it just takes you back to the one you already have.

A session catch is a snapshot, not a window

Catching the whole conversation freezes it at that moment. If you keep chatting afterward, that Blink does not grow — the Blink itself says so, in these words: "Contains this conversation up to <date/time>. Later messages are not included." The conversation's own header also shows this: once new messages arrive past your last catch, it tells you so and lets you catch again — which makes a new Blink with its own, later "up to" time. Your earlier snapshot is never silently rewritten.

A very long conversation is truncated rather than dropped: the Blink keeps the most recent part and says plainly how many earlier messages were cut, so nothing is lost without you knowing.

Two-way links

The Blink and the conversation always point at each other. Open the Blink and you'll find a link back to "OrbitPilot conversation" (the exact reply, when it was a per-reply catch); open the conversation and you'll see the "Already caught" marker linking straight to the Blink.

Guests

Signed-out visitors see the Catch icon too — tapping it is the moment to invite you to create a free account, the same sign-up prompt shown at the free-preview limit. Nothing is saved for a guest until they register.

After it's caught

A caught Blink is a normal Blink — it flows into your OrbitPilot memory the same way any new or edited Blink does (if your plan has that automatic "fast lane" turned on by your admin), shows the same memory-status badge as everything else in your Library, and can be edited, categorised, or deleted like any Blink you wrote by hand.

For developers

All of the decision logic — cleaning the reply text, suggesting a title, the idempotency guarantee, the session snapshot and its truncation, both halves of the two-way link — lives in orbitpilot/catch.py (catch_message / catch_session), called from two thin views, orbitpilot_catch_message and orbitpilot_catch_session (orbitpilot/views.py), both rate-limited, login-required, and ownership- scoped at the message/conversation. Provenance is stored two ways: OrbitPilotCatch (a new model — conversation/message → Blink, unique per message) is the reverse lookup the conversation page reads; a BlinkLink row (the existing "attach a URL to a wink" model) is the Blink's own forward link, so no new provenance mechanism was invented. A caught Blink is created through the ordinary Blink.objects.create(), so BL-161's fast-lane post_save signal picks it up exactly like any other Blink — nothing in this feature talks to the memory pipeline directly.

Related pages

Docshub: "OrbitPilot core, the booklet, and the fast lane" (memory/BL-161). docs/orbitpilot/TASKS.md.

🪐 OrbitPilot