What's Changed
- docs(frontend): add React 18/19 upgrade plan and checklist by @dpanshug in #12882
- chore: upgrading go to 1.25.7 as it has many security fixes by @nsingla in #12905
- chore(release): bump version to 2.16.0 on master branch by @droctothorpe in #12910
- chore(test): add jeffspahr to test OWNERS approvers by @jeffspahr in #12911
- chore(deps): bump diff from 5.2.0 to 5.2.2 in /test/frontend-integration-test by @dependabot[bot] in #12682
- chore(deps): bump lodash from 4.17.21 to 4.17.23 in /test/frontend-integration-test by @dependabot[bot] in #12691
- chore(frontend): add React peer compatibility gate by @jeffspahr in #12881
- docs(frontend): add GitHub issue numbers to React 18/19 upgrade checklist by @manaswinidas in #12918
- chore(frontend): remove dead deps request, coveralls, swagger-ts-client by @jeffspahr in #12872
- test(frontend): remove snapshot-diff and react-dom test-utils usage by @jeffspahr in #12856
- Delete manifests/kustomize/third-party/prometheus directory by @juliusvonkohout in #12921
- Feat(workflow) Add multi-arch docker buildx support to the image building workflows for building arm64 and amd64 container images by @jtu-ampere in #12804
- chore(backend): use slim base images for API server Dockerfile by @jsonmp-k8 in #12890
- Delete manifests/kustomize/third-party/grafana directory by @juliusvonkohout in #12922
- chore(backend): Increase timeout for PVC cache test to reduce flakiness by @aniketpati1121 in #12916
- chore(owners): add juliusvonkohout to manifests/kustomize OWNERS by @juliusvonkohout in #12923
- fix(cve): upgrade some deps to fix few cves by @nsingla in #12933
- fix(frontend): remove raw
tags from Getting Started page by @haroon0x in #12730 - feat(frontend): upgrade Storybook 6 to 10 with Vite builder by @jsonmp-k8 in #12940
- fix(frontend): focus Pipeline Name field instead of Description when creating a pipeline. Fixes #12883 by @Sridhar1030 in #12884
- fix(components): Remove deprecated Wide and Deep Tabular workflow components by @copybara-service[bot] in #12496
- fix(components): Partial rollback: Remove deprecated Wide and Deep Tabular workflow components by @copybara-service[bot] in #12947
- test(backend): add test coverage for apiserver/server package by @jsonmp-k8 in #12937
- test(v2/driver): add test coverage for cache, validation, and helpers by @jsonmp-k8 in #12935
- [frontend] Migrate Material UI v4 to MUI v5 by @jeffspahr in #12925
- chore(deps-dev): bump minimatch from 3.1.2 to 3.1.5 in /frontend/server by @dependabot[bot] in #12926
- docs(frontend): refresh React 18/19 upgrade checklist status by @jeffspahr in #12950
- test(backend): add test coverage for common/util package by @jsonmp-k8 in #12951
- docs: Fix typos across documentation/.md files by @manaswinidas in #12954
- doc: Add a KEP for native MLflow integration in KFP by @mprahl in #12862
- doc: Remove MLflow SSAR requirement on KEP-12862 by @mprahl in #12956
- fix(backend): Added path traversal mitigation to DownloadBlob and improve unit test coverage by @hbelmiro in #12928
- chore(frontend): upgrade prettier from 1.19.1 to 3.x. Fixes #12942 by @khushiiagrawal in #12943
- test(backend): add test coverage for apiserver/validation package by @jsonmp-k8 in #12952
- test(backend): raise common/util test coverage to 80% by @jsonmp-k8 in #12953
- feat(frontend): migrate API codegen to OpenAPI Generator by @jeffspahr in #12817
- chore(ci): remove welcome new contributors workflow by @droctothorpe in #12964
- docs(agents): add commit signoff and no-AI-co-author policy by @droctothorpe in #12965
- fix(frontend): add npm cache retry to prevent EEXIST race condition in Docker build by @droctothorpe in #12963
- test(frontend): add unit tests for untested components by @jsonmp-k8 in #12961
- test(backend): add unit tests for apiserver/client package by @jsonmp-k8 in #12962
- chore(frontend): speed up OpenAPI codegen by parallelizing Docker runs by @manaswinidas in #12968
- chore: migrate build system from pip/setup.py to uv workspaces (#12686) by @sh4shv4t in #12770
- test(e2e): migrate frontend integration tests to WDIO v9 and expand coverage by @jeffspahr in #12915
- fix(test): re-enable and add all snapshot tests for kfp-kubernetes by @jsonmp-k8 in #12971
- Revert "chore: migrate build system from pip/setup.py to uv workspace… by @hbelmiro in #12979
- Update SeaweedFS image version to 4.15 by @juliusvonkohout in #12983
- chore(frontend): Migrate react-query to @tanstack/react-query by @kanishka-commits in #12946
- test(cache/client): improve unit test coverage from 5.6% to 69.4% by @jsonmp-k8 in #12986
- fix(sdk): replace lstrip/rstrip with removeprefix/removesuffix for type name parsing by @Priyanshu-u07 in #12991
- docs: add code reuse and naming conventions to AGENTS.md by @jsonmp-k8 in #12998
- fix(frontend): remove CVE-2026-3449 from ui server by @jeffspahr in #12976
- chore(frontend): migrate react-flow-renderer to @xyflow/react by @PR3MM in #12945
- fix(frontend): replace comma operators in ArtifactList test by @jeffspahr in #12985
- fix(frontend): remove tautological and duplicate UI tests by @manaswinidas in #12995
- fix: correct typo pipline_func_args -> pipeline_func_args in pipeline… by @sduvvuri1603 in #12833
- docs(frontend): mark react-query and react-flow migrations as completed in upgrade checklist by @manaswinidas in #13003
- docs(frontend): refresh React upgrade checklist status by @jeffspahr in #13006
- chore(deps): upgrade AWS SDK Go v2 to latest by @jsonmp-k8 in #13001
- fix(ci): exclude Copilot review checks from CI status gate by @jsonmp-k8 in #13000
- docs: add testing policy to AGENTS.md by @jsonmp-k8 in #13002
- chore(frontend): migrate server lint to eslint and fix artifact domain matching by @jeffspahr in #12997
- chore(components): update model eval image version by @copybara-service[bot] in #13012
- Switch to slim base images for components and frontend by @jsonmp-k8 in #12927
- test(backend): add unit tests for apiserver main package by @jsonmp-k8 in #13008
- fix(backend): resolve IfPresent conditions in component.yaml. Fixes #11009 by @khushiiagrawal in #12598
- feat(frontend): add Literal parameter dropdown for pipeline run inputs #12603 by @khushiiagrawal in #12839
- fix(frontend): Vite dev CJS-to-ESM bridge for generated protobufs. Fixes #13016 by @PR3MM in #13017
- chore(frontend): DRY shared React Query hooks (PipelineVersionTemplate, getArtifactTypes). Fixes #12966 by @kanishka-commits in #13010
- chore(frontend): Modernize JSX runtime and test utilities (#12895) by @kanishka-commits in #13019
- fix(frontend): remove duplicate overrides key in .eslintrc.yaml by @jsonmp-k8 in #13024
- chore(deps): upgrade Go dependencies and fix snowflake version spec by @jsonmp-k8 in #13014
- chore(deps): upgrade Go from 1.25.7 to 1.26.1 by @jsonmp-k8 in #13015
- doc: Add additional clarification to the MLflow integration KEP by @mprahl in #13028
- fix(codegen): regenerate .pb.go files for protoc-gen-go v1.36.11 by @jsonmp-k8 in #13031
- docs(AGENTS.md): reference backend/README.md for backend work by @jsonmp-k8 in #13032
- chore(frontend): upgrade Node.js from 22.19.0 to 24.14.0 by @jsonmp-k8 in #13037
- docs(frontend): refresh React upgrade checklist and rescope #7 by @jeffspahr in #13023
- chore(frontend): add engines field to package.json by @jsonmp-k8 in #13038
- ci(frontend): add lockfile drift check to prevent Prettier version mismatch by @manaswinidas in #13026
- chore(deps): upgrade Kubernetes stack, go-openapi, and cel-go by @jsonmp-k8 in #13029
- ci: workflow fixes by @nsingla in #13046
- chore(frontend): upgrade markdown-to-jsx, react-dropzone, react-texta… by @PR3MM in #13025
- refactor(apiserver): make initConfig and registerHTTPHandlerFromEndpoint testable by @jsonmp-k8 in #13040
- docs(frontend): refresh React upgrade checklist by @manaswinidas in #13066
- fix(sdk): gate LocalRunner input-artifact blocking on provided args by @mprahl with @Copilot in #13064
- chore(frontend): Add unit tests for MLMD detail pages (0% coverage on ArtifactDetails and ExecutionDetails) #13042 by @kanishka-commits in #13045
- chore(frontend): remove redundant CJS protobuf files under src/genera… by @PR3MM in #13063
- fix(frontend): restore sidebar nav button styling by @jeffspahr in #13062
- chore(frontend): upgrade React to v18. Fixes #12897 by @kanishka-commits in #13070
- docs(frontend): refresh React 18/19 upgrade checklist by @jeffspahr in #13073
- docs(frontend): fix generated pipeline spec outputs by @jeffspahr in #13071
- fix(frontend): correct pipeline version delete async handling by @Priyanshu-u07 in #13067
- chore(frontend): stabilize React 18 runtime by @manaswinidas in #13075
- test(frontend): finish React 18 cleanup follow-up by @jeffspahr in #13077
- chore(frontend): React 18.3 deprecation checkpoint (#12899) by @PR3MM in #13080
- chore(frontend): add unit tests for MLMD LineageApi, LineageCard, and LineageCardRow by @manaswinidas in #13048
- chore(ci): upgrade GitHub Actions to latest major versions by @jsonmp-k8 in #12823
- docs(frontend): refresh React upgrade checklist after React 18.3 by @jeffspahr in #13081
- feat(backend): Add option to apply tags to create, upload pipelines and create pipeline version. Also allow filtering on the tag when fetching resources by @nsingla in #12999
- chore(frontend): clear React 19 peer blockers by @jeffspahr in #13082
- refactor(apiserver): extract resolveWebhookTLSPaths for testability by @jsonmp-k8 in #13088
- chore(deps-dev): bump flatted from 3.1.1 to 3.4.2 in /frontend by @dependabot[bot] in #13090
- chore(deps): bump fast-xml-parser from 5.4.1 to 5.5.7 in /test/frontend-integration-test by @dependabot[bot] in #13086
- chore(deps): bump undici in /test/frontend-integration-test by @dependabot[bot] in #13039
- docs(frontend): refresh React upgrade checklist after #13082 by @jeffspahr in #13091
- fix(frontend): filter out store_session_info from Scalar Metrics display by @Priyanshu-u07 in #13098
- fix(frontend): repair mock API server and remove dead portable-fetch dep by @manaswinidas in #13105
- chore(frontend): Prepare @tanstack/react-query v5 migration. Fixes: #12967 by @kanishka-commits in #13089
- chore(frontend): add unit tests for MLMD canvas and column layout by @pnaik1 in #13049
- chore(frontend): centralize filtering for reserved artifact custom properties by @Priyanshu-u07 in #13109
- fix: upgrading argo workflow controller and grpc version to fix CVEs by @nsingla in #13110
- bump trivvy by @HumairAK in #13119
- use hashes for actions for trivvy workflow by @HumairAK in #13120
- chore(frontend): align node version consumers with frontend/.nvmrc by @jeffspahr in #13101
- fix(frontend): add typecheck regression guard for mock-backend by @manaswinidas in #13115
- Reduce effect-driven state handling in frontend pages by @jeffspahr in #13100
- feat(backend): Improve pod name resolution for pipelines with long names and enhance test coverage by @hbelmiro in #13124
- chore(deps): bump picomatch in /frontend/server by @dependabot[bot] in #13135
- chore(deps): bump picomatch from 2.3.1 to 2.3.2 in /test/frontend-integration-test by @dependabot[bot] in #13144
- chore(deps): bump picomatch in /frontend by @dependabot[bot] in #13136
- chore(deps): bump node-forge from 1.3.3 to 1.4.0 in /frontend/server by @dependabot[bot] in #13147
- chore(deps): bump yaml in /frontend by @dependabot[bot] in #13131
- chore(deps): bump google.golang.org/grpc from 1.58.3 to 1.79.3 in /test/tools/project-cleaner by @dependabot[bot] in #13087
- refactor(frontend): reduce NewRunV2 effect state handling by @jeffspahr in #13140
- fix(sdk): support .after() dependencies on ExitHandler groups by @jeffspahr in #13112
- chore(frontend): upgrade React to v19 by @PR3MM in #13153
- docs(frontend): refresh React 18/19 upgrade checklist after React 19 by @manaswinidas in #13161
- fix: prevent stale ci-passed labels by @jsonmp-k8 in #13095
- chore(deps): bump path-to-regexp from 0.1.12 to 0.1.13 in /frontend/mock-backend by @dependabot[bot] in #13163
- fix(ci): keep Tide-required contexts green on label churn by @jeffspahr in #13172
- refactor(frontend): reduce NewRun effect syncing by @jeffspahr in #13166
- refactor(frontend): derive CompareV2 artifact state by @jeffspahr in #13165
- fix(security): validate namespace in getArtifactServiceGetter to prevent SSRF (CVE-2023-6570) by @cybernagle in #13126
- Clarify requirements for multi-user MLflow token definitions by @mprahl in #13160
- chore(frontend): remove stale scripts and simplify npm commands by @manaswinidas in #13173
- fix(backend): isolate executor-logs per retry pod by @droctothorpe in #13175
- fix(backend): increase MLMD client retry budget for MySQL deadlocks by @droctothorpe in #13179
- chore(test): use make commands in
sdk-component-yamlby @puwun in #12755 - chore(deps): bump urllib3 from 2.5.0 to 2.6.3 in /kubernetes_platform/python by @dependabot[bot] in #12623
- chore(manifests): remove empty emissary overlay aliases by @Raakshass in #12992
- refactor(apiserver): extract buildHTTPRouter for testability by @jsonmp-k8 in #13094
- chore(manifests): remove stale GCP workload identity scripts by @Raakshass in #12982
- feat: add workflow TTL support via SDK PipelineConfig by @droctothorpe in #13184
- chore(frontend): deduplicate generated OpenAPI runtime and model files by @jeffspahr in #13157
- feat: add activeDeadlineSeconds support via SDK PipelineConfig by @jsonmp-k8 in #13187
- chore(frontend): add unit tests for run routing components (#13041) by @PR3MM in #13047
- fix(backend): Wire
MANAGED_PIPELINES_UPLOAD_TAGSintoLoadSamplesby @hbelmiro in #13158 - fix(frontend): persist rows per page selection in localStorage by @Priyanshu-u07 in #13186
- test(frontend): add literal input frontend integration test by @jeffspahr in #13167
- refactor(frontend): derive CompareV2 artifact selection by @jeffspahr in #13190
- fix(backend): resolve use_secret_as_env pipeline params in ParallelFor by @nsingla in #13128
- fix(security): prevent SQL injection in pageToken parameter via field name validation by @cybernagle in #13127
- chore(deps): bump lodash from 4.17.23 to 4.18.1 in /frontend by @dependabot[bot] in #13198
- chore(frontend): clean up NewRunV2 test boilerplate, validation contract, memo dependencies by @manaswinidas in #13196
- fix(ci): Increase runner memory limit by @nsingla in #13221
- chore(ci): increase the number of parallel threads for e2e tests by @nsingla in #13223
- fix(frontend): guard _loadAllOutputs against unhandled promise rejection by @manaswinidas in #13218
- test(backend): increase apiserver/template test coverage to 64.5% by @jsonmp-k8 in #13203
- test(backend): increase apiserver/client test coverage to 62.3% by @jsonmp-k8 in #13201
- test(frontend): add RunDetails regression test for rejected output artifact loads. by @manaswinidas in #13230
- fix(ci): gate ci-passed on real CI poll completion by @jeffspahr in #13207
- chore(frontend): enable React StrictMode in dev and tests. Fixes #12902 by @manaswinidas in #13229
- refactor(frontend): reduce NewRun prop syncing by @jeffspahr in #13208
- docs(frontend): document frontend coding conventions. Closes #5118 by @jeffspahr in #13210
- fix(frontend): prevent run details spinner on template refetch by @jeffspahr in #13212
- chore(deps-dev): bump vite from 7.3.1 to 7.3.2 in /frontend by @dependabot[bot] in #13224
- docs: Update AGENTS.md to respect interface boundaries by @mprahl in #13117
- Add manaswinidas as frontend approver by @manaswinidas in #13232
- fix(frontend): surface silent useQuery errors to users by @manaswinidas in #13217
- docs(frontend): refresh React 19 stack guidance by @jeffspahr in #13164
- feat(backend): Selectively block v1 pipeline runs by namespace by @cbartram in #13068
- fix(frontend): Prevent Unauthorized Cross-Namespace Artifact Access (rebased, security-hardened) by @Raakshass in #12860
- chore(deps): bump fast-xml-parser and @aws-sdk/xml-builder in /frontend/server by @dependabot[bot] in #13243
- chore(deps): bump basic-ftp from 5.2.0 to 5.2.1 in /test/frontend-integration-test by @dependabot[bot] in #13242
- chore(frontend): modernize Trigger.test.tsx to Testing Library patterns by @Priyanshu-u07 in #13244
- fix(ci): Update Profile Controller manifest URL in deploy script by @hbelmiro in #13247
- chore(deps): bump axios from 1.13.5 to 1.15.0 in /frontend/server by @dependabot[bot] in #13248
- chore(deps): bump lodash from 4.17.23 to 4.18.1 in /frontend/server by @dependabot[bot] in #13249
- refactor(frontend): narrow NewRun parameter init effect by @jeffspahr in #13231
- chore(frontend): replace text-only loading messages with CircularProgress by @manaswinidas in #13246
- chore: Vars converted to replacements for manifests subdirectory in the KFP repository by @vikas-saxena02 in #12632
- fix(test): Add
Eventuallyfor informer cache sync in pipeline version tests (#13312) by @hbelmiro in #13253 - fix(cli): remove unused namespace in
run.pyby @puwun in #12776 - chore: Use make commands in https://github.com/kubeflow/pipelines/blo… by @matheusandre1 in #12836
- chore(frontend): modernize ExperimentList, UploadPipelineDialog, LineageActionBar, ArchivedRuns tests by @Priyanshu-u07 in #13255
- chore(frontend): modernize test to Testing Library patterns by @Priyanshu-u07 in #13260
- chore(deps): bump basic-ftp from 5.2.1 to 5.2.2 in /test/frontend-integration-test by @dependabot[bot] in #13257
- chore(deps): bump follow-redirects from 1.15.6 to 1.16.0 in /frontend by @dependabot[bot] in #13268
- chore(deps): bump follow-redirects from 1.15.11 to 1.16.0 in /frontend/server by @dependabot[bot] in #13269
- test(frontend): clear CustomTable act warnings by @jeffspahr in #13266
- fix(frontend): add root ErrorBoundary and loading indicators by @manaswinidas in #13245
- refactor(frontend): simplify CompareV2 selection state by @jeffspahr in #13256
- refactor(frontend): centralize flushPromisesInAct and invokeAndFlush in TestUtils by @manaswinidas in #13278
- ci: validate and declare Argo 4.0 compatibility by @jeffspahr in #13204
- chore(frontend):modernize NewExperiment, NewPipelineVersion, PipelineDetails tests by @Priyanshu-u07 in #13280
- fix(frontend): remove React 19 compatibility shim by @jeffspahr in #13264
- feat(kubernetes_platform): add data_source parameter to CreatePVC. Fixes #11420 by @khushiiagrawal in #12696
- ci: preload Kind images instead of pushing via local registry by @jeffspahr in #13227
- fix(frontend): add mock backend route regression coverage by @jeffspahr in #13265
- fix(backend): enforce pipeline authorization by @droctothorpe in #13288
- chore(deps): bump protobufjs, proto3-json-serializer and ts-proto in /frontend by @dependabot[bot] in #13287
- refactor(frontend): narrow compare metrics effect cleanup by @jeffspahr in #13282
- chore(frontend): replace querySelector with Testing Library patterns by @Priyanshu-u07 in #13289
- fix(ci): Add
proxyparameter to e2e-test workflow deployment and test steps - Fixes #13294 by @hbelmiro in #13295 - fix(metadata): cast DEBUG_FILES_SIZE and handle cleanup races by @samskelton1 in #13300
- refactor(frontend): remove NewRunParameters mount effect by @jeffspahr in #13281
- fix(frontend): surface usePipelineVersionTemplate errors in run detail routers by @manaswinidas in #13291
- fix(backend): stop requiring workspace PVC storageClassName by @mprahl in #13306
- feat(backend): Selectively block v1 recurring runs by @MonicaZhang1 in #13302
- fix(backend): fixes AWS SDK v2 checksum validation by @hbelmiro in #13315
- docs(AGENTS.md): cross-reference remaining project README files by @jsonmp-k8 in #13035
- chore(deps): bump fast-xml-parser, @aws-sdk/xml-builder and minio in /frontend/server by @dependabot[bot] in #13309
- test(api): stabilize archive run state check by @jeffspahr in #13319
- chore(deps): bump vite from 7.3.1 to 7.3.2 in /frontend/server by @dependabot[bot] in #13225
- chore(deps): bump postcss from 8.5.6 to 8.5.12 in /frontend/server by @dependabot[bot] in #13318
- fix(frontend): show loading spinner on Compare page instead of blank content by @manaswinidas in #13328
- fix: Fix duplicate entry in MLMD with Kubeflow driver by @cbartram in #13276
- fix(backend): Add retry logic to launcher artifact upload if component fails by @alenawang in #13324
- fix(backend): use proto.String instead of new by @droctothorpe in #13329
- feat(manifests): add init containers for startup ordering to all critical deployments by @jsonmp-k8 in #12970
- fix(backend): ensure log artifact index handling by @droctothorpe in #13334
- fix(test): simplify and stabilize pipeline test cleanup by @hbelmiro in #13312
- fix(kubernetes): stabilize CreatePVC access_modes docstring for SDK goldens by @sduvvuri1603 in #13330
- fix(backend): validate pipeline names in K8s store before API call by @Priyanshu-u07 in #13137
- fix(frontend): download v2 directory artifacts as tar.gz. Fixes #7809 by @zswf-mle in #13320
- chore(frontend): modernize querySelector to RTL patterns by @Priyanshu-u07 in #13343
- chore(release): bump version to 2.16.1 on master branch by @droctothorpe in #13348
- chore: update changelog by @droctothorpe in #13351
- chore: adding myself as backend approver by @nsingla in #13352
- chore(docs): upgrade to python 3.11 in rtd config by @droctothorpe in #13354
- chore(deps): bump axios from 1.15.0 to 1.15.2 in /frontend/server by @dependabot[bot] in #13350
- chore(deps): bump ip-address from 10.1.0 to 10.2.0 in /frontend/server by @dependabot[bot] in #13353
- feat: handle parity for local execution by @zazulam in #13331
- fix(frontend): stop persistent spinner on MLMD detail page errors by @manaswinidas in #13346
- test(frontend): add unit tests for shared query hooks and key factory by @manaswinidas in #13347
- chore(backend):Add RetryRun support to RunClient by @VaniHaripriya in #13298
- Add alyssacgoins as a backend approver. by @alyssacgoins in #13359
- replace hardcoded panel selection indices in CompareV2 metrics by @pnaik1 in #13277
- test(frontend): wrap router navigation in act by @jeffspahr in #13358
- chore(deps-dev): bump postcss from 8.5.6 to 8.5.14 in /frontend by @dependabot[bot] in #13327
- fix(backend): recursive DAG execution state propagation by @demarna1 in #13322
- chore(frontend): modernize CustomTable and CompareV1 test patterns by @Priyanshu-u07 in #13371
- chore: update OWNERS files to remove inactive reviewers and approvers by @hbelmiro in #13389
- test(frontend): flush small pipeline tests in act by @jeffspahr in #13368
- test(frontend): flush MetricsVisualizations updates in act by @jeffspahr in #13367
- test(frontend): flush MetricsDropdown setup in act by @jeffspahr in #13366
- test(frontend): flush CompareV2 setup in act by @jeffspahr in #13360
- fix(sdk): build local KFP package with pip wheel by @mprahl with @Copilot in #13398
- feat(backend): Remediate ADA-KUBEFL-01: Server-Side Request Forgery by @JerT33 in #12750
- test(frontend): flush Tensorboard updates in act by @jeffspahr in #13365
- test(frontend): flush RunList setup in act by @jeffspahr in #13363
- test(frontend): flush NewExperiment setup in act by @jeffspahr in #13364
- test(frontend): flush Compare setup in act by @jeffspahr in #13362
- test(frontend): flush CompareV1 setup in act by @jeffspahr in #13361
- fix(backend): apply recurring run service account unconditionally by @neo99zhang in #13325
- chore: bump Go version to 1.26.2 by @hbelmiro in #13421
- feat(sdk): Add set_debug_pause method to PipelineTask by @carlosdanielarroyo in #13396
- chore: refactor Go setup into reusable composite action by @hbelmiro in #13431
- fix(swf): Enforce V1 pipeline blocking with expanded test cases by @cbartram in #13434
- fix(backend): resolve artifact OneOf outputs at runtime (#13436) by @mprahl in #13437
- feat(frontend,backend): show actual retry start time for pipeline runs. Fixes #12845 by @Sridhar1030 in #13009
- Return to recurring runs after canceling creation by @jeffspahr in #13379
- chore(deps): bump go.opentelemetry.io/otel/sdk from 1.41.0 to 1.43.0 by @dependabot[bot] in #13241
- chore(deps): bump github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream from 1.7.6 to 1.7.8 by @dependabot[bot] in #13234
- chore(deps): bump github.com/go-jose/go-jose/v4 from 4.1.3 to 4.1.4 by @dependabot[bot] in #13200
- chore(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp from 1.36.0 to 1.43.0 by @dependabot[bot] in #13240
- fix(sdk): remove max duration limit on retries by @JerT33 in #13452
- ci: stabilize SeaweedFS resource requests by @jeffspahr in #13454
- chore(ci): rotate tested Kubernetes versions by @jeffspahr in #13458
- chore(deps): bump argo-workflows, s3, and spdystream by @droctothorpe in #13460
- fix(backend): fix recurring runs with the latest pipeline version by @jaewak in #13440
- chore(deps): bump remaining backend Go builder images to golang:1.26.3 by @tolgatuncoglu in #13464
- fix(manifests): update shared SeaweedFS manifest by @danish9039 in #13463
- chore: Update Argo Workflows resources to v3.7.14 by @juliusvonkohout in #13467
- Merge mlflow-integration into master by @VaniHaripriya in #13441
- Add timeout parameter to argo workflow-controller resource by @juliusvonkohout in #13443
- Add juliusvonkohout as an approver for GHA by @juliusvonkohout in #13477
- feat(backend): add hostUsers:false default and override guard for customer workloads by @Raakshass in #13301
- test(frontend): flush PipelineList updates in act by @jeffspahr in #13411
- chore(deps-dev): bump vitest and @vitest/coverage-v8 in /frontend by @dependabot[bot] in #13466
- KEP-13293: Gatekeep CI workflows for triaged issues by @alyssacgoins in #13293
- components: Remove the components directory except google-cloud by @mprahl in #13481
- chore: Removed non-needed package installation steps from backend Dockerfiles by @hbelmiro in #13470
- docs(backend): replace stale Testing section with pointer to AGENTS.md by @kaikaila in #13499
- fix(security): patch kfp-metadata-writer Python CVEs by @tolgatuncoglu in #13465
- docs: overhaul release documentation by @droctothorpe in #13475
- Fix workflow compiler tests by ignoring .files by @ntny in #13455
- fix(tests): improve error logging in WaitForRunToBeInState function by @kaikaila in #13506
- fix(frontend): harden TensorBoard proxy access by @droctothorpe in #13511
- chore: reduce stale issue and close days in workflow by @juliusvonkohout in #13486
- chore: proper argo retries for transient and argo errors by @juliusvonkohout in #13485
- chore: remove double-quote-string-fixer from pre-commit config by @kaikaila in #13513
- test: stabilize proxy CI setup by @danish9039 in #13523
- chore: Update container image for profile-controller by @juliusvonkohout in #13536
- chore(deps): bump golang.org/x/net to v0.55.0 across all modules by @aholten in #13489
- chore(deps): bump brace-expansion from 1.1.12 to 1.1.15 in /test/frontend-integration-test by @dependabot[bot] in #13403
- chore(deps): bump qs from 6.14.1 to 6.15.2 in /frontend by @dependabot[bot] in #13430
- chore(deps): bump fast-xml-parser from 5.5.7 to 5.7.3 in /test/frontend-integration-test by @dependabot[bot] in #13304
- chore: Add CODE_OF_CONDUCT.md in kubeflow/pipelines by @codeurluce in #13518
- chore(deps): bump ws from 8.19.0 to 8.21.0 in /frontend/server by @dependabot[bot] in #13545
- test(frontend): flush PipelineDetails switch setup in act by @jeffspahr in #13414
- chore(deps): bump js-yaml from 4.1.1 to 4.2.0 in /test/frontend-integration-test by @dependabot[bot] in #13539
- chore(deps): bump vite, @vitest/coverage-v8 and vitest in /frontend/server by @dependabot[bot] in #13541
- chore(deps): bump js-yaml from 4.1.1 to 4.2.0 in /frontend/server by @dependabot[bot] in #13544
- chore(deps): bump qs from 6.15.0 to 6.15.2 in /frontend/server by @dependabot[bot] in #13428
- chore(deps): bump fast-xml-builder from 1.1.5 to 1.2.0 in /frontend/server by @dependabot[bot] in #13373
- chore(deps): bump basic-ftp from 5.2.2 to 5.3.1 in /test/frontend-integration-test by @dependabot[bot] in #13356
- chore(deps): bump axios from 1.15.2 to 1.16.0 in /frontend/server by @dependabot[bot] in #13444
- chore(deps): bump esbuild, @vitest/coverage-v8 and vitest in /frontend/server by @dependabot[bot] in #13522
- test(frontend): use act helpers in small viewer tests by @jeffspahr in #13415
- test(frontend): use act helpers in NewPipelineVersion by @jeffspahr in #13412
- chore(deps): bump ws from 8.19.0 to 8.21.0 in /test/frontend-integration-test by @dependabot[bot] in #13542
- chore(deps): bump protobufjs from 8.0.1 to 8.6.0 in /frontend by @dependabot[bot] in #13543
- chore(deps): bump qs and express in /frontend/mock-backend by @dependabot[bot] in #13427
- chore(deps): bump esbuild and tsx in /test/frontend-integration-test by @dependabot[bot] in #13519
- chore(deps): bump form-data from 2.5.5 to 2.5.6 in /frontend/server by @dependabot[bot] in #13540
- Fix local proxy log and artifact reads by @jeffspahr in #13377
- chore(ci): support argo workflows 4.x by @jeffspahr in #13459
- chore(frontend): pin npm 11.17.0 by @jeffspahr in #13553
- fix(ci): regenerate API files for grpc-gateway v2.28.0 and harden CI workflows by @hbelmiro in #13563
- fix(unit): stabilize backend unit tests by @ntny in #13525
- refactor(manifests): replace dbHost/dbPort relics with mysqlHost/mysqlPort by @kaikaila in #13504
- fix(manifests): Add list bucket and delete object to policy and improve the S3 namespace isolation test by @tarekabouzeid in #13469
- fix(backend): apply S3 checksum options for env-based credentials by @Yingdi-Zheng in #13551
- Add juliusvonkohout to test OWNERS list by @juliusvonkohout in #13580
- feat(sdk): add kubeflow_client PipelinesClient (phase 1). Fixes #13380 by @MStokluska in #13405
- fix(test): replace single-shot MLflow status checks with polling by @hbelmiro in #13593
- test(frontend): harden node log viewer e2e wait by @mprahl in #13584
- test(frontend): harden log viewer diagnostics and Docker install by @danish9039 in #13586
- fix(backend): inject user identity header in scheduled-workflow-controller for multi-user auth by @jaewak in #13472
- fix: allow same-named pipeline versions under different pipelines (#13534, #13535, #13556) by @hbelmiro in #13552
- fix(backend): narrow MLflow namespace overrides by @mprahl in #13595
- feat(frontend): fix artifact cross namespace IDOR vuln by @JerT33 in #13433
- chore(deps): bump undici in /test/frontend-integration-test by @dependabot[bot] in #13569
- feat(backend): enable create and schedule time placeholders by @droctothorpe in #13474
- fix(filter): make k8s CRD backend filter matching case-insensitive by @kaikaila in #13512
- chore(frontend): consolidate dependency updates by @jeffspahr in #13568
- fix(backend): stream bounded object store reads by @jeffspahr in #13577
- Add jeffspahr as an approver to .github by @jeffspahr in #13612
- feat(backend): add MLflow basic-auth and optional auth by @mprahl in #13576
- fix(frontend): fix MetricsDropdown table cell borders by @Priyanshu-u07 in #13574
- fix(frontend): hide read-only graph handles by @jeffspahr in #13616
- fix(backend): prevent premature workflow GC due to DB write race condition (#13342) by @shreeharshshinde in #13345
- test(backend): cover Argo 4 runtime compatibility by @jeffspahr in #13555
- Add v2 mock backend fixtures by @jeffspahr in #13413
- chore(deps): bump lodash from 4.17.23 to 4.18.1 in /test/frontend-integration-test by @dependabot[bot] in #13617
- chore(deps): aggregate open Dependabot bumps by @mprahl in #13620
- chore(doc): Update ROADMAP.md to use milestone-based tracking by @Priyanshu-u07 in #13614
- fix(client): Fix matrix configuration for api-test-k8s-native by @mprahl in #13607
- fix(frontend): fix blank screen on npm start by @Sharkyii in #13628
- fix(ci): prevent ci-passed label when workflows await approval by @hbelmiro in #13629
- fix(frontend): remediate npm security alerts by @jeffspahr in #13626
- documentation: Update installation options by @gorkem in #12491
- test(backend): avoid retrying permanent archived log errors by @jeffspahr in #13598
- ci: preload runtime base images once per workflow by @jeffspahr in #13625
- fix(test): poll ListPipelineVersions when verifying uploaded tags by @jeffspahr in #13635
- fix(frontend): re-check redirects against artifact domain allowlist by @naruto-lgtm in #13570
- chore(manifests): update metacontroller from v4.11.22 to v4.16.2 by @juliusvonkohout with @Copilot in #13644
- feat: add Start Time, End Time and Schedule Status columns to recurring runs table by @Priyanshu-u07 in #13496
- test: use tinyproxy for proxy CI fixture by @danish9039 in #13583
- test: update tested Kubernetes versions to 1.33-1.36 by @danish9039 in #13488
- fix(backend): avoid stale final-state labels on retry by @jeffspahr in #13627
- fix(test): update frontend integration npm deps by @jeffspahr in #13632
- fix(deps): update compatible Python security requirements by @jeffspahr in #13633
- chore(deps): update nested Go grpc dependencies by @jeffspahr in #13638
- fix(ci): reduce master push workflow flakes by @mprahl in #13622
- chore(deps): bump golang.org/x/crypto from 0.51.0 to 0.52.0 in /test/tools/project-cleaner by @dependabot[bot] in #13664
- chore(deps): update requests constraints by @jeffspahr in #13661
- chore(deps): update urllib3 constraints by @jeffspahr in #13660
- chore(deps): bump golang.org/x/crypto from 0.51.0 to 0.52.0 by @dependabot[bot] in #13666
- chore(deps): add Dependabot config for Go module version updates by @aholten in #13491
- chore(deps): update visualization dependencies by @jeffspahr in #13668
- chore(deps): update pytest dev requirements by @jeffspahr in #13669
- chore(deps): update metadata-writer protobuf by @jeffspahr in #13671
- chore(deps): bump github.com/VividCortex/mysqlerr from 0.0.0-20170204212430-6c6b55f8796f to 1.0.0 by @dependabot[bot] in #13673
- automation: add AI-powered issue quality analysis workflow by @modichika in #13372
- fix(ci): make image rebuild step actually run after build failure by @hbelmiro in #13685
- fix(frontend): object storage Insecure Direct Object Reference (IDOR) prefix fallback by @juliusvonkohout in #13683
New Contributors
- @dpanshug made their first contribution in #12882
- @manaswinidas made their first contribution in #12918
- @haroon0x made their first contribution in #12730
- @Sridhar1030 made their first contribution in #12884
- @sh4shv4t made their first contribution in #12770
- @kanishka-commits made their first contribution in #12946
- @PR3MM made their first contribution in #12945
- @mprahl with @Copilot made their first contribution in #13064
- @pnaik1 made their first contribution in #13049
- @vikas-saxena02 made their first contribution in #12632
- @matheusandre1 made their first contribution in #12836
- @samskelton1 made their first contribution in #13300
- @MonicaZhang1 made their first contribution in #13302
- @zswf-mle made their first contribution in #13320
- @carlosdanielarroyo made their first contribution in #13396
- @jaewak made their first contribution in #13440
- @tolgatuncoglu made their first contribution in #13464
- @aholten made their first contribution in #13489
- @codeurluce made their first contribution in #13518
- @Yingdi-Zheng made their first contribution in #13551
- @MStokluska made their first contribution in #13405
- @shreeharshshinde made their first contribution in #13345
- @Sharkyii made their first contribution in #13628
- @gorkem made their first contribution in #12491
- @naruto-lgtm made their first contribution in #13570
- @modichika made their first contribution in #13372
Full Changelog: 2.16.1...2.17.0