Skip to content

Add simultaneous calls to calls settings and claim output - #77

Open
purpshell wants to merge 1 commit into
mainfrom
claude/calls-simultaneous-calls-20261011
Open

purpshell wants to merge 1 commit into
mainfrom
claude/calls-simultaneous-calls-20261011

Conversation

@purpshell

@purpshell purpshell commented Oct 11, 2026 •

Copy link
Copy Markdown
Member

Summary

Adds simultaneous calls to calls settings and shows the new Ban Insurance claim fields. Contract source: polymorfa/polymorfa#559 (merged source). SDK types: polymorfa/sdks#346 (merged source). This branch still pins the older SDK version below; matching published SDK adoption and deployed acceptance remain merge/release gates.

  • calls settings set --simultaneous-calls=<true|false> follows the existing --host-cloud-api-calls=<true|false> flag style.
  • --simultaneous-calls=true requires --acknowledge-risk. Without it the command exits with code 2 (configuration) before any request. The message says that Ban Insurance does not cover the number while the setting is on and for 30 days after it is turned off, and says to re-run with --acknowledge-risk. There is no interactive prompt; the flag is required in every mode.
  • --acknowledge-risk without --simultaneous-calls=true exits with code 2, because the API rejects acknowledgeRisk on its own.
  • --simultaneous-calls=false needs no acknowledgment.
  • calls settings get and set print Simultaneous calls off, or on (Ban Insurance does not cover this number). JSON passes simultaneousCalls through unchanged.
  • bansafe claim view prints Simultaneous calls on in window yes|no when the claim records evidence.simultaneousCalls. Verdict simultaneous_calls already prints as-is. JSON passes through unchanged.

Blocked: SDK bump. The pinned SDK (@polymorfa/sdk 0.1.0-dev.20261004024706) predates these fields. The CLI widens the SDK types locally (CallSettings and CallSettingsUpdateBody in src/services/calls.ts, simultaneousCallsEvidence in src/services/bansafe.ts). There is no any, and comments mark the code for removal. The pinned SDK also rejects an update whose only setting is simultaneousCalls ("Send at least one call setting to change."), so calls settings set --session s --simultaneous-calls=true --acknowledge-risk fails today before any request. Combined with another setting it sends the right body. Before merge:

  1. The backend and SDK source merges are complete. Select an accepted, published SDK dev prerelease containing the required fields and standalone-setting validation. The current exact pin has not adopted that contract.
  2. Change package.json "@polymorfa/sdk": "0.1.0-dev.20261004024706" to that exact 0.1.0-dev.<timestamp>, and run npm install --save-exact.
  3. Drop the local type widenings and add a test for --simultaneous-calls=true --acknowledge-risk on its own.

Impact

Impact table

Area Status Details
CLI calls settings set Updated New --simultaneous-calls, --acknowledge-risk flags, help text, examples, local risk refusal (exit 2). src/commands/calls/settings/set.ts, src/services/calls.ts
CLI settings output Updated Simultaneous calls line in human output. JSON unchanged in shape (field passes through).
CLI bansafe claim view Updated Evidence line for simultaneousCalls. src/services/bansafe.ts
README and command research Updated README.md calls settings and BanSafe sections, docs/command-research/calls.md
SDK dependency Blocked Matching accepted published SDK pin adoption remains pending. The current exact pin rejects a simultaneous-calls-only change client-side.
API contract Source merged; acceptance blocked polymorfa/polymorfa#559 is merged. No matching deployed API acceptance is established by this mechanical refresh.
Feature release Blocked Availability follows the backend release record in polymorfa/polymorfa#559. No CLI flag gating; the API enforces credential rules (project tokens get 403, exit 3). No CLI publication in this PR.

No impact table

Area Reason Evidence
bansafe claim list Prints verdict as a raw string column, so simultaneous_calls shows without change. No evidence column. renderClaims in src/services/bansafe.ts
calls settings get command code Uses the same renderer and service type; only the shared renderer changed. src/commands/calls/settings/get.ts
MCP server and skills No tool or skill reads or writes call settings. rg "updateCallSettings|call-settings" src/mcp skills returns no matches
Other credentials Client tokens are still refused by the Platform environment before any request; existing test unchanged. rejects client tokens and invalid values for call settings in test/commands/calls.test.ts
Admin controls The CLI has no staff surface. Staff turn-off lives in Admin (admin-call-settings v2) in polymorfa/polymorfa#559. Contract
UI Terminal output only. n/a

Verification

Current source refresh, 2026-10-28

Published head cb1fb9946b1c7bfec4f022ea525b9f5a64172715, directly rebased onto actual live main a9a19cd68eecf7f33eae495665c1f389b6906a5e (CLI Zod #91). Old head d7995763d58b5252faf8a3e0ef4bbfd7aecbbdda, old parent 1869d421892173d9ccd662fc785b39ed30bbd9d2. The old PR base snapshot was not used as current target authority.

  • git rebase --rebase-merges --onto completed without conflicts. range-diff reports the single Calls commit unchanged; old/new stable patch ID is c682519aad08a83d13a3e57293d85ff8a642261b. Original author, date, message and coauthor are preserved.
  • Old remote/head/base refs, raw index, source archive and patches were preserved before mutation. Unpublished coverage candidates 2f0864d6 and d0060042 remain held and are excluded.
  • New source uses locked Zod 4.6.7 and MCP server 2.3.1. SDK remains exactly 0.1.0-dev.20261004024706; no guessed adoption or installer ran.
  • One short standard lease verified the complete applicable installed dependency graph against the new lock, then reused a private copy of that existing tree. Only explicitly foreign-platform optional packages were excluded from the graph check.
  • Passed at the new head: diff whitespace check; Prettier for all seven feature files; TypeScript typecheck; build; focused Calls and BanSafe command tests with one worker and no file parallelism; release-evidence Node tests; production package-lock audit.
  • The focused command tests used OCLIF_TEST_ROOT set to this worktree. No assertion, deadline or source change was introduced by verification.
  • Immediately before push, live main was still a9a19cd6 and the PR branch was still d7995763. Push used the exact expected-old --force-with-lease; remote readback confirmed cb1fb994 and the worktree stayed clean.
  • Full-suite, hosted new-head CI/review, SDK adoption, live API and package acceptance remain separate gates. Old CI/reviews do not qualify this rewritten head. No dispatch, rerun, review request, merge, publication or deployment occurred.

Durable private evidence: simultaneous-calls/cli77-rebase-20261028/, including BACKUP-BEFORE.json, PATCH-AUTHOR-PROOF.json, DEPENDENCY-PROOF.json, FOCUSED-REPLACEMENT-RECEIPT.json, per-check logs and the one-time natural run manifest.

Historical verification at d799576

Revision d7995763d58b5252faf8a3e0ef4bbfd7aecbbdda, pinned SDK 0.1.0-dev.20261004024706.

  • npm run format:check, npm run lint, npm run typecheck: pass.
  • npm run build, npm pack --dry-run --ignore-scripts, npm run audit:prod (0 vulnerabilities): pass.
  • npx vitest run test/commands/calls.test.ts test/commands/bansafe.test.ts: 56 passed. New tests:
    • turns simultaneous calls on only with --acknowledge-risk: refusal without the flag (exit 2, configuration category, message names Ban Insurance and --acknowledge-risk, no request sent); --acknowledge-risk without true and with false refused (exit 2); request bodies {acknowledgeRisk: true, conferenceMode: true, simultaneousCalls: true} (plus expectedRevision case) and {conferenceMode: true, simultaneousCalls: false}; human and JSON output.
    • shows the simultaneous calls verdict and evidence on a claim: human Verdict simultaneous_calls, Simultaneous calls on in window yes, JSON passthrough. The existing claim test checks that older claims without the field print no evidence line.
  • Full suite (--maxWorkers=2 --testTimeout=60000, machine load average about 90): 1034 passed, 4 failed. The failures are in test/commands/event-stream-process.test.ts (SIGINT/SIGTERM) and test/commands/voice-wait-timeout.test.ts. They fail the same way on origin/main (1869d42) on this machine and do not touch the changed code. CI is the reference.
  • Probe against the pinned SDK: calls settings set --session support --simultaneous-calls=true --acknowledge-risk prints Error: Send at least one call setting to change. with no request. This is the SDK blocker above.

Not exercised: a real API (backend unmerged), project-token 403 path against a live server.

Terminal output rendered by calls settings set for the turn-on test fixture (same renderer as get):

Session	support
Calls	on
Conference mode	on
Incoming calls	clients
Cloud API calls answered by	your Graph API integration
Simultaneous calls	on (Ban Insurance does not cover this number)
Revision	2
Updated	2026-10-11T10:00:00.000Z

Session provenance and UI evidence

The 2026-10-28 mechanical refresh was performed by the existing Calls owner using Codex gpt-6.1-sol. Original commit attribution and the terminal behavior below are preserved. No new product behavior or coverage-output candidate was added.

Agent registration PR: https://github.com/polymorfa/polymorfa/pull/540; delegated subagent of thread 707f87c6-ff4d-4525-8150-0815c879e03a; transcript checkpoint will be published by the coordinating agent. UI unaffected (terminal output shown in Verification).

Dependencies: polymorfa/polymorfa#559, polymorfa/sdks#346.

Rollout and rollback

  • Backend #559 and SDK #346 source merges are complete. This PR remains blocked on adoption of a matching accepted published SDK and its required qualification. Release owns any merge; source refresh grants no publication or activation authority. Staging remains deferred.
  • No publication in this PR. CLI nightlies and stable packages follow the repository's release gates.
  • Rollback: revert this PR. The API keeps enforcing the acknowledgment and credential rules without the CLI.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 11, 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-11T01:07:59.254128Z d799576 PR opened
🔒 Security Review ✅ Completed 2026-10-11T01:08:52.942657Z d799576 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.

@coderabbitai

coderabbitai Bot commented Oct 11, 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 16 minutes.

Check out review usage here.

View limit details

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

Learn how review limits work.

Review configuration:

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Team
  • Run ID: 3febfe3f-f5fd-416d-ba7b-054fb9158d0e
Commits

Reviewing files that changed from the base of the PR and between a9a19cd and cb1fb99.

Files selected for processing: 7
  • README.md
  • docs/command-research/calls.md
  • src/commands/calls/settings/set.ts
  • src/services/bansafe.ts
  • src/services/calls.ts
  • test/commands/bansafe.test.ts
  • test/commands/calls.test.ts
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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

@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: d7995763d5

ℹ️ 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/services/calls.ts
...(expectedRevision === undefined ? {} : {expectedRevision}),
})
}
const response = await client.voip.updateCallSettings(name, body)

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 Upgrade the SDK before exposing standalone simultaneous calls

With the pinned @polymorfa/sdk version, voip.updateCallSettings still validates requests against the old settings fields and throws Send at least one call setting to change. when the body contains only simultaneousCalls (plus acknowledgeRisk). Consequently the newly documented standalone enable and disable commands fail before sending an HTTP request; the added success tests conceal this by always including --conference-mode. Upgrade the SDK or otherwise bypass its obsolete validator before exposing these commands.

Useful? React with 👍 / 👎.

calls settings set gains --simultaneous-calls=<true|false> and
--acknowledge-risk. Turning simultaneous calls on without the
acknowledgment exits with code 2 before any request. Settings output and
claim view show the new fields from polymorfa/polymorfa#559.

Co-Authored-By: Claude <[email protected]>
@purpshell
purpshell force-pushed the claude/calls-simultaneous-calls-20261011 branch from d799576 to cb1fb99 Compare October 28, 2026 04:16
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