Skip to content

ops-wrappers: higher-level operational concern modules#345

Draft
iand675 wants to merge 1 commit intomainfrom
ian/ops-wrappers
Draft

ops-wrappers: higher-level operational concern modules#345
iand675 wants to merge 1 commit intomainfrom
ian/ops-wrappers

Conversation

@iand675
Copy link
Copy Markdown
Contributor

@iand675 iand675 commented Mar 13, 2026

Summary

  • Adds typed Haskell wrappers for Temporal operational gRPC calls so callers don't need to reach into proto-lens directly
  • Temporal.Client.Describe: describeWorkflow with WorkflowExecutionDescription, PendingActivityDescription, PendingWorkflowTaskDescription types
  • Temporal.Client.List: listWorkflows streaming Conduit with auto-pagination and WorkflowExecutionSummary type
  • Temporal.Ops.Diagnostics: pure "wedged workflow" classifier with 6 WedgedReason constructors:
    • NondeterminismError — workflow task retrying at high attempt counts
    • WorkflowTaskTimeouts — consecutive workflow task timeout signals
    • StuckActivity — STARTED activities with high retry attempt
    • StarvedActivity — SCHEDULED activities that never started
    • StaleHeartbeat — STARTED activities with stale/missing heartbeat
    • StalledCancellation — CANCEL_REQUESTED activities stuck too long
  • Temporal.Ops: umbrella re-export module
  • Design doc at docs/ops-wrappers-plan.md

Test plan

  • 28 pure unit tests in DiagnosticsSpec covering all 6 check functions
  • cabal build temporal-sdk succeeds
  • cabal test temporal-sdk-tests --test-option="--match=Diagnostics" passes (28 examples, 0 failures)
  • Integration test with live Temporal server (future follow-up)

Made with Cursor

Add typed Haskell wrappers for Temporal operational gRPC calls:

- Temporal.Client.Describe: describeWorkflow with WorkflowExecutionDescription,
  PendingActivityDescription, PendingWorkflowTaskDescription types
- Temporal.Client.List: listWorkflows streaming Conduit with auto-pagination
  and WorkflowExecutionSummary type
- Temporal.Ops.Diagnostics: pure "wedged workflow" classifier with 6
  WedgedReason constructors (NondeterminismError, WorkflowTaskTimeouts,
  StuckActivity, StarvedActivity, StaleHeartbeat, StalledCancellation)
- Temporal.Ops: umbrella re-export module
- DiagnosticsSpec: 28 unit tests covering all check functions

Callers can import Temporal.Ops for a single entry point to operational
tooling without touching proto-lens directly.
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