Skip to content

Hybrid: every Other apps tool uses CoderHelm's app by default - #455

Merged
nambok merged 1 commit into
mainfrom
hybrid-apps-default-on
Nov 3, 2026
Merged

nambok merged 1 commit into
mainfrom
hybrid-apps-default-on

Conversation

@nambok

@nambok nambok commented Nov 3, 2026

Copy link
Copy Markdown
Collaborator

Summary

On a hybrid install, every tool under Settings, System, Hybrid, Other apps (Jira, Notion, Confluence, Google Drive) now uses CoderHelm's app unless someone chose "Use my own app". Before, only tools an admin switched on used it. An explicit own-app choice is kept. The install guide's per-tool choices are applied when the install registers.

Turning on CoderHelm's app for a tool only changes which app its sign-in (or Jira app install) goes through. Nothing connects, relays or syncs until someone connects that tool: the broker refuses tokens without a sign-in, existing connections keep the app they were made with, and the Jira relay forwards only events from a site that installed CoderHelm's Jira app with this install's id.

Changes

  • common::hybrid::integrations: app_choice_ids() (the hosted tools other than GitHub) and a note on what the default means.
  • hybrid_install.rs:
    • Local.apps holds the choice for each tool (coderhelm or own). A tool with no entry uses CoderHelm's app, unless the install has its own app for it set up (its own Notion, Atlassian or Google client), which it keeps.
    • migrate_apps: a record from before reads its explicit picks once. If its list named any Other apps tool, each listed tool is CoderHelm's and each offered one left off is own. A list with none was never chosen, so it gets the defaults.
    • wanted_integrations / sync_apps: the integrations CoderHelm holds follow the choices. Sent on register, on settings changes and from status when out of date (apps_sent means a list CoderHelm trims to what it offers isn't sent again in a loop). This replaces drop_unoffered, so a tool CoderHelm starts offering later is picked up.
    • The settings and guide bodies take apps: {id: "coderhelm" | "own"}, and only the named tools change. The old whole-list integrations still works, and only the tools it switches become choices.
    • Status uses_coderhelm: what CoderHelm holds once registered, and what registering will apply before that.
  • Docs: hybrid.md gets a new Other apps section on the defaults, kept choices and "nothing starts by itself"; setup-checks.md documents the apps field.

Verification

  • cargo fmt --check, cargo clippy -p gateway -p common --all-targets -D warnings, cargo test -p gateway -p common: 2064 passed.
  • New tests: defaults with unset vs explicit own vs own app set up; migration of a record that never chose vs one that chose (unoffered tools left undecided); no resend loop when CoderHelm accepts fewer; the settings and guide bodies record each tool named and refuse GitHub, unavailable tools and bad values.

Jira, Notion, Confluence and Google Drive now default to CoderHelm's app on
a hybrid install, on a new install and on one that registered before. An
explicit choice of the install's own app is kept: choices are stored per
tool, a record from before reads its explicit picks once, and a tool for
which the install has its own app set up keeps it until someone picks
CoderHelm's. The install guide's choices arrive as apps on the setup
settings call and are applied when the install registers.

Only which app a sign-in goes through changes; nothing connects or syncs
until someone connects the tool.
@nambok
nambok merged commit cdf3e98 into main Nov 3, 2026
10 checks passed
@nambok
nambok deleted the hybrid-apps-default-on branch November 3, 2026 19:59
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