cliffhall
bc433bbf72
fix: keep the object branch's __proto__ handling when filtering per key
...
A regression from the previous commit. The object branch was a spread, which
*defines* properties and is therefore safe; rewriting it into a per-key loop to
filter unserializable values turned it into `out[key] = value`, which *sets* —
so a persisted `"__proto__"` key vanished on reload and, with an object value,
gave the returned metadata a caller-controlled prototype. The legacy branch had
already been fixed for exactly this.
Fixed at the root rather than the site: both branches now go through one
`defineMetadataKey`, so a change to how one stores a key cannot leave the other
behind. That split is what let the earlier fix fail to protect this path.
The test uses `JSON.parse('{"__proto__":…}')`, not an object literal — a
literal `__proto__:` key sets the prototype at construction and creates no own
property, so a test written that way passes against the broken code. Confirmed
by reverting the line: only the parsed case fails.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0177mPHAdECD18nLLCTwR5rh
Signed-off-by: cliffhall <cliff@futurescale.com>
2026-08-23 20:18:38 -04:00
..
__tests__
feat: allow complex JSON values in request _meta
2026-08-23 12:23:40 -04:00
import
chore(deps): migrate to eslint 10 to clear the brace-expansion DoS advisory ( #1900 )
2026-08-01 20:13:30 -04:00
node
feat: allow complex JSON values in request _meta
2026-08-23 12:23:40 -04:00
remote
fix: stop leaking metadata values into diagnostics, and salvage per key
2026-08-23 20:03:37 -04:00
state
feat: allow complex JSON values in request _meta
2026-08-23 12:23:40 -04:00
appElicitation.ts
fix(apps): address review of app-rendered elicitations
2026-08-22 19:43:44 -04:00
apps.ts
SDK v2 migration (behavior-neutral, versionNegotiation: 'legacy') ( #1624 )
2026-07-15 10:44:24 -04:00
config.ts
chore: close quality-gate coverage gaps ( #1689 ) ( #1766 )
2026-07-24 17:20:12 -04:00
elicitationCreateMessage.ts
fix(core): register peer-request handlers before connect ( #1797 ) ( #1798 )
2026-07-27 11:32:23 -04:00
extensions.ts
feat(apps): negotiated app-rendered form elicitations
2026-08-22 19:05:33 -04:00
fetchTracking.ts
Network: modern Mcp-* headers, new error codes, cancellation-as-abort ( #1628 ) ( #1722 )
2026-07-18 17:32:05 -04:00
index.ts
fix: salvage a list result's valid entries when one is malformed ( #1909 )
2026-08-15 16:52:11 -04:00
inspectorClient.ts
docs: say "safe integer" for progressToken, matching what the code enforces
2026-08-23 19:31:50 -04:00
inspectorClientEventTarget.ts
feat: allow complex JSON values in request _meta
2026-08-23 12:23:40 -04:00
inspectorClientProtocol.ts
feat: allow complex JSON values in request _meta
2026-08-23 12:23:40 -04:00
listSalvage.ts
fix: return the era-parsed tool, and hide aggregate reports in paginated mode ( #1909 )
2026-08-15 20:08:03 -04:00
messageTrackingTransport.ts
Tasks: io.modelcontextprotocol/tasks extension on modern servers (era fork) ( #1731 )
2026-07-21 19:17:04 -04:00
modernTaskSchemas.ts
Tasks: io.modelcontextprotocol/tasks extension on modern servers (era fork) ( #1731 )
2026-07-21 19:17:04 -04:00
oauthManager.ts
fix(auth): never apply endpoint overrides on the enterprise-managed leg
2026-08-16 21:13:51 -04:00
samplingCreateMessage.ts
fix(core): register peer-request handlers before connect ( #1797 ) ( #1798 )
2026-07-27 11:32:23 -04:00
serverList.ts
fix: keep the object branch's __proto__ handling when filtering per key
2026-08-23 20:18:38 -04:00
sessionStorage.ts
feat(core): port v1.5 hook layer ( #1243 ) ( #1300 )
2026-05-13 17:43:07 -04:00
taskNotificationSchemas.ts
SDK v2 migration (behavior-neutral, versionNegotiation: 'legacy') ( #1624 )
2026-07-15 10:44:24 -04:00
toolCallCancelledError.ts
fix(web): send a cancellation notification when cancelling an ordinary tool call ( #1458 ) ( #1463 )
2026-06-13 22:23:02 -04:00
toolOutputValidation.ts
Refactor / justify codebase-wide 'as unknown as' casts ( #1690 ) ( #1756 )
2026-07-24 09:34:32 -04:00
typedEventTarget.ts
Test/1396 harden managed state connect tests ( #1508 )
2026-06-24 10:46:09 -04:00
types.ts
fix: exclude undefined from _meta values, and cover the JSON worker
2026-08-23 18:27:28 -04:00
uriTemplate.ts
fix: scope the value ceiling to the names a template references
2026-08-17 01:54:37 -04:00
urlElicitation.ts
Address @claude review: format core/, typed output-validation error, document progress heuristic
2026-07-15 11:08:54 -04:00