Skip to content

Update @d-zero/* packages and adopt using for Lanes/raceWithTimeout - #308

Merged
YusukeHirao merged 5 commits into
devfrom
worktree-wobbly-cooking-sunrise
Aug 14, 2026
Merged

Update @d-zero/* packages and adopt using for Lanes/raceWithTimeout#308
YusukeHirao merged 5 commits into
devfrom
worktree-wobbly-cooking-sunrise

Conversation

@YusukeHirao

Copy link
Copy Markdown
Member

Summary

  • Update 9 @d-zero/* runtime dependencies (dealer, shared, page-cluster, beholder, fs, readtext, roar, google-auth, google-sheets) to their latest fixed versions, released today with Explicit Resource Management (using/Symbol.dispose) support.
  • Also bump crawler's own puppeteer pin (25.3.0 → 25.5.0) to match what @d-zero/beholder@4.2.3 now requires, avoiding a duplicate puppeteer-core install with structurally incompatible Page types.
  • Adopt using for the two Lanes lifecycles (cli's analyze command, report-google-sheets) now that @d-zero/dealer@1.11.0 implements Symbol.dispose on Lanes, replacing the manual try/finally + lanes?.close() pattern.
  • Replace the hand-rolled Promise.race + setTimeout + clearTimeout timeout-race pattern in fetchDestination, closeBrowserSafely, and ArchiveAccessor#runClose with @d-zero/shared's new raceWithTimeout helper.
  • Dedupe query's local mkdtempDisposable implementation in favor of @d-zero/shared's new mkdtempDisposable helper.
  • Update the ARCHITECTURE.md invariant on Promise.race timer cleanup to point at raceWithTimeout as the default.

Test plan

  • yarn build (with NX_WORKSPACE_ROOT_PATH set for the worktree)
  • yarn lint
  • yarn test (634 test files, 4570 tests passed, 4 pre-existing skips)

Bump dealer to 1.11.0, shared to 0.23.0, page-cluster to 0.6.0, beholder
to 4.2.3, fs to 0.2.7, readtext to 1.2.1, roar to 2.2.1, google-auth to
0.7.6, and google-sheets to 0.10.0 across all consuming workspaces.

Also bump crawler's own puppeteer pin from 25.3.0 to 25.5.0 to match
what beholder@4.2.3 now requires, avoiding a duplicate puppeteer-core
install with structurally incompatible Page types.
Replace the hand-rolled Promise.race + setTimeout + clearTimeout pattern
in fetchDestination, closeBrowserSafely, and ArchiveAccessor#runClose
with @d-zero/shared's raceWithTimeout, now that dealer/shared ship it.

Update the ARCHITECTURE.md invariant on Promise.race timer cleanup to
point at raceWithTimeout as the default instead of the manual pattern.
Drop the local mkdtempDisposable helper in externalSortUrls now that
@d-zero/shared ships the same disposable-temp-dir pattern, and adapt
call sites to its single-prefix signature.
Replace the manual try/finally lanes?.close() around report generation
with `using`, now that dealer's Lanes implements Symbol.dispose. The
using declaration is scoped to a nested block ending before the
post-report console output, matching the prior close-before-write
ordering.

Update the spec's close() spy to Symbol.dispose to match.
Replace the manual try/finally lanes?.close() with `using`, now that
dealer's Lanes implements Symbol.dispose. The using declaration is
scoped to a nested block ending before nitpicker.write(), matching the
prior close-before-write ordering.

Update the spec's Lanes mock to implement Symbol.dispose instead of a
dead close() method.
@YusukeHirao
YusukeHirao merged commit d7f2843 into dev Aug 14, 2026
11 checks passed
@YusukeHirao
YusukeHirao deleted the worktree-wobbly-cooking-sunrise branch August 14, 2026 10:41
Sign up for free to 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