feat(mcp): release checkpointed read-only ID pagination (0.2.22) #42

Merged
jlxq0 merged 3 commits from release/query-email-ids-0.2.22 into main 2026-09-15 06:00:07 +00:00
Owner

Scope

Add the reviewed read-only query_email_ids tool for checkpointed bounded historical ID enumeration; retain all 47 legacy tools and OAuth. Includes the separate minimal rustls 0.23.45 security repair for RUSTSEC-2026-0285. No mail mutation, auth or workflow changes.

Exact source/review chain

  • Frozen paging: 5cbd0df823.
  • Independently approved combined security candidate: 6c5ed2d72e; verified bundle and all 51 payload hashes.
  • Release head: 07e591ff20; tree 3e23b8e952. The only delta above reviewed parent is the package version 0.2.21 -> 0.2.22 in Cargo.toml and Cargo.lock. Independent version-delta review APPROVE; unchanged application/dependency/workflow objects.

Verification

Owner and fresh bundle clone each passed 236 tests, fmt/clippy, RustSec, OSV, cargo-deny and source Trivy on the combined parent; five real-router probes and unchanged legacy tool schemas. Existing chacha20 yanked warning is permitted by unchanged CI invocation, not newly waived. No local Rust toolchain is present in Clark runtime: this exact versioned head requires the fresh real Forge cargo and source/image build gates before merge/release; prior results are not a substitute.

Release gates

Do not merge with failing checks. After protected merge, verify exact tree/ancestry and passing current main checks, push NEW matching annotated v0.2.22 tag, require actual tag cargo/tag-ancestry/docker success including final image scan and verified index/OCI provenance. Promote through existing Renovate platform PR with deliberate protected merge; verify every running container digest and health. No hand-edited deployment substitute. Ari owns separate live bounded mailbox acceptance; no live mail acceptance claimed here.

## Scope Add the reviewed read-only `query_email_ids` tool for checkpointed bounded historical ID enumeration; retain all 47 legacy tools and OAuth. Includes the separate minimal rustls 0.23.45 security repair for RUSTSEC-2026-0285. No mail mutation, auth or workflow changes. ## Exact source/review chain - Frozen paging: 5cbd0df823b69bdd0c3a51bad66240849ab00df0. - Independently approved combined security candidate: 6c5ed2d72ee437d155cf6d2b30b737b25a44c926; verified bundle and all 51 payload hashes. - Release head: 07e591ff2001ed778a9e13cbf2070c3337cd4eee; tree 3e23b8e9529c9343e0e2ee01756d56d753bed53d. The only delta above reviewed parent is the package version 0.2.21 -> 0.2.22 in Cargo.toml and Cargo.lock. Independent version-delta review APPROVE; unchanged application/dependency/workflow objects. ## Verification Owner and fresh bundle clone each passed 236 tests, fmt/clippy, RustSec, OSV, cargo-deny and source Trivy on the combined parent; five real-router probes and unchanged legacy tool schemas. Existing chacha20 yanked warning is permitted by unchanged CI invocation, not newly waived. No local Rust toolchain is present in Clark runtime: this exact versioned head requires the fresh real Forge cargo and source/image build gates before merge/release; prior results are not a substitute. ## Release gates Do not merge with failing checks. After protected merge, verify exact tree/ancestry and passing current main checks, push NEW matching annotated v0.2.22 tag, require actual tag cargo/tag-ancestry/docker success including final image scan and verified index/OCI provenance. Promote through existing Renovate platform PR with deliberate protected merge; verify every running container digest and health. No hand-edited deployment substitute. Ari owns separate live bounded mailbox acceptance; no live mail acceptance claimed here.
chore(release): prepare 0.2.22 pagination release
All checks were successful
CI / tag-ancestry (pull_request) Successful in 4s
CI / cargo (pull_request) Successful in 3m1s
CI / docker (pull_request) Successful in 1m18s
CI / tag-ancestry (push) Successful in 4s
CI / docker (push) Successful in 19s
CI / cargo (push) Successful in 3m13s
07e591ff20
jlxq0 merged commit 07e591ff20 into main 2026-09-15 06:00:07 +00:00
Author
Owner

Deployment verified at 2026-09-15T06:26:38.919834+00:00: v0.2.22 is live at https://jmap-mcp.kampong.social/mcp. Reviewed source/release revision 07e591ff20; new annotated tag v0.2.22. Actual tag CI run 143 cargo, ancestry and docker tasks all passed (including mandatory source/dependency and post-publish final-image scans). OCI index/amd64 manifest/config hashes, revision/version and SBOM/provenance statement subjects verified.

Existing Renovate generated platform PR oddie-apps/platform#804; protected test run 2872 task 21082 passed at e2a6b75378c23f800b0a3513d5f7b36432f4e4d3. Independently reviewed only the tag+digest image replacement, preserving all auth/env/callbacks; protected fast-forward merge without force. Promotion/main/Argo completed-sync revision e2a6b75378c23f800b0a3513d5f7b36432f4e4d3; Argo reconciled naturally without manual refresh or resource edits.

All serving endpoint pods and ready app containers match immutable index sha256:0f029e3c99c15027689890b950972b7d6ebcb89f0207c9ea7d0dfa5e715f9450; deployment generation/observedGeneration 34, ready/updated/available replicas 1, app restarts 0. kubectl --context=admin@fondue -n jmap-mcp rollout status deployment/jmap-mcp --timeout=30s returned deployment "jmap-mcp" successfully rolled out. Public /health HTTP 200: healthy, version 0.2.22; protected /mcp remains expected unauthenticated HTTP 401. Verified twice after rollout; Argo green was never substituted for container identity.

Live authenticated tools/list and personal pagination acceptance are explicitly NOT claimed: Clark has no own configured JMAP MCP connection and accessed no peer credentials. Synthetic real-handler captures contain 48 tools, all original 47 unchanged plus read-only query_email_ids. Ari owns fresh live schema discovery and only two bounded ID pages via existing credentials, tracked in t_5225e419; no full history, message bodies, Email/get or mail writes occurred here.

Rollback reference is the still-available immutable v0.2.21@sha256:196ee90a46a3594fe8c91bdec5cdf95b5bd00ae86b32f5e012129175b438d020. Reviewed reversal of image-only promotion commit e2a6b75378c23f800b0a3513d5f7b36432f4e4d3 through platform protected CI/PR, preserving later config; no tag move, kubectl undo/set-image or disabling self-heal. Rollback not executed. No exceptions, credential/protection changes, auth-flow changes, gateway restarts or unrelated infra changes.

Deployment verified at 2026-09-15T06:26:38.919834+00:00: v0.2.22 is live at https://jmap-mcp.kampong.social/mcp. Reviewed source/release revision 07e591ff2001ed778a9e13cbf2070c3337cd4eee; new annotated tag v0.2.22. Actual tag CI run 143 cargo, ancestry and docker tasks all passed (including mandatory source/dependency and post-publish final-image scans). OCI index/amd64 manifest/config hashes, revision/version and SBOM/provenance statement subjects verified. Existing Renovate generated platform PR https://forge.oddie.app/oddie-apps/platform/pulls/804; protected test run 2872 task 21082 passed at e2a6b75378c23f800b0a3513d5f7b36432f4e4d3. Independently reviewed only the tag+digest image replacement, preserving all auth/env/callbacks; protected fast-forward merge without force. Promotion/main/Argo completed-sync revision e2a6b75378c23f800b0a3513d5f7b36432f4e4d3; Argo reconciled naturally without manual refresh or resource edits. All serving endpoint pods and ready app containers match immutable index sha256:0f029e3c99c15027689890b950972b7d6ebcb89f0207c9ea7d0dfa5e715f9450; deployment generation/observedGeneration 34, ready/updated/available replicas 1, app restarts 0. `kubectl --context=admin@fondue -n jmap-mcp rollout status deployment/jmap-mcp --timeout=30s` returned `deployment "jmap-mcp" successfully rolled out`. Public /health HTTP 200: healthy, version 0.2.22; protected /mcp remains expected unauthenticated HTTP 401. Verified twice after rollout; Argo green was never substituted for container identity. Live authenticated tools/list and personal pagination acceptance are explicitly NOT claimed: Clark has no own configured JMAP MCP connection and accessed no peer credentials. Synthetic real-handler captures contain 48 tools, all original 47 unchanged plus read-only query_email_ids. Ari owns fresh live schema discovery and only two bounded ID pages via existing credentials, tracked in t_5225e419; no full history, message bodies, Email/get or mail writes occurred here. Rollback reference is the still-available immutable v0.2.21@sha256:196ee90a46a3594fe8c91bdec5cdf95b5bd00ae86b32f5e012129175b438d020. Reviewed reversal of image-only promotion commit e2a6b75378c23f800b0a3513d5f7b36432f4e4d3 through platform protected CI/PR, preserving later config; no tag move, kubectl undo/set-image or disabling self-heal. Rollback not executed. No exceptions, credential/protection changes, auth-flow changes, gateway restarts or unrelated infra changes.
Sign in to join this conversation.
No reviewers
No labels
waiting-on-julian
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
jlxq0/jmap-mcp!42
No description provided.