Skip to content

fix(integrations): keep the Atlassian coverage hint visible, and trim dead surface - #6105

Merged
waleedlatif1 merged 3 commits into
stagingfrom
fix/atlassian-family-service-accounts
Jul 30, 2026
Merged

fix(integrations): keep the Atlassian coverage hint visible, and trim dead surface#6105
waleedlatif1 merged 3 commits into
stagingfrom
fix/atlassian-family-service-accounts

Conversation

@waleedlatif1

Copy link
Copy Markdown
Collaborator

Follow-up to #6102. Those two commits were on the branch but landed after the squash-merge took 14b5fa7d8, so they never reached staging.

Summary

  • Cursor Bugbot finding from fix(integrations): show family service accounts on every product they authenticate #6102, still live on staging. The Atlassian coverage sentence was wired as a hint on the Site domain field. ChipModalField hides a hint whenever that field shows an error, so the message vanished the moment the domain format check fired — exactly when someone mid-form most needs it. It also describes the token, not the domain, so under Site domain it read as domain guidance.
  • Moved it to the API token field, which surfaces its errors through ChipModalError at the bottom rather than its own error prop, so the hint cannot be displaced.
  • Trimmed the @/lib/integrations barrel to the two symbols consumers actually import (resolveCredentialDisplay, CredentialDisplay) — the other five were dead surface, and the barrel is a hazard to widen because it evaluates getAllBlockMeta() at module load.
  • Dropped rationale comments that restated the code they sat above (net -11 comment lines).

Type of Change

  • Bug fix

Testing

  • 591 tests pass across the integrations, oauth, chat message-content, and workflow-editor suites; typecheck clean.
  • check:client-boundary, check:utils, check:bare-icons, check:icon-paths, check:api-validation all pass.
  • Presentation-only: no schema, contract, or persisted-value change.
  • Not verified live — I have no Atlassian API token, so the rendered hint placement is unconfirmed.

Checklist

  • Code follows project style guidelines
  • Self-reviewed my changes
  • Tests added/updated and passing
  • No new warnings introduced
  • I confirm that I have read and agree to the terms outlined in the Contributor License Agreement (CLA)

… comments

Cursor Bugbot: `ChipModalField` hides a `hint` whenever that field shows an
`error`, so the multi-product coverage sentence vanished the moment the domain
format check fired — exactly when someone mid-form most needs it. The sentence
also describes the token, not the domain, so it read as domain guidance.

Moves it to the API token field, which surfaces its errors through
`ChipModalError` at the bottom rather than its own `error` prop, so the hint
cannot be displaced.

Also drops rationale comments that restated the code they sat above.
@vercel

vercel Bot commented Jul 30, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
docs Ready Ready Preview Jul 30, 2026 9:06pm

Request Review

@cursor

cursor Bot commented Jul 30, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
UI copy placement and a small design-system ARIA affordance; no auth, persistence, or API contract changes.

Overview
Fixes a Cursor Bugbot finding where the Atlassian “one token covers Jira, Confluence…” sentence was attached as a hint on Site domain. ChipModalField suppresses hint whenever that field has an error, so the coverage message disappeared as soon as the domain format check fired.

The hint now sits on the API token field (where it belongs semantically). That field uses ChipModalError for submit failures instead of per-field error, so the hint stays visible while users fix domain typos. The API token row uses ChipModalField type='custom' with a function child so SecretInput receives the field’s ARIA (aria-describedby for the hint).

In emcn, ChipModalField type='custom' children can be a function (aria) => … so custom controls can wire accessibility when the field cannot attach ARIA itself.

The @/lib/integrations barrel no longer re-exports five unused credential-display helpers (callers already import from credential-display directly); only resolveCredentialDisplay and CredentialDisplay remain. Several long rationale comments were shortened.

Reviewed by Cursor Bugbot for commit 4f284f6. Configure here.

@greptile-apps

greptile-apps Bot commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR completes the Atlassian coverage-hint fix and reduces the integrations barrel surface.

  • Moves the coverage hint from Site domain to API token so domain validation cannot displace it.
  • Adds an opt-in render-function API that lets custom ChipModalField controls receive derived ARIA attributes.
  • Forwards those attributes through SecretInput to the native token input.
  • Removes unused integration helper exports and trims explanatory comments.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains; the API-token input receives ARIA attributes referencing the currently rendered hint or error text, resolving the previous accessibility finding.

Important Files Changed

Filename Overview
packages/emcn/src/components/chip-modal/chip-modal.tsx Adds a typed render-function form for custom fields so consumers can attach field-derived ARIA attributes to the actual focusable control.
apps/sim/app/workspace/[workspaceId]/integrations/components/connect-service-account-modal/connect-service-account-modal.tsx Relocates the Atlassian coverage hint to the API-token field and correctly forwards the field ARIA to SecretInput.
apps/sim/lib/integrations/index.ts Removes five unused credential-display helper re-exports while retaining the two symbols consumed through the barrel.

Reviews (2): Last reviewed commit: "fix(emcn): let a custom modal field asso..." | Re-trigger Greptile

…ol it wraps

`ChipModalField` computes `aria-required`/`aria-invalid`/`aria-describedby` from
its own state, but `type='custom'` returned its children untouched — so the
`hint` and `error` text it renders was visible and never announced. The field
cannot apply the ARIA itself here: a custom child may be a bare input or a
wrapper several levels above one, which is the same reason `associatesLabel`
already excludes custom from the label's `htmlFor`.

Adds a function form for custom children that receives the ARIA, so the
consumer — which knows where focus lands — attaches it. Existing `ReactNode`
children are unaffected; all five current custom-field call sites keep working
untouched.

Uses it for the Atlassian API token field, whose coverage hint this branch had
just relocated onto a custom field.
@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@greptile

@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@cursor review

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit 4f284f6. Configure here.

@waleedlatif1
waleedlatif1 merged commit fadff0e into staging Jul 30, 2026
27 checks passed
@waleedlatif1
waleedlatif1 deleted the fix/atlassian-family-service-accounts branch July 30, 2026 21:38
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