inspector/clients/web/src/lib
Repository files (latest commit first)
Filename Latest commit message Latest commit date
cliffhall a5a9d4fe15 fix: the classifier does not survive structuredClone, and the test now proves it
Since round 1 the doc claimed the `name` fallback covers "a structured clone or
a JSON hop". Verified, and it is false for half of that:

  structuredClone(new InsecureTokenEndpointError(url))
    -> name: "Error", tokenEndpoint: undefined, constructor: Error

structuredClone normalizes a custom Error subclass back to Error, so neither
arm has anything left to match. A caller routing this error through
structuredClone or postMessage would silently get the generic retryable
handling back — the exact defect this PR removes.

The test could not have caught it: it hand-built a look-alike plain object, so
it asserted what I believed the boundary does rather than what it does. It now
performs a real JSON round trip (asserting the prototype is gone), and a second
case pins that structuredClone is NOT recognized — turning a false claim into a
tested limitation.

The doc comment now scopes the contract to JSON and states the structuredClone
limit with the remedy: serialize the fields explicitly across such a boundary.

Also removes an orphaned JSDoc block the round-4 refactor stranded above the
report helper, and gives showInsecureTokenEndpointNotice its own doc back.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018MvNbmAtQuWhDvzi4yXDju
Signed-off-by: cliffhall <cliff@futurescale.com>
2026-09-07 11:16:51 -04:00
..
appElicitationController.test.ts fix(apps): bind app elicitations to the connection that made them 2026-08-22 22:55:43 -04:00
appElicitationController.ts fix(apps): bind app elicitations to the connection that made them 2026-08-22 22:55:43 -04:00
authToken.test.ts chore(web): address Copilot review on #2127 2026-08-26 18:24:09 -04:00
authToken.ts chore(web): move App.tsx's module-level block into files (#2127) 2026-08-26 18:07:40 -04:00
browserTabVisibility.test.ts refactor(web): sharpen the src/lib vs src/utils rule and move misfiled modules (#1784) 2026-07-25 22:24:30 -04:00
browserTabVisibility.ts refactor(web): sharpen the src/lib vs src/utils rule and move misfiled modules (#1784) 2026-07-25 22:24:30 -04:00
clearServerOAuthState.test.ts fix(auth): refuse a grant whose authorization server cannot be established (#2144) 2026-08-28 06:18:58 -04:00
clearServerOAuthState.ts fix(auth): make snapshot-and-clear one atomic storage step (#2144) 2026-08-28 07:40:52 -04:00
downloadFile.test.ts refactor(web): sharpen the src/lib vs src/utils rule and move misfiled modules (#1784) 2026-07-25 22:24:30 -04:00
downloadFile.ts refactor(web): rename "History" tab/feature to "Protocol" (#1623) 2026-07-09 19:04:54 -04:00
environmentFactory.test.ts refactor: migrate to RemoteOAuthStorage for web OAuth handling 2026-07-03 13:11:13 -07:00
environmentFactory.ts refactor: migrate to RemoteOAuthStorage for web OAuth handling 2026-07-03 13:11:13 -07:00
insecureTokenEndpointNotice.test.ts fix: report a terminal OAuth token-endpoint refusal instead of a dead retry 2026-09-07 09:09:54 -04:00
insecureTokenEndpointNotice.ts fix: the classifier does not survive structuredClone, and the test now proves it 2026-09-07 11:16:51 -04:00
oauthResume.test.ts fix: call getRandomValues directly, and test true crypto absence 2026-09-05 15:53:34 -04:00
oauthResume.ts fix: call getRandomValues directly, and test true crypto absence 2026-09-05 15:53:34 -04:00
protocolReplay.test.ts fix: send an empty-string pagination cursor verbatim on every list adapter (#2220) 2026-09-06 13:28:44 -04:00
protocolReplay.ts fix: send an empty-string pagination cursor verbatim on every list adapter (#2220) 2026-09-06 13:28:44 -04:00
publishAppDocument.test.ts fix(web): move the app origin off 6276, bound the publish route 2026-08-24 08:45:40 -04:00
publishAppDocument.ts feat(web): honor _meta.ui.domain with a dedicated app origin 2026-08-24 08:45:40 -04:00
refreshingPersist.test.ts fix(auth): stop a config-only PUT deleting stored secrets (#2084) 2026-08-22 23:30:17 -04:00
refreshingPersist.ts fix(auth): stop a config-only PUT deleting stored secrets (#2084) 2026-08-22 23:30:17 -04:00
remoteOAuthStorage.test.ts refactor: migrate to RemoteOAuthStorage for web OAuth handling 2026-07-03 13:11:13 -07:00
remoteOAuthStorage.ts fix(auth): guard OAuth-storage async paths against unhandled rejections 2026-07-08 10:59:40 -04:00
webProxiedFetch.test.ts test(auth): cover the no-window guard in getWebProxiedFetch (#2144) 2026-08-28 01:00:42 -04:00
webProxiedFetch.ts feat(auth): revoke OAuth tokens at the authorization server on clear (#2144) 2026-08-28 00:48:57 -04:00