69 Commits

Author SHA1 Message Date
Donald Pinckney 25eb55398c Bump to 0.2.0 for Java release (#72) 2026-04-03 05:11:50 -04:00
Donald Pinckney 7d5ae761ff Reduce repetition in determinism sans sandboxing (#67)
* Reduce repetition in determinism sans sandboxing.

* fix merge
2026-04-02 17:08:53 -04:00
Donald Pinckney 0c8586b4c2 Add Java SDK support (#42)
* Add Java SDK reference files (11 files)

Create complete Java reference documentation covering:
- java.md: Entry point with quick start tutorial, key concepts
- patterns.md: 17 patterns (signals, queries, updates, child workflows,
  saga, cancellation scopes, heartbeating, etc.)
- determinism.md: Safe alternatives table, forbidden operations
- determinism-protection.md: Convention-based enforcement (no sandbox)
- error-handling.md: ApplicationFailure, retry/timeout config
- gotchas.md: Non-deterministic operations, cancellation, heartbeating
- testing.md: TestWorkflowEnvironment, Mockito mocking, replay testing
- versioning.md: Workflow.getVersion(), worker versioning
- data-handling.md: Jackson, PayloadConverter, encryption, search attributes
- observability.md: SLF4J logging, Micrometer metrics
- advanced-features.md: Schedules, async completion, worker tuning

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Fix Java alignment issues from self-review

- Reduce gotchas.md Non-Deterministic Operations from ~94 lines to ~12
  (reference determinism.md instead of duplicating)
- Remove Workflow Failure Exception Types duplication from error-handling.md
  (keep only in advanced-features.md)
- Expand versioning.md Worker Versioning with Key Concepts, PINNED vs
  AUTO_UPGRADE, Deployment Strategies subsections
- Fix section names to match Python reference style:
  Activity Heartbeat Details, Handling Activity Errors,
  Retry Policy Configuration, Workflow Test Environment,
  Mocking Activities, Workflow Replay Testing
- Reduce data-handling.md Payload Encryption verbosity
- Reduce observability.md Logger Customization verbosity
- Reduce testing.md to single approach per section
- Rename determinism.md "Convention-Based Enforcement" to "SDK Protection"
- Fix handler guidance in patterns.md to match Python

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Fix correctness issues in Java reference files

- patterns.md: Fix Queries section — ActivityStub → typed interface
  (Workflow.newActivityStub returns the typed interface, not ActivityStub)
- data-handling.md: Add missing ProtobufPayloadConverter to default
  converter chain (4th of 5 converters)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Add Java to SKILL.md and core/determinism.md

- SKILL.md: Add "Temporal Java" trigger phrase, update Overview to
  list Java, add Java entry to Getting Started references
- core/determinism.md: Add Java entry to SDK Protection Mechanisms
  (no sandbox, convention-based, NonDeterministicException at replay)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Apply manual editorial fixes to Java references

- java.md: Remove "Understanding Replay" section (covered by Overview),
  simplify File Organization note (no sandbox rationale)
- gotchas.md: Move Heartbeating before Cancellation, make Wrong Retry
  Classification brief with reference (not inline examples)
- error-handling.md: Remove editorializing from Workflow Failure note
- determinism-protection.md: Remove cross-language comparison paragraph
  (state Java's approach on its own terms)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Add temporal-workflowcheck static analysis to Java determinism docs

- determinism-protection.md: Add "Static Analysis with temporal-workflowcheck"
  section with Gradle/Maven setup, manual run, and suppression instructions.
  Beta warning included.
- determinism.md: Update overview and SDK Protection to reference workflowcheck
- core/determinism.md: Update Java entry in SDK Protection Mechanisms

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Integrate feedback from Go PR into Java patterns

- Updates: Add validator note — validators must not mutate state or
  block (matches note added to Python, TypeScript, Go, and core)
- Saga Pattern: Use Workflow.newDetachedCancellationScope() for
  compensations so they execute even if the workflow is cancelled
  (mirrors Go's workflow.NewDisconnectedContext pattern)

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

* docs: add @WorkflowInit description to java.md Key Concepts

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* mark java as supported

* Apply suggestions from code review

Co-authored-by: Brian Strauch <brian@brianstrauch.com>

* strongly recommend java 21+

* Softened stance on static checker and replay testing.

* address python/typescript sandboxing comment

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Brian Strauch <brian.strauch@temporal.io>
Co-authored-by: Brian Strauch <brian@brianstrauch.com>
2026-04-02 17:07:33 -04:00
Donald Pinckney 9b97ceebd0 [fix] Add missing section to TS's observability (#65) 2026-04-02 14:12:24 -04:00
Donald Pinckney 8369c659d0 Remove ASCII diagram, replace with prose. (#66) 2026-04-02 10:22:27 -04:00
Brian Strauch 57c08ef74b Add @workflow.init decorator to python.md Key Concepts (#57)
* docs: add @workflow.init decorator to python.md Key Concepts

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Apply suggestion from @brianstrauch

* Update references/python/python.md

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 14:16:11 -07:00
Trevor J. Yao b040ae10b4 Fix Python reference bugs: incorrect API name, syntax error, broken cross-ref, misleading comment (#55) 2026-03-31 14:58:57 -04:00
Jackson Lo 68ebe14ff5 Fix typos and broken references across skill docs (#56)
- Fix missing trailing pipe in error-reference.md table header
- Fix wrong reference path in go.md (python -> go determinism-protection)
- Add missing .md extension to testing reference in go/determinism-protection.md
- Fix typos: "Activty" -> "Activity", "accomplised" -> "accomplished", "discourged" -> "discouraged"
2026-03-31 14:20:51 -04:00
Donald Pinckney 1cc45912b3 Merge branch 'main' into dev 2026-03-19 18:23:46 -04:00
Donald Pinckney 6137e38346 hotfix: clean up skills.sh instruction (#51) 2026-03-19 18:15:14 -04:00
Donald Pinckney b5719bc143 PR Tracking Initial Release (#4)
* Add initial skill for testing, which is simply Steve's skill (#1)

* Add initial skill for testing, which is simply Steve's skill

* Rename skill to 'temporal-dev' and update version

Updated skill name and version for Temporal Python.

* Use claude to merge Steve's, Max's, and Mason's skills.  (#2)

* Use claude to merge Steve's, Max's, and Mason's skills. Did a review pass using claude's skill devlopment skills

* Add missing things from Steve

* trigger tweaks

* Add in common gotchas from Johann

* add simple feedback mechanism (#3)

* Change skill name to kebab-case, for compatibility with Amp and Cline (#7)

* Clean up references/core/ai-integration.md

* Clean up references/core/common-gotchas.md

* Clean up references/core/common-gotchas.md

* Clean up references/core/determinism.md

* Clean up references/core/determinism.md

* Update error-reference.md

* Update interactive-workflows.md

* Clean up patterns.md

* Cut shell scripts

* Edit troubleshooting.md

* remove interceptors for now

* remove dynamic workflows

* clarify on heartbeating of async activity completions, and prompt it a bit in relation to signals

* Improve references/python/advanced-features.md

* Use explicit namespace in connect

* remove duplicated content from determinism.md, clean up

* Improve references/python/data-handling.md

* Prefer start_to_close_timeout

* don't explicitely provide defaults for retry policies

* error-handling.md cleanup

* move idempotency patterns to patterns.md

* remove multi-param activities

* small edits

* Unify sandbox stuff into one file

* local activities aren't experimental

* Clean up references/python/sync-vs-async.md

* Cleanup observability.md, remove duplicated search attributes

* Cut otel for now

* cut a lot of duplicate stuff from python gotchas, address comments

* de-duplicate content

* Lots of improvements to testing

* cleanup to top level of skill (like CLI install instructions), and to top-level of python

* Improve patterns.md

* clean up ai-patterns.md

* Update readme with installation instructions

* remove ts directory

* De-couple core from python and TypeScript as much as possible

* Remove TypeScript hints

* add prompting for feedback at startup - wait for ethan on slack channel

* shorten url

* Update slack channel

* Automated pass over on python cleanup & deduplication

* Remove multi-patching from Python, since its obvious, dont waste tokens on it. (#34)

* Add TypeScript (#31)

Adds initial support for TypeScript to the skill

---------

Co-authored-by: James Watkins-Harvey <mjameswh@users.noreply.github.com>
Co-authored-by: Chris Olszewski <chrisdolszewski@gmail.com>

* Fix typos and reference links (#36)

* Fix typos and reference links

* 2 more typo fixes

* quick edit to readme (#37)

* Fix saga compensations to run under cancellation protection (#43)

When a workflow is cancelled mid-saga, compensations must run in a
cancellation-protected scope, otherwise they are immediately cancelled
before they can execute.

- Python: wrap compensation loop in asyncio.shield() so it runs even
  when the workflow receives a CancelledError
- TypeScript: wrap compensation loop in CancellationScope.nonCancellable()
  so it runs even when the root scope is cancelled (per official docs:
  "Cleanup logic must be in a nonCancellable scope")
- TypeScript: also fix compensation registration order — register BEFORE
  calling the activity (was already correct in Python)

Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

* Update readme for public preview (#45)

* a few more readme tweaks (#46)

* Add MIT License to the project (#47)

* Add Go (supersedes other PR) (#38)

* progress on go

* Go translation workflow completed.

* missed a few spots

* Manual edits

* Address feedback

* Add gotcha about anonymous local activities

* Sample code for payload converter

* clarify sdk protection mechanisms

* Setup CODEOWNERS to AI SDK team (#48)

* Align version number in SKILL.md and plugin.json. (#49)

---------

Co-authored-by: James Watkins-Harvey <mjameswh@users.noreply.github.com>
Co-authored-by: Chris Olszewski <chrisdolszewski@gmail.com>
Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 17:36:15 -04:00
Donald Pinckney 29e46009c0 Align version number in SKILL.md and plugin.json. (#49) 2026-03-19 16:33:47 -04:00
Donald Pinckney b9a0728b15 Setup CODEOWNERS to AI SDK team (#48) 2026-03-19 14:54:44 -04:00
Donald Pinckney e16c9b808a Add Go (supersedes other PR) (#38)
* progress on go

* Go translation workflow completed.

* missed a few spots

* Manual edits

* Address feedback

* Add gotcha about anonymous local activities

* Sample code for payload converter

* clarify sdk protection mechanisms
2026-03-18 21:18:45 -04:00
Donald Pinckney 6cd40f2291 Add MIT License to the project (#47) 2026-03-18 16:00:30 -04:00
Donald Pinckney 21d1d41dcc a few more readme tweaks (#46) 2026-03-18 15:30:59 -04:00
Donald Pinckney 291f4e5aaa Update readme for public preview (#45) 2026-03-18 13:54:09 -04:00
Donald Pinckney c013b87f87 Fix saga compensations to run under cancellation protection (#43)
When a workflow is cancelled mid-saga, compensations must run in a
cancellation-protected scope, otherwise they are immediately cancelled
before they can execute.

- Python: wrap compensation loop in asyncio.shield() so it runs even
  when the workflow receives a CancelledError
- TypeScript: wrap compensation loop in CancellationScope.nonCancellable()
  so it runs even when the root scope is cancelled (per official docs:
  "Cleanup logic must be in a nonCancellable scope")
- TypeScript: also fix compensation registration order — register BEFORE
  calling the activity (was already correct in Python)

Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 18:41:25 -04:00
Donald Pinckney c73c9c06e9 quick edit to readme (#37) 2026-03-12 13:11:08 -04:00
Donald Pinckney 8ad9233bb1 Fix typos and reference links (#36)
* Fix typos and reference links

* 2 more typo fixes
2026-03-07 09:44:11 -05:00
Donald Pinckney 766f8883fe Add TypeScript (#31)
Adds initial support for TypeScript to the skill

---------

Co-authored-by: James Watkins-Harvey <mjameswh@users.noreply.github.com>
Co-authored-by: Chris Olszewski <chrisdolszewski@gmail.com>
2026-03-07 09:41:32 -05:00
Donald Pinckney 87fe92e083 Remove multi-patching from Python, since its obvious, dont waste tokens on it. (#34) 2026-03-03 00:29:19 -05:00
Donald Pinckney 99a2d4a1eb Automated pass over on python cleanup & deduplication 2026-03-03 00:28:59 -05:00
Donald Pinckney 3f972f9855 Update slack channel 2026-02-23 15:16:19 -05:00
Donald Pinckney 75c568d67b shorten url 2026-02-23 15:16:19 -05:00
Donald Pinckney 47ae2fd41a add prompting for feedback at startup - wait for ethan on slack channel 2026-02-23 15:16:19 -05:00
Donald Pinckney 83aa233967 Remove TypeScript hints 2026-02-23 15:11:35 -05:00
Donald Pinckney 0692311a5a De-couple core from python and TypeScript as much as possible 2026-02-23 15:05:51 -05:00
Donald Pinckney 846cb449b9 remove ts directory 2026-02-23 15:05:51 -05:00
Donald Pinckney fd1af23cc2 Update readme with installation instructions 2026-02-23 13:54:49 -05:00
Donald Pinckney 14da16ad9f clean up ai-patterns.md 2026-02-23 13:46:43 -05:00
Donald Pinckney ec02f3822e Improve patterns.md 2026-02-23 13:46:43 -05:00
Donald Pinckney 663bbe47eb cleanup to top level of skill (like CLI install instructions), and to top-level of python 2026-02-23 13:46:43 -05:00
Donald Pinckney 79ecaf3f97 Lots of improvements to testing 2026-02-23 13:46:43 -05:00
Donald Pinckney cbfd857fbd de-duplicate content 2026-02-23 13:46:43 -05:00
Donald Pinckney f01763a45a cut a lot of duplicate stuff from python gotchas, address comments 2026-02-23 13:46:43 -05:00
Donald Pinckney ad4cc34bfa Cut otel for now 2026-02-19 12:12:06 -05:00
Donald Pinckney d61866b6d4 Cleanup observability.md, remove duplicated search attributes 2026-02-19 12:12:06 -05:00
Donald Pinckney 35c3bc55c1 Clean up references/python/sync-vs-async.md 2026-02-19 12:12:06 -05:00
Donald Pinckney 56dde7576b local activities aren't experimental 2026-02-19 12:12:06 -05:00
Donald Pinckney 0bc69b2e0a Unify sandbox stuff into one file 2026-02-19 12:12:06 -05:00
Donald Pinckney f36faca41f small edits 2026-02-19 12:12:06 -05:00
Donald Pinckney f0387e3743 remove multi-param activities 2026-02-19 12:12:06 -05:00
Donald Pinckney 3d43cd27f1 move idempotency patterns to patterns.md 2026-02-19 12:12:06 -05:00
Donald Pinckney f693cc742c error-handling.md cleanup 2026-02-19 12:12:06 -05:00
Donald Pinckney 8b7dffa088 don't explicitely provide defaults for retry policies 2026-02-19 12:12:06 -05:00
Donald Pinckney 3dcccb82eb Prefer start_to_close_timeout 2026-02-19 12:12:06 -05:00
Donald Pinckney bb46cb4b90 Improve references/python/data-handling.md 2026-02-19 12:12:06 -05:00
Donald Pinckney 322f85abd2 remove duplicated content from determinism.md, clean up 2026-02-19 12:12:06 -05:00
Donald Pinckney e945f1da5e Use explicit namespace in connect 2026-02-19 12:12:06 -05:00