Skip to content

chore: retarget effect-utils main - #1334

Closed
schickling-assistant wants to merge 20 commits into
mainfrom
schickling/2026-06-21-effect-utils-pr805
Closed

chore: retarget effect-utils main#1334
schickling-assistant wants to merge 20 commits into
mainfrom
schickling/2026-06-21-effect-utils-pr805

Conversation

@schickling-assistant

@schickling-assistant schickling-assistant commented Jun 21, 2026

Copy link
Copy Markdown
Collaborator

Problem

LiveStore's effect-utils integration had moved through an upstream PR pin, which left the review surface and generated artifact handling stale once effect-utils was available from the default main ref.

Goal

Retarget LiveStore's effect-utils inputs back to default/main authority refs while keeping the resolved locks on the intended main commit, and make the generated pnpm install contract clearly reviewable as generated output.

Decisions

  • Keep authority inputs on default refs: megarepo.kdl uses overengineeringstudio/effect-utils#main; devenv.yaml uses github:overengineeringstudio/effect-utils/main and github:overengineeringstudio/effect-utils/main?dir=nix/playwright-flake.
  • Keep lock data resolved to effect-utils main commit df396b6599157e7861a80d333e80bb2ebdfbe82f.
  • Remove the need for an exact-SHA source-policy exception by relying on default-ref policy instead.
  • Add generated provenance to pnpm-install-contract.json, including source files, regeneration/check commands, an input fingerprint, and the effect-utils lock identity.
  • Mark Genie-generated outputs in .gitattributes so GitHub collapses noisy generated diffs.

Verification

  • rg -n "schickling/2026-06-19-deps|0febc86|c733da81|582417" -S . -> no matches
  • devenv tasks run genie:check --mode before --no-tui -> passed
  • devenv tasks run mr:source-policy-check --mode before --no-tui -> passed
  • devenv tasks run mr:lock-sync-check --mode before --no-tui -> passed
  • devenv tasks run lint:full:fix --mode before --no-tui -> passed, including pre-commit check-quick
  • Commit verified locally: 1fe78a209

Complexity

No new runtime complexity. The added generator logic records existing semantic inputs and computes a deterministic fingerprint for the committed projection artifact.

Concerns

  • mr:source-policy-check verifies default-ref usage; CI has VERIFY_REACHABLE=0, so lock commit reachability is represented by the lock data rather than proven by that job.
  • The generated metadata is intentionally verbose because pnpm-install-contract.json is a committed boundary artifact.

Friction & bottlenecks

  • devenv shell evaluation took several minutes on cold runs while building/downloading Genie and megarepo tooling.
  • Genie imports generator files from a temp directory, so import.meta.url was not suitable for reading megarepo.lock; the generator now reads from process.cwd().

Follow-ups

  • None required for this PR.

References

  • effect-utils main commit: df396b6599157e7861a80d333e80bb2ebdfbe82f
Posted on behalf of @schickling
field value
agent_name ⏩ co2-rapids
agent_session_id 0344c6be-2ccd-4a8b-9652-38c14c39174a
agent_tool Codex CLI
agent_tool_version 0.141.0
agent_runtime Codex CLI 0.141.0
agent_model unknown
runtime_profile /nix/store/0q825bibhq9f4wqb2rw8d161dxsiffsi-coding-agent-runtime-profile/share/coding-agents/profile.json
skills_manifest /nix/store/k5g654riadk993gxfq0063gb27k583qn-agent-skills-corpus/share/agent-skills/manifest.json
worktree livestore/schickling/2026-06-21-effect-utils-pr805
machine dev3
tooling_profile dotfiles@0500194

@github-actions

github-actions Bot commented Jun 21, 2026

Copy link
Copy Markdown
Contributor

PR preview

Subject Status Report Details Updated
web-linearlite success web-linearlite deployed (preview) Worker: example-web-linearlite-preview.livestore.workers.dev 2026-06-25 12:06 UTC
web-todomvc success web-todomvc deployed (preview) Worker: example-web-todomvc-preview.livestore.workers.dev 2026-06-25 12:06 UTC
web-todomvc-script success web-todomvc-script deployed (preview) Worker: example-web-todomvc-script-preview.livestore.workers.dev 2026-06-25 12:06 UTC
web-todomvc-sync-cf success web-todomvc-sync-cf deployed (preview) Worker: example-web-todomvc-sync-cf-preview.livestore.workers.dev 2026-06-25 12:06 UTC
LiveStore docs preview success Docs preview deployed (livestore-docs-dev) PR aliases: pr-1334-231af9b, pr-1334 2026-06-24 13:32 UTC
Report history

PR 1334 · 2026-06-25 12:12 UTC

Subject Status Report Details Updated
web-linearlite success web-linearlite deployed (preview) Worker: example-web-linearlite-preview.livestore.workers.dev 2026-06-25 12:06 UTC
web-todomvc success web-todomvc deployed (preview) Worker: example-web-todomvc-preview.livestore.workers.dev 2026-06-25 12:06 UTC
web-todomvc-script success web-todomvc-script deployed (preview) Worker: example-web-todomvc-script-preview.livestore.workers.dev 2026-06-25 12:06 UTC
web-todomvc-sync-cf success web-todomvc-sync-cf deployed (preview) Worker: example-web-todomvc-sync-cf-preview.livestore.workers.dev 2026-06-25 12:06 UTC

PR 1334 · 2026-06-25 11:27 UTC

Subject Status Report Details Updated
web-linearlite success web-linearlite deployed (preview) Worker: example-web-linearlite-preview.livestore.workers.dev 2026-06-25 11:20 UTC
web-todomvc success web-todomvc deployed (preview) Worker: example-web-todomvc-preview.livestore.workers.dev 2026-06-25 11:20 UTC
web-todomvc-script success web-todomvc-script deployed (preview) Worker: example-web-todomvc-script-preview.livestore.workers.dev 2026-06-25 11:20 UTC
web-todomvc-sync-cf success web-todomvc-sync-cf deployed (preview) Worker: example-web-todomvc-sync-cf-preview.livestore.workers.dev 2026-06-25 11:20 UTC

PR 1334 · 2026-06-24 13:36 UTC

Subject Status Report Details Updated
LiveStore docs preview success Docs preview deployed (livestore-docs-dev) PR aliases: pr-1334-231af9b, pr-1334 2026-06-24 13:32 UTC
web-linearlite success web-linearlite deployed (preview) Worker: example-web-linearlite-preview.livestore.workers.dev 2026-06-24 13:28 UTC
web-todomvc success web-todomvc deployed (preview) Worker: example-web-todomvc-preview.livestore.workers.dev 2026-06-24 13:28 UTC
web-todomvc-script success web-todomvc-script deployed (preview) Worker: example-web-todomvc-script-preview.livestore.workers.dev 2026-06-24 13:28 UTC
web-todomvc-sync-cf success web-todomvc-sync-cf deployed (preview) Worker: example-web-todomvc-sync-cf-preview.livestore.workers.dev 2026-06-24 13:28 UTC

PR 1334 · 2026-06-23 19:51 UTC

Subject Status Report Details Updated
LiveStore docs preview success Docs preview deployed (livestore-docs-dev) PR aliases: pr-1334-0bcffaa, pr-1334 2026-06-23 19:47 UTC
web-linearlite success web-linearlite deployed (preview) Worker: example-web-linearlite-preview.livestore.workers.dev 2026-06-23 19:39 UTC
web-todomvc success web-todomvc deployed (preview) Worker: example-web-todomvc-preview.livestore.workers.dev 2026-06-23 19:39 UTC
web-todomvc-script success web-todomvc-script deployed (preview) Worker: example-web-todomvc-script-preview.livestore.workers.dev 2026-06-23 19:39 UTC
web-todomvc-sync-cf success web-todomvc-sync-cf deployed (preview) Worker: example-web-todomvc-sync-cf-preview.livestore.workers.dev 2026-06-23 19:39 UTC

PR 1334 · 2026-06-23 18:15 UTC

Subject Status Report Details Updated
LiveStore docs preview success Docs preview deployed (livestore-docs-dev) PR aliases: pr-1334-13ccae0, pr-1334 2026-06-23 18:11 UTC
web-linearlite success web-linearlite deployed (preview) Worker: example-web-linearlite-preview.livestore.workers.dev 2026-06-23 18:05 UTC
web-todomvc success web-todomvc deployed (preview) Worker: example-web-todomvc-preview.livestore.workers.dev 2026-06-23 18:05 UTC
web-todomvc-script success web-todomvc-script deployed (preview) Worker: example-web-todomvc-script-preview.livestore.workers.dev 2026-06-23 18:05 UTC
web-todomvc-sync-cf success web-todomvc-sync-cf deployed (preview) Worker: example-web-todomvc-sync-cf-preview.livestore.workers.dev 2026-06-23 18:05 UTC

PR 1334 · 2026-06-22 17:07 UTC

Subject Status Report Details Updated
LiveStore docs preview success Docs preview deployed (livestore-docs-dev) PR aliases: pr-1334-7f08be5, pr-1334 2026-06-22 17:02 UTC
web-linearlite success web-linearlite deployed (preview) Worker: example-web-linearlite-preview.livestore.workers.dev 2026-06-22 16:55 UTC
web-todomvc success web-todomvc deployed (preview) Worker: example-web-todomvc-preview.livestore.workers.dev 2026-06-22 16:55 UTC
web-todomvc-script success web-todomvc-script deployed (preview) Worker: example-web-todomvc-script-preview.livestore.workers.dev 2026-06-22 16:55 UTC
web-todomvc-sync-cf success web-todomvc-sync-cf deployed (preview) Worker: example-web-todomvc-sync-cf-preview.livestore.workers.dev 2026-06-22 16:55 UTC

PR 1334 · 2026-06-22 16:53 UTC

Subject Status Report Details Updated
web-linearlite success web-linearlite deployed (preview) Worker: example-web-linearlite-preview.livestore.workers.dev 2026-06-22 16:26 UTC
web-todomvc success web-todomvc deployed (preview) Worker: example-web-todomvc-preview.livestore.workers.dev 2026-06-22 16:26 UTC
web-todomvc-script success web-todomvc-script deployed (preview) Worker: example-web-todomvc-script-preview.livestore.workers.dev 2026-06-22 16:26 UTC
web-todomvc-sync-cf success web-todomvc-sync-cf deployed (preview) Worker: example-web-todomvc-sync-cf-preview.livestore.workers.dev 2026-06-22 16:26 UTC

PR 1334 · 2026-06-22 16:10 UTC

Subject Status Report Details Updated
LiveStore docs preview success Docs preview deployed (livestore-docs-dev) PR aliases: pr-1334-aa88b47, pr-1334 2026-06-22 16:06 UTC

PR 1334 · 2026-06-22 14:09 UTC

Subject Status Report Details Updated
LiveStore docs preview success Docs preview deployed (livestore-docs-dev) PR aliases: pr-1334-f267928, pr-1334 2026-06-22 14:05 UTC
web-linearlite success web-linearlite deployed (preview) Worker: example-web-linearlite-preview.livestore.workers.dev 2026-06-22 14:02 UTC
web-todomvc success web-todomvc deployed (preview) Worker: example-web-todomvc-preview.livestore.workers.dev 2026-06-22 14:02 UTC
web-todomvc-script success web-todomvc-script deployed (preview) Worker: example-web-todomvc-script-preview.livestore.workers.dev 2026-06-22 14:02 UTC
web-todomvc-sync-cf success web-todomvc-sync-cf deployed (preview) Worker: example-web-todomvc-sync-cf-preview.livestore.workers.dev 2026-06-22 14:02 UTC

PR 1334 · 2026-06-22 13:48 UTC

Subject Status Report Details Updated
LiveStore docs preview success Docs preview deployed (livestore-docs-dev) PR aliases: pr-1334-7f18ae1, pr-1334 2026-06-22 13:43 UTC

PR 1334 · 2026-06-22 12:50 UTC

Subject Status Report Details Updated
LiveStore docs preview success Docs preview deployed (livestore-docs-dev) PR aliases: pr-1334-226e27c, pr-1334 2026-06-22 12:47 UTC

PR 1334 · 2026-06-22 12:21 UTC

No previews were published for this commit.

PR 1334 · 2026-06-22 11:57 UTC

No previews were published for this commit.

PR 1334 · 2026-06-22 09:10 UTC

No previews were published for this commit.

PR 1334 · 2026-06-21 12:07 UTC

Subject Status Report Details Updated
LiveStore docs preview success Docs preview deployed (livestore-docs-dev) PR aliases: pr-1334-bc6681a, pr-1334 2026-06-21 12:04 UTC

@schickling
schickling marked this pull request as ready for review June 22, 2026 07:45
@schickling
schickling self-requested a review as a code owner June 22, 2026 07:45
@schickling-assistant schickling-assistant changed the title chore: anticipate effect-utils PR 805 chore: retarget effect-utils main Jun 22, 2026
schickling-assistant and others added 8 commits June 22, 2026 11:55
The pure-pnpm install used by the effect-utils retarget does not create
node_modules/.bin entries, so binaries must be resolved via the scripts/bin
PATH shims. The prior shim pass covered vitest/vite/madge/playwright but
missed:

- astro (docs build) — add scripts/bin/astro shim and call bare `astro`
  instead of `pnpm astro` in docs build/dev (pnpm <bin> bypasses the PATH shim).
- wrangler (cloudflare example build) — add scripts/bin/wrangler shim.
- perf test invoked `pnpm playwright`; switch to bare `playwright` so the
  PATH shim resolves it.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V6d1Z5y4Cuh76LQN75TXQ7
The effect-utils pnpm install task copied the genie-generated (read-only)
pnpm-install-contract.json into the task cache with a plain `cp`, so a retried
CI job running pnpm:install twice failed with `cp: ... Permission denied`.

Re-pin effect-utils to ff93cf0f (overengineeringstudio/effect-utils
schickling/2026-06-22-pnpm-contract-cp-fix, branched from the previously
pinned df396b6) which makes that copy idempotent. Ref stays `main` to satisfy
the default-ref source policy; only the locked commit/narHash move.

Validated locally: a cache-miss pnpm:install with a pre-existing read-only
contract cache copy now succeeds.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V6d1Z5y4Cuh76LQN75TXQ7
The generated contract embeds the effect-utils member commit, so re-pinning to
ff93cf0f made the committed artifact stale and failed `lint:check:genie`.
Regenerate it to match the new pin.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V6d1Z5y4Cuh76LQN75TXQ7
The pure-pnpm install (always --ignore-scripts, isolated store) breaks npm
packages that ship platform-specific prebuilt binaries:

- d2 (astro-d2 docs diagrams): the terrastruct-d2-bin postinstall is skipped,
  so provide the matching d2 0.7.1 from Nix on PATH instead.
- @parcel/watcher: the published @livestore/devtools-vite bundles it and does a
  runtime require('@parcel/watcher-<platform>') that cannot resolve from the
  isolated store. Hoist the platform packages publicly so the bundled native
  loader resolves them in example/integration vite builds.

Validated locally: example vite build succeeds and the docs astro build gets
past the d2 integration setup.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V6d1Z5y4Cuh76LQN75TXQ7
The published @livestore/devtools-vite bundles @parcel/watcher and resolves its
prebuilt platform package at runtime via require('@parcel/watcher-<platform>').
Under the pure-pnpm global virtual store that package is not reachable from the
bundle's location, so example and integration vite builds fail with
"Cannot require module ./build/Release/watcher.node".

The earlier publicHoistPattern attempt does not help: GVS resolves from each
package's own isolated closure, not a project-root hoist. Instead, inject the
@parcel/watcher platform packages directly into devtools-vite's dependency
closure via packageExtensions (optional + os/cpu-scoped), so the bundled
require resolves them. The lockfile now records these under the devtools-vite
snapshot, so a frozen install places the matching binary deterministically.

Replaces the ineffective publicHoistPattern from the previous commit.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V6d1Z5y4Cuh76LQN75TXQ7
The standalone examples declare @playwright/test 1.59.1, but their e2e tests run
against the Nix-provided Playwright browsers built for the catalog version
(1.61.0, as used by the integration suite). The mismatch made examples:test fail
with "Executable doesn't exist at .../chrome-headless-shell-1217".

Override @playwright/test to the catalog 1.61.0 for the monorepo install so the
example tests resolve the matching browser revision. The examples' own
package.json versions are left untouched so they remain standalone.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V6d1Z5y4Cuh76LQN75TXQ7
The standalone examples are hand-maintained (not genie-managed) so they stay
copyable, which let their dependency versions silently drift from the monorepo
catalog — surfaced when examples:test failed on a Playwright browser-version
mismatch (1.59.1 vs the Nix browsers built for the catalog's 1.61.0).

Rather than paper over it with a monorepo-only override, align the examples to
the catalog directly and add a guard:

- Bump every drifting example dep to its catalog version (react 19.2.7, vite
  8.0.16, typescript 6.0.3, @playwright/test 1.61.0, @vitejs/plugin-react 6.0.2,
  @tanstack/* 1.17x, tailwindcss 4.3.1, @types/*, ...). Validated example builds
  with the major bumps (vite 7->8, TS 5->6) locally.
- Remove the interim @playwright/test workspace override (no longer needed).
- Add `mono examples check-catalog` (CI gate, wired into lint:full) and
  `mono examples align-catalog` (fixer). The check reads the example manifests
  against the catalog without adding any genie files to the example dirs, so the
  examples stay standalone and copyable.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V6d1Z5y4Cuh76LQN75TXQ7
@schickling

Copy link
Copy Markdown
Collaborator

@codex pls look for regressions or behavior/logic changes

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f38188c9a4

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/@livestore/utils/src/effect/RpcClient.ts Outdated
schickling-assistant and others added 2 commits June 22, 2026 18:13
…down-ready

Aligning the examples to the catalog's vite 8 surfaced a hard build failure in
web-todomvc-redwood: rwsdk/vite (RedwoodSDK) is not compatible with vite 8's
Rolldown bundler, and the published @livestore/devtools-vite still uses vite-7
config APIs. vite 8 is not yet usable across the example plugin ecosystem.

Keep vite (7.3.1) and @vitejs/plugin-react (5.1.2) on the working line in the
examples and allowlist them in `mono examples check-catalog`, with a documented
reason and removal condition. Every other example dep stays aligned to the
catalog (react, typescript, @playwright/test, @tanstack/*, tailwindcss, ...).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V6d1Z5y4Cuh76LQN75TXQ7
`CloseEvent` is a DOM global and is undefined in non-DOM runtimes (e.g. the
Node-based sync-provider DO RPC path that uses this socket protocol). A
malformed/undecodable frame would hit the catch block and throw a
ReferenceError on `defect instanceof CloseEvent` before the intended
ClientProtocolError could be emitted. Guard with
`typeof globalThis.CloseEvent === 'function'` first.

Addresses Codex review on PR #1334.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V6d1Z5y4Cuh76LQN75TXQ7
schickling-assistant and others added 6 commits June 23, 2026 19:52
…y-liveness

Repin release/devtools-artifact.json to the fixed DevTools artifact
(dt-20260623-4684daf4). The new @livestore/devtools-vite externalizes
@parcel/watcher (bare `import * as ... from "@parcel/watcher"`) and declares
it as a dependency, instead of the old runtime
`require("@parcel/watcher-<platform>")` that crashed the dev server under
pure-pnpm GVS.

release:devtools-artifact:certify-liveness repacks the pinned source artifact
and `cp -a`-replaces tests/integration/node_modules/@livestore/devtools-vite
with it. That `cp -a` severs the package from its own dependency closure, so the
pnpm-workspace.yaml `packageExtensions` injection does not survive it. Add
@parcel/watcher (^2.5.0) as a devDependency of @local/tests-integration so the
meta package resolves directly from tests/integration/node_modules under GVS,
which is necessary for the repacked artifact's dev server to start.

Keep the @livestore/devtools-vite `packageExtensions` block: the examples and
integration-playwright jobs still install the OLD bundled npm package
(0.4.0-dev.25), so they still need it. It is removable once the fixed
devtools-vite is republished to npm (not just as a source artifact).

Document the cross-repo DevTools artifact origin and the
"devtools-vite source change -> cut new overeng artifact -> repin -> snapshot"
runbook in contributor-docs/release-workflows.md, linking the overeng VRS in
context/devtools-artifact-release/.

Refs #1334

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E58y9wCig7yrao1ZCVu1bW
The release `validate-release-plan` certify-liveness step ran raw
`playwright test web.play.ts` but never started the vite dev server
(its webServer config is commented out; the server is normally started
by run-tests.ts's viteDevServer). web.play.ts therefore connected to a
dead port and failed with ERR_CONNECTION_REFUSED — a pre-existing gap
since 0c63639. The integration-playwright (devtools) CI job passes
precisely because it routes through run-tests.ts's devtoolsTest, which
starts the server.

Route the certify through that proven path:

- run-tests.ts: add a `--web-only` option to the `devtools` command that
  scopes the run to web.play.ts (the certify only needs the web test and
  lacks browser-extension.play.ts's chrome-extension setup).
- devenv.nix: invoke `bun run-tests.ts devtools --mode headless
  --web-only` instead of raw playwright, so viteDevServer starts.
- devenv.nix: blank VITE_OTEL_EXPORTER_OTLP_ENDPOINT for the run (matches
  ci.yml's "Disable in Vite"). Now that the page actually loads it would
  otherwise POST traces to the devenv-defaulted localhost:4318, which has
  no collector in validate-release-plan and surfaces a console error that
  effect-playwright turns into a SiteError failure.
- test-commands.ts: pass webOnly: false at the `integration all` callsite
  to satisfy the new required arg.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E58y9wCig7yrao1ZCVu1bW
…sure

The certify-liveness harness replaced the installed @livestore/devtools-vite
pnpm symlink with a real directory (cp -a of the repacked tarball) at the
logical location. A real dir there is no longer realpathed into the pnpm global
virtual store, so the plugin's runtime deps (@livestore/adapter-web,
@livestore/utils) resolved by walking up tests/integration/node_modules and
bound to raw workspace TS source instead of the pinned dev.25 dist — a *severed*
closure that diverges from what ci.yml's passing test-integration-playwright
(devtools) exercises, and silently breaks the served DevTools panel boot
(web.play.ts's `window.__debugLiveStore.default` gate timing out).

Keep the symlink semantics instead: build a writable copy of the GVS integrity
dir (whose node_modules holds the dependency closure), rewrite the copied
symlinks to absolute store targets so they survive the copy, overlay only the
repacked dist + version-stamped package.json, and point the installed symlink at
that copy. The plugin then runs the REPACKED dist while resolving its deps
through an INTACT closure (GVS dist), matching the passing install. A bun
assertion verifies every dep resolves into the store, guarding against future
re-severance.

Also add a temporary, env-gated (LIVESTORE_DEVTOOLS_DIAGNOSTICS) diagnostic at
the panel boot gate that dumps the booted __debugLiveStore stores and probes the
plugin-served panel URL, so a non-green certify run is still diagnosable.
Playwright trace/screenshot are already on and uploaded as the
validate-release-plan certification artifact.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0182BfmAryicy4YUeUEMVn92
…certify

The first intact-closure pass relocated the plugin into an isolated /tmp closure
that resolved @livestore/* + vite correctly but LOST Node's walk-up to the
hoisted tests/integration/node_modules/@parcel/watcher. plugin.js imports
@parcel/watcher directly (bundled), so the vite dev server (node) crashed at
config load with ERR_MODULE_NOT_FOUND (livestore run 28101195536: closure
verified intact, then watcher not found).

Re-add @parcel/watcher to the copied closure, symlinked to the same GVS realpath
the hoisted entry points at — it native-loads its platform .node from its OWN
integrity closure, so the symlink location is irrelevant. Extend the closure
assertion to also require @parcel/watcher and to native-load it
(typeof subscribe === 'function'), and run the assertion under `node` rather
than `bun`: the dev server importing plugin.js runs under node, and node
provides the libstdc++ the watcher addon links against (bun in some runners
does not, which would false-fail the native-load check).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0182BfmAryicy4YUeUEMVn92
…-effect-utils-pr805

# Conflicts:
#	.github/workflows/deploy-prod.yml
#	.github/workflows/release.yml
#	docs/package.json
#	packages/@local/astro-tldraw/package.json
#	packages/@local/astro-twoslash-code/package.json
#	pnpm-lock.yaml
Temporary diagnostic (gated on LIVESTORE_DEVTOOLS_DIAGNOSTICS) to pinpoint why
the DevTools panel's `.default` store never boots in the release certify run.
Attaches console/pageerror/response listeners on the app page before `goto`, and
on the `.default` boot-gate timeout dumps the browser console, the filtered
network outcomes for the plugin-served panel assets + RPC, an in-browser fetch
probe of `/_livestore/static/index.js` + `.css`, and the page frames. The prior
`page.request.get` probe was a server-side fetch (always 200) and could not tell
us whether the browser's real asset loads 404 or the panel JS throws.

Remove once the certify is reliably green. See tmp/devtools-vite-followup.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0182BfmAryicy4YUeUEMVn92
@schickling-assistant

Copy link
Copy Markdown
Collaborator Author

Closing as fully superseded. effect-utils is already retargeted to the main ref on main (megarepo.lock ref main, commit newer than this branch, lockedAt 2026-07-27); the config files are byte-identical where they matter, and this branch's only remaining deltas would regress newer schema + the #1460 SQLite-contrib vendoring. Histories are unrelated (empty merge-base) — a rebase is mechanically pointless. Verified by triage.

Posted on behalf of @schickling
field value
agent_name 🎈 cl1-swell
agent_session_id 5a1e2097-a640-400a-a2b8-be55050a58b4
agent_tool Claude Code
agent_tool_version 2.1.202
agent_runtime Claude Code 2.1.202
agent_model claude-opus-4-8
runtime_profile /nix/store/393xxjd29yx4b41rsjaglp3r47q9k7s5-coding-agent-runtime-profile/share/coding-agents/profile.json
skills_manifest /nix/store/xhnp6r3s5n46kpcq182d56ib1dia1179-agent-skills-corpus/share/agent-skills/manifest.json
worktree livestore/schickling/2026-07-19-misc
machine dev3
tooling_profile dotfiles@ab9375c

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.

2 participants