fix(lobster): treat schema-default flowExpectedRevision=0 as absent for ordinary run/resume#102023
fix(lobster): treat schema-default flowExpectedRevision=0 as absent for ordinary run/resume#102023tzy-17 wants to merge 2 commits into
Conversation
|
Thanks for the contribution. I reviewed the branch, and this PR is not a good landing base for OpenClaw. Close: the underlying Lobster and cron bugs are real, but this branch is not a useful landing candidate because it bundles two unrelated fixes, has current-head validation failures, and its Lobster regression tests do not prove the reported runner path. Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. So I’m closing this PR rather than keeping an unmergeable branch open. A new narrow PR that carries only the useful part is welcome. Review detailsBest possible solution: Close this dirty branch, keep the Lobster fix in one focused parser PR, and keep cron restart catch-up repair tied to the separate cron issue or a cron-only PR. Do we have a high-confidence way to reproduce the issue? Yes, source-level: current main shows the Lobster parser can route injected flow defaults into managed mode, and the cron report has a clear stale due-slot path. I did not run a live Gateway or installed Lobster scenario during this read-only review. Is this the best way to solve the issue? No. The branch is not the best way to solve the issue because it bundles unrelated fixes and its tests/CI do not prove the Lobster behavior; the maintainable path is separate focused fixes with focused proof. Security review: Security review cleared: The diff only changes TypeScript parser/scheduler logic and colocated tests; no dependency, lockfile, CI, secret, permission, package, or supply-chain surface changed. AGENTS.md: found and applied where relevant. What I checked:
Likely related people:
Codex review notes: model internal, reasoning high; reviewed against 63192752325b. |
…h status=ok When the Gateway restarts, overdue cron jobs with lastRunStatus=ok and lastRunAtMs >= nextRunAtMs were still considered runnable, causing duplicate notifications to users. Add a check in isRunnableJob: if the job already ran successfully at or after its scheduled time, skip catchup. Fixes openclaw#101988 Co-Authored-By: Claude <[email protected]>
…or ordinary run/resume When the OpenClaw tool schema injects flowExpectedRevision=0 as a default value, ordinary run/resume calls were misrouted into managed TaskFlow mode, causing "does not accept flowId or flowExpectedRevision" errors for valid non-TaskFlow calls. Only treat flowExpectedRevision > 0 as intentional TaskFlow signal; schema default 0 means the caller did not supply this field. Fixes openclaw#102011 Co-Authored-By: Claude <[email protected]>
c8cff3b to
a8c113c
Compare
|
ClawSweeper applied the proposed close for this PR.
|
What Problem This Solves
Fixes #102011: When the OpenClaw tool schema injects
flowExpectedRevision=0as a default value, the Lobster plugin'sparseRunFlowParamsandparseResumeFlowParamstreated this as an intentional TaskFlow signal, causing ordinaryrunandresumecalls to fail with:run action does not accept flowId or flowExpectedRevisionflowExpectedRevision required when using managed TaskFlow resume modeWhy This Change Was Made
Only a positive
flowExpectedRevision(> 0) signals intentional TaskFlow mode. Schema default0means the caller did not supply this field — it should be treated as absent. The fix applies to bothparseRunFlowParamsandparseResumeFlowParams:flowExpectedRevision > 0flowExpectedRevision > 0; the validation error is also updated to require a positive valueEvidence
pnpm test extensions/lobster/src/lobster-tool.test.ts— 19 tests pass (incl. 2 new)🤖 Generated with Claude Code