Send final state to lightning#1074
Merged
Merged
Conversation
Member
Author
|
@josephjclark , would love your eyes here. i don't understand mock at all. this isn't super urgent, but i'm hoping it's not actually a big change. there should be no impact on lighting, until this gets merged: OpenFn/lightning#3785 |
Collaborator
|
QA notes:
I'll leave it up to lightning to decide what to do with the new |
josephjclark
approved these changes
Oct 20, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Short Description
Changes
RUN_COMPLETEevent to send actual final state (using the nice engine implementation that the CLI already uses) instead of the unused dataclip ID reference. This enables Lightning to receive the complete workflow result directly, supporting branching workflows with multiple leaf nodes.Implementation Details
Type Definitions
lexicon/lightning.d.ts: Replacefinal_dataclip_id?: stringwithfinal_state?: anyinRunCompletePayloadWorker Implementation
ws-worker/src/events/run-complete.ts: Sendfinal_state: event.state(from runtime) instead offinal_dataclip_idws-worker/src/events/run-error.ts: Removefinal_dataclip_idfield from error caseMock/Test Infrastructure
ws-worker/src/mock/runtime-engine.ts: Includestatein workflow-complete event dispatchws-worker/test/events/run-complete.test.ts: Update tests + add coverage for linear/branching workflows, serialization, and binary dataws-worker/test/lightning.test.ts: Assertfinal_stateis object instead offinal_dataclip_idis stringLightning Mock
lightning-mock/src/api-dev.ts: Readfinal_statefrom payload instead of looking up dataclip by IDlightning-mock/src/api-sockets.ts: Storefinal_statedirectly instead of dataclip lookuplightning-mock/test/channels/run.test.ts: Sendfinal_statein test payloads instead offinal_dataclip_idQA Notes
This doesn't do anything interesting unless you're connecting the worker to lightning on the
sync-modebranch: OpenFn/lightning#3785AI Usage
Please disclose how you've used AI in this work (it's cool, we just want to know!):
You can read more details in our Responsible AI Policy
Release branch checklist
Delete this section if this is not a release PR.
If this IS a release branch:
pnpm changeset versionfrom root to bump versionspnpm installpnpm changeset tagto generate tagsgit push --tagsTags may need updating if commits come in after the tags are first generated.