Files
PaperClipAI/server
scotttongandClaude Opus 5 a3cdba956f feat(connections): let live discovery outrank a pinned ownership mode
Asana and Linear were pinned to customer-owned OAuth clients on the
strength of an Aug-26 research snapshot, so both asked for a client ID
and secret from a developer console before the first sign-in. Re-probed
both servers on 2026-09-28: each advertises a registration endpoint and
issues a client on request, and Linear also advertises client-ID
metadata documents. The snapshot was simply out of date.

So stop treating the catalog as the last word. A curated OAuth method
still earns a dynamic registration when the provider's own metadata
advertises one; ownershipModes stays as the manual fallback. A stale
entry now costs a console detour at worst instead of silently
outranking what the server just said about itself.

Asana's registration is localhost-only — it refuses a hosted redirect
URI — so its catalog text says that rather than promising one click
everywhere. Linear accepts both.

When the client-ID fields are genuinely required, the screen now says
whose limitation it is, so the extra work reads as the exception it is
rather than as that connector's normal path.

Also fixes a tsc error from the previous commit: renderDefaults is an
optional prop, not a nullable one.

Tests: AppsConnect 165/165, connections 38/38, shared 24/24. The
customer-owned-client case moved to Box, which is still genuinely
pinned; Asana gained a test asserting it now reaches the handoff with
no form in between.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-28 22:44:16 -07:00
..