Skip to content

update docs sidebar to auto expand - #1

Merged
adriandlam merged 1 commit into
mainfrom
fix-sidebar-docs
Oct 23, 2025
Merged

update docs sidebar to auto expand#1
adriandlam merged 1 commit into
mainfrom
fix-sidebar-docs

Conversation

@adriandlam

Copy link
Copy Markdown
Contributor

No description provided.

@vercel

vercelBot commented Oct 23, 2025

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
example-nextjs-workflow-turbopackReadyReadyPreviewCommentOct 23, 2025 10:13am
example-nextjs-workflow-webpackReadyReadyPreviewCommentOct 23, 2025 10:13am
example-workflowReadyReadyPreviewCommentOct 23, 2025 10:13am
workbench-nitro-workflowReadyReadyPreviewCommentOct 23, 2025 10:13am
workflow-docsReadyReadyPreviewCommentOct 23, 2025 10:13am

@adriandlam
adriandlam merged commit dcb5781 into mainOct 23, 2025
20 checks passed
@adriandlam
adriandlam deleted the fix-sidebar-docs branch October 23, 2025 10:22
TooTallNate added a commit that referenced this pull request May 11, 2026
- Release the locked connection before makeWorkerUtils() so the
bootstrap can't deadlock against the same pool when maxPoolSize is
small (Copilot review #1). Achieved by replicating graphile-worker's
installSchema DDL ourselves under the lock; once the schema exists
graphile-worker's own installSchema is a no-op.
- Add a unit test that asserts the lock-ordering: pool.connect -> BEGIN
-> pg_advisory_xact_lock -> CREATE SCHEMA -> COMMIT -> release ->
makeWorkerUtils (Copilot review #2).
karthikscale3 added a commit that referenced this pull request May 14, 2026
…faster tests
Address review feedback on the VM-idle counter approach:
1. Watchdog leak + double-fire in `fireUnconsumedWhenVmIdle`. Each
recursive re-entry (observer fired but VM still busy) used to leak
the previous 5s watchdog timer. When the leaked watchdog later fired,
`fire()` had no idempotency guard beyond a version check that was
unchanged across recursions, so `onUnconsumedEvent` could be called
multiple times. Now we `clearTimeout` the previous watchdog at the
top of `fireUnconsumedWhenVmIdle`, and gate `fire()` on
`pendingUnconsumedCheck !== null` so stale timers, observers, or
recursion paths can never double-fire.
2. Consolidate every VM-bound delivery through `trackVmDelivery`.
`step_completed`, `step_failed`, `hook_received`, `hook_conflict`,
and `wait_completed` all chain a `resolve()`/`reject()` into the VM
and so all need both counters covering the body-reaction window.
Previously only the two hot-path deliveries did; the others were
latent foot-guns that would have reintroduced the original race
the next time someone built a `for await` flow over them.
3. Wire `isVmIdle` / `onceVmIdle` into the test `setupWorkflowContext`
helpers in step / hook / sleep / abort / async-deserialization /
hook-sleep-interaction tests, and update `events-consumer.test.ts`'s
default options to provide an always-idle harness. Without this,
tests fell through to the 5s watchdog-only path and added ~15s to
every CI run of core unit tests. The test suite is now ~4s instead
of ~10s+.
4. New unit tests in `events-consumer.test.ts` for
`fireUnconsumedWhenVmIdle`: fast path, slow path, recursion path,
the recursion-doesn't-leak-watchdogs regression (the bug from #1),
watchdog fallback, and subscribe-cancellation race.
5. `trackVmDelivery` now chains the body through `ctx.promiseQueue`
internally so callers don't reimplement the queue plumbing. Counter
increments still happen synchronously at call time so a burst of
deliveries observed in the same `consume()` pass all add up before
any decrement runs. Errors in one body don't poison the queue for
the next delivery.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for freeto 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

@adriandlam