Conversation
…E-17) Drag the divider on a column's right edge to resize it; widths are saved to a cookie (per the ticket) and restored on the next visit. Applied to both tables Joe asked for: - Requirements view (when viewing a framework): tanstack-native column resizing with handles on every column (except the actions column), table-layout: fixed so widths hold, and the Description column's max width raised so long text can be read inline once widened. - Frameworks list: the unified tree table gets a colgroup + fixed layout, drag handles, and per-column widths. Shared helpers: a cookie load/save util (column-widths-cookie) and a useResizableColumns hook + ColumnResizeHandle for plain tables. Tests cover the width sanitisation and cookie round-trip. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MGwXoPb6qHxuHy8miVmyxT
… review) cubic review: startResize attached document mousemove/mouseup listeners and set body.userSelect = 'none', but had no fallback if the component unmounted before mouseup — leaking the listeners and leaving text selection disabled. Store the drag teardown in a ref and run it from an unmount effect as well as from mouseup. Adds tests for both teardown paths. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MGwXoPb6qHxuHy8miVmyxT
Today an OAuth connect failure is invisible after the moment it happens: the shared callback logs the error to ephemeral server logs and redirects to the app with `?error=...&error_description=...`, but the frontend only handled `?success=` and ignored the error — and nothing was persisted. So "the integration won't connect" had no error to look up (the QuickBooks / CalendarBridge case). This captures the error WITHOUT touching the shared OAuth callback flow: - Frontend: the redirect handlers on the integrations grid (PlatformIntegrations) and the provider-detail page (ProviderDetailView) now also read `?error=`/`?error_description=`, show the user the real reason (toast), record it best-effort, and clean the URL. Additive `error` branch alongside the existing `success` branch — the success path is unchanged. - New table `IntegrationOAuthError` (CREATE TABLE only; no FK relations because a connect failure has no IntegrationConnection yet). Never stores the auth `code` or tokens — only provider, error code, description, org/user, timestamp. - New session-authed write endpoint `POST /v1/integrations/oauth-errors` that the frontend posts to. This is a brand-new controller — the shared `oauthCallback` is not touched. - New internal read endpoint `GET /v1/internal/integration-debug/oauth-errors` so a failed connect is diagnosable by org/provider via the internal API. Tests: oauth-errors.controller.spec (2) + a listOAuthErrors service test (1); 11/11 integration-platform debug/oauth tests pass. Touched API + frontend files typecheck clean (remaining app typecheck errors are pre-existing on main). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AU5798EG3PQdRuYSPJgXmy
feat(integration-platform): capture + surface OAuth connect failures
|
The latest updates on your projects. Learn more about Vercel for GitHub.
1 Skipped Deployment
|
feat(framework-editor): resizable columns persisted to a cookie (FRAME-17)
Contributor
|
🎉 This PR is included in version 3.90.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is an automated pull request to release the candidate branch into production, which will trigger a deployment.
It was created by the [Production PR] action.
Summary by cubic
Capture and surface OAuth connect failures so users see the real error and we persist it for debugging. Also adds resizable columns to framework tables with widths saved between visits.
New Features
PlatformIntegrationsandProviderDetailViewreaderror/error_description, show a toast, POST a record, then clean the URL./v1/integrations/oauth-errorsstoresorganizationId,userId,providerSlug,errorCode,errorDescription; never stores auth codes or tokens./v1/internal/integration-debug/oauth-errorswithorganizationId/providerSlugfilters and a limit; returns newest first.IntegrationOAuthErrortable with indexes on(organizationId, providerSlug)andcreatedAt.Bug Fixes
Written for commit c0706af. Summary will update on new commits.