Skip to content

Add Telegram /login Codex pairing flow#98006

Merged
obviyus merged 11 commits into
openclaw:mainfrom
100yenadmin:codex/channel-login-97984
Jul 1, 2026
Merged

Add Telegram /login Codex pairing flow#98006
obviyus merged 11 commits into
openclaw:mainfrom
100yenadmin:codex/channel-login-97984

Conversation

@100yenadmin

@100yenadmin 100yenadmin commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add /login codex for Codex/OpenAI device-code pairing from channel surfaces.
  • Cover Telegram native private-chat commands plus shared private Web UI/dashboard, Discord, and Slack command dispatcher paths.
  • Reuse the existing OpenAI Codex device-code auth flow and profile persistence path through a reusable non-TTY login helper.
  • Update hard OpenAI/Codex OAuth refresh failure copy to recommend /login codex from a private chat or Web UI session while preserving the terminal fallback.

What Problem This Solves

Codex/OpenAI OAuth expiry currently leaves channel-only or remote gateway operators with a terminal-only recovery path. When the user sends a normal message and the Codex token is expired, revoked, reused, or otherwise invalidated, the gateway now classifies that hard auth failure and replies with private /login codex guidance instead of only a terminal command.

/login codex is explicit and owner/admin-gated. It sends the existing OpenAI Codex device-code URL/code only through private chat or Web UI response paths so the owner can pair a fresh Codex login from a browser without exposing tokens or auto-starting auth in shared channels.

Supported Surfaces

  • Telegram: native /login command in private chat; group/topic invocations tell the owner to DM the bot and do not emit a device code.
  • Web UI/dashboard: text slash command through chat.send and the shared reply dispatcher.
  • Discord: shared text/private command dispatcher path; native /login registration is intentionally not exposed in v1.
  • Slack: shared text/private command dispatcher path; native /login registration is intentionally not exposed in v1.

Failure Flow

flowchart TD
  A["User sends normal request"] --> B["OpenClaw runs Codex/OpenAI model"]
  B --> C{"OAuth refresh succeeds?"}
  C -->|"yes"| D["Model reply continues normally"]
  C -->|"expired / revoked / token_invalidated / invalid_grant"| E["OAuth refresh failure classifier"]
  E --> F["Reply: send /login codex from a private chat or Web UI"]
  F --> I{"User is in Telegram group/topic?"}
  I -->|"yes"| J["/login replies: DM this bot to pair Codex"]
  I -->|"no, private path"| K["/login can show device URL/code"]
  B --> G{"Quota or rate limit?"}
  G -->|"yes"| H["Quota/rate-limit guidance, no reauth prompt"]
Loading

Login Flow

sequenceDiagram
  participant U as Owner/Admin
  participant C as Private Chat or Web UI
  participant O as OpenClaw
  participant A as OpenAI Device Auth
  U->>C: /login codex
  C->>O: authorized command turn
  O->>O: verify owner/admin and private response path
  O->>C: verification URL and user code
  U->>A: pair in browser
  A-->>O: provider auth result
  O->>O: persist OpenAI auth profile and clear lockouts
  O->>C: Codex login complete
Loading

Security / UX Notes

  • /login codex, /login openai, and /login openai-codex normalize to provider openai and method device-code.
  • Starting login is owner/admin-gated; authorized non-owners are rejected.
  • Active login flows are deduped per channel/chat/thread/agent/provider.
  • The channel wrappers send only the provider's device verification URL/code message and sanitized status text; they do not send or log OAuth tokens.
  • Device codes are never emitted to Telegram groups/topics or shared Slack/Discord channels; the shared handler requires a private response path before polling starts.
  • The flow stays explicit and user-triggered rather than auto-starting OAuth after a model failure.
  • The reusable login helper is exported through the lazy openclaw/plugin-sdk/provider-auth-login-flow-runtime subpath, not the broad agent-runtime barrel or the common provider-auth runtime import.

Validation

  • OPENCLAW_VITEST_MAX_WORKERS=1 node scripts/test-projects.mjs src/auto-reply/reply/commands-login.test.ts src/auto-reply/commands-registry.test.ts src/plugins/commands.test.ts src/auto-reply/reply/agent-runner-execution.test.ts src/gateway/server-methods/commands.test.ts
  • OPENCLAW_VITEST_MAX_WORKERS=1 node scripts/test-projects.mjs extensions/telegram/src/bot-native-commands.test.ts extensions/telegram/src/bot-native-commands.session-meta.test.ts
  • OPENCLAW_VITEST_MAX_WORKERS=1 node scripts/test-projects.mjs test/scripts/plugin-sdk-surface-report.test.ts src/plugins/contracts/plugin-sdk-package-contract-guardrails.test.ts src/plugins/contracts/plugin-sdk-subpaths.test.ts src/plugins/contracts/plugin-sdk-runtime-api-guardrails.test.ts
  • OPENCLAW_VITEST_MAX_WORKERS=1 node scripts/test-projects.mjs src/docs/slash-commands-doc.test.ts src/agents/auth-profiles/oauth-refresh-failure.test.ts
  • node scripts/check-extension-package-tsc-boundary.mjs --mode=compile
  • node scripts/check-plugin-sdk-subpath-exports.mjs
  • node scripts/run-tsgo.mjs -p test/tsconfig/tsconfig.test.src.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/test-src.tsbuildinfo
  • node scripts/check-extension-plugin-sdk-boundary.mjs --mode=plugin-sdk-internal
  • node scripts/check-deprecated-api-usage.mjs
  • node scripts/plugin-sdk-surface-report.mjs --check
  • ./node_modules/.bin/oxlint src/auto-reply/reply/commands-login.ts
  • ./node_modules/.bin/oxfmt --check --threads=1 <changed files>
  • git diff --check

Additional review follow-up:

  • Moved runModelsAuthLoginFlow off openclaw/plugin-sdk/agent-runtime and the common provider-auth runtime import, onto the lazy openclaw/plugin-sdk/provider-auth-login-flow-runtime subpath.
  • Added /login to slash-command docs after CI caught the new built-in alias.
  • Updated the Control UI slash-command browser-import snapshot after CI caught the shared registry import-order change.
  • Declared the lazy login-flow helper in the plugin SDK entrypoint inventory/root package exports and updated the measured SDK surface budget for the new public subpath.
  • Aligned qa-lab Crabline inbound injection with the pinned Crabline manifest API after the extension package boundary compile exposed the stale call-site.
  • Replaced login surface normalization's direct object stringification with the repo's safe optional-string coercer after CI lint flagged the issue.
  • Rebased onto current origin/main so the PR preserves the PR fix(codex): require admin for native controls #97952 Codex owner/operator.admin native-control and bound-turn authorization boundary.
  • Added commands.list coverage so /login is not serialized as a Discord/Slack native command while it remains text-visible for private command paths.
  • Addressed the PR review thread clusters for private code delivery, explicit owner gating, session-pinned profile reauth, native command exposure, plugin command compatibility, provider-specific failure copy, and SDK import boundaries.
  • Re-ran the extension package boundary compile, SDK subpath export guard, check-deprecated-api-usage, focused Vitest, tsgo test-src typecheck, formatter, and plugin SDK boundary validation after the SDK-boundary/docs changes.
  • Re-ran the Codex native-control/bound-turn tests after rebasing onto PR fix(codex): require admin for native controls #97952's guard changes.

Evidence

  • Added shared command tests for /login codex on private Web UI, Discord, and Slack command surfaces.
  • Added Telegram tests for /login codex sending the device-code message before completion, explicit owner-only rejection, private group rejection, session-pinned profile reauth, and active-flow dedupe.
  • Added gateway command-list coverage for provider-scoped native visibility.
  • Added OAuth classifier coverage for token_invalidated.
  • Added failure-copy coverage showing hard OpenAI/Codex auth failures now recommend /login codex from a private chat or Web UI session.
  • Quota and rate-limit failures continue to use quota/rate-limit guidance rather than reauth copy.
  • Local focused validation passed for the changed auth, auto-reply, shared command, and Telegram command test files.

Notes

  • pnpm run test:extensions:package-boundary:compile attempted a non-TTY dependency purge locally, so validation used the underlying CI checker directly: node scripts/check-extension-package-tsc-boundary.mjs --mode=compile.

Refs #97984

@100yenadmin
100yenadmin requested a review from a team as a code owner June 30, 2026 03:45
@openclaw-barnacle openclaw-barnacle Bot added channel: telegram Channel integration: telegram commands Command implementations agents Agent runtime and tooling size: M triage: needs-pr-context Candidate: external PR body lacks required problem context or evidence. labels Jun 30, 2026
@clawsweeper

clawsweeper Bot commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs real behavior proof before merge. Reviewed July 1, 2026, 12:58 PM ET / 16:58 UTC.

Summary
The branch adds /login codex device-code pairing across Telegram private commands and shared private command paths, OAuth failure guidance, Plugin SDK export wiring, docs, and focused tests.

PR surface: Source +699, Tests +716, Docs +3, Config +8, Generated 0, Other +1. Total +1427 across 30 files.

Reproducibility: not applicable. as a bug reproduction; this is a feature PR for channel-friendly Codex reauth. Source inspection confirms current main lacks the requested /login codex channel command path.

Review metrics: 2 noteworthy metrics.

  • Public SDK Subpaths: 1 added. The new provider-auth login-flow subpath exposes credential-persistence behavior that can become a third-party plugin contract.
  • Credential-Pairing Surfaces: 4 enabled: Telegram private native plus private Web UI, Discord, and Slack text paths. The number of user-facing auth entry points matters because every surface must preserve private delivery and owner/admin gating before merge.

Root-cause cluster
Relationship: fixed_by_candidate
Canonical: #97984
Summary: This PR is the candidate implementation for the open channel-friendly reauth issue; the merged auth guidance and Codex native-control PRs are related context but do not replace it.

Members:

Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything.

Merge readiness
Overall: 🦪 silver shellfish
Proof: 🦪 silver shellfish
Patch quality: 🐚 platinum hermit
Result: blocked until stronger real behavior proof is added.

Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch.

Rank-up moves:

  • Attach current-head Telegram Desktop proof showing private /login codex device-code delivery and group/topic no-code guidance with private details redacted.
  • [P1] Get maintainer approval for the public auth-login SDK subpath, or demote it before merge.

Proof guidance:

  • [P1] Needs stronger real behavior proof before merge: A Mantis recording exists for an older candidate SHA, but current head 0063b6ec9a361d26b7e87833bc735b88d64f74ca still needs after-fix proof of private code delivery and group/topic no-code guidance. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, the PR author or someone with repository write access can comment @clawsweeper re-review.

Mantis proof suggestion
Native Telegram proof is the clearest way to verify current-head private device-code delivery and no-code group/topic guidance. A maintainer can ask Mantis to capture proof by posting this exact PR comment:

@openclaw-mantis telegram desktop proof: verify current head 0063b6ec9a361d26b7e87833bc735b88d64f74ca sends /login codex device codes only in private chat and group/topic invocations show DM guidance without a code.

Risk before merge

  • [P1] The new public openclaw/plugin-sdk/provider-auth-login-flow-runtime subpath can become a supported credential-writing Plugin SDK contract unless maintainers explicitly accept or demote it.
  • [P1] The PR starts OpenAI device-code auth and persists OAuth profiles from channel surfaces, so owner/admin gating, pinned-profile behavior, and stale lockout clearing need maintainer-visible approval before merge.
  • [P1] The only visible Telegram proof is for an older candidate SHA; current head still needs proof that private DMs show the device code while groups/topics show no-code DM guidance.

Maintainer options:

  1. Approve SDK Contract And Refresh Proof
    Before merge, maintainers can explicitly accept the public auth-login SDK subpath and require current-head Telegram Desktop proof for the privacy-sensitive flow.
  2. Demote The Login Helper
    If this should not become third-party Plugin SDK API, move the helper behind an internal or bundled-only seam while keeping the channel behavior intact.
  3. Pause Under The Reauth Issue
    If the credential-pairing contract is not ready, keep the canonical issue open and pause this PR until product/security direction is settled.

Next step before merge

  • [P1] Human maintainer review is needed for the public SDK/auth contract and current-head Telegram proof; there is no narrow autonomous repair to queue yet.

Security
Needs attention: The diff is security-sensitive because it exposes a public auth-login SDK surface and channel-triggered credential pairing; maintainer approval and current-head privacy proof are still needed.

Review details

Best possible solution:

Land only after maintainers either approve or demote the auth-login SDK surface and attach current-head Telegram proof for private code delivery plus group/topic no-code guidance.

Do we have a high-confidence way to reproduce the issue?

Not applicable as a bug reproduction; this is a feature PR for channel-friendly Codex reauth. Source inspection confirms current main lacks the requested /login codex channel command path.

Is this the best way to solve the issue?

Unclear: the implementation is a plausible narrow solution, but the best fix depends on maintainer acceptance of the public auth-login SDK surface and fresh proof of the Telegram privacy behavior.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against db97bc1e4fcf.

Label changes

Label changes:

  • add rating: 🦪 silver shellfish: Overall readiness is 🦪 silver shellfish; proof is 🦪 silver shellfish and patch quality is 🐚 platinum hermit.
  • remove rating: 🦐 gold shrimp: Current PR rating is rating: 🦪 silver shellfish, so this older rating label is no longer current.

Label justifications:

  • P1: The PR changes credential-pairing and auth recovery for channel/gateway users, with security-sensitive private-code delivery requirements.
  • merge-risk: 🚨 compatibility: Adding a public Plugin SDK subpath can create a lasting API contract for existing and future plugins.
  • merge-risk: 🚨 auth-provider: The new /login codex flow starts OpenAI device-code auth and writes OAuth profiles used by agent sessions.
  • merge-risk: 🚨 security-boundary: Device-code material must stay restricted to owner/private contexts, and current-head Telegram proof is still missing.
  • rating: 🦪 silver shellfish: Overall readiness is 🦪 silver shellfish; proof is 🦪 silver shellfish and patch quality is 🐚 platinum hermit.
  • status: 📣 needs proof: The PR needs real behavior proof before ClawSweeper can clear the contributor ask. Needs stronger real behavior proof before merge: A Mantis recording exists for an older candidate SHA, but current head 0063b6ec9a361d26b7e87833bc735b88d64f74ca still needs after-fix proof of private code delivery and group/topic no-code guidance. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, the PR author or someone with repository write access can comment @clawsweeper re-review.
  • proof: 🎥 video: Contributor real behavior proof includes video or recording evidence. A Mantis recording exists for an older candidate SHA, but current head 0063b6ec9a361d26b7e87833bc735b88d64f74ca still needs after-fix proof of private code delivery and group/topic no-code guidance.
  • mantis: telegram-visible-proof: Mantis should capture Telegram visible proof. The PR changes visible Telegram /login codex replies and private-vs-group behavior that a short Telegram Desktop recording can demonstrate.
Evidence reviewed

PR surface:

Source +699, Tests +716, Docs +3, Config +8, Generated 0, Other +1. Total +1427 across 30 files.

View PR surface stats
Area Files Added Removed Net
Source 14 733 34 +699
Tests 9 720 4 +716
Docs 2 3 0 +3
Config 2 8 0 +8
Generated 1 2 2 0
Other 2 4 3 +1
Total 30 1470 43 +1427

Security concerns:

  • [medium] Public auth-login SDK surface needs maintainer approval — package.json:1252
    The package export can let plugin callers depend on a helper that starts provider login and persists auth profiles, so maintainers should explicitly approve or demote that surface before merge.
    Confidence: 0.84
  • [medium] Current-head Telegram privacy proof is stale — extensions/telegram/src/bot-native-commands.ts:1255
    The visible proof predates the current head, so it does not prove that this exact branch keeps device codes in private chat and shows no-code guidance in groups/topics.
    Confidence: 0.88

What I checked:

  • Current main lacks channel login command: Current main has terminal-only OAuth refresh guidance and no commands-login.ts handler or /login codex command registration. (src/auto-reply/reply/agent-runner-execution.ts:982, db97bc1e4fcf)
  • Shared login handler gates owner/private delivery: The PR handler rejects non-owner/admin callers, rejects non-private contexts, requires immediate block delivery before polling, and passes a provider-scoped pinned profile when present. (src/auto-reply/reply/commands-login.ts:200, 0063b6ec9a36)
  • Telegram native path rejects groups before code emission: The Telegram native /login path checks configured owner status and returns DM guidance for groups before resolving or running the device-code flow. (extensions/telegram/src/bot-native-commands.ts:1255, 0063b6ec9a36)
  • Credential-writing helper is exported as Plugin SDK surface: The PR adds ./plugin-sdk/provider-auth-login-flow-runtime to package exports and SDK entrypoint inventory, making the login helper a public plugin-facing subpath unless maintainers accept that contract. (package.json:1252, 0063b6ec9a36)
  • Login helper runs OpenAI device-code auth: The lazy runtime helper fixes provider to OpenAI, method to device-code, sends verification text through the provided channel sender, and calls runModelsAuthLoginFlow with isRemote: true. (src/plugin-sdk/provider-auth-login-flow-runtime.ts:138, 0063b6ec9a36)
  • OpenAI provider emits verification URL before polling: The OpenAI device-code auth method sends verificationUrl, userCode, and expiry to the prompter before polling for authorization, so channel delivery must be immediate and private. (extensions/openai/openai-chatgpt-device-code.ts:275, 0063b6ec9a36)

Likely related people:

  • mbelinky: Authored the merged OAuth reauth-failure surfacing PR that this channel login flow extends from terminal guidance into channel pairing. (role: auth failure reply contributor; confidence: high; commits: b77db8c0b610; files: src/auto-reply/reply/agent-runner-execution.ts, src/agents/auth-profiles/oauth-refresh-failure.ts)
  • eleqtrizit: Recent merged Codex native-control authorization work defines the owner/operator.admin boundary this PR says it preserves. (role: adjacent auth-boundary contributor; confidence: medium; commits: 72f837a4a478, e87b0df67575; files: extensions/codex/src/commands.test.ts, extensions/codex/src/conversation-binding.test.ts, src/auto-reply/command-auth.owner-default.test.ts)
  • jalehman: Assigned on the PR and authored follow-up commits that shared the login helper and preserved plugin command precedence after review feedback. (role: likely follow-up owner; confidence: medium; commits: f75e966f5a87, 06bd031d16b4; files: src/plugin-sdk/provider-auth-login-flow-runtime.ts, src/auto-reply/reply/commands-login.ts, src/plugins/commands.test.ts)
  • obviyus: Authored the current head refactor simplifying the Codex login follow-up, so they are a practical reviewer for the final branch shape. (role: recent branch contributor; confidence: medium; commits: 0063b6ec9a36; files: src/plugin-sdk/provider-auth-login-flow-runtime.ts, extensions/telegram/src/bot-native-commands.ts)
What the crustacean ranks mean
  • 🦀 challenger crab: rare, exceptional readiness with strong proof, clean implementation, and convincing validation.
  • 🦞 diamond lobster: very strong readiness with only minor maintainer review expected.
  • 🐚 platinum hermit: good normal PR, likely mergeable with ordinary maintainer review.
  • 🦐 gold shrimp: useful signal, but proof or patch confidence is still limited.
  • 🦪 silver shellfish: thin signal; proof, validation, or implementation needs work.
  • 🧂 unranked krab: not merge-ready because proof is missing/unusable or there are serious correctness or safety concerns.
  • 🌊 off-meta tidepool: rating does not apply to this item.

Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

How this review workflow works
  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

@openclaw-barnacle openclaw-barnacle Bot removed the triage: needs-pr-context Candidate: external PR body lacks required problem context or evidence. label Jun 30, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

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: be2d215c7a

ℹ️ 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 extensions/telegram/src/bot-native-commands.ts Outdated
Comment thread src/auto-reply/commands-registry.shared.ts
Comment thread src/auto-reply/reply/agent-runner-execution.ts Outdated
Comment thread src/plugins/command-registration.ts Outdated
Comment thread extensions/telegram/src/bot-native-commands.ts Outdated
Comment thread extensions/telegram/src/bot-native-commands.ts Outdated
@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. mantis: telegram-visible-proof Mantis should capture Telegram visible proof. labels Jun 30, 2026
@clawsweeper
clawsweeper Bot temporarily deployed to qa-live-shared June 30, 2026 03:58 Inactive
@jalehman

Copy link
Copy Markdown
Contributor

Sick

@jalehman jalehman self-assigned this Jun 30, 2026
@openclaw-barnacle openclaw-barnacle Bot added the docs Improvements or additions to documentation label Jun 30, 2026
@clawsweeper clawsweeper Bot removed rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. mantis: telegram-visible-proof Mantis should capture Telegram visible proof. labels Jun 30, 2026
@openclaw-mantis

openclaw-mantis Bot commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Mantis Telegram Desktop Proof

Summary: Mantis captured native Telegram Desktop before/after GIF evidence for the /login codex Telegram command.

Main screenshot This PR screenshot
Baseline native Telegram Desktop screenshot Candidate native Telegram Desktop screenshot
Main This PR
Baseline native Telegram Desktop proof GIF Candidate native Telegram Desktop proof GIF

Motion-trimmed clips:

Raw QA files: https://artifacts.openclaw.ai/mantis/telegram-desktop/pr-98006/run-28425097948-1/index.json

@openclaw-barnacle openclaw-barnacle Bot added the app: web-ui App: web-ui label Jun 30, 2026
@clawsweeper clawsweeper Bot added proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. mantis: telegram-visible-proof Mantis should capture Telegram visible proof. P1 High-priority user-facing bug, regression, or broken workflow. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. merge-risk: 🚨 auth-provider 🚨 May break OAuth, tokens, provider routing, model choice, or credentials. labels Jun 30, 2026
@clawsweeper clawsweeper Bot added the mantis: telegram-visible-proof Mantis should capture Telegram visible proof. label Jun 30, 2026
@clawsweeper
clawsweeper Bot temporarily deployed to qa-live-shared June 30, 2026 06:34 Inactive
@clawsweeper clawsweeper Bot added the proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. label Jun 30, 2026
@100yenadmin

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper clawsweeper Bot added proof: 🎥 video Contributor real behavior proof includes video or recording evidence. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. and removed proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. labels Jun 30, 2026
@100yenadmin

Copy link
Copy Markdown
Contributor Author

@openclaw-mantis telegram desktop proof: current head 1abfc15 needs complete /login codex privacy proof. Please capture all of these visible behaviors in the candidate run: (1) private Telegram DM /login codex emits the OpenAI verification URL/user code only in the private chat, with secret/code material redacted in the public artifact if required; (2) Telegram group /login codex shows DM/private-chat guidance and does not display a verification URL or user code; (3) Telegram topic/thread /login codex shows DM/private-chat guidance and does not display a verification URL or user code. Denial-only proof is insufficient for ClawSweeper.

@jalehman
jalehman force-pushed the codex/channel-login-97984 branch from dcff6db to b8a96f2 Compare June 30, 2026 19:29
@clawsweeper clawsweeper Bot added rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. and removed rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. labels Jun 30, 2026
@obviyus
obviyus force-pushed the codex/channel-login-97984 branch from b8a96f2 to 0063b6e Compare July 1, 2026 16:43
@clawsweeper clawsweeper Bot removed the rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. label Jul 1, 2026
@obviyus

obviyus commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Real Telegram E2E proof on PR head 0063b6e using a temp gateway from this checkout + mock OpenAI.

Default test bot was unavailable due a duplicate getUpdates poller, so I reran with an alternate test bot token. Secrets, account ids, chat ids, bot names, message ids, and auth codes are omitted/redacted.

Passed:

  • Private DM /login codex: device-code response delivered only in DM.
  • Group /login codex: safety reply returned; no device URL/code leaked.
  • Topic/thread /login codex: explicit topic send returned the same safety reply; no device URL/code leaked.

Cleanup: temp gateway/mock stopped; no local pollers left running.

@obviyus

obviyus commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Landed via rebase onto main.

  • Scoped test: node scripts/run-vitest.mjs extensions/telegram/src/bot-native-commands.login.test.ts
  • Live proof: real Telegram DM, group, and topic/thread /login codex checks passed with auth details redacted
  • Changelog: skipped; release changelog is generated/release-owned
  • Land commit: 9f7a9abee54a604d031e4a17a6c69501c3e2a778
  • Merge commit: 53fe2e4bc3ca7e66580f6acc6445886b68b8ad10

Thanks @100yenadmin!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agents Agent runtime and tooling app: web-ui App: web-ui channel: telegram Channel integration: telegram commands Command implementations docs Improvements or additions to documentation extensions: qa-lab gateway Gateway runtime mantis: telegram-visible-proof Mantis should capture Telegram visible proof. merge-risk: 🚨 auth-provider 🚨 May break OAuth, tokens, provider routing, model choice, or credentials. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. merge-risk: 🚨 security-boundary 🚨 May affect sandboxing, authorization, credentials, or sensitive data. P1 High-priority user-facing bug, regression, or broken workflow. proof: 🎥 video Contributor real behavior proof includes video or recording evidence. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. scripts Repository scripts size: XL status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants