Skip to content

Browser: add ChatGPT Scheduled task controls - #322

Closed
derekszen wants to merge 1 commit into
steipete:mainfrom
derekszen:codex/scheduled-task-control
Closed

Browser: add ChatGPT Scheduled task controls#322
derekszen wants to merge 1 commit into
steipete:mainfrom
derekszen:codex/scheduled-task-control

Conversation

@derekszen

Copy link
Copy Markdown
Contributor

Summary

  • add --browser-scheduled-task to submit prompts through ChatGPT's /scheduled composer and verify the Scheduled-specific conversation handoff
  • add --browser-pin-conversation to pin the resulting source conversation and fail closed unless the sidebar exposes the verified Unpin state
  • handle Scheduled confirmations that omit the normal finished-action bar and replace temporary WEB: conversation IDs with canonical IDs
  • force safe Scheduled defaults: skip the model picker, disable Deep Research/follow-ups, keep the source conversation, and reject non-/scheduled URLs at both CLI and browser-library boundaries
  • persist pin results in browser session metadata and document/manual-test the workflow

Validation

  • pnpm run check
  • pnpm test (1,567 passed, 43 skipped)
  • pnpm run docs:check
  • pnpm run build
  • live manual smoke with a persistent manual-login profile: created five monthly Scheduled tasks, verified all five active task rows, and verified all five source conversations exposed the already-pinned Unpin state

Notes

Normal browser runs retain the existing strict action-bar completion gate. The stable-text fallback is scoped only to scheduledTaskMode, after the /scheduled composer has handed off to a conversation and while no stop control or strong thinking activity is present.

@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. P2 Normal priority bug or improvement with limited blast radius. labels Jul 18, 2026
@clawsweeper

clawsweeper Bot commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs real behavior proof before merge. Reviewed August 2, 2026, 2:20 PM ET / 18:20 UTC.

ClawSweeper review

What this changes

This PR adds --browser-scheduled-task to create ChatGPT Scheduled tasks through browser automation and --browser-pin-conversation to pin the resulting source conversation after a run.

Merge readiness

Blocked until real behavior proof is added - 9 items remain

Keep this PR open for human review. It adds a new public browser workflow, but the unchanged branch still treats any stable Scheduled-mode assistant text as success without verifying that ChatGPT created an active task; the claimed five-task smoke also has no inspectable after-fix artifact. Likely related people: Peter Steinberger (high confidence, current browser completion path), StartupBros (medium confidence, prior completion-gate work), and Derek Zeng (medium confidence, prior merged browser fixes).

Priority: P2
Reviewed head: ba8c00799b1f48f639476d363ede1970740fb80b
Owner decision: Required. See Decision needed.

Review scores

Measure Result What it means
Overall readiness 🧂 unranked krab (1/6) The patch has focused tests and green checks, but a P1 false-success path and missing inspectable real-behavior proof make it not ready to merge.
Proof confidence 🧂 unranked krab (1/6) Needs real behavior proof before merge: The PR describes a five-task manual smoke but provides no inspectable redacted task-list capture, terminal/session output, recording, or runtime log proving after-fix creation, handoff, and pinning; add proof and update the PR body for re-review, redacting private data.
Patch quality 🦪 silver shellfish (2/6) 1 actionable review finding remain.

Verification

Check Result Evidence
Real behavior Needs proof Needs real behavior proof before merge: The PR describes a five-task manual smoke but provides no inspectable redacted task-list capture, terminal/session output, recording, or runtime log proving after-fix creation, handoff, and pinning; add proof and update the PR body for re-review, redacting private data.
Evidence reviewed 5 items Scheduled completion accepts unverified text: The changed completion branch returns success when a Scheduled-mode assistant response remains stable, has no visible stop control, and is not strongly thinking; it does not inspect ChatGPT’s Scheduled task list or an active task row before returning.
No task-list verification surface in the branch: The PR’s Scheduled references cover URL selection, prompt commit, and stable response completion; the new pin action only verifies sidebar pin state. No changed source action verifies an active Scheduled task after the handoff.
Current main deliberately requires positive completion evidence: Current main’s terminal gate requires a visible completion bar, no stop control, no strong thinking activity, repeated stable observations, and a stability interval before accepting a normal browser response; the PR introduces a narrower Scheduled exception to that safety boundary.
Findings 1 actionable finding [P1] Verify active Scheduled task before reporting success
Security None None.

How this fits together

Oracle’s browser engine configures and drives a ChatGPT Chrome session, waits for a completed assistant turn, then saves the resulting conversation and runtime metadata. This PR adds a Scheduled-page submission mode and an optional sidebar-pinning step after completion.

flowchart LR
  CLI[Browser CLI flags] --> Config[Browser configuration]
  Config --> Scheduled[ChatGPT Scheduled page]
  Scheduled --> Submit[Prompt submission and handoff]
  Submit --> Completion[Assistant completion check]
  Completion --> Verify[Verify active Scheduled task]
  Verify --> Pin[Optional conversation pin]
  Pin --> Metadata[Saved session metadata]
Loading

Decision needed

Question Recommendation
Should Oracle support ChatGPT Scheduled-task creation and conversation pinning as stable public browser CLI controls once the task lifecycle can be verified end to end? Sponsor a verified Scheduled workflow: Keep the flags, require active-task verification plus redacted live proof, and review the resulting browser-support contract.

Why: This is a new operator-facing workflow and configuration surface; source review can identify unsafe success criteria but cannot determine whether maintainers want to own this ChatGPT UI-dependent contract.

Before merge

  • Add real behavior proof - Needs real behavior proof before merge: The PR describes a five-task manual smoke but provides no inspectable redacted task-list capture, terminal/session output, recording, or runtime log proving after-fix creation, handoff, and pinning; add proof and update the PR body for re-review, redacting private data.
  • Verify active Scheduled task before reporting success (P1) - The Scheduled-mode exception accepts any stable assistant text without checking the Scheduled page for an active task. ChatGPT can produce a confirmation-style response while task creation fails or has not completed, so this can return success and pin a conversation for a task that does not exist. Verify the corresponding active task row before completing the run. This remains unfixed from the prior review at the same head.
  • Resolve merge risk (P1) - Merging can report Scheduled-task success and proceed to pin a conversation after ChatGPT emits stable confirmation text even if no active recurring task was created.
  • Resolve merge risk (P1) - The new CLI flags create a public browser-automation contract, but the thread contains no maintainer confirmation of the intended long-term support boundary.
  • Resolve merge risk (P1) - The supplied validation claim cannot be audited because no redacted live artifact shows the created task row, source-conversation handoff, and verified pin state together.
  • Improve patch quality - Verify an active Scheduled task row before returning success.
  • Improve patch quality - Add a redacted live artifact that shows task creation, active-row verification, source conversation handoff, and verified pinning.
  • Improve patch quality - Update the PR body after adding proof; if review does not rerun, ask a maintainer to comment @clawsweeper re-review.

Findings

  • [P1] Verify active Scheduled task before reporting success — src/browser/actions/assistantResponse.ts:678-684
Agent review details

Security

None.

Review metrics

Metric Value Why it matters
Changed surface 23 files affected; 626 added, 39 removed The feature crosses CLI parsing, browser lifecycle, session metadata, docs, and tests, so its end-to-end success boundary needs review.
Focused coverage 4 browser/CLI test files changed or added The tests cover configuration and DOM-state helpers but do not prove active Scheduled-task creation in a live ChatGPT session.

Merge-risk options

Maintainer options:

  1. Verify task activation before merge (recommended)
    Add a bounded Scheduled-page check for the newly active task before accepting success, cover both success and missing-task behavior, and provide redacted live proof.
  2. Pause pending browser-contract direction
    Defer this UI-dependent public workflow if maintainers do not want to support the ChatGPT Scheduled and pinning surfaces as CLI contract.

Technical review

Best possible solution:

Keep Scheduled mode fail-closed until it verifies an active task row associated with the submitted task before reporting success, then attach redacted live evidence showing creation, task-list verification, canonical conversation handoff, and pinning.

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

No high-confidence live reproduction artifact is available. Source inspection does establish the problematic path: stable response text can complete Scheduled mode without querying an active Scheduled-task row.

Is this the best way to solve the issue?

No. The proposed stable-text fallback may be useful for ChatGPT’s different confirmation UI, but it must be paired with explicit active-task verification rather than treating assistant prose as evidence that the task exists.

Full review comments:

  • [P1] Verify active Scheduled task before reporting success — src/browser/actions/assistantResponse.ts:678-684
    The Scheduled-mode exception accepts any stable assistant text without checking the Scheduled page for an active task. ChatGPT can produce a confirmation-style response while task creation fails or has not completed, so this can return success and pin a conversation for a task that does not exist. Verify the corresponding active task row before completing the run. This remains unfixed from the prior review at the same head.
    Confidence: 0.97

Overall correctness: patch is incorrect
Overall confidence: 0.97

AGENTS.md: found and applied where relevant.

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

Labels

Label justifications:

  • P2: This is a bounded browser feature with a concrete false-success risk, but no evidence of an urgent existing-user outage.
  • merge-risk: 🚨 other: The new workflow can falsely report task creation despite no verified active Scheduled task, a merge risk not covered by the specialized label categories.
  • rating: 🧂 unranked krab: Overall readiness is 🧂 unranked krab; proof is 🧂 unranked krab and patch quality is 🦪 silver shellfish.
  • status: 📣 needs proof: The PR needs real behavior proof before ClawSweeper can clear the contributor ask. Needs real behavior proof before merge: The PR describes a five-task manual smoke but provides no inspectable redacted task-list capture, terminal/session output, recording, or runtime log proving after-fix creation, handoff, and pinning; add proof and update the PR body for re-review, redacting private data.

Evidence

What I checked:

  • Scheduled completion accepts unverified text: The changed completion branch returns success when a Scheduled-mode assistant response remains stable, has no visible stop control, and is not strongly thinking; it does not inspect ChatGPT’s Scheduled task list or an active task row before returning. (src/browser/actions/assistantResponse.ts:678, ba8c00799b1f)
  • No task-list verification surface in the branch: The PR’s Scheduled references cover URL selection, prompt commit, and stable response completion; the new pin action only verifies sidebar pin state. No changed source action verifies an active Scheduled task after the handoff. (src/browser/actions/pinConversation.ts:7, ba8c00799b1f)
  • Current main deliberately requires positive completion evidence: Current main’s terminal gate requires a visible completion bar, no stop control, no strong thinking activity, repeated stable observations, and a stability interval before accepting a normal browser response; the PR introduces a narrower Scheduled exception to that safety boundary. (src/browser/actions/assistantResponse.ts:100, 5daa6ce8c352)
  • Feature-history routing: Recent browser completion and prompt-submission maintenance is concentrated around Peter Steinberger, with earlier terminal-gate hardening commits by StartupBros and prior merged browser fixes by Derek Zeng. (src/browser/actions/assistantResponse.ts:100, 5daa6ce8c352)
  • Real behavior proof is not inspectable: The PR body reports five manually created monthly tasks and verified pins, but the supplied PR discussion contains no redacted terminal output, rendered session, task-list capture, recording, or runtime logs showing the after-fix path.

Likely related people:

  • Peter Steinberger: Current main attributes the terminal completion gate to this release commit, and recent main history shows repeated maintenance of browser completion and recovery behavior. (role: recent area contributor; confidence: high; commits: 5daa6ce8c352, dba6679e3c5f, f2f20b565a86; files: src/browser/actions/assistantResponse.ts, src/browser/actions/promptComposer.ts, src/browser/index.ts)
  • StartupBros: Repository history identifies this contributor on the earlier browser terminal-gate hardening series that established the positive completion-proof behavior this PR relaxes for Scheduled mode. (role: completion-gate contributor; confidence: medium; commits: 0f5c3cda76b5, ca91f8777ed3; files: src/browser/actions/assistantResponse.ts)
  • Derek Zeng: Merged repository history includes prior browser fixes by Derek Zeng, making them a relevant adjacent contributor beyond this proposed branch. (role: prior browser contributor; confidence: medium; files: src/browser/actions/promptComposer.ts, src/browser/index.ts)

Rating scale

Score Internal tier Crab rank Meaning
6/6 S 🦀 challenger crab Exceptional readiness
5/6 A 🦞 diamond lobster Very strong readiness
4/6 B 🐚 platinum hermit Good normal PR; ordinary maintainer review
3/6 C 🦐 gold shrimp Useful, but confidence is limited
2/6 D 🦪 silver shellfish Proof or implementation needs work
1/6 F 🧂 unranked krab Not merge-ready
N/A NA 🌊 off-meta tidepool Rating does not apply

Overall follows the weaker of proof and patch quality.
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.

Workflow

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

History

Review history (23 earlier review cycles; latest 8 shown)
  • reviewed 2026-08-01T17:03:08.010Z sha ba8c007 :: needs real behavior proof before merge. :: [P1] Verify an active Scheduled task before reporting success
  • reviewed 2026-08-01T18:19:11.021Z sha ba8c007 :: needs real behavior proof before merge. :: [P1] Verify an active Scheduled task before accepting success
  • reviewed 2026-08-01T19:46:30.655Z sha ba8c007 :: needs real behavior proof before merge. :: [P1] Verify an active Scheduled task before reporting success
  • reviewed 2026-08-01T23:23:13.798Z sha ba8c007 :: needs real behavior proof before merge. :: [P1] Verify the Scheduled task row before reporting success
  • reviewed 2026-08-02T10:21:23.103Z sha ba8c007 :: needs real behavior proof before merge. :: [P1] Verify an active Scheduled task before accepting completion
  • reviewed 2026-08-02T12:20:53.969Z sha ba8c007 :: needs real behavior proof before merge. :: [P1] Verify an active Scheduled task before accepting success
  • reviewed 2026-08-02T14:58:01.531Z sha ba8c007 :: needs real behavior proof before merge. :: [P1] Verify an active Scheduled task before reporting success
  • reviewed 2026-08-02T16:19:16.293Z sha ba8c007 :: needs real behavior proof before merge. :: [P1] Verify the active Scheduled task before reporting success

@clawsweeper clawsweeper Bot added merge-risk: 🚨 compatibility 🚨 Merging this PR could break existing users, config, migrations, defaults, or upgrades. merge-risk: 🚨 other 🚨 Merging this PR has meaningful risk outside the owned taxonomy. merge-risk: 🚨 automation 🚨 Merging this PR could break CI, automerge, proof capture, label sync, or automation. merge-risk: 🚨 availability 🚨 Merging this PR could cause crashes, hangs, restart loops, stalls, or process outages. and removed merge-risk: 🚨 compatibility 🚨 Merging this PR could break existing users, config, migrations, defaults, or upgrades. merge-risk: 🚨 other 🚨 Merging this PR has meaningful risk outside the owned taxonomy. merge-risk: 🚨 automation 🚨 Merging this PR could break CI, automerge, proof capture, label sync, or automation. merge-risk: 🚨 availability 🚨 Merging this PR could cause crashes, hangs, restart loops, stalls, or process outages. labels Jul 30, 2026
@steipete

steipete commented Aug 2, 2026

Copy link
Copy Markdown
Owner

Closing per the maintainer review and the detailed analysis already posted above. The implementation can drive the scheduled-task controls, but it does not verify the durable result in the programmatic task row. That means Oracle can report success after an interaction without proving that ChatGPT actually created or changed the scheduled task, which violates the fail-closed quality bar for browser automation.

Thank you for exploring the workflow.

@steipete steipete closed this Aug 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merge-risk: 🚨 other 🚨 Merging this PR has meaningful risk outside the owned taxonomy. P2 Normal priority bug or improvement with limited blast radius. 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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants