[pull] main from temporalio:main - #42
Merged
Merged
Conversation
## Related issues N/A ## What changed? Make `TestActivity_List_Pagination` exercise a deterministic mix of three completed and two running standalone Activities. The test now waits for completed results, blocks running Activities until pagination finishes, and waits for visibility to report the exact status mix before listing. It also verifies each Activity appears exactly once with the expected status, avoiding the race where an Activity could complete and move in visibility ordering between page requests. ## Checklist **Stability** - [x] No user-facing behavior or output changes **Tests** - [x] Updated functional test (`SharedServerSuite`) - [x] Focused pagination test passed 20 consecutive runs - [x] Neighboring Activity list/count tests passed ## Testing ```sh go test ./internal/temporalcli -run 'TestSharedServerSuite/TestActivity_List_Pagination$' -count=20 go test ./internal/temporalcli -run 'TestSharedServerSuite/TestActivity_(List(_Pagination)?|Count)$' -count=1 git diff --check ```
## Related issues N/A ## What changed? Restores the `server start-dev` log-level default exception in `temporal options`, which is now the canonical help surface for global flags. Also corrects the adjacent stale implementation comment and adds regression coverage. This preserves the contract from #956: it changed the common default from `info` to `never` for short-lived CLI commands, while deliberately retaining the long-running `server start-dev` default of `warn`. That exception was present in #956’s option metadata but was removed by the subsequent help decluttering change. ## Checklist - [x] Added applicable unit-test coverage - [x] Help text describes the actual command behavior ## Manual tests ``` temporal options # --log-level describes the `never` default and the `server start-dev` `warn` exception. ``` ## Validation ``` env GOCACHE=/private/tmp/fix-cli-log-desc-gocache make test ```
## Related issues n/a ## What changed? This adds support for new AWS compute provider: AWS AgentCore. AgentCore configuration is almost identitical to AWS Lambda, replacing function ARN with Runtime Endpoint ARN. ## Checklist <!-- Your PR should satisfy all these requirements. However, feel free to remove items that don't apply to the PR. Consider giving this checklist to an AI agent before opening your PR. --> **Stability** - [x] Breaking changes are marked with 💥 in the PR title and release notes - [x] Changes to JSON output (`-o json` / `-o jsonl`) are treated as breaking changes **Design** - [✅] This feature does not depend on Cloud-only APIs or behavior (it works against an OSS server) - [✅] New commands follow `temporal <noun> <verb>` structure (e.g. `temporal workflow start`) - [✅] New flags are named after the API concept, not the implementation mechanism (good: `--search-attribute`, bad: `--index-field`) - [ ❌] New flags don't duplicate an existing flag that serves the same purpose - > Both lambda and agentcore utilize similar assume-role-external-id, assume-role-arn and the corresponding skip flag. However, we are scoping them to the compute provider in an effort to support multiple compute providers in the future, as WCI currently supports that, but we haven't exposed it yet. - [✅] New flags do not have short aliases without strong justification - [✅] Experimental features are marked with `(Experimental)` in `commands.yaml` **Help text** (see style guide at the top of `commands.yaml`) - [✅] All flags shown in help text and examples are implemented and functional - [ ✅] Summaries use sentence case and have no trailing period - [ ✅] Long descriptions end with a period and include at least one example invocation - [ ✅] Examples use long flags (`--namespace`, not `-n`), one flag per line - [ ✅] Placeholder values use `YourXxx` form (`YourWorkflowId`, `YourNamespace`) **Behavior** - [ ✅] Results go to stdout; errors and warnings go to stderr - [ ✅] Error messages are lowercase with no trailing punctuation **Tests** - [✅] Added functional test(s) (`SharedServerSuite`) - [✅] Added unit test(s) (`func TestXxx`) where applicable ## Manual tests <!-- Edit the code samples below to provide setup and happy-path and error-path testing instructions. --> ### setup ``` <jschoeff> eval `assume-sso team-compute-sandbox/AWSAdministratorAccess` [i] If the browser does not open automatically, please open this link: https://temporal.awsapps.com/start/#/device?user_code=LLXQ-NPJW [i] Awaiting AWS authentication in the browser [i] You will be prompted to authenticate with AWS in the browser, then you will be prompted to 'Allow' [i] Code: LLXQ-NPJW [✔] Successfully logged into Start URL: https://temporal.awsapps.com/start <jschoeff> go build -o temporal ./cmd/temporal ./temporal server start-dev \ --dynamic-config-value workercontroller.enabled=true Temporal CLI 0.0.0-DEV (Server 1.32.0-162.0, UI 2.53.1) ``` ### Happy Path ``` <jschoeff> ./temporal worker deployment create --name temporal-worker-agentcore Successfully created worker deployment <jschoeff> ./temporal worker deployment create-version \ --aws-agentcore-endpoint-arn arn:aws:bedrock-agentcore:us-east-1:093235337669:runtime/justinschoeff_temporal_worker_agentcore-DvGerTB5L8/runtime-endpoint/V5 \ --aws-agentcore-assume-role-external-id schoeffExternalId \ --aws-agentcore-role arn:aws:iam::093235337669:role/justinschoeff-temporal-worker-invoke \ --build-id v5 \ --deployment-name temporal-worker-agentcore Successfully created worker deployment version <jschoeff> ./temporal worker deployment set-current-version --deployment-name temporal-worker-agentcore --build-id v5 Worker Deployment Before Update: Name temporal-worker-agentcore CreateTime 12 minutes ago CurrentVersionDeploymentName temporal-worker-agentcore CurrentVersionBuildID v5 CurrentVersionChangedTime 11 minutes ago Version Summaries: DeploymentName BuildID DrainageStatus CreateTime temporal-worker-agentcore v5 unspecified 12 minutes ago Continue with set Current? y/N y Successfully set the current worker deployment version <jschoeff> ./temporal workflow start \ --type sampleWorkflow \ --task-queue server-scaled-workers \ --input '"What can you do?"' Running execution: WorkflowId 7f7e99b7-d645-42a3-8ca2-d713d1caafb1 RunId 01a035d6-4cb9-73e0-b242-397ba3259475 Type sampleWorkflow Namespace default TaskQueue server-scaled-workers <jschoeff> ./temporal workflow describe --workflow-id 7f7e99b7-d645-42a3-8ca2-d713d1caafb1 Execution Info: WorkflowId 7f7e99b7-d645-42a3-8ca2-d713d1caafb1 RunId 01a035d6-4cb9-73e0-b242-397ba3259475 Type sampleWorkflow Namespace default TaskQueue server-scaled-workers ... Versioning Info: Behavior Pinned DeploymentName temporal-worker-agentcore BuildId v5 Results: RunTime 4.27s Status COMPLETED Result "go: Hello What can you do?" ResultEncoding json/plain ``` **Error case** ``` <jschoeff> ./temporal worker deployment create-version \ --aws-agentcore-endpoint-arn arn:aws:bedrock-agentcore:us-east-1:093235337669:runtime/justinschoeff_temporal_worker_agentcore-DvGerTB5L8/runtime-endpoint/V5 \ --aws-agentcore-assume-role-external-id schoeffExternalId \ Error: required flag(s) "build-id", "deployment-name" not set Usage: ... Error: required flag(s) "build-id", "deployment-name" not set ``` ``` <jschoeff> ./temporal worker deployment create-version \ --aws-agentcore-assume-role-external-id schoeffExternalId \ --aws-agentcore-assume-role-arn arn:aws:iam::093235337669:role/justinschoeff-temporal-worker-invoke \ --build-id v5 \ --deployment-name temporal-worker-agentcore Error: missing configuration for compute provider ``` ``` <jschoeff> ./temporal worker deployment create-version \ --aws-agentcore-endpoint-arn arn:aws:iam::093235337669:role/justinschoeff-temporal-worker-invoke \ --aws-agentcore-assume-role-arn arn:aws:iam::093235337669:role/justinschoeff-temporal-worker-invoke \ --build-id v5 \ --deployment-name temporal-worker-agentcore Error: missing required AWS Agentcore provider detail: role_external_id ``` ``` <jschoeff> ./temporal worker deployment create-version \ ~/workplace/local-dev/cli --aws-agentcore-endpoint-arn arn:aws:iam::093235337669:role/justinschoeff-temporal-worker-invoke \ --aws-agentcore-assume-role-external-id arn:aws:iam::093235337669:role/justinschoeff-temporal-worker-invoke \ --build-id v5 \ --deployment-name temporal-worker-agentcore Error: missing required AWS Agentcore provider detail: role ```
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )