feat: make MailCLI Go-only and add config diagnostics - #1
Merged
Conversation
Move official agent examples and maintainer workflows to Go, remove the legacy Python example path, and add config init/doctor/capabilities contracts for existing-mailbox setup. Config diagnostics now keep raw secret references separate from resolved values so unset environment variables are reported without leaking secrets.
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
This PR makes the official MailCLI agent path Go-only and starts the existing-mailbox setup track with first-class config commands. The goal is to ship a single Go binary that agents and users can install, run, diagnose, and script without a second official runtime.
What Changed
examples/goplus shared Go helpers underexamples/internal.mailcli config init,mailcli config doctor, andmailcli config capabilitiescontracts for account setup and agent-readable capability discovery.doctorcan distinguish missing secret references from unset environment variables without printing secret values.Verification
go test ./...go build -o /tmp/mailcli ./cmd/mailclimake demo-local-thread-checkgit diff --checkPost-Deploy Monitoring & Validation
No additional production monitoring required; this change is local CLI behavior, examples, tests, and documentation. For release validation, run the same verification commands above on the release candidate and smoke-test:
mailcli config init --config /tmp/mailcli-config.yaml --account work --driver imap --host imap.example.com --username you@example.com --password-env MAILCLI_IMAP_PASSWORDmailcli config doctor --config /tmp/mailcli-config.yamlmailcli config capabilities --config examples/config/fixtures-dir.yaml --account fixturesHealthy signals: commands return JSON, no configured secret values are printed, and Go examples pass through
go test ./.... Failure signals: Python path references reappear,config doctorleaks secret values, or demo artifacts are stale. Rollback is a revert of this PR.🤖 Generated with GPT-5 via Codex