Work recap: scopes & troubleshooting
Work recap gathers your Slack messages (and optionally Linear updates) into markdown for a time range you choose. You must be signed in to applib. Tokens used for each generate request are not logged; you can optionally save them encrypted on your account (same vault as Dev Inbox) so they reload when you return - see below.
Saving Slack & Linear tokens
In the app, use Save tokens now to store your Slack token, optional Linear API key, and Slack user id field in an AES-256-GCM encrypted row keyed to your user id (server secret CREDENTIALS_ENCRYPTION_SECRET, same as Dev Inbox credentials). Or enable after a successful generate to refresh that vault automatically. Clear saved removes them from the server; your browser fields clear too.
What it includes
- Slack: search (with optional query override), automatic fallback to crawl when search is not allowed for your token, or crawl-only; optional channel filter; messages grouped by channel with timestamps and links when search provides them.
- Linear: issues assigned to you with updates in the range; issue history lines list substantive changes (state, assignee, labels, priority, etc.), not only workflow moves.
- Output: a reference weekly-email template, totals, and a suggested prompt for an AI pass; optional structure instructions (textarea in the app) tailor the header and that suggestion.
Saved recaps
When “Save recap to my account” is enabled (default), each run stores the Slack-only markdown, optional Linear-only markdown, and the full combined file as plain text in your applib account so you can download or revisit older exports. No API tokens are persisted - only generated markdown.
Slack token
Best option is a Slack user token (xoxp-…) for your own account. Add these OAuth scopes to your Slack app and reinstall the app to the workspace:
- Required (search):
search:read.public - Usually needed:
search:read.im,search:read.mpim - Private channels:
search:read.private - Optional:
search:read.files
Bot token (xoxb-…)
Some workspaces return not_allowed_token_type for search.messages with a bot token. Prefer a user token, or set mode to crawl and provide your Slack user id (U…). Crawl mode typically needs: public channels channels:read, channels:history; private groups:read, groups:history (and the app in the channel); DMs im:read, im:history; group DMs mpim:read, mpim:history.
Linear
Optional: a Linear personal API key (lin_api_…). The recap lists issues assigned to you that were updated in the time window, with issue history in that window summarized as human-readable lines (including state changes plus assignee, labels, priority, and similar fields when present).
Troubleshooting
missing_scope/ incomplete results: add the missingsearch:read.*scopes and reinstall the Slack app.- Search can cap results (often around 1k). Narrow the window, add a channel filter, or split by date in the override query.
from:meworks best with a user token. With a bot token, set your Slack user id so the query can usefrom:<@U…>.