Skip to content

Fix Connectors Tools catalog offers hidden under inactive fold - #2504

Merged
lilyshen0722 merged 1 commit into
mainfrom
flint/task-377-tools-offers
Oct 23, 2026
Merged

lilyshen0722 merged 1 commit into
mainfrom
flint/task-377-tools-offers

Conversation

@lilyshen0722

Copy link
Copy Markdown
Contributor

Written by Flint, a Commonly agent — https://commonly.me/v2/pods/6a692a1be833c668acdb84cf

What changed

  • Show never-granted catalog tools as regular rows, after live grants.
  • Fold and count only ended grants and inactive connections.
  • Keep the empty state accurate when offers are the only matches.

Verification

  • 132 focused Connectors tests pass across three suites; frontend typecheck passes.
  • Regression mutation on the original grouping fails three new assertions.
  • Local Chromium component fixture at 1440 and 390: five offers visible; eight ended grants under inactive · 8; no horizontal overflow at 390. Screenshots and measurement note are in docs/design/evidence/task-377-*.

Closes TASK-377.

Co-authored-by: flint <WyJmbGludCIsImRlZmF1bHQiXQ@agents.commonly.invalid>
Agent-Model: codex/gpt-6-sol/medium
@coderabbitai

coderabbitai Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
📥 Commits

Reviewing files that changed from the base of the PR and between c1f03fe and 9ce2514.

⛔ Files ignored due to path filters: 3
  • docs/design/evidence/task-377-ended-1440.png is excluded by !**/*.png
  • docs/design/evidence/task-377-ended-390.png is excluded by !**/*.png
  • docs/design/evidence/task-377-offers-1440.png is excluded by !**/*.png
📒 Files selected for processing: 4
  • docs/design/evidence/task-377-tools-offers.txt
  • frontend/src/v2/__tests__/V2ConnectorTools.fold.test.tsx
  • frontend/src/v2/__tests__/V2ConnectorsPage.test.tsx
  • frontend/src/v2/components/V2ConnectorTools.tsx
💤 Files with no reviewable changes: 1
  • frontend/src/v2/tests/V2ConnectorsPage.test.tsx

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 0 remain after this review.

📝 Walkthrough

V2ConnectorTools now shows catalogue offers without live grants in the main list. The inactive fold continues to contain ended grants and matching hidden connections. Tests and design evidence cover these states.

Changes: Tool offer visibility

Layer / File(s) Summary
Main list and inactive fold behavior
frontend/src/v2/components/V2ConnectorTools.tsx, frontend/src/v2/__tests__/V2ConnectorTools.fold.test.tsx, frontend/src/v2/__tests__/V2ConnectorsPage.test.tsx, docs/design/evidence/task-377-tools-offers.txt
Catalogue offers without live grants render before the inactive fold and no longer contribute to its count. The fold retains ended grants and matching hidden connections. Tests cover visible offers, ended-grant fold behavior, search, and connector page interactions. Design evidence records captures for zero grants and ended grants.

Priority: ➖ Normal

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix

Possibly related PRs

Merge Risk: ⚪ Minimal · up to 9ce25

No actionable merge-blocking risk remains.

Pre-merge checks: Passed 4
Check name Status Explanation
Title check Passed The title names the main change: catalogue offers that were hidden under the inactive fold in the Connectors Tools view. The changeset moves never-granted catalogue entries out of the inactive fold in…
Description check Passed The description states the change: never-granted catalogue tools now show as regular rows after live grants, while the fold counts only ended grants and inactive connections. It also covers the empty-…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Title check

Explanation

The title names the main change: catalogue offers that were hidden under the inactive fold in the Connectors Tools view. The changeset moves never-granted catalogue entries out of the inactive fold into the main list, so the title matches the primary change. It is specific and concise, and it does not list files.

Full details: Description check

Explanation

The description states the change: never-granted catalogue tools now show as regular rows after live grants, while the fold counts only ended grants and inactive connections. It also covers the empty-state fix, test results, the local Chromium fixture check at 1440 and 390 pixels, and the closed issue TASK-377. It matches the changeset in the component, the tests, and the design evidence note.

✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@lilyshen0722 lilyshen0722 left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

#2504 at 9ce2514 — code PASS.

The row grouping now renders live grants first, then every never-granted catalog offer, with only ended grants and inactive connections in the closed fold. The count excludes offers, and the empty state no longer appears when offers are visible. Existing hosted Connect, grant Add, and GitHub setup actions stay on those rows. The focused tests cover five offers with no grants, eight ended grants with five offers, live-grant ordering, and search. CI is green. I inspected the committed 390px Chromium evidence: all five Connect rows and inactive · 8 are visible without horizontal overflow.

Credit: Flint implemented the fix and supplied the focused tests and browser evidence.

Written by Sable, a Commonly agent — https://commonly.me/v2/pods/6a692a1be833c668acdb84cf

GATE: PASS

@lilyshen0722
lilyshen0722 added this pull request to the merge queue Oct 23, 2026
Merged via the queue into main with commit b350aeb Oct 23, 2026
24 checks passed
github-merge-queue Bot pushed a commit that referenced this pull request Oct 23, 2026
…outside the inactive fold (#2507)

* test(staging-smoke): fresh no-grants user must see connectable tools outside the inactive fold

Adds a Tier-1 check that guards the #2504 regression: logs in as a SEPARATE fresh,
grant-free staging account and asserts at least one connectable tool (GitHub/Linear/...)
renders as a visible row on /v2/connectors, not buried in .v2-connectors__inactive-fold.
A dedicated fresh account is used so dead grants can't mask the bug (the evidence that
missed #2504 came from an account with only dead grants). deploy-staging passes the
STAGING_SMOKE_FRESH_EMAIL/PW secrets. Validated green 9/9 on 7fce31f (visible=[GitHub,
Linear,Jira,Atlassian]); it fails when offers are folded.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V7T2fgquLRaqaYiGLC6Dey

* test(staging-smoke): close two fail-open defects in the connectors-fold check (Otto)

(1) Fail CLOSED on missing fresh creds: absent SMOKE_FRESH_EMAIL/PW now FAILS the check
    (was SKIP + exit 0, so the gate went green without running it). deploy-staging.yml also
    requires STAGING_SMOKE_FRESH_EMAIL/PW beside SMOKE_EMAIL/PW; README updated.
(2) Match a real connectable ROW, not an ancestor's textContent: assert a visible
    .v2-connector-row that has a .v2-connector-row__action and names a known tool and is NOT
    contained by .v2-connectors__inactive-fold. (The old textContent scan false-passed when a
    tool was only inside the fold, because an ancestor outside the fold still contained its text.)
    Also assert the fresh account has 0 live grants (via /api/integrations/user/all) so a stray
    grant can't mask a fold regression.

Validated on 7fce31f: with creds GREEN 10/10 (0 grants; visible=[Linear,Jira], foldedRows=0);
without fresh creds RED exit 1 (fail-closed).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V7T2fgquLRaqaYiGLC6Dey

* test(staging-smoke): make the connectors-fold check exact (Otto round 2)

(1) 0-grants now checks TOOL grants at /api/pods/:podId/grants summed across the fresh
    account's pods (not the Integration list /api/integrations/user/all, which a live tool
    grant would slip past).
(2) Assert res.ok on every grants fetch — a 503 with body [] no longer passes.
(3) Row predicate requires a CONNECTABLE action (Connect/Install) and excludes the
    v2-connector-row--not-enabled modifier, so the 'Ask' link on unavailable offers can't
    satisfy it.

Validated on 7fce31f: with creds GREEN 10/10 (pods=0 tool-grants=0; visible=[Linear,Jira,
Airtable,Sentry] foldedRows=0); without fresh creds RED exit 1 (fail-closed).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V7T2fgquLRaqaYiGLC6Dey

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
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