Skip to content

Add campaign segment and drip sequence commands - #81

Merged
purpshell merged 6 commits into
mainfrom
feat/campaign-segments-drip
Oct 21, 2026
Merged

purpshell merged 6 commits into
mainfrom
feat/campaign-segments-drip

Conversation

@purpshell

@purpshell purpshell commented Oct 17, 2026 •

Copy link
Copy Markdown
Member

Summary

Refresh segments/drip against CLI main f1ecd8deea (merged #80) and API dev 9bb1e2e, without rebasing. Both cap/drip flag sets, recipient reasons and analytics coexist. Create now rejects --remove-drip before HTTP; removal remains available through update for an existing unlaunched draft.

SDK pin remains 0.1.0-dev.20261004024706; local types/authenticated raw transport bridge unpublished methods. Platform composed content uses project ID; Messaging settings use project slug. PATCH preserves omitted drip fields and writes are sent once.

Impact

Impact table

Area Status Evidence / blocker
CLI and README Updated Campaign commands, local HTTP fixtures and source examples in this PR.
CLI MCP dependency Updated Pin server/core 2.3.1 to fix the existing production audit failure; CLI stdio tool contracts stay unchanged.
SDKs Release blocked TypeScript registry pin stays 0.1.0-dev.20261004024706; local types/authenticated raw transport bridge missing methods. TS/Go/Python/PHP/C#/Rust package parity and acceptance remain separate SDK work (#348/#350/#351/#352).
Feature release / flags Release blocked Default-off betas, API deployment and matching package acceptance remain external gates. No availability or flag advanced.
Roadmap / transcript Blocked Coordinator owns Linear/Notion reconciliation and committed sanitized checkpoint; no synchronization claimed.

No impact table

Area Reason / evidence
API, libraries, runners/Bartender, Temporal, Logs/audit logs Client-only diff consumes dev 9bb1e2e; no routes, scopes, protocol, workflow or storage changes.
Admin API, controls/MCP, Inspector, Console and Admin UI No changed server or graphical UI paths; existing staff boundaries remain API-owned.
Onboarding, consent/tracking, billing/PAYG, Usage Existing authentication, consent input and server policy retained; no telemetry, prices, credits or meters added.
Server customer Analytics, Help Center and marketing Only existing analytics output is projected; no server calculations or launch copy changed.

Verification

Node 24: npm run verify passes (1,087 tests / 112 files, format, lint, typecheck, build, pack dry-run, zero production audit vulnerabilities). Three release-evidence tests and Actionlint pass. Focused 49-test suite covers combined segment/drip/cap commands, both PATCH routes, close-only omissions, 503 no-retry behavior, analytics, and inline cap conflicts. New checks reject --remove-drip on create with zero HTTP for both selectors, retain update removal, and preserve valid team-only cap selection on create. Paths/scopes/revisions and fields checked against dev 9bb1e2e specs and route authority. No deployed API, real send, hosted enrollment, registry install or publication exercised.

Session provenance and UI evidence

Parent thread 646a0c0a-e900-4d0f-9a25-0b8834d7d4e6; implementation agent gpt-6.1-sol through T3 Code. Sequential work, no requested automated reviews. Coordinator owns registration/checkpoint publication; that evidence is pending. Synthetic terminal/HTTP fixtures only; no GUI changes or screenshots.

Rollout and rollback

Orchestrator owns merging. All PRs target main per RELEASING.md. Main push runs CI, not publication. publish-dev.yml runs at 02:30 UTC or manually and selects an exact registry SDK in disposable build inputs, requiring matching staging acceptance for nightly or production for stable. The existing contracts/abprops-capabilities.json has published: false, which independently blocks the publication gate. Merging source does not publish or prove availability. No workflow changes. Revert client changes before publication; published fixes need a new package. No migrations or flag changes.

Dependency #80 is merged and main is integrated; #79 remains independent with filters gated. SDK #352 source merge does not establish an accepted registry package.

@coderabbitai

coderabbitai Bot commented Oct 17, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

The 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.

  • Ask an admin to enable usage-based reviews

Open in CodeRabbit

Reviews can continue after your included limit without a manual trigger. An admin must approve usage-based billing.

Next included review available in 14 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 6 included reviews currently available. Your 41 included PR review attempts over the past 7 days set your current allowance at 6 reviews per hour.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Team
  • Run ID: 057a2369-85f1-480c-b67d-54462106e1bb
📥 Commits

Reviewing files that changed from the base of the PR and between f1ecd8d and 7d63b99.

📒 Files selected for processing: 16
  • README.md
  • src/commands/campaign/create.ts
  • src/commands/campaign/enroll.ts
  • src/commands/campaign/segments/count.ts
  • src/commands/campaign/segments/create.ts
  • src/commands/campaign/segments/delete.ts
  • src/commands/campaign/segments/get.ts
  • src/commands/campaign/segments/list.ts
  • src/commands/campaign/segments/update.ts
  • src/commands/campaign/update.ts
  • src/commands/campaign/view.ts
  • src/services/campaign-drip-types.ts
  • src/services/campaign-segment-types.ts
  • src/services/campaign-segments-drip.ts
  • src/services/campaigns.ts
  • test/commands/campaign-segments-drip.test.ts
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@purpshell
purpshell changed the base branch from main to feat/campaign-frequency-cap October 21, 2026 07:38
@purpshell
purpshell changed the base branch from feat/campaign-frequency-cap to main October 21, 2026 07:39
@purpshell
purpshell marked this pull request as ready for review October 21, 2026 08:00
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 21, 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-21T08:04:37.762049Z 02b1f21 Draft marked ready
🔒 Security Review ✅ Completed 2026-10-21T08:03:23.843417Z 02b1f21 Draft marked ready
ℹ️ 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: 02b1f219cd

ℹ️ 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".

Comment thread src/commands/campaign/create.ts
@purpshell
purpshell merged commit 58e91a1 into main Oct 21, 2026
2 checks passed
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