Skip to content

chore: migrate Effect and Alchemy prerequisite APIs - #788

Merged
rynfar merged 9 commits into
pylonfrom
fix/effect-alchemy-prerequisite-20260924
Sep 26, 2026
Merged

rynfar merged 9 commits into
pylonfrom
fix/effect-alchemy-prerequisite-20260924

Conversation

@rynfar

@rynfar rynfar commented Sep 24, 2026 •

Copy link
Copy Markdown
Collaborator

Pylon's relay Alchemy upgrade requires Effect 4.0.0-rc.115. This moves the pinned Effect catalog from rc.112 to rc.115 and Alchemy from beta.76 to beta.79, adapts Pylon's CLI, configuration, socket, MIME, provider, and relay deployment APIs, and synchronizes the exact upstream reference tags in a separate commit. It is a prerequisite for the remaining relay portion of upstream #268; this PR does not claim that whole upstream dependency bundle is adopted.

The device hub WebSocket proxy now pumps rc.115 reader batches to scoped writers in both directions. A focused regression sends frames each way, closes one reader, and verifies both readers and writers are released. OpenCode environment parsing retains the prior exact accepted boolean literals; text generation exports strict JSON Schema under rc.115 so provider tool schemas keep rejecting excess properties. Relay deployment retains explicit apply confirmation and provides Alchemy's noninteractive internal prompt layer. No relay deployment was run.

This branch also merges the exact reviewed head of #746, which supplies Pylon’s OpenTelemetry export kill switch. Effect rc.112 exposes Config.string and rc.115 exposes Config.String, so #746 can land independently first; this branch adapts its shared OTel reader for rc.115 while retaining Pylon’s pylon-server service name. The dependency merge passed two independent reviews. Its six focused OTel test files passed 87 tests, server/shared/desktop typechecks and scoped lint/format passed, and the frozen lock install succeeded. No live collector or WSL startup was run.

The rc.115 parser stopped honoring schema-local parseOptions, which made Pylon’s explicitly strict private provider payloads and wire contracts silently strip unknown keys. A minimal pinned Effect patch restores the exact rc.112 annotation precedence; it leaves unannotated external payloads permissive. The regression tests cover direct and nested checked union/array schemas, encoding, and the rc.112 behavior when an annotation precedes or follows a check. Native compaction also exposed a deferred adapter event-worker startup race: a synchronous completion receipt could be published before the worker consumed it. Starting the scoped worker immediately preserves the original compaction recovery assertion at ProviderService.test.ts:7411 without a clock advance; the separate test near line 1393 does use TestClock.

Final CI-fix validation: six focused files passed 470 tests; server and contracts typechecks, scoped lint/format, and a frozen install using the updated patch hash passed. The parser patch was verified in the installed rc.115 runtime and against rc.112 behavior. Both independent reviewers passed the strictness fix at 09db33c; two reviewers also passed the final #746 compatibility merge at 5af5d2f. All expected CI checks passed on that final head.

Validation: affected server, contracts, shared, SSH, ACP, relay, desktop, web, mobile, and scripts typechecks passed. Focused tests passed in transport/MCP/HTTP/shared (74), CLI/lifecycle/relay/build (305, one skipped), provider/SSH (71), Git/source-control/shared/release scripts (284), and the new socket lifecycle regression (9 DeviceHubProxy tests). Scoped lint passed; relay deploy --help parsed without planning/applying. Independent reviews covered core transport/lifecycle and CLI/provider/Alchemy; both passed final head. No live relay apply, real device WebSocket, or full Electron runtime launch was performed.

Reference provenance: effect@4.0.0-rc.115 dereferences to 4a05d4914fa2327a42bd75fe77c22c188becf3b4; Alchemy v2.0.0-beta.79 to 473c39591c7993a708199d0ef8f0d38416885dde. Each committed .repos subtree matches its exact task-local tag checkout byte for byte excluding .git. The repository subtree helper could not pull because inherited cherry-picked .repos history lacks git-subtree ancestry, so the exact local tag trees were synchronized directly. The separate reference commit is large and contains no hand-edited source. git diff --check reports only a required single-space blank context line in the pinned Effect unified patch; the patch and lockfile hash remain intact.

Reconciled with current pylon at 5befa0f1b2: preserved the current review ledger, newer Electron/Claude/mobile dependency pins, Pylon provider event-worker startup, and the OTel kill switch while retaining Effect rc.115/Alchemy beta.79. The frozen lockfile was regenerated and all ten affected package typechecks passed. Changed-scope lint/format and a code-only diff check passed; both pinned reference trees still match the prior reviewed head byte for byte. Eleven affected test files ran with 482 passing and one router fallback-snapshot test failing in the parallel run; the exact test passed alone, and its full 203-test router file passed alone. Four cross-feature suites (Grok limits, ingestion, title regeneration, title migration) passed 163 tests. Exact-head CI is pending; this note does not claim the parallel test failure is fully explained.

Implemented with GPT-6 Sol in the Codex harness.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

@vercel

vercel Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

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

1 Skipped Deployment
Project Deployment Actions Updated
pylon-marketing Ignored Ignored Preview Sep 26, 2026 7:24am UTC

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XXL labels Sep 24, 2026
@github-actions

github-actions Bot commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 14.0 KiB 14.0 KiB −16 B (−0.1%) 15.1 KiB ✅
Codex Thread snapshot wire 7.3 KiB 7.2 KiB −16 B (−0.2%) 7.3 KiB ✅
Codex Live turn WebSocket wire 6.7 KiB 6.7 KiB 0 B (0.0%) 7.8 KiB ✅
Codex Live turn WebSocket decoded 58.0 KiB 58.0 KiB 0 B (0.0%) 66.4 KiB ✅
Codex Live turn messages 9 9 0 (0.0%) 21 ✅
Claude Total thread wire 14.0 KiB 14.0 KiB −50 B (−0.3%) 15.1 KiB ✅
Claude Thread snapshot wire 7.3 KiB 7.3 KiB −7 B (−0.1%) 7.3 KiB ✅
Claude Live turn WebSocket wire 6.8 KiB 6.7 KiB −43 B (−0.6%) 7.8 KiB ✅
Claude Live turn WebSocket decoded 58.9 KiB 58.9 KiB −44 B (−0.1%) 66.4 KiB ✅
Claude Live turn messages 10 9 −1 (−10.0%) 21 ✅

Baseline: 9d35a1f · PR result: e223284 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 115.7 KiB
  • Claude decoded thread snapshot: 116.4 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@rynfar

rynfar commented Sep 26, 2026

Copy link
Copy Markdown
Collaborator Author

Reconciled with merged #811 at e223284. The 11-file combined Effect/Alchemy + loopback regression run now passes: 470/470 tests. This repeats the previously flaky parallel HTTP fixture run on the actual combined tree. Exact-head CI is running; merge remains gated on its result.

@rynfar
rynfar merged commit 1c6f7f5 into pylon Sep 26, 2026
20 checks passed
@rynfar
rynfar deleted the fix/effect-alchemy-prerequisite-20260924 branch September 26, 2026 07:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant