Skip to content

[Feat] Show when Slack app upgrades are required - #2458

Draft
roomote-roomote[bot] wants to merge 2 commits into
developfrom
feature/slack-manifest-version-3icx3dcqj33xa
Draft

[Feat] Show when Slack app upgrades are required#2458
roomote-roomote[bot] wants to merge 2 commits into
developfrom
feature/slack-manifest-version-3icx3dcqj33xa

Conversation

@roomote-roomote

Copy link
Copy Markdown
Contributor

​Opened on behalf of @mrubens. Follow up by mentioning @roomote-roomote, in the web UI, or in Slack.

What changed

  • Added an explicit Slack manifest version that can be bumped independently of Roomote releases.
  • Recorded configured manifest provenance after Slack confirms create or update operations, and recorded the installed version only after no-permission updates or a matching signed OAuth installation callback.
  • Added an upgrade indicator to Communications settings and kept permission-changing upgrades pending until the existing Slack reinstall flow completes.
  • Documented legacy installation behavior and the steps that clear the indicator.

Why this change was made

Slack app capabilities evolve independently from product releases. Persisted version evidence lets Roomote tell admins when their installed app needs a manifest update without guessing from Slack APIs or treating credential validation as a successful upgrade.

Impact

Existing installations start with an unknown version and show Upgrade available until a manifest export confirms they are current or the update and required reinstall complete. Newly generated apps and confirmed updates record their version automatically; future manifest requirement changes only need to bump the shared Slack manifest version constant.

Screenshots

Slack upgrade indicator on desktop

Slack upgrade action on mobile

@roomote-community

roomote-community Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

1 issue outstanding. See task

  • Keep Slack manifest metadata out of task sandboxes (packages/types/src/control-plane-env-vars.ts:173-175).

Reviewed f814a0b

Comment on lines +173 to +175
OPENCODE_AUTH_CONTENT_ENV_VAR_NAME,
SLACK_MANIFEST_APP_ID_ENV_VAR_NAME,
SLACK_MANIFEST_VERSION_ENV_VAR_NAME,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ROOMOTE_MANAGED_ENV_VAR_NAMES is only enforced by the generic editor. Task startup redacts persisted deployment variables exclusively through CONTROL_PLANE_ENV_VAR_NAMES (fetchEnvVars / fetchResolvedRuntimeEnvVars), so both newly persisted R_SLACK_MANIFEST_* values are injected into every task sandbox. That contradicts this block's “task sandboxes never receive them” contract and leaks deployment-specific Slack metadata to untrusted tasks. Add these names to the control-plane/redaction set as well, with a regression test.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant