release: v3.5.2 - #1497
Merged
Merged
Conversation
A provider withdraws itself from dependency resolution while a health check it declares reports unhealthy, and returns automatically when the check passes — in all three runtimes, with no pod restart. v3.5.1's notes said Java and TypeScript readiness could not yet reflect a dependency outage; this closes that. It also fixes a live defect in 3.5.1: Python @mesh.route and A2A agents serve none of the probe endpoints the agent chart points at, so a Python gateway is restart-looped by the kubelet. Bump verified: 702 changed lines, the inline over-match guard clean, and an independent scan reducing to 22 suspects — all mesh-owned workflow inputs, docs prose, tutorial CHART_VERSION, mesh/__init__.py and test config. No third-party coordinate moved. Cargo.lock locked one package; Chart.lock moved six file:// mesh subcharts; constraints.txt untouched. All six release lockfile checks pass.
|
Important Review skippedToo many files! This PR contains 468 files, which is 368 over the limit of 100. To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch. Upgrade to a paid plan to raise the limit. Usage-priced reviews support at most 300 files. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (468)
You can disable this status message by setting the 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. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Release v3.5.2. Version bump across 486 files, both lockfiles refreshed, and the release notes.
A provider withdraws itself from dependency resolution while a health check it declares reports unhealthy, and returns automatically once the check passes — in all three runtimes, with no pod restart. v3.5.1's notes said Java and TypeScript readiness could not yet reflect a dependency outage; this closes that.
It also fixes a live defect in 3.5.1: Python
@mesh.routeand A2A agents serve none of the probe endpoints the agent chart points at, so a Python gateway 404s every probe and is restart-looped by the kubelet.Bump verification
The over-match guard runs inline now, but it is as much under test as the diff, so I cross-checked it independently against my own criteria:
CHART_VERSION,mesh/__init__.py, and test config. No third-party coordinate moved.Cargo.lock—Locking 1 package, one-line diff, no crates advanced (notgenerate-lockfile, which re-resolves the graph)Chart.lock— sixfile://../mcp-mesh-*sub-charts plus digest; no bitnami version moved despitehelm dependency updatere-resolvingconstraints.txt— untouched, correctly; a dependency move is its own PRcheck_release_lockfiles.pychecks passBoth runs of the bump produced byte-identical results, which is itself worth something.
What is in it
Twelve changes since v3.5.1. Nine of the underlying issues did not exist at the start of this work — they came out of reviewing the first three.
degradedkeeps heartbeating, with Python's malformed-return case aligned (fix(python): a malformed health-check return should degrade, not withdraw the agent #1477)/ready/livez,/ready,/health(fix(python): route and A2A agents serve /livez, /ready and /health #1494) — the 3.5.1 defect aboveMCP_MESH_HEALTH_CHECK_TTL(fix(python): honour MCP_MESH_HEALTH_CHECK_TTL #1493), so cadence is tunable from Helm values rather than baked into the image/readyand/healthreflect the verdict (fix(typescript): reflect the health verdict on /ready and /health #1487)bedrock/orvertex_ai/model no longer gets a probe for credentials it lacks/livez(fix(meshctl): generated compose healthchecks probe /livez, not /health #1495)Release notes accuracy
The parked draft was written eight PRs ago and treated as a starting point, not a source of truth. Three stale claims were found and corrected: two issue numbers cited where PR numbers belonged, and one statement — that a gateway's verdict "is never published to the runtime whatever the check reports" — that #1489 had since disproved.
The compose bullet deliberately makes no restart claim. I originally wrote one into issue #1490 and it is wrong: Docker standalone does not restart a container for being unhealthy. Tested, disproved, corrected on the issue and recorded in #1495's guard test.
Test plan
scripts/bump_version.pyinline over-match and coverage guards both cleancheck_release_lockfiles.py— six checks greenconstraints.txtconfirmed unchanged[Full Changelog]directly above## v3.5.2,[Unreleased changes]atv3.5.2...HEAD, no stacking, exactly one## v3.5.2