Skip to content

TS strict (1/4): type annotations, dead-code cleanup, strict-error CI infra - #3686

Merged
tegan-temporal merged 1 commit into
mainfrom
strict/1-base
Jul 17, 2026
Merged

TS strict (1/4): type annotations, dead-code cleanup, strict-error CI infra#3686
tegan-temporal merged 1 commit into
mainfrom
strict/1-base

Conversation

@tegan-temporal

@tegan-temporal tegan-temporal commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

First of a 4-PR split of #3640 (enable TypeScript strict mode).

Zero runtime impact, no CI/enforcement changes. Contains only: noImplicitAny-driven type annotations, import type conversions, Storybook/test typing, and dead-code removal. 36 files.

Global strict stays off and the Danger strict-error check stays in warn mode until the final PR — so merging this early blocks nothing. All files verified strict-clean.


Stack (merge bottom-up):

  1. TS strict (1/4): type annotations, dead-code cleanup, strict-error CI infra #3686 strict/1-base — type annotations + dead-code cleanup (zero runtime)
  2. TS strict (2/4): strictNullChecks null-safety guards #3687 strict/2-mechanical — strictNullChecks null-safety guards
  3. TS strict (3/3): runtime model/form/service changes + enable strict mode #3688 strict/3-behavior — runtime-affecting model/form/service changes
  4. TS strict (4/4): enable strict mode in base tsconfig #3640 ts-strict-mode — flip strict: true + enforce in CI

Split verified: stacking all four reproduces the original combined tree byte-for-byte.

@vercel

vercel Bot commented Jul 17, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
holocene Ready Ready Preview, Comment Jul 17, 2026 4:47pm

Request Review


<!-- Info Alert -->
<Alert intent="info" class="text-sm">
<Icon name="info" slot="icon" />

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this slot does not exist in Alert and apparently never did??? the Icon is chosen from the Alert icon prop which defaults to intent prop

@tegan-temporal
tegan-temporal marked this pull request as ready for review July 17, 2026 16:32
@tegan-temporal
tegan-temporal requested a review from a team as a code owner July 17, 2026 16:32
import allEventTypesFixture from '$fixtures/all-event-types.json';

const events = allEventTypesFixture as unknown as CommonHistoryEvent[];
const events = allEventTypesFixture as unknown as Record<

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the accurate shape, it's not an array

@andrewzamojc andrewzamojc left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. All safe stuff 👍

@@ -1,4 +1,6 @@
export const workflowStartedEvent = {
import type { PotentiallyDecodable } from './decode-payload';

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review this file with by hiding whitespace changes, the diff is weird due to the whitespace change

Zero runtime impact: noImplicitAny type annotations, import type conversions,
Storybook/test typing, and dead-code removal. No CI/enforcement changes here.
@tegan-temporal
tegan-temporal enabled auto-merge (squash) July 17, 2026 16:49
@tegan-temporal
tegan-temporal merged commit 892163b into main Jul 17, 2026
18 checks passed
@tegan-temporal
tegan-temporal deleted the strict/1-base branch July 17, 2026 16:55
tegan-temporal added a commit that referenced this pull request Jul 17, 2026
Mechanical null-safety: nullish-coalescing defaults, optional chaining,
{#if} render guards, and generics-driven refactors. Behavior-preserving.
Rebased onto main after the base PR (#3686) merged.
tegan-temporal added a commit that referenced this pull request Jul 20, 2026
…ode (#3688)

* TS strict (2/4): strictNullChecks null-safety guards

Mechanical null-safety: nullish-coalescing defaults, optional chaining,
{#if} render guards, and generics-driven refactors. Behavior-preserving.
Rebased onto main after the base PR (#3686) merged.

* TS strict (3/4): runtime-affecting model, form, and service changes

WorkflowExecution optional fields (with their snapshot tests), schedule-form
zod default seeding, standalone-activity retry fields as strings coerced at the
boundary, duration-input defaults, and requestFromAPI's Promise<T | undefined>.

* TS strict: enable strict mode and enforce it in CI

Fold the strict: true flip + Danger warn->fail into this PR. The standalone-activity
form's superForm types only resolve correctly under strictNullChecks, so the behavior
changes can't type-check on a strict:false main — the flag must land with them.
Supersedes the separate flag PR (#3640).
laurakwhit added a commit that referenced this pull request Jul 29, 2026
Auto-generated version bump from 2.52.1 to 2.53.0

Bump type: minor

Changes included:
- [`b1602800`](b160280) Make serverless worker Terraform template configurable (COM-216) (#3671)
- [`d1ec2795`](d1ec279) Support markdown tables in Workflow details (#3673)
- [`5eae94c7`](5eae94c) Show IANA region names in schedule timezone picker (DT-4250) (#3668)
- [`f454220c`](f454220) fix(DT-4269): namespace selector tooltip overflow (#3676)
- [`b563bfff`](b563bff) Update format of Execution Duration (#3677)
- [`17f6d7a7`](17f6d7a) Add download json button to Standalone Activities table (#3675)
- [`6f45cc07`](6f45cc0) Migrate old column labels (#3678)
- [`af5c9408`](af5c940) Update to use formatDurationAbbreviated (#3679)
- [`066a662c`](066a662) feat(timeline): HTML virtualization + collapse idle time (#3627)
- [`eee96c60`](eee96c6) Update empty state for Standalone Activities (#3681)
- [`51164cb4`](51164cb) [COM-193] Lock compute provider for new deployment versions (#3674)
- [`0b700a38`](0b700a3) refactor: add es-toolkit (#3652)
- [`bf4ee86f`](bf4ee86) chore(proto): add local @temporalio/proto codegen tooling (#3684)
- [`892163b2`](892163b) TS strict (1/4): type annotations and dead-code cleanup (#3686)
- [`b06e30e7`](b06e30e)  Fix live timeline refresh for completed event groups (#3689)
- [`51f04f87`](51f04f8) TS strict (2/4): strictNullChecks null-safety guards (#3687)
- [`41dfc531`](41dfc53) Shared SavedViews component updates (#3670)
- [`ee6348b1`](ee6348b) Fix max height for paginated table in saved query views (#3691)
- [`60e4b6c0`](60e4b6c) TS strict (3/3): runtime model/form/service changes + enable strict mode (#3688)
- [`ddde6e70`](ddde6e7) Activity commands for Standalone Activities (#3564)
- [`40baeae6`](40baeae) Associate Combobox hints with form fields (#3667)
- [`9940a389`](9940a38) Start delay for standalone activities  (#3650)
- [`02aa74e9`](02aa74e) Add ExecutionTime search attribute for standalone activities (#3666)
- [`c84732e3`](c84732e) Fix TypeError in workflow JSON navigator on empty events (#3696)
- [`839bc0d5`](839bc0d) [DT-4154] Add Cloud Run replica scaling controls (#3694)
- [`32a49e4b`](32a49e4) fix(events): reflect pending-activity commands without reload (#3693)
- [`9f8ddee6`](9f8ddee) Add Batch Operations to Standalone Activities (#3695)
- [`d2eb9444`](d2eb944) Use standaloneActivityOperatorCommands ns capability check (#3698)
- [`ea731e45`](ea731e4) Fix state unsafe mutation error in EndTimeInterval (#3715)
- [`7a081c88`](7a081c8) Update holocene empty-state to runes syntax (#3701)
- [`9693355c`](9693355) Update holocene navigation-item to runes syntax (#3702)
- [`1b5b267e`](1b5b267) Update holocene table to runes syntax (#3711)
- [`e418bdbb`](e418bdb) Update holocene navigation-badge to runes syntax (#3703)
- [`4f45e370`](4f45e37) Remove unused compatibility-badge component (#3704)
- [`596740cd`](596740c) Update holocene navigation-button to runes syntax (#3705)
- [`9ac2f525`](9ac2f52) Remove unused expandable/button component (#3706)
- [`240561dc`](240561d) Update holocene copyable/button to runes syntax (#3707)
- [`4fc08c48`](4fc08c4) Update holocene radio-input and radio-card to runes syntax (#3708)
- [`d6e839f7`](d6e839f) Update holocene table-row and table-header-row to runes syntax (#3710)
- [`99a9ff71`](99a9ff7) fix: surgical security upgrades for Dependabot alerts (#3709)
- [`9b105b47`](9b105b4) fix(serverless-workers): interpolate form values into Terraform snippet (COM-216) (#3716)
- [`d126ea8a`](d126ea8) Fix deployment connection validation status refresh (#3718)
- [`f0edfbd7`](f0edfbd) [DT-4296] Add Terraform setup instructions to the GCP Cloud Run deployment form (#3700)
- [`38453f90`](38453f9) Fix event id param (#3745)
- [`bc70844a`](bc70844) Add runes button component (strangler migration, part 1) (#3727)
- [`a559c6fe`](a559c6f) Migrate app-level button consumers to runes button (#3728)
- [`3a7eaa19`](3a7eaa1) Migrate holocene-internal button renderers and stories to runes button (#3729)
- [`5a72155d`](5a72155) Migrate icon-button to runes with onclick prop (#3730)
- [`08654d88`](08654d8) Migrate split-button to runes with onclick prop (#3731)
- [`40ae4943`](40ae494) Migrate toggle-button to runes button (part 6) (#3732)
- [`9fc25bca`](9fc25bc) Finalize button migration: delete legacy, rename runes button (#3733)
- [`7ce3f72f`](7ce3f72) Bump API to v1.63.4 (#3723)

Co-authored-by: laurakwhit <15069288+laurakwhit@users.noreply.github.com>
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.

2 participants