Skip to content

feat(talkx): TalkXCampaignScheduled — view dedicada campanhas agendadas (launch/edit/cancel) - #352

Open
adm01-debug wants to merge 3 commits into
mainfrom
feat/talkx-campaign-scheduled
Open

feat(talkx): TalkXCampaignScheduled — view dedicada campanhas agendadas (launch/edit/cancel)#352
adm01-debug wants to merge 3 commits into
mainfrom
feat/talkx-campaign-scheduled

Conversation

@adm01-debug

@adm01-debug adm01-debug commented Sep 10, 2026

Copy link
Copy Markdown
Owner

TalkXCampaignScheduled — view dedicada para campanhas agendadas\n\n### TalkXCampaignScheduled.tsx (new, 343 linhas)\nView acionada ao clicar em uma campanha com status === 'scheduled'. Inclui:\n- Rail de metadados: data de início, fuso horário, velocidade, duração estimada, destinatários\n- Preview da mensagem em formato WhatsApp Bubble\n- Edição inline da data/hora de agendamento (calendar picker + select de fuso)\n- Ações: Lançar agora, Cancelar agendamento, Voltar\n- Confirmação via AlertDialog antes de lançar ou cancelar\n- Toast de feedback para cada ação\n\n### TalkXView.tsx (diff)\n- TalkXTopView = 'tabs' | 'wizard' | 'monitor' | 'scheduled'\n- openScheduled(c: TalkXCampaign)setScheduledCampaign(c); setTopView('scheduled')\n- Branch condicional que renderiza <TalkXCampaignScheduled /> quando topView === 'scheduled'\n- TalkXOverview recebe onViewScheduled={openScheduled} (prop já tipada mas entrypoint a conectar no Overview)\n\n### Gates: TSC 0 · Ratchet 0 novas · manifest OK (65 funções)


Summary by cubic

Adiciona uma view dedicada para campanhas agendadas do Talk X, com edição de data/hora, fuso, janela de envio e horário comercial, além de iniciar agora e cancelar o agendamento. Clicar em uma campanha com status === 'scheduled' abre essa view, e o dropdown do overview agora mostra "Ver agendamento" para essas campanhas.

  • Cancelar o agendamento muda a campanha para status === 'draft' e volta para a lista.
  • Iniciar agora dispara a campanha imediatamente e leva ao monitor.
  • A view se fecha sozinha quando a campanha deixa de estar agendada.

Written for commit 34e9a45. Summary will update on new commits.

Review in cubic

…aunch/editar/cancelar) + topView=scheduled em TalkXView
@ecc-tools

ecc-tools Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

ECC Tools / Security Evidence

Commit: 8bcf1a3c11ef73c88dc107010308d8f4840505c9

Security evidence gate passed (success)

No security-sensitive scanner-evidence gap detected.

Mode: enforce

Scanned 2 changed file(s). No missing scanner-evidence signal was detected.

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@ecc-tools

ecc-tools Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

ECC Tools / PR Risk Taxonomy

Commit: 8bcf1a3c11ef73c88dc107010308d8f4840505c9

PR taxonomy review recommended (neutral)

Detected 1 PR taxonomy bucket(s): CI/CD Recommendation.

Scanned 2 changed file(s).

Roadmap taxonomy buckets:

CI/CD Recommendation

CI, dependency, coverage, and contract signals should be routed into follow-up checks or verification work.

Signals:

  • User-facing UI changes may ship without browser coverage
  • 0 CI or workflow path(s) changed

Paths:

  • src/components/talkx/TalkXCampaignScheduled.tsx
  • src/components/talkx/TalkXView.tsx

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@vercel

vercel Bot commented Sep 10, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
zapp_web_v2 Ready Ready Preview Sep 10, 2026 4:52pm UTC

@greptile-apps greptile-apps 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.

adm01-debug has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@ecc-tools

ecc-tools Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

ECC Tools / Reference Set Readiness

Commit: 8bcf1a3c11ef73c88dc107010308d8f4840505c9

Reference set readiness gaps detected (neutral)

Reference evidence present for 0/7 areas (0%) across 2 changed file(s).

This check is based on files changed in this PR. Repository-level readiness is still reported by /ecc-tools analyze comments and generated manifests.

Area Status Evidence / Next Step
Deep analyzer corpus Missing Add analyzer fixture, golden, benchmark, or reference-set files that can catch analyzer regressions.
RAG/evaluator comparison Missing Add retrieval or evaluator reference-set comparison fixtures with expected ranking behavior.
PR salvage/review corpus Missing Add stale-PR, review-thread, reopen-flow, or salvage reference cases for queue cleanup automation.
Discussion triage corpus Missing Add public discussion triage fixtures, golden cases, or reference sets for informational, answered, and no-response classifications.
Harness compatibility Missing Add cross-harness, adapter-compliance, or harness-audit evidence for Claude, Codex, OpenCode, Zed, dmux, and agent surfaces.
Security evidence Missing Attach security evidence such as SBOMs, SARIF, audit reports, or AgentShield evidence packs.
CI failure-mode evidence Missing Add captured CI failure logs, dry-run fixtures, or troubleshooting docs for common workflow failure modes.

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@ecc-tools

ecc-tools Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

ECC Tools / Hosted Promotion Readiness

Commit: 8bcf1a3c11ef73c88dc107010308d8f4840505c9

Hosted promotion readiness passed (success)

No hosted promotion evidence gaps detected across 2 changed file(s); 0 corpus scenarios had matching evidence.

This check compares PR file changes against the evaluator/RAG promotion corpus in src/analyzers/fixtures/evaluator-rag-corpus.ts.
Hosted output scoring inspected 0 completed cached hosted job results.

No evaluator corpus scenarios matched this PR.

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@coderabbitai

coderabbitai Bot commented Sep 10, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 48 minutes.

Check out review usage here.

View limit details

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

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: ff1c0b5f-8e12-4009-a997-c0931d7c6a25

📥 Commits

Reviewing files that changed from the base of the PR and between 2a42b5e and 34e9a45.

📒 Files selected for processing (3)
  • src/components/talkx/TalkXCampaignScheduled.tsx
  • src/components/talkx/TalkXOverview.tsx
  • src/components/talkx/TalkXView.tsx

Warning

Billing warning: we have not been able to collect payment for this subscription for more than 72 hours. Please update the payment method or pay any pending invoices in Billing to avoid service interruption.


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

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 10, 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-09-10T16:56:58.363694Z 34e9a45 New commits
ℹ️ 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: 8bcf1a3c11

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

try {
await updateCampaign.mutateAsync({
id: campaign.id,
scheduled_at: localInputToISO(localDate),

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Honor the selected timezone when saving

When the operator selects a timezone different from the browser timezone, localInputToISO still parses the value in the browser's local zone, and localTz never participates in the conversion. For example, choosing America/New_York from a browser in São Paulo stores 10:00 as São Paulo time rather than New York time, so the scheduler launches the campaign at the wrong instant. Convert the input using localTz, as the existing wizard does.

Useful? React with 👍 / 👎.

Comment on lines +302 to +303
<PrimaryButton icon={Play} onClick={() => setLaunchOpen(true)} className="shadow-[var(--shadow-glow-primary)]">
{launching ? 'Iniciando…' : 'Iniciar agora'}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Disable launching while a dispatch is in flight

While launching is true, this PrimaryButton remains enabled and handleLaunch has no re-entry guard. Because startCampaign remains pending for the full send loop, the user can reopen the confirmation and start a second invocation; talkx-send selects recipients whose status is either pending or sending, so the concurrent runs can send duplicate WhatsApp messages to the same contacts. Block this action for the duration of the first launch.

Useful? React with 👍 / 👎.

Comment thread src/components/talkx/TalkXView.tsx Outdated
Comment thread src/components/talkx/TalkXCampaignScheduled.tsx Outdated
Comment thread src/components/talkx/TalkXCampaignScheduled.tsx Outdated
@ecc-tools

ecc-tools Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

ECC Tools / Security Evidence

Commit: 617ced1a4014cc1be9ee21374404b9f124102564

Security evidence gate passed (success)

No security-sensitive scanner-evidence gap detected.

Mode: enforce

Scanned 2 changed file(s). No missing scanner-evidence signal was detected.

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@ecc-tools

ecc-tools Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

ECC Tools / PR Risk Taxonomy

Commit: 617ced1a4014cc1be9ee21374404b9f124102564

PR taxonomy review recommended (neutral)

Detected 1 PR taxonomy bucket(s): CI/CD Recommendation.

Scanned 2 changed file(s).

Roadmap taxonomy buckets:

CI/CD Recommendation

CI, dependency, coverage, and contract signals should be routed into follow-up checks or verification work.

Signals:

  • User-facing UI changes may ship without browser coverage
  • 0 CI or workflow path(s) changed

Paths:

  • src/components/talkx/TalkXCampaignScheduled.tsx
  • src/components/talkx/TalkXView.tsx

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@ecc-tools

ecc-tools Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

ECC Tools / Reference Set Readiness

Commit: 617ced1a4014cc1be9ee21374404b9f124102564

Reference set readiness gaps detected (neutral)

Reference evidence present for 0/7 areas (0%) across 2 changed file(s).

This check is based on files changed in this PR. Repository-level readiness is still reported by /ecc-tools analyze comments and generated manifests.

Area Status Evidence / Next Step
Deep analyzer corpus Missing Add analyzer fixture, golden, benchmark, or reference-set files that can catch analyzer regressions.
RAG/evaluator comparison Missing Add retrieval or evaluator reference-set comparison fixtures with expected ranking behavior.
PR salvage/review corpus Missing Add stale-PR, review-thread, reopen-flow, or salvage reference cases for queue cleanup automation.
Discussion triage corpus Missing Add public discussion triage fixtures, golden cases, or reference sets for informational, answered, and no-response classifications.
Harness compatibility Missing Add cross-harness, adapter-compliance, or harness-audit evidence for Claude, Codex, OpenCode, Zed, dmux, and agent surfaces.
Security evidence Missing Attach security evidence such as SBOMs, SARIF, audit reports, or AgentShield evidence packs.
CI failure-mode evidence Missing Add captured CI failure logs, dry-run fixtures, or troubleshooting docs for common workflow failure modes.

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@ecc-tools

ecc-tools Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

ECC Tools / Hosted Promotion Readiness

Commit: 617ced1a4014cc1be9ee21374404b9f124102564

Hosted promotion readiness passed (success)

No hosted promotion evidence gaps detected across 2 changed file(s); 0 corpus scenarios had matching evidence.

This check compares PR file changes against the evaluator/RAG promotion corpus in src/analyzers/fixtures/evaluator-rag-corpus.ts.
Hosted output scoring inspected 0 completed cached hosted job results.

No evaluator corpus scenarios matched this PR.

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@greptile-apps greptile-apps 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.

adm01-debug has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@ecc-tools

ecc-tools Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

ECC Tools / Security Evidence

Commit: 34e9a458938b5c1a4f492b0516a253adc2c71829

Security evidence gate passed (success)

No security-sensitive scanner-evidence gap detected.

Mode: enforce

Scanned 3 changed file(s). No missing scanner-evidence signal was detected.

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@ecc-tools

ecc-tools Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

ECC Tools / PR Risk Taxonomy

Commit: 34e9a458938b5c1a4f492b0516a253adc2c71829

PR taxonomy review recommended (neutral)

Detected 1 PR taxonomy bucket(s): CI/CD Recommendation.

Scanned 3 changed file(s).

Roadmap taxonomy buckets:

CI/CD Recommendation

CI, dependency, coverage, and contract signals should be routed into follow-up checks or verification work.

Signals:

  • User-facing UI changes may ship without browser coverage
  • 0 CI or workflow path(s) changed

Paths:

  • src/components/talkx/TalkXCampaignScheduled.tsx
  • src/components/talkx/TalkXOverview.tsx
  • src/components/talkx/TalkXView.tsx

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@ecc-tools

ecc-tools Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

ECC Tools / Reference Set Readiness

Commit: 34e9a458938b5c1a4f492b0516a253adc2c71829

Reference set readiness gaps detected (neutral)

Reference evidence present for 0/7 areas (0%) across 3 changed file(s).

This check is based on files changed in this PR. Repository-level readiness is still reported by /ecc-tools analyze comments and generated manifests.

Area Status Evidence / Next Step
Deep analyzer corpus Missing Add analyzer fixture, golden, benchmark, or reference-set files that can catch analyzer regressions.
RAG/evaluator comparison Missing Add retrieval or evaluator reference-set comparison fixtures with expected ranking behavior.
PR salvage/review corpus Missing Add stale-PR, review-thread, reopen-flow, or salvage reference cases for queue cleanup automation.
Discussion triage corpus Missing Add public discussion triage fixtures, golden cases, or reference sets for informational, answered, and no-response classifications.
Harness compatibility Missing Add cross-harness, adapter-compliance, or harness-audit evidence for Claude, Codex, OpenCode, Zed, dmux, and agent surfaces.
Security evidence Missing Attach security evidence such as SBOMs, SARIF, audit reports, or AgentShield evidence packs.
CI failure-mode evidence Missing Add captured CI failure logs, dry-run fixtures, or troubleshooting docs for common workflow failure modes.

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@greptile-apps greptile-apps 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.

adm01-debug has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@ecc-tools

ecc-tools Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

ECC Tools / Hosted Promotion Readiness

Commit: 34e9a458938b5c1a4f492b0516a253adc2c71829

Hosted promotion readiness passed (success)

No hosted promotion evidence gaps detected across 3 changed file(s); 0 corpus scenarios had matching evidence.

This check compares PR file changes against the evaluator/RAG promotion corpus in src/analyzers/fixtures/evaluator-rag-corpus.ts.
Hosted output scoring inspected 0 completed cached hosted job results.

No evaluator corpus scenarios matched this PR.

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@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: 34e9a45893

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

const calDate = localDate ? new Date(localDate) : undefined;

const handleSave = useCallback(async () => {
if (!localDate) { toast.error('Defina a data e hora do agendamento.'); return; }

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Reject past reschedule times before saving

When an operator selects an earlier day through the calendar or types a past time, this validation accepts it because it only checks for a nonempty value. The min attribute does not enforce validity here because PrimaryButton is a type="button" and no form submission or checkValidity() occurs. The saved campaign remains scheduled, so talkx-scheduler immediately selects it via .lte("scheduled_at", now) and can start an irreversible broadcast; compare the parsed instant against the current time before updating.

Useful? React with 👍 / 👎.

Comment on lines +65 to +66
useEffect(() => {
if (campaign && campaign.status !== 'scheduled') onLaunch(campaign.id);

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Route non-launch status changes back to the list

When another operator or browser tab cancels the campaign or reverts it to draft while this view is open, the new guard treats that status change as a successful launch and calls onLaunch, opening TalkXLiveMonitor. That monitor considers a draft unfinished, exposes a misleading Cancel action, and labels its health as concluded; only sending/completed transitions should enter the monitor, while draft/cancelled transitions should return to the campaign list.

Useful? React with 👍 / 👎.

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