Skip to content

drift: close upstream interval 9028562..56ac317 (v1.35.0 -> v1.36.0) - #17

Merged
smolpaws merged 3 commits into
mainfrom
drift/9028562-56ac317
Aug 24, 2026
Merged

drift: close upstream interval 9028562..56ac317 (v1.35.0 -> v1.36.0)#17
smolpaws merged 3 commits into
mainfrom
drift/9028562-56ac317

Conversation

@smolpaws

Copy link
Copy Markdown
Owner

Summary

Closes upstream drift interval 9028562..56ac317 (OpenHands/software-agent-sdk v1.35.0 -> v1.36.0), advancing the canonical pin to 56ac31719f91059dc9b319dbc6bb79f17ef60cd7.

Inventory generated with the repo's drift tooling (drift:prepare); every first-parent commit x target unit received exactly one disposition before coding. drift:check --phase review passed before any code change; close-phase validation passes at the new pin.

Disposition table

Disposition Count
PORT 0
NO_TARGET_CHANGE 9
DEVIATION 1
EXCLUDED 0
DEFERRED 0

Per-unit notes

Commit Target Disposition Note
cf6c2a3a (#3996) sdk NO_TARGET_CHANGE ACP runtime call-site fixes only; no TS ACP runtime exists (DEV-SDK-005)
77767176 (#2911) sdk DEVIATION (DEV-SDK-001) ToolShieldLLMSecurityAnalyzer + safety-experience helpers land under openhands/sdk/security/; analyzers/risk scoring are intentionally not ported as active SDK behavior
77767176 (#2911) server NO_TARGET_CHANGE agent-server package is transpiled in a separate smolpaws repo
c8e72252 (#4099) sdk NO_TARGET_CHANGE MCP credential validators moved to post-coercion; TS has no MCP config model / Cipher machinery (DEV-SDK-003 context)
c8e72252 (#4099) server NO_TARGET_CHANGE server repo; test-only change upstream
c5379ec3 (#4087) sdk NO_TARGET_CHANGE marketplaces made additive in _load_auto_skills; TS AgentContext has no public-skills/marketplace auto-loading surface
c5379ec3 (#4087) server NO_TARGET_CHANGE server repo; skills router/service merge precedence
025d7d3e (#4011) sdk NO_TARGET_CHANGE nested-schema preservation fix; TS passes inputSchema verbatim into LLM payloads, so the flattened-properties bug is structurally absent - regression port added as evidence
56ac3171 (#4104) sdk/server NO_TARGET_CHANGE release version bumps + uv.lock; TS package versions independent
54861fee, 36685714 .github/ dep bumps, fully ignored by manifest

Ported behavior changes

No PORT items this interval. The one behavioral surface touched (MCP tool schema construction, #4011) already satisfies its observable contract in TypeScript: MCPToolDefinition.toOpenAiTool()/toResponsesTool() pass the raw MCP inputSchema through verbatim, preserving nested object properties, required arrays, enums, and descriptions.

As evidence, ported the upstream regression suite tests/sdk/mcp/test_mcp_nested_schema.py (issue #3955) into src/mcp/__tests__/mcp.test.ts: issue reproduction, Responses-facing preservation, three-level nesting, arrays of objects, and flat schemas - 7 new tests.

Known pre-pin divergence noted in the review record (out of interval scope): upstream's summary/security_risk schema-field injection (predates initial pin, PR #1339) remains absent from the TS tool layer.

Test / parity results

  • npm test: 44 files, 349 tests passed (incl. 7 new MCP regression tests)
  • npm run test:drift: 6/6 passed
  • npm run typecheck + typecheck:drift: clean
  • npm run lint: clean
  • npm run build: success
  • Projection parity: regenerated oracle at pin 56ac317, all case results identical to previous pin; check-projection-parity.ts: 2/2 cases match exactly
  • Packed provenance check: passes against canonical pin
  • drift:check --phase review and --phase close: valid

Event/tool wire oracles remain follow-up work per docs/DRIFT_TOOLING.md ("differential oracles" section); those checks are unchanged from baseline and are not part of CI.

9x NO_TARGET_CHANGE, 1x DEVIATION (DEV-SDK-001 for ToolShieldLLMSecurityAnalyzer).
Adds TS regression port of the upstream MCP nested-schema preservation tests
(issue #3955) as evidence for the schema-passthrough classification.

Co-authored-by: openhands <openhands@all-hands.dev>
Ports upstream tests/sdk/mcp/test_mcp_nested_schema.py (issue #3955).
The TS MCPToolDefinition passes inputSchema verbatim into LLM-facing
payloads, so nested properties/required/descriptions survive; these
tests pin that behavior against regressions.

Co-authored-by: openhands <openhands@all-hands.dev>
Regenerates the Python projection oracle from the pinned checkout;
all case results are identical to the previous pin.

Co-authored-by: openhands <openhands@all-hands.dev>
@coderabbitai

coderabbitai Bot commented Aug 24, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: fc2bd874-652b-42cb-958e-bf82330daffa


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@smolpaws
smolpaws merged commit 65c76c1 into main Aug 24, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants