# Reconciliation with earlier MCP diagnostic work Reviewed 2026-07-12 against OpenWork PRs #2669, #2670, #2672, #2674, #2675, and this package branch. The table distinguishes package behavior from Den policy so the package does not absorb database, environment, or UI opinions. | Earlier finding or practice | Reference implementation result | Owner | | --- | --- | --- | | Generic `failed to connect` / dropped cause | Operation and request phases retain the cause; Den #2669 produces the safe diagnostic envelope and reference. | Package + Den diagnostic adapter | | Wrong OAuth callback public origin | Callback URI continues to come from validated Den public-origin configuration; the package accepts the URI as explicit input and never derives it from environment. | Den composition root | | Token exchange succeeded but resource/MCP rejected it | Callback performs authenticated MCP initialization; unusable tokens are invalidated. | Package | | Timed-out work wrote credentials later | Every port write carries an absolute commit deadline; Den checks inside a transaction and again before commit so throwing rolls back. | Contract + Den persistence adapter | | One PKCE verifier was clobbered by concurrent Connect attempts | State-bound encrypted authorization transactions coexist up to a fixed cap and commit single-use. | Contract + Den persistence adapter | | Concurrent DCR attempts selected different clients | Persistence is first-writer-wins; a losing SDK registration is rejected rather than used with the winner's stored state. Client revision is bound into authorization. | Contract + Den persistence adapter | | Callback used stale in-memory credentials | Credential loads refresh the scoped Den record; callback MCP validation observes the committed credential. | Den persistence adapter | | Expiry was stored but not part of the contract | Token, client-secret, authorization, lifecycle, and documentation expirations are explicit and validated. | Package contract | | Refresh response omitted a rotated refresh token | The package preserves the existing refresh token only on the refresh path. | Package | | 401 credential failure and 403 provider permission were confused | Den's structured HTTP diagnostics keep resource authentication separate from provider authorization. | Merged Den diagnostics | | MCP `isError` looked successful | `isError: true` throws a typed provider-operation error with only allowlisted status/category/request-id signals. | Package | | Unbounded response/catalog/SSE/redirect behavior | Catalog limits live in the package; guarded redirect, response/SSE size, cross-origin secret stripping, and body cancellation remain mandatory injected network policy. | Package + Den network adapter | | Deleting a connection raced credential work | Delete and enterprise credential transactions lock the same connection row and clean dependent credentials/client state atomically. | Den persistence layer | | Catalog Ready was mistaken for provider readiness | This package reports successful catalog retrieval only. The mock/test UI must continue to label operation/mutation readiness separately. | Mock/UI PR, not this package | | Live timeline, retention, reconnect replay, support bundle | Package events are safe inputs; persistence, SSE, retention, and support access remain the separate live-diagnostics feature. | #2672, outside package | | Mock controls, realistic ServiceNow/Microsoft fixtures | Used as the next conformance gate; not copied into the production client package. | Enterprise mock package/EE app | | Proof viewer mobile/accessibility issues | No UI exists in this server/package PR. | Outside scope | ## Explicitly not collapsed into the package - databases, tables, encryption keys, organization/member types; - process environment or Helm/Docker parsing; - admin/member route authorization and UI state; - provider-specific ServiceNow/Microsoft product availability or scopes; - support-bundle retention/access policy; - mutation approval and provider idempotency policy. Those concerns are required at their named adapter or product boundary. Leaving them out is inversion of control, not omission: the package defines what must be supplied and fails when a required contract is absent.