afterhours-shift-manager/slack-app-manifest.yaml
seahaven-openswe[bot] 612572bde7 Reuse weekly schedule post instead of reposting
The Monday rollover deleted last week's schedule message and posted a
fresh one every week, which re-notified the channel, changed the
permalink, and dropped any thread/reactions. Roll the two-week window
forward by editing the stored message in place (the same chat_update
path in-week shift changes already use), falling back to a fresh, pinned
post on first run or when the edit fails. A native pin keeps it reachable
from the channel header now that it no longer rises on the weekly repost.

Records the evaluation behind this in docs/sticky-schedule-post.md.

Refs: #135
2026-06-26 19:33:05 +00:00

56 lines
1.9 KiB
YAML

# Slack app manifest — After-Hours Shift Manager
#
# Version-controlled source of truth for the Slack app configuration. The app
# predates this file, so before applying it wholesale via the Slack manifest API,
# reconcile it against the live app config (App settings → App Manifest) so no
# existing scope or setting is dropped.
#
# This release adds the bot `pins:write` scope so the Monday rollover can natively
# pin the reused two-week schedule post. A new OAuth scope means a one-time
# reinstall is required for the pin to take effect (the pin is best-effort and is
# skipped until then). Replace <API_URL> with the SlackBotApiUrl stack output.
#
# A prior release added the App Home tab (no new scope):
# - settings.event_subscriptions.bot_events: + app_home_opened
# - features.app_home.home_tab_enabled: true
display_information:
name: After-Hours Shift Manager
description: Manage after-hours on-call phone duty from Slack.
features:
bot_user:
display_name: oncall
always_online: true
slash_commands:
- command: /oncall
url: <API_URL>
description: Manage after-hours on-call shifts
usage_hint: "[next|pick|drop|swap|register|pay|rate|roster|help] …"
should_escape: false
app_home:
home_tab_enabled: true
messages_tab_enabled: true
messages_tab_read_only_enabled: false
oauth_config:
scopes:
bot:
- commands
- chat:write
- im:write
- users:read
# pins:write lets the Monday rollover natively pin the reused schedule post
# so it stays reachable from the channel header. Adding it requires a
# one-time reinstall; the pin is best-effort until then.
- pins:write
settings:
event_subscriptions:
request_url: <API_URL>
bot_events:
- app_home_opened
interactivity:
is_enabled: true
request_url: <API_URL>
org_deploy_enabled: false
socket_mode_enabled: false