Skip to content

feat(cli): explain ordinary dry-run delivery limits - #325

Open
abruption wants to merge 6 commits into
mainfrom
feat/323-delivery-explanation
Open

abruption wants to merge 6 commits into
mainfrom
feat/323-delivery-explanation

Conversation

@abruption

@abruption abruption commented Oct 22, 2026 •

Copy link
Copy Markdown
Owner

Summary

Adds the first, deliberately limited slice of #323: session-peer send --dry-run --explain describes existing ordinary local/SSH dry-run evidence in human-readable text, separately for each SSH destination.

session-peer send --host worker --to 'codex:<full-thread-uuid>' --message "Review the patch" --dry-run --explain
  • Reports the requested/resolved destination, reported agent home, planned delivery method, existing validation/wake preflight and observation limits.
  • Distinguishes unknown outcomes and unexpected reported submission evidence from a validated preview. A common input/option failure is not presented as a destination check; a later host's failure is not attributed to earlier successful hosts.
  • Does not add probes, forward --explain over SSH, create placeholder messages, change native optional fields or alter ordinary JSON/wire/exit behavior. New display fields are allowlisted and terminal-sanitized.
  • Rejects missing --dry-run, JSON output, paired-device and experimental handoff combinations before update preparation, input reading or destination/ledger work.
  • Updates the English, Korean, Japanese and Simplified Chinese CLI references and their source manifest; regenerates the standalone entrypoint.

Refs #323. This does not complete the issue's broader paired-device, handoff or discovery presentation scope.

Type

  • feat
  • docs
  • tests

Validation

  • macOS arm64, Python 3.13.7 with relay/MCP test extras: 1341 tests OK, 19 skipped, with development mode and ResourceWarning treated as an error, at final head 3302f66e185352e68e4c22a0519e28b0e6713f4c.
  • Focused compatibility suite before the final fixture correction: 95 tests OK, 1 skipped on Python 3.9.6 and 3.13.7. After correction, all 22 explanation-specific tests pass on both versions: the Windows-refusal negative explicitly exercises the platform branch on every runner, while the real file-success case remains POSIX-only.
  • Four-language documentation/manifest checks are included in the full suite; standalone generator --check and git diff --check pass.
  • Independent read-only CLI reviews were run before PR creation. Confirmed findings about uncertainty, per-host attribution and missing dry-run evidence were corrected and regression-tested. These are static reviews, not native transport acceptance.

Compatibility and limits

  • Existing output without --explain, machine-readable fields and exit codes are preserved, including legacy Claude field absence and the existing stdout/stderr placement of old summaries/errors. A new failure or contradictory-evidence explanation uses stderr.
  • A preview is not a reservation or proof of later submission, consumption, receipt ACK or task completion. A later send repeats existing validation. Unknown outcomes never authorize automatic resend.
  • Wake is not checked unless explicitly requested; only existing preflight evidence is described. Ordinary receipt ACK support is not introduced.
  • Tests are bounded offline fixtures with native submission and SSH execution mocked; no real agent messages, new native/platform acceptance, Relay/MCP operations, global installation or deployment was performed.
  • No version bump, merge, tag, release or package publication is part of this PR.

CI follow-up

  • The first Windows run exposed a new test's invalid assumption that POSIX-private message-file input succeeds on Windows. The product already refuses that input on Windows. The follow-up changes tests only: the positive case is POSIX-only, and a Windows-specific negative case verifies the existing refusal before destination checks or native calls. Product behavior is unchanged.
  • Separate blocker: Control dependency auditing reports the existing locked vitest / @vitest/mocker 4.1.11 and vite 7.3.6 advisories. Control code, dependency files and workflows are unchanged by this PR. This is not a fully green CI claim, and no dependency upgrade, audit bypass or merge is included here.
  • Latest-head Windows Python 3.13 CI now passes. Automatic Codex code and security reviews completed with no findings at product-code head 03e9891; the later two commits modify tests only. Do not treat that as a new automatic review of the later test-only head. Remaining CI jobs may still be running/queued.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 22, 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-22T07:15:17.679687Z 03e9891 PR opened
🔒 Security Review ✅ Completed 2026-10-22T07:16:11.582818Z 03e9891 PR opened
ℹ️ 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.

@abruption abruption added this to the v1.3.0 milestone Oct 22, 2026
@abruption

Copy link
Copy Markdown
Owner Author

The unchanged Control dependency-audit blocker is now tracked separately in #326 and fixed by dependency-only PR #327. That PR updates compatible Vite/Vitest patches, preserves the existing audit gates, and has successful local production/full audits. After normal approval and merge of #327, refresh or rerun this PR against the updated main; this comment does not claim current #325 CI is green.

This branch has not been deployed

No deployments
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.

1 participant