134 Commits

Author SHA1 Message Date
stevenlai ef2c99ac6f Fix Common Gotchas links in language guides (#266)
* Fix Common Gotchas links in language guides

* Fix Standalone Activities links in language guides

---------

Co-authored-by: Brian Strauch <brian@brianstrauch.com>
2026-09-10 10:08:25 -07:00
temporal-plugin-updater[bot] 2d7fda32ff Release v0.6.2 (#265)
Co-authored-by: patbeqo <46697474+patbeqo@users.noreply.github.com>
v0.6.2
2026-09-04 16:26:43 +00:00
Patrik Beqo 454fcfefed Restore SKILL.md formatting (#264) 2026-09-04 12:25:29 -04:00
temporal-plugin-updater[bot] 49e0c2441b Release v0.6.1 (#263)
Co-authored-by: patbeqo <46697474+patbeqo@users.noreply.github.com>
v0.6.1
2026-09-04 15:53:01 +00:00
skill-temporal-developer-updater[bot] 5de78ea2a3 Implement planned topic: 0011-external-storage (#209)
* Finalize draft for 0011-external-storage

* Fix Python external storage examples

* Add TypeScript external storage guidance

* Address review findings on external storage references

Python:
- Import ClientConfig from temporalio.envconfig, not temporalio.client.
  load_client_connect_config() is a staticmethod on the envconfig class;
  the temporalio.client.ClientConfig TypedDict has no such member, so the
  snippet raised AttributeError. Follow main's env-config convention
  (setdefault target_host) from #261.
- Register real Workflow/Activity placeholders. Worker() with empty
  workflows and activities raises "At least one activity, Nexus service,
  or workflow must be specified", and wrap the setup in async main().

Go:
- Cover the GCS driver (contrib/gcp/gcsdriver + gcssdk), which the SDK
  ships and the docs install alongside S3.
- Load client options with envconfig.MustLoadDefaultClientOptions() and
  note that Workers inherit External Storage from their Client.

Align coverage across all three languages, each of which was missing
something the others had:
- 50 MiB MaxPayloadSize/max_payload_size ceiling and the matching
  anti-pattern (Go, Python).
- Store/Retrieve are not retried within a Task attempt; the Task retries
  as a whole, so storage must be idempotent (Go, Python).
- Multi-region durability with CRR + an MRAP ARN (Go, Python).
- Distinct driver names when registering two drivers of the same kind
  (Go, Python).
- Codec Server guidance (TypeScript), including that neither the
  TypeScript nor Python SDK ships a storage-aware handler.
- Built-in driver behavior sections (concurrency, content-addressed
  keys, integrity checks, diagnostics) in Go and Python.
- ctx.Context on the Go driver contexts, mirroring TypeScript's
  abortSignal guidance; optional type() override in Python.

Also: standardize the TypeScript Public Preview admonition on the repo's
wording, drop the transplanted `payloadSizeThreshold: 1` anti-pattern
(TypeScript compares >=, so 1 behaves like 0), replace site-relative
plugins-guide links with absolute URLs, refresh the index pointers, and
revert an unrelated whitespace change in the Spring AI reference.

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

* Harden external storage driver examples

* Fix correctness bugs in external storage references

Address code-review findings on the new external storage docs:

- Go: add missing "context" and "log" imports to the S3 driver, GCS
  driver, and client/worker setup snippets, which presented complete
  import lists but failed to compile.
- Go: add go.temporal.io/sdk/contrib/envconfig to both go get lines; it
  is a separate module and is imported by the setup snippet.
- Go: give the local-disk worked example an import block, and introduce
  the commonpb alias at its first use in the selector example.
- Go and Python: validate claim data in Retrieve/retrieve so a
  hand-crafted reference payload cannot read files outside the store
  directory, matching the hardening already applied to Store/store.
- Python: the Worker inherits the Data Converter from its Client and
  takes no data_converter argument; the prose said to pass it to both.

Verified by compiling every Go snippet against sdk-go and exercising
both path guards.

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

* Route large-payload triage to the external storage references

The new external storage docs were only reachable from the language
index files, so the paths an agent actually takes when a user hits a
payload limit still sent it to hand-roll the claim-check pattern.

- core/error-reference.md: TMPRL1103 recovery now points at built-in
  External Storage before manual reference passing.
- core/gotchas.md: the payload-limit fix notes the SDK does this for you
  in Go, Python, and TypeScript.
- core/patterns.md: Large Data Handling leads with the SDK-native
  option and scopes the manual pattern to the cases that need it.

Also link the Go external storage sample from the Codec Server section,
matching what the Python reference already does.

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

---------

Co-authored-by: skill-sync[bot] <skill-sync[bot]@users.noreply.github.com>
Co-authored-by: Brian Strauch <brian@brianstrauch.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-24 12:25:47 -07:00
github-actions[bot] b01c63294d Bump temporal-developer skill version to v0.6.0 [skip ci] v0.6.0 2026-08-20 20:35:51 +00:00
Brian Strauch 3b191bd754 Use env-config for quick-start connections (#261)
* Use env-config for quick-start connections

* Pass namespace from env-config to TypeScript Workers

NativeConnection carries no namespace, and WorkerOptions defaults to
'default' when it is omitted. With TEMPORAL_NAMESPACE (or a temporal.toml
profile) set, the Worker polled 'default' while the Client used the
configured namespace, so the workflow was never picked up.

Verified against a dev server with a non-default namespace: the previous
snippets left the workflow Running with pollers on 'default'; with
namespace: config.namespace both quick starts complete.

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

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-20 13:35:21 -07:00
Brian Strauch 67f41f97d6 Fix .NET worker cancellation example (#260)
* Fix .NET worker cancellation example

* Simplify .NET worker execution example

* Revert "Simplify .NET worker execution example"

This reverts commit 83b883601a.
2026-08-20 12:18:19 -07:00
Brian Strauch 27b35d90b5 Fix Python reference guidance from issue #256 (#259)
* Fix Python reference guidance from issue 256

* Correct Worker Versioning parameter and Build ID references

Split the Python Worker Versioning parameter list into one list per
class. build_id is a field of WorkerDeploymentVersion, not a parameter
of WorkerDeploymentConfig, so listing it alongside version and
use_worker_versioning invited WorkerDeploymentConfig(build_id=...),
which raises TypeError. Also adds the previously missing
default_versioning_behavior parameter.

Drop the claim that a Build ID is "not the legacy compatibility-set
API". A Build ID is an identifier rather than an API, and Build IDs are
used by both the legacy compatibility-set model and the current Worker
Deployment model, so the clause implied the opposite of the intended
disambiguation.

Verified against the temporalio 1.31.0 wheel: WorkerDeploymentConfig
(temporalio/worker/_worker.py) declares version, use_worker_versioning,
and default_versioning_behavior; WorkerDeploymentVersion
(temporalio/common.py) declares deployment_name and build_id.

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

* Apply suggestions from code review

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

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-20 10:44:17 -07:00
Donald Pinckney 559ec2842b Add TypeScript OpenTelemetry integration docs (#245)
* Add TypeScript OpenTelemetry integration docs

Split out from the OpenTelemetry plugins topic (PR #243) so the TypeScript
material can be finalized separately. Adds the TS OTel integration
reference, the Distributed Tracing section in TS observability, and the
TS row in the integrations catalog.

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

* fix: align python with ts skill

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Patrik Beqo <patbeqo@gmail.com>
Co-authored-by: Patrik Beqo <patrik.beqo@temporal.io>
2026-08-20 11:29:32 -04:00
skill-temporal-developer-updater[bot] 56cba7798f Implement planned topic: 0039-braintrust (#247)
* Add Python Braintrust integration reference

Authoring topic 0039-braintrust. Adds references/python/integrations/braintrust.md
grounded in docs/develop/python/integrations/braintrust.mdx covering install,
BraintrustPlugin registration on Client + Worker, wrap_openai, start_span, and
load_prompt with fallback.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* Add TypeScript Braintrust integration reference

Authoring topic 0039-braintrust. Adds references/typescript/integrations/braintrust.md
grounded in the Temporal TS integrations index and the canonical Braintrust-hosted
guide. Covers @braintrust/temporal install, initLogger, and BraintrustTemporalPlugin
registration on Client + Worker. Marks wrapTraced/startSpan/loadPrompt details as
VERIFY since the Temporal docs link out for the TS API surface.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* Add Braintrust rows to integrations catalog

Append Python and TypeScript rows linking to the new Braintrust integration
reference files. Python row notes Public Preview status.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* Finalize draft for 0039-braintrust

* Remove Braintrust familiarity prerequisite

* Use uv add for Braintrust dependency

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: skill-sync[bot] <skill-sync[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: Brian Strauch <brian@brianstrauch.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-08-19 15:44:49 -07:00
skill-temporal-developer-updater[bot] 498c693c36 Implement planned topic: 0040-mastra (#250)
* Finalize draft for 0040-mastra

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Consolidate duplicate preview/experimental status into single admonition

Co-authored-by: brianstrauch <7474900+brianstrauch@users.noreply.github.com>

---------

Co-authored-by: skill-sync[bot] <skill-sync[bot]@users.noreply.github.com>
Co-authored-by: Brian Strauch <brian@brianstrauch.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: brianstrauch <7474900+brianstrauch@users.noreply.github.com>
2026-08-19 15:43:33 -07:00
skill-temporal-developer-updater[bot] e683784155 Implement planned topic: 0041-pydantic-ai (#249)
* Finalize draft for 0041-pydantic-ai

* Re-author Pydantic AI integration guidance

* Adopt TemporalDurability for Pydantic AI

* Remove TemporalAgent migration guidance

* Apply suggestion from @brianstrauch

* Apply suggestion from @brianstrauch

* Apply suggestion from @brianstrauch

* Apply suggestion from @brianstrauch

* Apply suggestion from @brianstrauch

---------

Co-authored-by: skill-sync[bot] <skill-sync[bot]@users.noreply.github.com>
Co-authored-by: Brian Strauch <brian@brianstrauch.com>
2026-08-19 14:39:58 -07:00
skill-temporal-developer-updater[bot] fa142f6229 Implement planned topic: 0038-vercel-ai-sdk (#246)
* Finalize draft for 0038-vercel-ai-sdk

* Update references/typescript/integrations/vercel-ai-sdk.md

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Address Vercel AI SDK review feedback

* Document Vercel AI SDK v7 integration

* Fix AI SDK workflow helper imports

---------

Co-authored-by: skill-sync[bot] <skill-sync[bot]@users.noreply.github.com>
Co-authored-by: Brian Strauch <brian@brianstrauch.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-08-19 11:28:48 -07:00
Donald Pinckney 4f7b14626c Use shared package-and-sync reusable workflow (#253)
* Use shared package-and-sync reusable workflow

Replace the inline package/sync workflow with a thin caller of the shared
temporalio/skill-ci reusable workflow (pinned to v1). This also corrects the
codex plugin target path, which was stale (plugins/temporal-developer/... →
plugins/temporal/... as used by the shared workflow and present in the repo).

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

* Pin shared workflow to @v1 tag instead of SHA

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

* Add one-click bump dispatch input to release workflow

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

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 08:15:05 -04:00
Amir Benvenisti e7b111cd7c Update README.md (#252)
remove PP warning
2026-06-24 14:41:49 -04:00
Kent Gruber 0c48c1792a VLN-1526: fix unpinned-github-actions (#251)
Co-authored-by: picatz <14850816+picatz@users.noreply.github.com>
2026-06-18 11:41:07 -07:00
skill-temporal-developer-updater[bot] 3973e73202 Implement planned topic: 0022-opentelemetry-plugins (#243)
* Finalize draft for 0022-opentelemetry-plugins

* Remove legacy TracingInterceptor content from OpenTelemetry docs

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

* Remove Nexus content from OpenTelemetry docs

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

* Tie OpenTelemetry tracing into the observability references

Both observability.md files advertised "tracing" but had no tracing
section and never linked to the OTel integration docs. Add a concise
Distributed Tracing (OpenTelemetry) section to each, surface the
trace/log/metric correlation, and cross-link so the OTel <-> observability
relationship is bidirectional. Deep API stays canonical in
integrations/opentelemetry.md.

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

* Trim TypeScript OpenTelemetry doc to lean style

Mirror the lean, example-driven style now used in the Python OTel doc:
fold the Public API / Constructor options / Span names tables into inline
comments and prose, compress propagator customization to a one-liner, and
keep the log/metric correlation tie-in. Update the observability.md pointer
so it no longer promises tables that were removed.

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

* Finalize Python file

* Simplify OpenTelemetry rows in integrations catalog

Reduce both OTel rows to a purpose-only description, dropping mechanism
detail (plugin names, interceptors, sinks, propagation specifics).

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

* Finalize observability files other than code snippets

* finalize python observaibility file

* Finalize TS observability file

* cut correlation

* Move TypeScript OpenTelemetry docs to a separate PR

The TypeScript material needs more work, so split it out (now on branch
feat/ts-otel). This leaves PR #243 scoped to the Python OpenTelemetry
integration only: removes the TS integration reference, reverts the TS
observability tracing section, and drops the TS row from the catalog.

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

* Apply suggestions from code review

Co-authored-by: Donald Pinckney <donald_pinckney@icloud.com>

* Apply suggestion from @donald-pinckney

* Apply suggestion from @donald-pinckney

* Consolidate Python OpenTelemetry docs into observability

Remove the standalone references/python/integrations/opentelemetry.md file
and fold its unique content (Common mistakes, workflow custom-span example)
into the Distributed Tracing section of observability.md. Repoint the
integrations catalog row at the observability section.

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

---------

Co-authored-by: skill-sync[bot] <skill-sync[bot]@users.noreply.github.com>
Co-authored-by: Donald Pinckney <donald.pinckney@temporal.io>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Donald Pinckney <donald_pinckney@icloud.com>
2026-06-05 16:41:31 -04:00
Will 8cf8a5ee9d feat: add Temporal Rust SDK references (#235)
* feat(rust): add Temporal Rust SDK references

* remove cruft

* official references link

* deslop

* deslop v2

* docs(rust): mark Rust as Public Preview in SKILL.md reference list

Addresses review comment on SKILL.md:62 (donald-pinckney).

* docs(rust): label Rust as Public Preview in README support list

Addresses review comment on README.md:43 (donald-pinckney).

* docs(rust): add Public Preview NOTE callout to rust.md

Uses the reviewer's exact wording. Addresses review comment on
references/rust/rust.md:1 (donald-pinckney).

* docs(rust): point dependency guidance to official Rust SDK Quickstart

Drops the pinned-version caveat now that there are no crate versions in
the file. Addresses review comment on references/rust/rust.md:22
(chris-olszewski).

* docs(rust): drop Skipping Activity timeouts pitfall

The Rust SDK always applies a to_close Activity timeout, so the pitfall
does not apply. Addresses review comment on references/rust/rust.md:171
(chris-olszewski).

* docs(rust): link directly to sdk-rust examples directory

The examples are not at the repo top, so link the explicit path.
Addresses review comment on references/rust/rust.md:177
(chris-olszewski).
2026-06-05 10:05:09 -04:00
skill-temporal-developer-updater[bot] 0a15f217c2 Implement planned topic: 0009-versioned-continue-as-new (#211)
* Finalize draft for 0009-versioned-continue-as-new

* Fix non-Go languages

* Simplify examples, don't give an antipattern!

---------

Co-authored-by: skill-sync[bot] <skill-sync[bot]@users.noreply.github.com>
Co-authored-by: Donald Pinckney <donald.pinckney@temporal.io>
2026-06-04 10:45:54 -04:00
skill-temporal-developer-updater[bot] 1c1b6d8195 Implement planned topic: 0037-standalone-activities-go (#241)
* Finalize draft for 0037-standalone-activities-go

* Update Standalone Activities documentation for Go SDK

Edits throughout Go standalone activities

---------

Co-authored-by: skill-sync[bot] <skill-sync[bot]@users.noreply.github.com>
Co-authored-by: Donald Pinckney <donald.pinckney@temporal.io>
2026-06-02 17:19:07 -04:00
skill-temporal-developer-updater[bot] 5f32b62499 Implement planned topic: 0001-standalone-activities (#224)
* Add Python standalone activities reference

* Add TypeScript standalone activities reference

* Add .NET standalone activities reference

* Add Java standalone activities reference

* Finalize draft for 0001-standalone-activities

* remove incomplete sections

* Add core page which abstracts out all shared stuff

* Standardize connection logic

* Unify worker setup section across SDK standalone-activity refs

Rename the worker section to "Worker setup & activity registration" in
all four SDK files and lead with a single sentence noting the Activity
is defined and registered exactly as normal. Drop the .NET "Define the
Activity" section so no file repeats how to define an activity, matching
the Python structure.

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

* re-organize to a LOGICAL structure, not just a flat list of H2 headings.

* finish cleaning up parts other than calling activities

* Get client connection in order

* cleanup of operations content

* Add links

---------

Co-authored-by: skill-sync[bot] <skill-sync[bot]@users.noreply.github.com>
Co-authored-by: Donald Pinckney <donald.pinckney@temporal.io>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-02 15:29:04 -04:00
Donald Pinckney a2f0903486 Update Ruby status to completed in README (#236) 2026-06-01 13:07:39 -04:00
Donald Pinckney 16bc5715a1 Release version 0.5.0 of temporal-developer skill (#233) v0.5.0 2026-05-29 17:46:33 -04:00
skill-temporal-developer-updater[bot] 3840088576 Implement planned topic: 0025-preload-modules (#205)
* Add Preload Modules subsection to TypeScript advanced features

Documents the `preloadModules` bundler option on `BundleOptions` and
`WorkerOptions.bundlerOptions`, including the `reuseV8Context`
precondition, the per-workflow-state warning, and the bundle-time
conflict with `ignoreModules`. Sourced from sdk-typescript JSDoc since
the docs clone is silent on this option.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* Finalize draft for 0025-preload-modules

---------

Co-authored-by: skill-sync[bot] <skill-sync[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-29 17:38:24 -04:00
skill-temporal-developer-updater[bot] 351eadaf54 Implement planned topic: 0035-dns-resolver-config (#219)
* Implement planned topic: 0035-dns-resolver-config

Add DNS Resolver Configuration section to references/python/advanced-features.md
documenting temporalio.service.DnsLoadBalancingConfig: the resolution_interval_millis
field, the default classvar, the Client.connect / CloudOperationsClient.connect
kwargs, and the silent mutual-exclusion with HttpConnectProxyConfig. Anchored to
sdk-python v1.27.2 source (the official docs site does not yet cover this class).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* Finalize draft for 0035-dns-resolver-config

* Apply suggestions from code review

Co-authored-by: Donald Pinckney <donald_pinckney@icloud.com>

---------

Co-authored-by: skill-sync[bot] <skill-sync[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: Donald Pinckney <donald.pinckney@temporal.io>
Co-authored-by: Donald Pinckney <donald_pinckney@icloud.com>
2026-05-29 17:34:40 -04:00
Amir Benvenisti d52c54af05 Absorb CLI skill: workflow commands, dev server, CLI gotchas (#231)
* Absorb CLI skill content: workflow commands, dev server, and CLI gotchas

Migrate developer-facing content from skill-temporal-cli as part of the
CLI skill consolidation. Adds cli-workflow-commands.md (start, execute,
signal, query, update reference), expands dev-management.md with full
dev server flags and dev-to-prod recipe, appends CLI gotchas, and
enriches install_cli.md. Updates SKILL.md triggers and routing.

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

* Address review feedback: flag table consistency, global flag annotations, dedup gotchas

Standardize cli-workflow-commands.md flag tables to use Required column
throughout. Annotate --log-level and --log-format as global flags in
dev-management.md. Collapse redundant dev server gotchas into a
cross-reference to dev-management.md.

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

* Clarify that a local dev server is not required for development

Workers can target a local dev server, self-hosted cluster, or
Temporal Cloud. The previous wording implied a local server was
mandatory.

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

* Clean up out of scope section

* Cleanup CLI installation

* Remove junk, add --output json

* Apply edit suggestion

* Add --output json explicitly

* remove docs markers

* Add one more --output json

* Apply suggestion from @donald-pinckney

* Change env to profile, and remove dead cross-reference to ops skill.

* Remove dead cross-links for now

* Update references/core/dev-management.md

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Donald Pinckney <donald.pinckney@temporal.io>
2026-05-29 17:09:06 -04:00
Donald Pinckney d5c47df820 Add Ruby SDK support (#41)
* Add all Ruby SDK reference files (11 files, ~2100 lines)

Created complete Ruby reference documentation covering:
- ruby.md: Overview, quick start, key concepts, file organization
- patterns.md: Signals, queries, updates, child workflows, saga, cancellation, etc.
- determinism.md: Illegal call tracing, safe alternatives table
- determinism-protection.md: TracePoint, durable fiber scheduler, customization
- versioning.md: Patching API, type versioning, worker versioning
- testing.md: WorkflowEnvironment, mocking, replay, activity testing
- error-handling.md: ApplicationError, retries, timeouts, workflow failure
- data-handling.md: Data converter, ActiveModel, hints, search attributes
- observability.md: Logging, metrics, best practices
- gotchas.md: Common mistakes, illegal call tracing issues
- advanced-features.md: Schedules, async completion, worker tuning, Rails

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

* Fix alignment issues in Ruby reference files

Self-review fixes:
- patterns.md: Remove non-existent `workflow_run` annotation; entry point
  is `def execute` (no annotation needed, unlike Python's @workflow.run)
- patterns.md: Remove conflicting manual query methods that duplicated
  workflow_query_attr_reader
- error-handling.md: Remove `await` keyword (doesn't exist in Ruby)
- gotchas.md: Replace TS-style CancellationScope with Ruby's
  Temporalio::Cancellation token-based detached cancellation
- data-handling.md: Replace homemade ActiveModel mixin with official SDK
  pattern using ActiveSupport::Concern + ActiveModel::Serializers::JSON
- data-handling.md: Fix list_workflows call signature (positional, not kw)
- ruby.md, gotchas.md: Fix require paths to use 'temporalio/activity'
  instead of 'temporalio/activity/definition'

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

* Fix correctness issues in Ruby reference files

- patterns.md: Fix external workflow signal to use class method ref
  (TargetWorkflow.data_ready instead of TargetWorkflow, :data_ready)
- patterns.md: Add ? suffix to all_handlers_finished (Ruby boolean convention)
- ruby.md: Add 'default' namespace to Client.connect calls

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

* Add Ruby to all language references in SKILL.md and core files

- SKILL.md: Add "Temporal Ruby" trigger phrase to description
- SKILL.md: Update Overview to list Ruby as supported language
- SKILL.md: Add Ruby entry to Getting Started guide
- core/determinism.md: Add Ruby SDK Protection Mechanism entry
  (Illegal Call Tracing via TracePoint + Durable Fiber Scheduler)

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

* Apply suggestions from code review

Co-authored-by: Bart de Water <118401830+bdewater-thatch@users.noreply.github.com>
Co-authored-by: Chris Olszewski <chrisdolszewski@gmail.com>

* Apply suggestions from code review

Co-authored-by: Bart de Water <118401830+bdewater-thatch@users.noreply.github.com>
Co-authored-by: Donald Pinckney <donald_pinckney@icloud.com>

* Apply suggestion from @chris-olszewski

Co-authored-by: Chris Olszewski <chrisdolszewski@gmail.com>

* copy over sample code

* Remove useless section, mention Mutex

* cleanup mutex mentions

* Clean up transitive NDE section

* Menial changes to align to python structure

* Add Workflow Init section to Ruby advanced-features

Document the workflow_init class method (Ruby's equivalent of Python's
@workflow.init) for initializing workflow state before signal/update
handlers run. Parallels the Python reference's Workflow Init section.

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

* Document graceful_shutdown_period in Ruby Worker Tuning

Add the graceful_shutdown_period worker option (Ruby's equivalent of
Python's graceful_shutdown_timeout) to the Worker Tuning section, with
an explanation of the worker shutdown sequence.

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

* Propagate cancellation in Ruby activity-error handling

Update the Handling Activity Errors example to re-raise when
Temporalio::Error.canceled? is true (Ruby's equivalent of Python's
is_cancelled_exception), so a canceled activity cancels the workflow
rather than failing it. Also clarify that only ApplicationError fails a
workflow; other exceptions only fail/retry the workflow task.

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

* Align Ruby Workflow Failure section to Python

Replace the workflow_failure_exception_type / worker-option examples
(misaligned with Python and already covered in advanced-features.md)
with Python's example of raising an ApplicationError to deliberately
fail a workflow. Add the terse note about not using non_retryable
inside a workflow.

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

* Add logger configuration to Ruby observability

Document configuring the logger via Client.connect (logger: kwarg),
which is used by both Temporalio::Workflow.logger and the activity
logger. Parallels Python's Customizing Logger Configuration section.

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

* Make Ruby Saga compensations cancellation-proof

Run saga compensations with a detached Temporalio::Cancellation so they
still execute when the workflow is canceled mid-saga. Previously they
used the workflow cancellation, which is already canceled at that point,
so the compensation activities would be canceled before starting. This
is the Ruby equivalent of Python's asyncio.shield.

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

* Document patched() memoization caveat in Ruby versioning

Note that Temporalio::Workflow.patched memoizes per patch ID, so it
can't be used reliably in loops; append a sequence number to the patch
ID per iteration. This behavior is shared with Python and .NET.

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

* Add default versioning behavior to Ruby worker versioning

Document configuring default_versioning_behavior on
Temporalio::Worker::DeploymentOptions, paralleling Python's Worker
Configuration with Default Behavior section.

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

* Fix worker versioning config API names in Ruby docs

The Configuring Workers for Versioning example used class/kwarg names
that don't exist in the SDK. Correct them to deployment_options:,
Temporalio::Worker::DeploymentOptions, and
Temporalio::WorkerDeploymentVersion, matching the actual API and the
Worker Configuration with Default Behavior example.

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

* Fix worker concurrency config in Ruby Worker Tuning

max_concurrent_workflow_tasks and max_concurrent_activities are not
valid Worker.new kwargs. Use the tuner: option with
Temporalio::Worker::Tuner.create_fixed(workflow_slots:, activity_slots:)
to control concurrent execution slots.

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

* Align Ruby Workflow Init title with Python

Rename the section to 'Workflow Init Decorator' to match the Python
reference's heading.

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

* Structure Ruby Metrics to match Python

Split the flat Metrics section into 'Enabling SDK Metrics' and
'Key SDK Metrics' subsections, matching the Python reference.

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

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Bart de Water <118401830+bdewater-thatch@users.noreply.github.com>
Co-authored-by: Chris Olszewski <chrisdolszewski@gmail.com>
2026-05-28 17:51:06 -04:00
skill-temporal-developer-updater[bot] 8544cc339f Implement planned topic: 0036-openai-agents-sdk (#223)
* Finalize draft for 0036-openai-agents-sdk

* Apply suggestions from code review

Co-authored-by: Jason Steving <32336750+JasonSteving99@users.noreply.github.com>
Co-authored-by: Donald Pinckney <donald_pinckney@icloud.com>

* Apply suggestion from @donald-pinckney

Kill weird sentence

* Apply suggestion from @donald-pinckney

Change weird sentence

* Apply suggestion from @donald-pinckney

* Apply suggestions from code review

Co-authored-by: Donald Pinckney <donald_pinckney@icloud.com>

* Add info about run context

---------

Co-authored-by: skill-sync[bot] <skill-sync[bot]@users.noreply.github.com>
Co-authored-by: Donald Pinckney <donald.pinckney@temporal.io>
Co-authored-by: Jason Steving <32336750+JasonSteving99@users.noreply.github.com>
Co-authored-by: Donald Pinckney <donald_pinckney@icloud.com>
2026-05-20 12:35:03 -04:00
Donald Pinckney 77def86795 Handle missing tag during skill sync (#230) 2026-05-15 18:23:25 -04:00
Donald Pinckney 60c0178c3d Bump version from 0.3.2 to 0.4.0 (#229) v0.4.0 2026-05-15 18:11:05 -04:00
Donald Pinckney 178392402c Remove early adopter feedback prompt (#228)
Removed feedback prompt message from startup instructions.
2026-05-15 17:45:03 -04:00
Donald Pinckney 7a99afb30c Refine Continue-As-New section for clarity and detail (#227)
Small tweaks to CAN in streaming
2026-05-15 16:56:18 -04:00
Donald Pinckney 8ad839585a Update ai-patterns.md (#226) 2026-05-15 16:44:14 -04:00
skill-temporal-developer-updater[bot] 14d412f37d Implement planned topic: 0032-workflow-streams (#220)
* Finalize draft for 0032-workflow-streams

* Apply suggestions from code review

Co-authored-by: Donald Pinckney <donald_pinckney@icloud.com>

* Remove the extended example. Can add later if needed.

---------

Co-authored-by: skill-sync[bot] <skill-sync[bot]@users.noreply.github.com>
Co-authored-by: Donald Pinckney <donald.pinckney@temporal.io>
Co-authored-by: Donald Pinckney <donald_pinckney@icloud.com>
2026-05-15 16:34:18 -04:00
skill-temporal-developer-updater[bot] e0c15ae74f Implement planned topic: 0031-langsmith-tracing (#217)
* Finalize draft for 0031-langsmith-tracing

* Apply suggestion from @xumaple

Co-authored-by: xumaple <45406854+xumaple@users.noreply.github.com>

* Update references/python/integrations/langsmith.md

* Update references/integrations.md

* Update references/python/integrations/langsmith.md

* Add additional resources for LangGraph integration

Added a section for additional resources related to LangGraph.

---------

Co-authored-by: skill-sync[bot] <skill-sync[bot]@users.noreply.github.com>
Co-authored-by: Donald Pinckney <donald.pinckney@temporal.io>
Co-authored-by: xumaple <45406854+xumaple@users.noreply.github.com>
2026-05-15 16:04:57 -04:00
skill-temporal-developer-updater[bot] 43928a1734 Implement planned topic: 0030-langgraph-plugin (#212)
* Finalize draft for 0030-langgraph-plugin

* Apply suggestions from code review

Co-authored-by: Donald Pinckney <donald_pinckney@icloud.com>

---------

Co-authored-by: skill-sync[bot] <skill-sync[bot]@users.noreply.github.com>
Co-authored-by: Donald Pinckney <donald.pinckney@temporal.io>
Co-authored-by: Donald Pinckney <donald_pinckney@icloud.com>
2026-05-15 14:47:16 -04:00
skill-temporal-developer-updater[bot] 93a81ac6cd Implement planned topic: 0028-google-adk (#207)
* Finalize draft for 0028-google-adk

* Apply suggestions from code review

Co-authored-by: Donald Pinckney <donald_pinckney@icloud.com>

---------

Co-authored-by: skill-sync[bot] <skill-sync[bot]@users.noreply.github.com>
Co-authored-by: Donald Pinckney <donald.pinckney@temporal.io>
Co-authored-by: Donald Pinckney <donald_pinckney@icloud.com>
2026-05-15 14:09:58 -04:00
skill-temporal-developer-updater[bot] 3c8ed616bd Implement planned topic: 0018-spring-ai (#185)
* Finalize draft for 0018-spring-ai

* Update references/java/integrations/spring-ai.md

* Update references/java/integrations/spring-ai.md

* Update references/java/integrations/spring-ai.md

* Update references/java/integrations/spring-ai.md

---------

Co-authored-by: skill-sync[bot] <skill-sync[bot]@users.noreply.github.com>
Co-authored-by: Donald Pinckney <donald.pinckney@temporal.io>
2026-05-14 14:03:01 -04:00
Donald Pinckney 812f32ee58 Add integrations catalog + per-language integrations/ layout (#151)
* Add integrations catalog and per-language integrations/ layout

Adds references/integrations.md as a single catalog table for third-party
plugins and integrations (one row per integration: language, what it does,
link to a reference file). Reference files live under
references/{language}/integrations/.

Pre-seeds the catalog by moving the existing Spring Boot reference into
the new layout (references/java/integrations/spring-boot.md) and updating
its inbound links.

SKILL.md gains a single 3-line "Third-Party Integrations" section pointing
at the catalog so SKILL.md no longer accrues a line per new integration.
Each language entry-point (java.md, python.md) gets a one-line pointer to
the catalog filtered to its language.

This lets open integration PRs (Spring AI, Google ADK, OpenAI Agents
sandbox) be rebased onto a consistent home: move their reference file
into references/{language}/integrations/ and add one row to
references/integrations.md.

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

* Drop HTML contribution comment from integrations.md

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

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 13:46:18 -04:00
Donald Pinckney bd513b1f11 Separate out CLI installation instructions to file (#102) 2026-04-30 16:52:10 -04:00
Donald Pinckney 6495e5927f Cleanup and correct language of workflow initializers (#101) 2026-04-30 16:44:30 -04:00
Donald Pinckney 0e7a3125f8 Small tweak to worker setup wording (#100) 2026-04-30 16:06:59 -04:00
Devin Smaldore 8d05f55a5d Add Spring Boot integration reference for Java SDK (#74)
Covers auto-discovery mechanics, annotation layering (@WorkflowImpl vs
@ActivityImpl + @Component), WorkflowClient injection, worker lifecycle,
testing strategies, and Spring-specific gotchas. Updates java.md and
testing.md with pointers to the new reference.

Co-authored-by: Donald Pinckney <donald.pinckney@temporal.io>
2026-04-30 13:21:48 -04:00
Amir Benvenisti 26955d9cce Add Task Queue Priority and Fairness reference (#98)
Add a core reference file covering Priority (keys 1-5, inheritance,
when to use) and Fairness (keys, weights, virtual queues, round-robin
dispatch, rate limiting, weight overrides, enabling, limitations) with
SDK examples for Go, Java, Python, TypeScript, and .NET. Content is
grounded in the official Temporal docs.

Update SKILL.md to proactively surface Fairness when developers are
building multi-tenant applications, before they run into tenant
starvation problems.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-29 09:23:58 -07:00
Amir Benvenisti cf34710363 Update README to reflect new plugin packaging (#96)
* Update README to reflect new plugin packaging

Remove reference to the old agent-skills mono-plugin repo. Link to the
per-harness plugin repos (Claude Code, Cursor, Codex) and present the
standalone installation options after the plugin links.

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

* Mark .NET SDK as supported

.NET support has landed — move from 🚧 to .

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-21 10:28:24 -07:00
Donald Pinckney 62957d1e56 Fix permission for "reading" changelogs (#95) 2026-04-20 10:36:44 -04:00
Donald Pinckney c98e05a6fc Update version of temporal-developer skill to 0.3.2 (#94) v0.3.2 2026-04-20 09:42:34 -04:00
Patrick Dewey 150c73371e docs: update go observability reference with up-to-date logging approach (#59) 2026-04-20 09:41:19 -04:00
Donald Pinckney 73fc5f0259 Improve syncing PR changelogs: include changelog from previous versions that were unmerged (#93) 2026-04-20 09:28:44 -04:00