Repository navigation
Conversation
The API replays a completed request's status and body for 1 hour on Messaging writes and campaign lifecycle actions, and answers 422 idempotency_conflict for key reuse. Update the README, command research notes and flag help text. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Warning Review limit reachedThe included review limit has been reached and this organization has disabled usage-based review continuation. Wait for reviews to reset or ask a billing admin to change After included review limits.
Reviews can continue after your included limit without a manual trigger. An admin must approve usage-based billing. Next included review available in 11 minutes. View limit details
|
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: db3a4a5870
ℹ️ 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".
| - A finished request returns its original status and body, success or error, | ||
| with `Idempotent-Replayed: true`. A send whose response was lost prints the | ||
| original message. | ||
| - A recorded error is returned again. Correct the request and use a new key. |
There was a problem hiding this comment.
Preserve outcome reconciliation before recommending a new key
For a recorded server error, replaying the error does not establish that the original write had no effect; the previous guidance explicitly warned that the write may have happened. Telling callers to correct the request and use a new key for every recorded error can therefore cause a duplicate message when the original send succeeded before an error was recorded. Limit this advice to errors known to precede execution, and retain the instruction to reconcile message events or webhooks before changing keys after a potentially side-effecting failure.
Useful? React with 👍 / 👎.
| For 1 hour after the first request, the API prevents the same key and request | ||
| from running the write again: |
There was a problem hiding this comment.
Update the remaining CLI help to the one-hour retry window
With the one-hour API window documented here, users following several command help descriptions are still told that retries have “24-hour retention”: this remains in src/commands/message/send/text.ts:24, the shared send flags in src/input/message-send.ts:26, the payment-order flags in src/input/payment-order.ts:15, and campaign create/launch help. A caller retrying a message after, for example, two hours can therefore follow the advertised retention period yet execute another send because the key has expired. Update the remaining Messaging idempotency help alongside this window change so it does not promise protection for an additional 23 hours.
Useful? React with 👍 / 👎.
Summary
Publish previously local immutable CLI companion
db3a4a587042235498b14837b9ce9b4ca30c39c1, parent58e91a18d1a4afc108eb3119db0830340bb2a926, without content or history changes. The eight-file delta updates Idempotency-Key README/research text and command help strings for replayed original responses and the one-hour Messaging window.This candidate had no remote branch or owning PR. It is not current-main integrated: observed main was
044f8b75ae8b0689664fe489c22d4a3c64486717. This draft preserves authored source; the frozen claims are not proof of shipped behavior.Impact
Impact table
README.md,docs/command-research/campaigns.md,src/commands/campaign/{pause,resume,stop}.ts,src/commands/channel/message/react.ts,src/commands/cloud/template/{create,delete}.tsce436aa8eebdff65b771c2620c679403b6ebe021No impact table
Verification
Publication-only custody checks: clean source/index/untracked status, exact commit/parent and authored diff, absent remote branch, and no owning PR were checked under the standard serialized bounded wrapper. GitHub did not contain this exact commit before publication (422 from commit/PR association lookup). The existing immutable commit is published unchanged; no rebase, source repair, install, build, new test or PR review was performed.
No fresh current-head tests, typecheck, package/CLI installation, backend/native/real PostgreSQL acceptance or cross-repository artifact qualification is claimed. Backend #890's earlier 84 focused tests belong to its old backend slice. Its current rebase remains conflicted: the real producer failed on edition JSON conflict markers. Five prerequisite compiles passing does not qualify this client candidate.
Session provenance and UI evidence
Recovered source belongs to Idempotent Send Success Status Code. Publication is by the same existing owner, Codex gpt-6.1-sol. This is source custody and draft publication, not a PR review; no reviewer or agent was requested.
Private preservation packet:
~/.polymorfa-agent-work/idempotency-replay/publication-preservation-20261028T234311Z/. It retains source bytes, original indexes, staged/unstaged patches and raw authored commit/patch records for both recovered repositories. Registration and committed sanitized transcript provenance for this old source are not reconciled; no full capture or review-readiness claim is made. No browser was inspected.Rollout and rollback
Draft source preservation only. No customer availability or package publication is claimed. Release owns merges. Existing source/legal/feature/PKI/custody, package, native, production and deployment gates remain; staging prerequisites do not clear this candidate.
Backend dependency: #890, frozen source
71efbde710894bea82fb391e9213be50a8326d74. Its parked targeteda77760b56095a771c55e5d2df18be23e985377is not an accepted new source head. Documentation #892 and Marketing #893 remain frozen. Privacy/Redis, real PostgreSQL/native, current-target integration, genuine generated artifacts and exact backend availability remain unresolved.Before readiness: reconcile current main with preserved authorship under the existing owner, bind the actual accepted API contract/source/spec hashes and SDK/CLI dependency artifacts, qualify examples/retry/error behavior, complete required independent reviews and provenance, and prove matching deployed acceptance. No source-only draft opening waives stale Zod/security checks. No automatic review, blind rerun or manual CI dispatch was requested.
Rollback planning is a reviewed source revert coordinated with the accepted backend and client contract. No rollback, tag, release, activation, package or deployment action occurs here. Linear/Notion release-state reconciliation has not been performed during this urgent publication sweep.
Rendered CLI help/current installed-command output has not been captured or qualified; no new screenshots or terminal acceptance is claimed. CLI source snapshot: 668 paths; original index SHA-256
ef590807e7582ab947e14ff208038a0d5956c358569eef4a966dabb522c5f99a.Need help on this PR? Tag
@codesmith-botwith what you need.