fix: preserve automation reliability across Hermes rebase#312
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Important Review skippedToo many files! This PR contains 439 files, which is 139 over the limit of 300. To get a review, narrow the scope: ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (139)
📒 Files selected for processing (439)
You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
React Doctor found 4 new issues in 4 files · 3 errors & 1 warning · score 83 / 100 (Needs work) · 0 fixed · vs Errors
1 warning
Reviewed by React Doctor for commit |
| @@ -101,11 +106,9 @@ export function useAutomationTriggersPage( | |||
| } | |||
|
|
|||
| triggerSubmitInFlightRef.current = true; | |||
| setSubmitError(null); | |||
| try { | |||
There was a problem hiding this comment.
React Doctor · react-hooks-js/todo (error)
This component misses React Compiler's automatic memoization & re-renders more than it should. Rewrite the flagged code so the compiler can optimize it.
Fix → Todo: (BuildHIR::lowerStatement) Handle TryStatement with a finalizer ('finally') clause
| const draft = resolveTaskCreateDraft(draftState, templateId, draftKey, createDraftWorkspaceId); | ||
|
|
||
| useEffect(() => { | ||
| setDraftState(current => { |
There was a problem hiding this comment.
React Doctor · react-hooks-js/set-state-in-effect (error)
This component misses React Compiler's automatic memoization & re-renders more than it should: Calling setState synchronously within an effect can trigger cascading renders. Rewrite the flagged code so the compiler can optimize it.
Fix → Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following:
- Update external systems with the latest state from React.
- Subscribe for updates from some external system, calling setState in a callback function when external state changes.
Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect).
| submissionRef.current = true; | ||
| setIsSubmitting(true); | ||
| setError(null); | ||
| try { |
There was a problem hiding this comment.
React Doctor · react-hooks-js/todo (error)
This component misses React Compiler's automatic memoization & re-renders more than it should. Rewrite the flagged code so the compiler can optimize it.
Fix → Todo: (BuildHIR::lowerStatement) Handle TryStatement with a finalizer ('finally') clause
| @@ -0,0 +1,23 @@ | |||
| import { z } from "zod"; | |||
|
|
|||
| const loopActionFailureSchema = z | |||
There was a problem hiding this comment.
React Doctor · react-doctor/zod-v4-no-deprecated-schema-apis (warning)
This Zod 3 schema API changed in Zod 4, so this schema can fail after the upgrade.
Fix → Switch to the Zod 4 versions: top-level factories like z.enum(), object helpers like z.strictObject(), the new z.function({ input, output }) form, and explicit key/value schemas for z.record().
Summary
Changes
Runtime and persistence
00002_schema.sqlbyte-for-byte and appends Automation's session-owned permission/token cascades as global migration00003_schema.sql.ACP and deterministic diagnostics
Automation and Web workflows
target_kindauthoritative and preserves Loop workspace identity, static inputs, and trigger input mappings through create, edit, clone, request, dispatch, and history paths.Contracts, documentation, and QA
make verifycontinue to own codegen integrity.Data and migration
permission_logandtoken_statscascades.AGH Impact Audit
workspace_idacross stores, events, API, Web caches, and SSE.Release Notes
Bug Fixes
Documentation
QA
Final Status: automated gates and four independent runtime controls pass; provider-backed judge/Clear and
consumer-saas-growthacceptance remain blocked by the Claude account session limit.Coverage: 7 planned QA sessions settled — 4 Pass and 3 Blocked by the same typed external provider boundary. Session durability/deletion, missing-workspace pruning, Task parent rollup/Loop wake, and Automation Loop targets passed.
Issues: zero new confirmed product regressions in the completed controls; one external provider blocker and one multi-page SSE architecture follow-up.
Peer review: complete post-E2E round 4 and focused lint-remediation round 5 both returned
SHIPwith zero blockers. Accepted follow-ups are auxiliary Task-read recovery eligibility, a shared settlement-publication deadline, and the per-page HTTP/1.1 SSE connection budget.Blocked / needs human: rerun the real-provider judge lifecycle, active Clear control, and full
consumer-saas-growthplaybook after the Claude session limit resets. Synthetic output cannot promote those controls.Teardown: the isolated QA manifest records
clean: true, no surviving daemon, browser, watcher, or tmux process, and a released daemon port.Full report:
2026-07-14-consumer-saas-growth.mdTest plan
make verify— fresh complete monorepo gate after the final build-graph correction, explicit exit code 0PATH— 4/4 tasks and 1,608 generated pagesmake test-e2e-runtime— complete daemon/runtime harnessmake test-e2e-web— 75/75, zero unexpected, flaky, or skipped tests after the CI remediationbunx turbo run lint typecheck test --filter=./packages/site— 50 files, 247 testsSHIP, zero blockersgit diff --check origin/main...HEADReview order