Skip to content

Persist and hydrate step event inputs - #175

Merged
longquanzheng merged 12 commits into
mainfrom
codex/step-event-input-hydration
Aug 6, 2026
Merged

Persist and hydrate step event inputs#175
longquanzheng merged 12 commits into
mainfrom
codex/step-event-input-hydration

Conversation

@longquanzheng

@longquanzheng longquanzheng commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Summary

  • persist exact WaitFor and Execute requests plus effective step method options for successful local activities
  • make GetHistoryEvents return one complete step-event shape for sync and async durability, sourcing regular inputs from Activity Scheduled history and local inputs from run-scoped storage
  • remove the separate GetStepEventInputs RPC and Web route so the browser never selects a backend-specific input path
  • hydrate blob-backed values lazily across Web history events and live flow state without exposing storage identifiers
  • organize step event details into Input, Output, and Context, including condition results, side effects, attempt data, timeout, and retry policy

Rationale

Local activity history does not retain activity input, while regular Activity history does. That backend difference should remain inside Dex server. This change persists successful local worker requests, enriches semantic history on the server, and lets Web consume the same event contract for sync and async steps. Large values continue through the existing batched LoadBlobs path.

User impact

  • Timeline and Step Graph show complete WaitFor/Execute inputs when available.
  • Execute input includes condition results; both methods include step input and the invocation-time attribute snapshot.
  • Output groups waiting conditions or step decisions with attribute and channel side effects.
  • Context combines execution and attempt data with effective timeout and retry options.
  • Missing request blobs and missing value blobs have distinct non-blocking messages without leaking blob IDs or object paths.
  • dexcli dev works out of the box with local blob storage and supports a persistent --blob-store-dir.

Validation

  • make -C server unitTests
  • go test -v ./integ -run '^TestWebAPITemporal$' -search=false -cadence=false -temporalHostPort=127.0.0.1:7233
  • go test ./... in web/
  • npm run check in web/ (16 tests)
  • npm run build in web/
  • make -C cli build
  • make copyright-check
  • browser verification against a fresh workflow through Dex 18801 / Web 18802
  • git diff --check

@longquanzheng
longquanzheng marked this pull request as ready for review August 6, 2026 02:33
@longquanzheng
longquanzheng enabled auto-merge (squash) August 6, 2026 03:04
@longquanzheng
longquanzheng merged commit 615d94b into main Aug 6, 2026
25 checks passed
@longquanzheng
longquanzheng deleted the codex/step-event-input-hydration branch August 6, 2026 03:10
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