Skip to content

fix(email): explain the health and probe mismatch - #5426

Merged
devantler merged 2 commits into
mainfrom
codex/mail-probe-state-5421-v2
Oct 27, 2026
Merged

devantler merged 2 commits into
mainfrom
codex/mail-probe-state-5421-v2

Conversation

@devantler

Copy link
Copy Markdown
Contributor

🤖 Generated by the Agentic Engineer

Why

Email answers a local health check while Kubernetes continues restarting it. That mismatch prevents a verified recovery and holds production delivery.

What

Add an opt-in observation that compares health requests and reports whether stored access rules match the host candidate, while keeping credentials and addresses private. This supplies evidence for the repair; sustained recovery remains tracked separately.

Part of #5421

Part of #5421. Compare fixed health requests, require complete query/get address inventories, keep administrative inputs on private stdin, and retain stable runtime/input bindings.
@devantler

Copy link
Copy Markdown
Contributor Author

🤖 Generated by the Agentic Engineer

This extends the merged observer as a separate opt-in workflow. It retains the exact serving-image binding, first-attempt main dispatch, protected production serialization, finite waits, one fixed exec and stable before/after runtime and input identities. The two named credential inputs remain inside the workflow process and stdin; public output is a closed set of classifications. No application rule, probe, configuration, retained store or network permission is changed.

The missing-workflow regression was RED before implementation. A runtime environment-injection control also reproduced unsafe admission before its guard was added. The full observer suite now passes, including race detection and actual HTTP execution of the embedded shell. Vet, ShellCheck, workflow security analysis and whitespace checks pass. A checksum-verified native Stalwart 0.16.27 synthetic store exercised the shipped request and a deliberately blocked documentation address. Query totals and exact query/get ID agreement prevent the native get-all limit from masquerading as a complete inventory; malformed, missing, oversized, expired and overridden cases are covered.

Correctness, simplification and credential/egress self-review found no remaining actionable issue. The current probe source is a local control, not a reproduction of the kubelet network path, and stored rules do not attest the in-memory security cache. Hosted validation, protected merge and a bound production observation remain required. #5421 and #5412 stay open for those outcomes; no recovery is claimed.

@devantler

Copy link
Copy Markdown
Contributor Author

🤖 Generated by the Agentic Engineer

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor
⚠️ Action not completed

Review rate limited.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai

coderabbitai Bot commented Oct 27, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 31 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

Run configuration
Commits

Reviewing files that changed from the base of the PR and between 592fecc and 10de2f0.

Files selected for processing: 8
  • .github/workflows/read-email-probe-state.yaml
  • docs/email-startup-observation.md
  • scripts/diagnose-email-startup/access.go
  • scripts/diagnose-email-startup/access_probe.sh
  • scripts/diagnose-email-startup/access_test.go
  • scripts/diagnose-email-startup/access_workflow_test.go
  • scripts/diagnose-email-startup/main.go
  • scripts/diagnose-email-startup/testdata/native-security-state.json
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@devantler

Copy link
Copy Markdown
Contributor Author

🤖 Generated by the Agentic Engineer

cr:no-gate@10de2f0. CodeRabbit declined the current-head request as rate limited. The fresh complete review-no-gate guard returned ADMIT; no CodeRabbit review is claimed. Advancing to the next provider in order.

@devantler

Copy link
Copy Markdown
Contributor Author

🤖 Generated by the Agentic Engineer

@codex review

@devantler devantler left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Generated by the Agentic Engineer

Additional correctness review at 10de2f0. The health-path and access-state classifications have a useful bounded scope. The inline finding needs correction before claiming Kubernetes probe headers are reproduced; this is not a green-review record.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-27T06:11:14.129663Z f87343f Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 10de2f04e5

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Part of #5421. Use the actual kubelet minor in the User-Agent, verify target node identity and version, and accept only the existing two-key administrator Secret while extracting its password.
@devantler

Copy link
Copy Markdown
Contributor Author

🤖 Generated by the Agentic Engineer

cr:no-gate@f87343f. The refreshed provider-health evidence places CodeRabbit's included review capacity under a current limit until 2026-10-27T06:15:25Z. No additional request is sent inside that window. The fresh complete guard returned ADMIT for this head. Current-head hosted CI has settled with 26 successes and 20 intended skips; the ordered review loop advances to Codex.

@devantler

Copy link
Copy Markdown
Contributor Author

🤖 Generated by the Agentic Engineer

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Chef's kiss.

Reviewed commit: f87343fb9e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@devantler

Copy link
Copy Markdown
Contributor Author

🤖 Generated by the Agentic Engineer

Ready at f87343fb9e299874a19ef71203047d9fee73ad0e. Freshly fetched main is 08fe36a604037e9423d79de7b9fd7387739eb936; its independent retirement-script change leaves this observer and the canonical contract unchanged. The protected queue will validate the combined current base.

Current-head CI reports 26 successes and 20 intended skips. Complete Go regressions, repository guards, workflow security checks and publication validation passed. The actual path-classification job reports k8s=false. The full local race suite, native-version embedded-probe replay and real HTTP header checks also pass. The two review findings have documented fixes and resolved threads.

Current-head Codex summary6434788806 and clean receipt6435119848 report no findings. Complete conversation, review-object and thread reads are clear: unresolved=0 total=2, body_findings=0@f87343fb9e299874a19ef71203047d9fee73ad0e. No unresolved maintainer direction was found. The required-gate resolver passes its readable checks/workflows; Code Quality is configured but its per-head result remains UNVERIFIED locally, so the native protected queue must decide that rule.

The new observation remains opt-in and requires its confirmed first-attempt main workflow after merge. It changes no workload, access rule, data, probe or deployment filter. A bound production result is still required for #5421, and #5412 stays open for sustained recovery and authenticated administration. This readiness record claims no production recovery or security clearance.

@devantler
devantler marked this pull request as ready for review October 27, 2026 06:17
@devantler
devantler added this pull request to the merge queue Oct 27, 2026
Merged via the queue into main with commit 18f2441 Oct 27, 2026
46 checks passed
@devantler
devantler deleted the codex/mail-probe-state-5421-v2 branch October 27, 2026 06:30
@github-project-automation github-project-automation Bot moved this from 🫴 Ready to ✅ Done in 🌊 Project Board Oct 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

1 participant