Skip to content

chore(deps): bump actions/checkout from 4 to 6#1

Merged
btravers merged 1 commit into
mainfrom
dependabot/github_actions/actions/checkout-6
Dec 8, 2025
Merged

chore(deps): bump actions/checkout from 4 to 6#1
btravers merged 1 commit into
mainfrom
dependabot/github_actions/actions/checkout-6

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Dec 8, 2025

Copy link
Copy Markdown
Contributor

Bumps actions/checkout from 4 to 6.

Release notes

Sourced from actions/checkout's releases.

v6.0.0

What's Changed

Full Changelog: actions/checkout@v5.0.0...v6.0.0

v6-beta

What's Changed

Updated persist-credentials to store the credentials under $RUNNER_TEMP instead of directly in the local git config.

This requires a minimum Actions Runner version of v2.329.0 to access the persisted credentials for Docker container action scenarios.

v5.0.1

What's Changed

Full Changelog: actions/checkout@v5...v5.0.1

v5.0.0

What's Changed

⚠️ Minimum Compatible Runner Version

v2.327.1
Release Notes

Make sure your runner is updated to this version or newer to use this release.

Full Changelog: actions/checkout@v4...v5.0.0

v4.3.1

What's Changed

Full Changelog: actions/checkout@v4...v4.3.1

v4.3.0

What's Changed

... (truncated)

Changelog

Sourced from actions/checkout's changelog.

Changelog

v6.0.0

v5.0.1

v5.0.0

v4.3.1

v4.3.0

v4.2.2

v4.2.1

v4.2.0

v4.1.7

v4.1.6

v4.1.5

... (truncated)

Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code labels Dec 8, 2025
@btravers btravers merged commit 42c1d14 into main Dec 8, 2025
1 check failed
@dependabot dependabot Bot deleted the dependabot/github_actions/actions/checkout-6 branch December 8, 2025 00:19
btravers pushed a commit that referenced this pull request May 4, 2026
…ckage scaffolding

The previous accuracy pass fixed bugs but left real footguns undocumented.
Adds the high-impact missing tribal knowledge identified in the audit.

New rule files:
- workflow-determinism.md — banned APIs (Date.now, Math.random, setTimeout,
  crypto, native I/O) and Temporal-provided replacements. Promoted to the
  #1 entry in AGENTS.md's top-rules list since determinism is the leading
  cause of broken Temporal workflows.
- adding-a-package.md — step-by-step runbook covering tsconfig extension,
  vitest config, knip + changeset registration, peer-dep mirroring, and
  the multi-entry exports gotcha.

Expanded existing files:
- handlers.md: added Cancellation section (cancellableScope /
  nonCancellableScope / WorkflowCancelledError) and ApplicationFailure
  semantics (type / nonRetryable / cause / details), each with
  file:line breadcrumbs to the canonical source.
- code-style.md: documented the three non-default tsconfig flags
  (noUncheckedIndexedAccess, exactOptionalPropertyTypes,
  noPropertyAccessFromIndexSignature) with the spread idiom for optional
  cause. Stated that oxlint enforces only two rules.
- commands.md: listed all 11 commitlint-allowed types (config-conventional)
  with one-line guidance per type.
- testing.md: added file:line breadcrumb to vitest.config.ts:11-27,
  noted contract package's unit-only template, documented turbo's
  cache: false on test tasks and the vitest --coverage flag passthrough.
- project-overview.md: added repo-layout table (packages / examples /
  tools / docs), canonical entry-point breadcrumbs per package, and
  cross-links to determinism + handlers rules.

Cleanup:
- AGENTS.md: top-rules list grew from 5 to 6 with determinism at #1;
  rule-reference table now includes the two new files.
- CONTRIBUTING.md: trimmed to a contributor on-ramp that delegates to
  .agents/rules/ as canonical, eliminating the prior duplication
  (commit types, code-style, test conventions). Adds a where-to-look
  table covering all nine rule files.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
btravers pushed a commit that referenced this pull request May 4, 2026
…ckage scaffolding

The previous accuracy pass fixed bugs but left real footguns undocumented.
Adds the high-impact missing tribal knowledge identified in the audit.

New rule files:
- workflow-determinism.md — banned APIs (Date.now, Math.random, setTimeout,
  crypto, native I/O) and Temporal-provided replacements. Promoted to the
  #1 entry in AGENTS.md's top-rules list since determinism is the leading
  cause of broken Temporal workflows.
- adding-a-package.md — step-by-step runbook covering tsconfig extension,
  vitest config, knip + changeset registration, peer-dep mirroring, and
  the multi-entry exports gotcha.

Expanded existing files:
- handlers.md: added Cancellation section (cancellableScope /
  nonCancellableScope / WorkflowCancelledError) and ApplicationFailure
  semantics (type / nonRetryable / cause / details), each with
  file:line breadcrumbs to the canonical source.
- code-style.md: documented the three non-default tsconfig flags
  (noUncheckedIndexedAccess, exactOptionalPropertyTypes,
  noPropertyAccessFromIndexSignature) with the spread idiom for optional
  cause. Stated that oxlint enforces only two rules.
- commands.md: listed all 11 commitlint-allowed types (config-conventional)
  with one-line guidance per type.
- testing.md: added file:line breadcrumb to vitest.config.ts:11-27,
  noted contract package's unit-only template, documented turbo's
  cache: false on test tasks and the vitest --coverage flag passthrough.
- project-overview.md: added repo-layout table (packages / examples /
  tools / docs), canonical entry-point breadcrumbs per package, and
  cross-links to determinism + handlers rules.

Cleanup:
- AGENTS.md: top-rules list grew from 5 to 6 with determinism at #1;
  rule-reference table now includes the two new files.
- CONTRIBUTING.md: trimmed to a contributor on-ramp that delegates to
  .agents/rules/ as canonical, eliminating the prior duplication
  (commit types, code-style, test conventions). Adds a where-to-look
  table covering all nine rule files.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
btravers pushed a commit that referenced this pull request May 5, 2026
…dError.cause as TemporalFailure

The client side already does the right thing for parent-workflow failures —
`classifyResultError` detects Temporal's `WorkflowFailedError` wrapper and
forwards `error.cause` so consumers can match `err.cause` directly against
`ApplicationFailure | CancelledFailure | TerminatedFailure | TimeoutFailure`.
The worker side did not. Child-workflow `try/catch` blocks wrapped the raw
exception as `ChildWorkflowError.cause`, so callers could not distinguish a
`ChildWorkflowFailure → ApplicationFailure` from a cancellation without
peeling two layers of wrappers.

This commit closes the asymmetry:

- New `classifyChildWorkflowError(operation, error, name)` helper in
  `packages/worker/src/internal.ts` mirrors `classifyResultError`. It
  detects cancellation via `@temporalio/workflow`'s `isCancellation` (which
  sees through nested `ChildWorkflowFailure → CancelledFailure` chains) and
  surfaces a new `ChildWorkflowCancelledError` discriminant. Otherwise, it
  unwraps `ChildWorkflowFailure.cause` so the actionable failure type
  reaches the consumer in one step.
- The three `try/catch` blocks in `createTypedChildHandle.result`,
  `createStartChildWorkflow`, and `createExecuteChildWorkflow` now delegate
  to the helper, and their `ResultAsync` return types pick up the new
  `ChildWorkflowCancelledError` member of the union.
- `WorkflowFailedError.cause` is re-typed from `unknown` to a new public
  `TemporalFailure` union (`ApplicationFailure | CancelledFailure |
  TerminatedFailure | TimeoutFailure | ChildWorkflowFailure | ServerFailure
  | ActivityFailure`) re-exported from the client entry point. The classify
  helpers cast at the boundary because Temporal's SDK types `cause` as
  `Error | undefined` despite only ever populating it with a leaf
  `TemporalFailure`.
- Coverage: a new `child-workflow.spec.ts` exercises every classify branch
  (Application/Timeout/Terminated unwrap, both cancellation shapes,
  arbitrary errors, per-operation message phrasing). `errors.spec.ts` adds
  three `expectTypeOf` assertions locking the cause typing in.

Closes audit findings #1 (worker child-workflow cause unwrapping) and #11
(WorkflowFailedError cause typing).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
btravers pushed a commit that referenced this pull request May 5, 2026
…dError.cause as TemporalFailure

The client side already does the right thing for parent-workflow failures —
`classifyResultError` detects Temporal's `WorkflowFailedError` wrapper and
forwards `error.cause` so consumers can match `err.cause` directly against
`ApplicationFailure | CancelledFailure | TerminatedFailure | TimeoutFailure`.
The worker side did not. Child-workflow `try/catch` blocks wrapped the raw
exception as `ChildWorkflowError.cause`, so callers could not distinguish a
`ChildWorkflowFailure → ApplicationFailure` from a cancellation without
peeling two layers of wrappers.

This commit closes the asymmetry:

- New `classifyChildWorkflowError(operation, error, name)` helper in
  `packages/worker/src/internal.ts` mirrors `classifyResultError`. It
  detects cancellation via `@temporalio/workflow`'s `isCancellation` (which
  sees through nested `ChildWorkflowFailure → CancelledFailure` chains) and
  surfaces a new `ChildWorkflowCancelledError` discriminant. Otherwise, it
  unwraps `ChildWorkflowFailure.cause` so the actionable failure type
  reaches the consumer in one step.
- The three `try/catch` blocks in `createTypedChildHandle.result`,
  `createStartChildWorkflow`, and `createExecuteChildWorkflow` now delegate
  to the helper, and their `ResultAsync` return types pick up the new
  `ChildWorkflowCancelledError` member of the union.
- `WorkflowFailedError.cause` is re-typed from `unknown` to a new public
  `TemporalFailure` union (`ApplicationFailure | CancelledFailure |
  TerminatedFailure | TimeoutFailure | ChildWorkflowFailure | ServerFailure
  | ActivityFailure`) re-exported from the client entry point. The classify
  helpers cast at the boundary because Temporal's SDK types `cause` as
  `Error | undefined` despite only ever populating it with a leaf
  `TemporalFailure`.
- Coverage: a new `child-workflow.spec.ts` exercises every classify branch
  (Application/Timeout/Terminated unwrap, both cancellation shapes,
  arbitrary errors, per-operation message phrasing). `errors.spec.ts` adds
  three `expectTypeOf` assertions locking the cause typing in.

Closes audit findings #1 (worker child-workflow cause unwrapping) and #11
(WorkflowFailedError cause typing).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
btravers pushed a commit that referenced this pull request May 5, 2026
… cancellation scopes

Two related bugs in the worker's neverthrow integration:

1. Five `new ResultAsync(work())` call sites — three in workflow.ts
   (createTypedChildHandle.result, createStartChildWorkflow,
   createExecuteChildWorkflow) and two in cancellation.ts
   (cancellableScope, nonCancellableScope) — failed to catch rejections
   from `work()`. The ResultAsync constructor does not wrap; if the
   work function throws synchronously or returns a rejected promise,
   the resulting ResultAsync rejects, escaping neverthrow's railway as
   an unhandled rejection rather than landing on the typed err(...)
   channel callers actually inspect.

2. Both cancellation-scope helpers re-threw non-cancellation errors
   inside their work bodies via `throw error`. Combined with bug #1
   that meant any domain failure thrown inside a cancellable or
   non-cancellable scope leaked as an unhandled rejection — the scope
   helpers' typed err(...) channel only ever surfaced
   WorkflowCancelledError.

Fixes:

- Hoist the `_internal_makeResultAsync` helper to
  @temporal-contract/contract so client and worker share one
  implementation. The helper takes a `mapRejection` callback so each
  consumer routes rejections to its own typed error class. neverthrow
  is now a peer dep (+ matching dev dep) on contract since it appears
  in the helper's public types. The helper is exported under a
  deliberately-internal-looking name so it is not part of the public
  API surface.

- Update client/src/internal.ts to delegate to the shared helper so
  the existing client-side wrapper keeps its `RuntimeClientError`
  fallback unchanged.

- Add WorkflowScopeError to packages/worker/src/errors.ts (re-exported
  from the worker/workflow barrel). cancellableScope and
  nonCancellableScope now return
  ResultAsync<T, WorkflowCancelledError | WorkflowScopeError>: the
  cancellation branch is unchanged, non-cancellation throws surface as
  err(WorkflowScopeError) with the original error preserved on
  `cause`. Callers branch with `instanceof` to discriminate the two.

- Replace the five `new ResultAsync(work())` sites with the helper.
  The workflow.ts work bodies already produce typed
  `Result<T, ChildWorkflowError>`, so the helper's catch is a strict
  safety net — but the cancellation-scope sites now genuinely route
  errors through it.

- Update cancellation.spec.ts: the previous "propagates non-cancellation
  errors as Future rejections" test now asserts
  err(WorkflowScopeError) with `cause` preserved. Add coverage for the
  synchronous-throw safety path.

- Add direct unit coverage for `_internal_makeResultAsync` in the
  contract package (resolved ok / err pass-through / rejected promise
  via mapRejection / synchronous throw before first await /
  non-Error-throwable forwarded to mapRejection).

The agent rule at .agents/rules/handlers.md:92-95 still claims
"non-cancellation errors propagate as ResultAsync rejections" and is
now stale — to be updated in a follow-up to keep this PR's scope
tight.

Closes audit findings #5 (unhandled rejections in workflow.ts and
cancellation.ts) and #6 (cancellation-scope error channel
incompleteness).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
btravers pushed a commit that referenced this pull request May 5, 2026
… cancellation scopes

Two related bugs in the worker's neverthrow integration:

1. Five `new ResultAsync(work())` call sites — three in workflow.ts
   (createTypedChildHandle.result, createStartChildWorkflow,
   createExecuteChildWorkflow) and two in cancellation.ts
   (cancellableScope, nonCancellableScope) — failed to catch rejections
   from `work()`. The ResultAsync constructor does not wrap; if the
   work function throws synchronously or returns a rejected promise,
   the resulting ResultAsync rejects, escaping neverthrow's railway as
   an unhandled rejection rather than landing on the typed err(...)
   channel callers actually inspect.

2. Both cancellation-scope helpers re-threw non-cancellation errors
   inside their work bodies via `throw error`. Combined with bug #1
   that meant any domain failure thrown inside a cancellable or
   non-cancellable scope leaked as an unhandled rejection — the scope
   helpers' typed err(...) channel only ever surfaced
   WorkflowCancelledError.

Fixes:

- Hoist the `_internal_makeResultAsync` helper to
  @temporal-contract/contract so client and worker share one
  implementation. The helper takes a `mapRejection` callback so each
  consumer routes rejections to its own typed error class. neverthrow
  is now a peer dep (+ matching dev dep) on contract since it appears
  in the helper's public types. The helper is exported under a
  deliberately-internal-looking name so it is not part of the public
  API surface.

- Update client/src/internal.ts to delegate to the shared helper so
  the existing client-side wrapper keeps its `RuntimeClientError`
  fallback unchanged.

- Add WorkflowScopeError to packages/worker/src/errors.ts (re-exported
  from the worker/workflow barrel). cancellableScope and
  nonCancellableScope now return
  ResultAsync<T, WorkflowCancelledError | WorkflowScopeError>: the
  cancellation branch is unchanged, non-cancellation throws surface as
  err(WorkflowScopeError) with the original error preserved on
  `cause`. Callers branch with `instanceof` to discriminate the two.

- Replace the five `new ResultAsync(work())` sites with the helper.
  The workflow.ts work bodies already produce typed
  `Result<T, ChildWorkflowError>`, so the helper's catch is a strict
  safety net — but the cancellation-scope sites now genuinely route
  errors through it.

- Update cancellation.spec.ts: the previous "propagates non-cancellation
  errors as Future rejections" test now asserts
  err(WorkflowScopeError) with `cause` preserved. Add coverage for the
  synchronous-throw safety path.

- Add direct unit coverage for `_internal_makeResultAsync` in the
  contract package (resolved ok / err pass-through / rejected promise
  via mapRejection / synchronous throw before first await /
  non-Error-throwable forwarded to mapRejection).

The agent rule at .agents/rules/handlers.md:92-95 still claims
"non-cancellation errors propagate as ResultAsync rejections" and is
now stale — to be updated in a follow-up to keep this PR's scope
tight.

Closes audit findings #5 (unhandled rejections in workflow.ts and
cancellation.ts) and #6 (cancellation-scope error channel
incompleteness).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant