diff --git a/changelog/9.0.1.yaml b/changelog/9.0.1.yaml
new file mode 100644
index 00000000000..a5b8a9e5f7d
--- /dev/null
+++ b/changelog/9.0.1.yaml
@@ -0,0 +1,64 @@
+version: 9.0.1
+entries:
+ - kind: enhancement
+ summary: Update OTel components to v0.121.0
+ description: ""
+ component: elastic-agent
+ pr:
+ - https://github.com/elastic/elastic-agent/pull/7686
+ issue: []
+ timestamp: 1743783374
+ file:
+ name: 1743783374-update-otel-v0.121.0.yaml
+ checksum: 3491d3c13b6ebd1e7895b337d901d7df3e77dce1
+ - kind: feature
+ summary: Add nopexporter to EDOT Collector
+ description: ""
+ component: elastic-agent
+ pr:
+ - https://github.com/elastic/elastic-agent/pull/7788
+ issue: []
+ timestamp: 1744198660
+ file:
+ name: 1744198660-add-nopexporter.yaml
+ checksum: 9f989be89459d35a8fdc48362a0dad19880fa4e1
+ - kind: feature
+ summary: set collectors fullnameOverride for edot kube-stack values
+ description: ""
+ component: elastic-agent
+ pr:
+ - https://github.com/elastic/elastic-agent/pull/7754
+ issue:
+ - https://github.com/elastic/elastic-agent/issues/7381
+ timestamp: 1744384247
+ file:
+ name: 1744384247-set-collector's-fullnameOverride-for-edot-kube-stack-values.yaml
+ checksum: d7ccd1a2a660e7e0cc8bed5fc91570465b9ff639
+ - kind: bug-fix
+ summary: Fix Managed OTLP Helm config to use current image repo.
+ description: ""
+ component: elastic-agent
+ pr:
+ - https://github.com/elastic/elastic-agent/pull/7882
+ issue: []
+ timestamp: 1744839123
+ file:
+ name: 1744839123-fix-MOtel-config-image-value.yaml
+ checksum: cd9cb5f75e1b3983a48ee156e478e0a62051ffb6
+ - kind: breaking-change
+ summary: '[otel] Disable process scraper of hostmetrics receiver'
+ description: |
+ The process scraper collects metrics for all available processes of a host without an easy way to limit
+ this to only report top N process for example. This results in quite big amount of timeseries.
+ Since this is not quite critical for any of the available UIs or dashboards we decide to disable
+ it temporarily until we find a better solution. Users that specifically need these metrics
+ can also enable it back manually.
+ Related to https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/39423.
+ component: elastic-agent
+ pr:
+ - https://github.com/elastic/elastic-agent/pull/7894
+ issue: []
+ timestamp: 1744886313
+ file:
+ name: 1744886313-otel_disable_process_scraper.yaml
+ checksum: 461df3d166c6ed60e8565e588b5ffce9078798ae
diff --git a/changelog/9.0.2.yaml b/changelog/9.0.2.yaml
new file mode 100644
index 00000000000..819c30fad90
--- /dev/null
+++ b/changelog/9.0.2.yaml
@@ -0,0 +1,40 @@
+version: 9.0.2
+entries:
+ - kind: bug-fix
+ summary: Preserve agent run state on DEB and RPM upgrades
+ description: |
+ Improves the upgrade process for Elastic Agent installed using DEB or RPM packages by copying the run directory from the previous installation into the new version's folder
+ component: elastic-agent
+ pr:
+ - https://github.com/elastic/elastic-agent/pull/7999
+ issue:
+ - https://github.com/elastic/elastic-agent/issues/3832
+ timestamp: 1745923884
+ file:
+ name: 1745923884-deb-rpm-preserve-run-state.yaml
+ checksum: f4aa59929c389c20bc8104c8da4824979c3b8f35
+ - kind: other
+ summary: NOTICE.txt now contains only those modules that are used by the Elastic Agent binaries.
+ description: |
+ Only those modules that the Elastic Agent binaries for various platforms directly
+ or indirectly depend on are now included in the NOTICE.txt file . Modules used for development
+ tooling are now excluded from NOTICE.txt.
+ component: elastic-agent
+ pr:
+ - https://github.com/elastic/elastic-agent/pull/8053
+ issue: []
+ timestamp: 1746636264
+ file:
+ name: 1746636264-fix-notice.yaml
+ checksum: 5e7c950a899c715c5c3bd7cc2c79e924f8f5585e
+ - kind: security
+ summary: Upgrade Go version to 1.24.3.
+ description: ""
+ component: elastic-agent
+ pr:
+ - https://github.com/elastic/elastic-agent/pull/8109
+ issue: []
+ timestamp: 1746652545
+ file:
+ name: 1746652545-Upgrade-to-Go-1.24.3..yaml
+ checksum: c5b03e2e2685ef389a269f5904fdc53590c7e1b1
diff --git a/changelog/9.0.3.yaml b/changelog/9.0.3.yaml
new file mode 100644
index 00000000000..961da0edbba
--- /dev/null
+++ b/changelog/9.0.3.yaml
@@ -0,0 +1,63 @@
+version: 9.0.3
+entries:
+ - kind: bug-fix
+ summary: Address a race condition that can occur in Agent diagnostics if log rotation runs while logs are being zipped.
+ description: ""
+ component: elastic-agent
+ pr:
+ - https://github.com/elastic/elastic-agent/pull/8215
+ issue: []
+ timestamp: 1747938268
+ file:
+ name: 1747938268-fix-diag-race-condition.yaml
+ checksum: 25e4883c6751a854d4a2f0897fb83848416c855e
+ - kind: feature
+ summary: add cumulativetodeltaprocessor to EDOT collector
+ description: ""
+ component: elastic-agent
+ pr:
+ - https://github.com/elastic/elastic-agent/pull/8352
+ - https://github.com/elastic/elastic-agent/pull/8573
+ - https://github.com/elastic/elastic-agent/pull/8575
+ - https://github.com/elastic/elastic-agent/pull/8616
+ - https://github.com/elastic/elastic-agent/pull/8372
+ issue: []
+ timestamp: 1749176965
+ file:
+ name: 1749176965-add-cumulativetodeltaprocessor.yaml
+ checksum: 6c4bc7565ed8fb801a1b02a01ee085488ae960e8
+ - kind: bug-fix
+ summary: Use paths.TempDir for diagnostics actions
+ description: ""
+ component: elastic-agent
+ pr:
+ - https://github.com/elastic/elastic-agent/pull/8472
+ issue: []
+ timestamp: 1749742685
+ file:
+ name: 1749742685-Use-paths.TempDir-for-diagnostics-actions.yaml
+ checksum: 1357d25b03d628ff7234a15a51e5dba89459d340
+ # - kind: bug-fix
+ # summary: Use Debian 11 to build linux/arm to match linux/amd64. Upgrades linux/arm64's statically linked glibc from 2.28 to 2.31.
+ # description: ""
+ # component: elastic-agent
+ # pr:
+ # - https://github.com/elastic/elastic-agent/pull/8497
+ # issue: []
+ # timestamp: 1749844873
+ # file:
+ # name: 1749844873-Use-Debian-11-for-linux-arm-to-match-linux-amd64.yaml
+ # checksum: ddd1264b76219193cfed89ccc87e65b0144e4074
+ - kind: bug-fix
+ summary: relax file ownership check to allow admin re-enrollment on Windows
+ description: |
+ On Windows, the agent previously enforced a strict file ownership (SID) check during re-enrollment, which prevented legitimate admin users from re-enrolling the agent if the owner did not match. This PR changes the Windows-specific logic to a no-op, allowing any admin to re-enroll the agent. This restores usability for admin users, but reintroduces the risk that privileged re-enrollment can break unprivileged installs. The Unix-specific ownership check remains unchanged.
+ component: elastic-agent
+ pr:
+ - https://github.com/elastic/elastic-agent/pull/8503
+ issue:
+ - https://github.com/elastic/elastic-agent/issues/7794
+ timestamp: 1749923633
+ file:
+ name: 1749923633-Windows-relax-file-ownership-check-for-re-enrollment.yaml
+ checksum: 650d0f58770863722ed75c0b092c4578f420e1fe
diff --git a/changelog/9.0.4.yaml b/changelog/9.0.4.yaml
new file mode 100644
index 00000000000..25510c082c1
--- /dev/null
+++ b/changelog/9.0.4.yaml
@@ -0,0 +1,72 @@
+version: 9.0.4
+entries:
+ - kind: other
+ summary: Upgrade Synthetics NodeJS version to latest LTS v20.
+ description: ""
+ component: heartbeat
+ pr:
+ - https://github.com/elastic/elastic-agent/pull/8712
+ issue: []
+ timestamp: 1751029489
+ file:
+ name: 1751029489-synth-upgra-node-v20.yaml
+ checksum: 26a735a19317db577652eea4bb1f3e863212da81
+ - kind: bug-fix
+ summary: Remove incorrect logging that unprivileged installations are in beta.
+ description: 'Unprivileged installations went GA in 8.15.0: https://www.elastic.co/docs/reference/fleet/elastic-agent-unprivileged'
+ component: elastic-agent
+ pr:
+ - https://github.com/elastic/elastic-agent/pull/8715
+ issue:
+ - https://github.com/elastic/elastic-agent/issues/8689
+ timestamp: 1751037802
+ file:
+ name: 1751037802-Stop-logging-that-unprivileged-installations-are-in-beta.yaml
+ checksum: 2c2f731f90638eaf61e8ec021ce3c4dd8885ff3a
+ - kind: feature
+ summary: Add file logs only managed OTLP input kube-stack configuration.
+ description: ""
+ component: elastic-agent
+ pr:
+ - https://github.com/elastic/elastic-agent/pull/8785
+ issue: []
+ timestamp: 1751444462
+ file:
+ name: 1751444462-add_logs_only_motel_config.yaml
+ checksum: a7768ce2ec6de109e7a9efae7793231f4965cf00
+ - kind: bug-fix
+ summary: Ensure standalone Elastic Agent uses log level from configuration instead of persisted state.
+ description: ""
+ component: elastic-agent
+ pr:
+ - https://github.com/elastic/elastic-agent/pull/8784
+ issue:
+ - https://github.com/elastic/elastic-agent/issues/8137
+ timestamp: 1751455886
+ file:
+ name: 1751455886-correct-log-level-for-standalone-agents.yaml
+ checksum: e954db0ba6e1738e3d425cf3c8110a40c296a013
+ - kind: bug-fix
+ summary: Resolve deadlocks in runtime checkin communication.
+ description: ""
+ component: elastic-agent
+ pr:
+ - https://github.com/elastic/elastic-agent/pull/8881
+ issue:
+ - https://github.com/elastic/elastic-agent/issues/7944
+ timestamp: 1751960319
+ file:
+ name: 1751960319-fix-blocking-issues-inside-runtime-communicator.yaml
+ checksum: d288cc7474997883bc2a9118b2abf150126c9d8c
+ - kind: bug-fix
+ summary: Removed init.d support from RPM packages.
+ description: ""
+ component: elastic-agent
+ pr:
+ - https://github.com/elastic/elastic-agent/pull/8896
+ issue:
+ - https://github.com/elastic/elastic-agent/issues/8840
+ timestamp: 1752049251
+ file:
+ name: 1752049251-Fixed-SUSE-installation-from-RPM.yaml
+ checksum: bb9eba27e2dfa5885a2abd6140ea506d143b21f5
diff --git a/changelog/9.0.5.yaml b/changelog/9.0.5.yaml
new file mode 100644
index 00000000000..8e226006911
--- /dev/null
+++ b/changelog/9.0.5.yaml
@@ -0,0 +1,2 @@
+version: 9.0.5
+entries:
\ No newline at end of file
diff --git a/changelog/9.0.6.yaml b/changelog/9.0.6.yaml
new file mode 100644
index 00000000000..21f15fb5b6b
--- /dev/null
+++ b/changelog/9.0.6.yaml
@@ -0,0 +1,97 @@
+version: 9.0.6
+entries:
+ - kind: feature
+ summary: Adjust the timeout for Elastic Defend check command
+ description: ""
+ component: ""
+ pr:
+ - https://github.com/elastic/elastic-agent/pull/9523
+ - https://github.com/elastic/elastic-agent/pull/9524
+ - https://github.com/elastic/elastic-agent/pull/9542
+ - https://github.com/elastic/elastic-agent/pull/9213
+ issue: []
+ timestamp: 1753950420
+ file:
+ name: 1753950420-adjust-endpoint-check-timeout.yaml
+ checksum: 8128c245da5eef165a531e45f95e3f964bbd1817
+ - kind: bug-fix
+ summary: On Windows, retry saving the Agent information file to disk
+ description: |
+ Saving the Agent information file involves renaming/moving a file to its final destination. However, on Windows, it is sometimes not possible to rename/move a file to its destination file because the destination file is locked by another process (e.g. antivirus software). For such situations, we now retry the save operation on Windows.
+ component: elastic-agent
+ pr:
+ - https://github.com/elastic/elastic-agent/pull/9224
+ issue:
+ - https://github.com/elastic/elastic-agent/issues/5862
+ timestamp: 1754346816
+ file:
+ name: 1754346816-fleet-enc-save-retries.yaml
+ checksum: fab4b29d2404c210dcb1441eb88e84dd3f6c9ad1
+ - kind: bug-fix
+ summary: Correct hints annotations parsing to resolve only `${kubernetes.*}` placeholders instead of resolving all `${...}` patterns.
+ description: ""
+ component: elastic-agent
+ pr:
+ - https://github.com/elastic/elastic-agent/pull/9307
+ issue: []
+ timestamp: 1754944400
+ file:
+ name: 1754944400-k8s-hints-env-vars-in-annotations.yaml
+ checksum: 55ccb4d795ad7556a9c8ecad5bd33a0a0893042b
+ - kind: bug-fix
+ summary: Treat exit code 28 from Endpoint binary as non-fatal
+ description: ""
+ component: elastic-agent
+ pr:
+ - https://github.com/elastic/elastic-agent/pull/9320
+ issue: []
+ timestamp: 1755059673
+ file:
+ name: 1755059673-endpoint-28-not-fatal.yaml
+ checksum: d8fc4bbea824309297a7dcf508fd99fb62e86877
+ - kind: bug-fix
+ summary: Fixed jitter backoff strategy reset
+ description: ""
+ component: elastic-agent
+ pr:
+ - https://github.com/elastic/elastic-agent/pull/9342
+ issue:
+ - https://github.com/elastic/elastic-agent/issues/8864
+ timestamp: 1755076749
+ file:
+ name: 1755076749-fix-jitter-backoff-strategy-reset.yaml
+ checksum: 1969a9a0221227c476f94e27a4ef3946b3853416
+ - kind: bug-fix
+ summary: 'Fix Docker container failing to start with no matching vars: ${env.ELASTICSEARCH_API_KEY:} and similar errors by restoring support for `:` to set default values.'
+ description: ""
+ component: elastic-agent
+ pr:
+ - https://github.com/elastic/elastic-agent/pull/9451
+ issue:
+ - https://github.com/elastic/elastic-agent/issues/9328
+ timestamp: 1755544412
+ file:
+ name: 1755544412-Fix-default-constant-support-in-output-configuration.yaml
+ checksum: 9b389ac54a3b8a7aaec24da9223bff8a306c4d8b
+ - kind: security
+ summary: Upgrade to Go 1.24.6.
+ description: ""
+ component: elastic-agent
+ pr:
+ - https://github.com/elastic/elastic-agent/pull/9287
+ issue: []
+ timestamp: 1755547590
+ file:
+ name: 1755547590-Upgrade-to-Go-1.24.6..yaml
+ checksum: e2f37c3bfe8bda55a0ec6c32cf604e44dc4f5d43
+ - kind: bug-fix
+ summary: Fix deb upgrade by stopping elastic-agent service before upgrading
+ description: ""
+ component: elastic-agent
+ pr:
+ - https://github.com/elastic/elastic-agent/pull/9462
+ issue: []
+ timestamp: 1755601979
+ file:
+ name: 1755601979-deb-upgrade-stop-agent-service.yaml
+ checksum: 047a0f95507e83bc95ce969f6ea443abf55c521f
diff --git a/changelog/9.1.2.yaml b/changelog/9.1.2.yaml
new file mode 100644
index 00000000000..aac064c33aa
--- /dev/null
+++ b/changelog/9.1.2.yaml
@@ -0,0 +1,2 @@
+version: 9.1.2
+entries:
\ No newline at end of file
diff --git a/config.changelog.yaml b/config.changelog.yaml
new file mode 100644
index 00000000000..4db170726cf
--- /dev/null
+++ b/config.changelog.yaml
@@ -0,0 +1,3 @@
+owner: elastic
+repo: elastic-agent
+rendered_changelog_destination: docs/release-notes/_snippets
\ No newline at end of file
diff --git a/docs/docset.yml b/docs/docset.yml
new file mode 100644
index 00000000000..2a04e9a92cb
--- /dev/null
+++ b/docs/docset.yml
@@ -0,0 +1,19 @@
+project: Elastic Agent docs
+products:
+ - id: elastic-agent
+exclude:
+ - "*.md"
+ - "manifests/kustomize-autosharding/README.md"
+cross_links:
+ - docs-content
+ - beats
+toc:
+ - toc: release-notes
+subs:
+ agent: "Elastic Agent"
+ agent-issue: "https://github.com/elastic/elastic-agent/issues/"
+ agent-pull: "https://github.com/elastic/elastic-agent/pull/"
+ agents: "Elastic Agents"
+ beats: "Beats"
+ es: "Elasticsearch"
+ fleet: "Fleet"
diff --git a/docs/release-notes/_snippets/9.0.0/breaking.md b/docs/release-notes/_snippets/9.0.0/breaking.md
new file mode 100644
index 00000000000..a37668bf483
--- /dev/null
+++ b/docs/release-notes/_snippets/9.0.0/breaking.md
@@ -0,0 +1,33 @@
+## 9.0.0 [elastic-agent-9.0.0-breaking-changes]
+
+::::{dropdown} Removed cloud defend support for {{agent}}
+Support for `cloud-defend` (Defend for Containers) has been removed. The package has been removed from the {{agent}} packaging scripts and template Kubernetes files.
+
+For more information, check [#5481]({{agent-pull}}5481).
+::::
+
+::::{dropdown} Removed username and password default values for {{agent}}
+The default values for `username` and `password` have been removed for when {{agent}} is running in container mode. The {{es}} `api_key` can now be set in that mode using the `ELASTICSEARCH_API_KEY` environment variable.
+
+For more information, check [#5536]({{agent-pull}}5536).
+::::
+
+::::{dropdown} Changed Ubuntu-based Docker images for {{agent}}
+The default Ubuntu-based Docker images used for {{agent}} have been changed to UBI-minimal-based images, to reduce the overall footprint of the agent Docker images and to improve compliance with enterprise standards.
+
+For more information, check [#6427]({{agent-pull}}6427).
+::::
+
+::::{dropdown} Removed --path.install flag declaration from {{agent}} paths command
+The deprecated `--path.install` flag declaration has been removed from the {{agent}} `paths` command and its use removed from the `container` and `enroll` commands.
+
+For more information, check [#6461]({{agent-pull}}6461) and [#2489]({{agent-pull}}2489).
+::::
+
+::::{dropdown} Changed the default {{agent}} installation and upgrade
+The default {{agent}} installation and ugprade have been changed to include only the `agentbeat`, `endpoint-security` and `pf-host-agent` components.
+
+Additional components such as `apm` or `fleet` require passing the `--install-servers` flag or setting the `ELASTIC_AGENT_FLAVOR=servers` environment variable.
+
+For more information, check [#6542]({{agent-pull}}6542).
+::::
diff --git a/docs/release-notes/_snippets/9.0.0/deprecations.md b/docs/release-notes/_snippets/9.0.0/deprecations.md
new file mode 100644
index 00000000000..9e807d57298
--- /dev/null
+++ b/docs/release-notes/_snippets/9.0.0/deprecations.md
@@ -0,0 +1,3 @@
+## 9.0.0 [elastic-agent-9.0.0-deprecations]
+
+_No deprecations._
diff --git a/docs/release-notes/_snippets/9.0.0/index.md b/docs/release-notes/_snippets/9.0.0/index.md
new file mode 100644
index 00000000000..3dbfa2ec92d
--- /dev/null
+++ b/docs/release-notes/_snippets/9.0.0/index.md
@@ -0,0 +1,21 @@
+## 9.0.0 [elastic-agent-9.0.0-release-notes]
+
+_This release also includes: [Breaking changes](/release-notes/breaking-changes.md#elastic-agent-9.0.0-breaking-changes)._
+
+### Features and enhancements [elastic-agent-9.0.0-features-enhancements]
+
+* Adds the Azure Asset Inventory definition to Cloudbeat for {{agent}} [#5323]({{agent-pull}}5323)
+* Adds Kubernetes deployment of the Elastic Distribution of OTel Collector named "gateway" to the Helm kube-stack deployment for {{agent}} [#6444]({{agent-pull}}6444)
+* Adds the filesource provider to composable inputs. The provider watches for changes of the files and updates the values of the variables when the content of the file changes for {{agent}} [#6587]({{agent-pull}}6587) and [#6362]({{agent-issue}}6362)
+* Adds the jmxreceiver to the Elastic Distribution of OTel Collector for {{agent}} [#6601]({{agent-pull}}6601)
+* Adds support for context variables in outputs as well as a default provider prefix for {{agent}} [#6602]({{agent-pull}}6602) and [#6376]({{agent-issue}}6376)
+* Adds the Nginx receiver and Redis receiver OTel components for {{agent}} [#6627]({{agent-pull}}6627)
+* Adds --id (ELASTIC_AGENT_ID environment variable for container) and --replace-token (FLEET_REPLACE_TOKEN environment variable for container) enrollment options for {{agent}} [#6498]({{agent-pull}}6498)
+* Updates Go version to 1.22.10 in {{agent}} [#6236]({{agent-pull}}6236)
+* Adds the Filebeat receiver into {{agent}} [#5833]({{agent-pull}}5833)
+* Updates OTel components to v0.119.0 in {{agent}} [#6713]({{agent-pull}}6713)
+
+### Fixes [elastic-agent-9.0.0-fixes]
+
+* Fixes logical race conditions in the kubernetes_secrets provider in {{agent}} [#6623]({{agent-pull}}6623)
+* Resolves the proxy to inject into agent component configurations using the Go http package in {{agent}} [#6675]({{agent-pull}}6675) and [#6209]({{agent-issue}}6209)
\ No newline at end of file
diff --git a/docs/release-notes/_snippets/9.0.1/breaking.md b/docs/release-notes/_snippets/9.0.1/breaking.md
new file mode 100644
index 00000000000..4d569791dbc
--- /dev/null
+++ b/docs/release-notes/_snippets/9.0.1/breaking.md
@@ -0,0 +1,17 @@
+## 9.0.1 [elastic-agent-9.0.1-breaking-changes]
+
+::::{dropdown} [otel] Disable process scraper of hostmetrics receiver.
+The process scraper collects metrics for all available processes of a host without an easy way to limit
+this to only report top N process for example. This results in quite big amount of timeseries.
+Since this is not quite critical for any of the available UIs or dashboards we decide to disable
+it temporarily until we find a better solution. Users that specifically need these metrics
+can also enable it back manually.
+Related to https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/39423.
+
+
+For more information, check [#7894](https://github.com/elastic/elastic-agent/pull/7894).
+
+% **Impact**
_Add a description of the impact_
+
+% **Action**
_Add a description of the what action to take_
+::::
diff --git a/docs/release-notes/_snippets/9.0.1/deprecations.md b/docs/release-notes/_snippets/9.0.1/deprecations.md
new file mode 100644
index 00000000000..4a11961e694
--- /dev/null
+++ b/docs/release-notes/_snippets/9.0.1/deprecations.md
@@ -0,0 +1,3 @@
+## 9.0.1 [elastic-agent-9.0.1-deprecations]
+
+_No deprecations._
diff --git a/docs/release-notes/_snippets/9.0.1/index.md b/docs/release-notes/_snippets/9.0.1/index.md
new file mode 100644
index 00000000000..7a87107d7e6
--- /dev/null
+++ b/docs/release-notes/_snippets/9.0.1/index.md
@@ -0,0 +1,15 @@
+## 9.0.1 [elastic-agent-release-notes-9.0.1]
+
+_This release also includes: [Breaking changes](/release-notes/breaking-changes.md#elastic-agent-9.0.1-breaking-changes)._
+
+### Features and enhancements [elastic-agent-9.0.1-features-enhancements]
+
+* Add nopexporter to EDOT Collector. [#7788](https://github.com/elastic/elastic-agent/pull/7788)
+* Set collectors fullnameOverride for edot kube-stack values. [#7754](https://github.com/elastic/elastic-agent/pull/7754) [#7381](https://github.com/elastic/elastic-agent/issues/7381)
+* Update OTel components to v0.121.0. [#7686](https://github.com/elastic/elastic-agent/pull/7686)
+
+
+### Fixes [elastic-agent-9.0.1-fixes]
+
+* Fix Managed OTLP Helm config to use current image repo. [#7882](https://github.com/elastic/elastic-agent/pull/7882)
+
diff --git a/docs/release-notes/_snippets/9.0.2/breaking.md b/docs/release-notes/_snippets/9.0.2/breaking.md
new file mode 100644
index 00000000000..8bde8ae6c56
--- /dev/null
+++ b/docs/release-notes/_snippets/9.0.2/breaking.md
@@ -0,0 +1,3 @@
+## 9.0.2 [elastic-agent-9.0.2-breaking-changes]
+
+_No breaking changes._
diff --git a/docs/release-notes/_snippets/9.0.2/deprecations.md b/docs/release-notes/_snippets/9.0.2/deprecations.md
new file mode 100644
index 00000000000..b355b6e980d
--- /dev/null
+++ b/docs/release-notes/_snippets/9.0.2/deprecations.md
@@ -0,0 +1,3 @@
+## 9.0.2 [elastic-agent-9.0.2-deprecations]
+
+_No deprecations._
diff --git a/docs/release-notes/_snippets/9.0.2/index.md b/docs/release-notes/_snippets/9.0.2/index.md
new file mode 100644
index 00000000000..fd7c229f3a3
--- /dev/null
+++ b/docs/release-notes/_snippets/9.0.2/index.md
@@ -0,0 +1,13 @@
+## 9.0.2 [elastic-agent-release-notes-9.0.2]
+
+
+
+
+### Fixes [elastic-agent-9.0.2-fixes]
+
+* Upgrade Go version to 1.24.3. [#8109](https://github.com/elastic/elastic-agent/pull/8109)
+* Preserve agent run state on DEB and RPM upgrades. [#7999](https://github.com/elastic/elastic-agent/pull/7999) [#3832](https://github.com/elastic/elastic-agent/issues/3832)
+
+ Improves the upgrade process for Elastic Agent installed using DEB or RPM packages by copying the run directory from the previous installation into the new version's folder
+
+
diff --git a/docs/release-notes/_snippets/9.0.3/breaking.md b/docs/release-notes/_snippets/9.0.3/breaking.md
new file mode 100644
index 00000000000..d1bacd55516
--- /dev/null
+++ b/docs/release-notes/_snippets/9.0.3/breaking.md
@@ -0,0 +1,3 @@
+## 9.0.3 [elastic-agent-9.0.3-breaking-changes]
+
+_No breaking changes._
diff --git a/docs/release-notes/_snippets/9.0.3/deprecations.md b/docs/release-notes/_snippets/9.0.3/deprecations.md
new file mode 100644
index 00000000000..893620fb30c
--- /dev/null
+++ b/docs/release-notes/_snippets/9.0.3/deprecations.md
@@ -0,0 +1,3 @@
+## 9.0.3 [elastic-agent-9.0.3-deprecations]
+
+_No deprecations._
diff --git a/docs/release-notes/_snippets/9.0.3/index.md b/docs/release-notes/_snippets/9.0.3/index.md
new file mode 100644
index 00000000000..96279633fb6
--- /dev/null
+++ b/docs/release-notes/_snippets/9.0.3/index.md
@@ -0,0 +1,17 @@
+## 9.0.3 [elastic-agent-release-notes-9.0.3]
+
+
+### Features and enhancements [elastic-agent-9.0.3-features-enhancements]
+
+* Add cumulativetodeltaprocessor to EDOT collector. [#8352](https://github.com/elastic/elastic-agent/pull/8352) [#8573](https://github.com/elastic/elastic-agent/pull/8573) [#8575](https://github.com/elastic/elastic-agent/pull/8575) [#8616](https://github.com/elastic/elastic-agent/pull/8616) [#8372](https://github.com/elastic/elastic-agent/pull/8372)
+
+
+### Fixes [elastic-agent-9.0.3-fixes]
+
+* Address a race condition that can occur in Agent diagnostics if log rotation runs while logs are being zipped. [#8215](https://github.com/elastic/elastic-agent/pull/8215)
+* Use paths.TempDir for diagnostics actions. [#8472](https://github.com/elastic/elastic-agent/pull/8472)
+* Relax file ownership check to allow admin re-enrollment on Windows. [#8503](https://github.com/elastic/elastic-agent/pull/8503) [#7794](https://github.com/elastic/elastic-agent/issues/7794)
+
+ On Windows, the agent previously enforced a strict file ownership (SID) check during re-enrollment, which prevented legitimate admin users from re-enrolling the agent if the owner did not match. This PR changes the Windows-specific logic to a no-op, allowing any admin to re-enroll the agent. This restores usability for admin users, but reintroduces the risk that privileged re-enrollment can break unprivileged installs. The Unix-specific ownership check remains unchanged.
+
+
diff --git a/docs/release-notes/_snippets/9.0.4/breaking.md b/docs/release-notes/_snippets/9.0.4/breaking.md
new file mode 100644
index 00000000000..75de3b0e7dc
--- /dev/null
+++ b/docs/release-notes/_snippets/9.0.4/breaking.md
@@ -0,0 +1,3 @@
+## 9.0.4 [elastic-agent-9.0.4-breaking-changes]
+
+_No breaking changes._
diff --git a/docs/release-notes/_snippets/9.0.4/deprecations.md b/docs/release-notes/_snippets/9.0.4/deprecations.md
new file mode 100644
index 00000000000..83164c2de96
--- /dev/null
+++ b/docs/release-notes/_snippets/9.0.4/deprecations.md
@@ -0,0 +1,3 @@
+## 9.0.4 [elastic-agent-9.0.4-deprecations]
+
+_No deprecations._
diff --git a/docs/release-notes/_snippets/9.0.4/index.md b/docs/release-notes/_snippets/9.0.4/index.md
new file mode 100644
index 00000000000..9756d180a0c
--- /dev/null
+++ b/docs/release-notes/_snippets/9.0.4/index.md
@@ -0,0 +1,17 @@
+## 9.0.4 [elastic-agent-release-notes-9.0.4]
+
+
+### Features and enhancements [elastic-agent-9.0.4-features-enhancements]
+
+* Add file logs only managed OTLP input kube-stack configuration. [#8785](https://github.com/elastic/elastic-agent/pull/8785)
+
+
+### Fixes [elastic-agent-9.0.4-fixes]
+
+* Remove incorrect logging that unprivileged installations are in beta. [#8715](https://github.com/elastic/elastic-agent/pull/8715) [#8689](https://github.com/elastic/elastic-agent/issues/8689)
+
+ Unprivileged installations went GA in 8.15.0: https://www.elastic.co/docs/reference/fleet/elastic-agent-unprivileged
+* Ensure standalone Elastic Agent uses log level from configuration instead of persisted state. [#8784](https://github.com/elastic/elastic-agent/pull/8784) [#8137](https://github.com/elastic/elastic-agent/issues/8137)
+* Resolve deadlocks in runtime checkin communication. [#8881](https://github.com/elastic/elastic-agent/pull/8881) [#7944](https://github.com/elastic/elastic-agent/issues/7944)
+* Removed init.d support from RPM packages. [#8896](https://github.com/elastic/elastic-agent/pull/8896) [#8840](https://github.com/elastic/elastic-agent/issues/8840)
+
diff --git a/docs/release-notes/_snippets/9.0.5/breaking.md b/docs/release-notes/_snippets/9.0.5/breaking.md
new file mode 100644
index 00000000000..dfeb9b4c296
--- /dev/null
+++ b/docs/release-notes/_snippets/9.0.5/breaking.md
@@ -0,0 +1,3 @@
+## 9.0.5 [elastic-agent-9.0.5-breaking-changes]
+
+_No breaking changes._
diff --git a/docs/release-notes/_snippets/9.0.5/deprecations.md b/docs/release-notes/_snippets/9.0.5/deprecations.md
new file mode 100644
index 00000000000..2cbc95629cf
--- /dev/null
+++ b/docs/release-notes/_snippets/9.0.5/deprecations.md
@@ -0,0 +1,3 @@
+## 9.0.5 [elastic-agent-9.0.5-deprecations]
+
+_No deprecations._
diff --git a/docs/release-notes/_snippets/9.0.5/index.md b/docs/release-notes/_snippets/9.0.5/index.md
new file mode 100644
index 00000000000..c2dae0a94b8
--- /dev/null
+++ b/docs/release-notes/_snippets/9.0.5/index.md
@@ -0,0 +1,4 @@
+## 9.0.5 [elastic-agent-release-notes-9.0.5]
+
+
+_No new features, enhancements, or fixes._
diff --git a/docs/release-notes/_snippets/9.0.6/breaking.md b/docs/release-notes/_snippets/9.0.6/breaking.md
new file mode 100644
index 00000000000..7a35480f9ef
--- /dev/null
+++ b/docs/release-notes/_snippets/9.0.6/breaking.md
@@ -0,0 +1,3 @@
+## 9.0.6 [elastic-agent-9.0.6-breaking-changes]
+
+_No breaking changes._
diff --git a/docs/release-notes/_snippets/9.0.6/deprecations.md b/docs/release-notes/_snippets/9.0.6/deprecations.md
new file mode 100644
index 00000000000..8f4df6ad08b
--- /dev/null
+++ b/docs/release-notes/_snippets/9.0.6/deprecations.md
@@ -0,0 +1,3 @@
+## 9.0.6 [elastic-agent-9.0.6-deprecations]
+
+_No deprecations._
diff --git a/docs/release-notes/_snippets/9.0.6/index.md b/docs/release-notes/_snippets/9.0.6/index.md
new file mode 100644
index 00000000000..caf408ff29d
--- /dev/null
+++ b/docs/release-notes/_snippets/9.0.6/index.md
@@ -0,0 +1,21 @@
+## 9.0.6 [elastic-agent-release-notes-9.0.6]
+
+
+### Features and enhancements [elastic-agent-9.0.6-features-enhancements]
+
+* Adjust the timeout for Elastic Defend check command. [#9523](https://github.com/elastic/elastic-agent/pull/9523) [#9524](https://github.com/elastic/elastic-agent/pull/9524) [#9542](https://github.com/elastic/elastic-agent/pull/9542) [#9213](https://github.com/elastic/elastic-agent/pull/9213)
+
+
+### Fixes [elastic-agent-9.0.6-fixes]
+
+* Upgrade to Go 1.24.6. [#9287](https://github.com/elastic/elastic-agent/pull/9287)
+* On Windows, retry saving the Agent information file to disk. [#9224](https://github.com/elastic/elastic-agent/pull/9224) [#5862](https://github.com/elastic/elastic-agent/issues/5862)
+
+ Saving the Agent information file involves renaming/moving a file to its final destination. However, on Windows, it is sometimes not possible to rename/move a file to its destination file because the destination file is locked by another process (e.g. antivirus software). For such situations, we now retry the save operation on Windows.
+
+* Correct hints annotations parsing to resolve only `${kubernetes.*}` placeholders instead of resolving all `${...}` patterns. [#9307](https://github.com/elastic/elastic-agent/pull/9307)
+* Treat exit code 28 from Endpoint binary as non-fatal. [#9320](https://github.com/elastic/elastic-agent/pull/9320)
+* Fixed jitter backoff strategy reset. [#9342](https://github.com/elastic/elastic-agent/pull/9342) [#8864](https://github.com/elastic/elastic-agent/issues/8864)
+* Fix Docker container failing to start with no matching vars: ${env.ELASTICSEARCH_API_KEY:} and similar errors by restoring support for `:` to set default values. [#9451](https://github.com/elastic/elastic-agent/pull/9451) [#9328](https://github.com/elastic/elastic-agent/issues/9328)
+* Fix deb upgrade by stopping elastic-agent service before upgrading. [#9462](https://github.com/elastic/elastic-agent/pull/9462)
+
diff --git a/docs/release-notes/_snippets/9.1.0/breaking.md b/docs/release-notes/_snippets/9.1.0/breaking.md
new file mode 100644
index 00000000000..0941f9850e1
--- /dev/null
+++ b/docs/release-notes/_snippets/9.1.0/breaking.md
@@ -0,0 +1,3 @@
+## 9.1.0 [elastic-agent-9.1.0-breaking-changes]
+
+_No breaking changes._
diff --git a/docs/release-notes/_snippets/9.1.0/deprecations.md b/docs/release-notes/_snippets/9.1.0/deprecations.md
new file mode 100644
index 00000000000..3f5b32b4798
--- /dev/null
+++ b/docs/release-notes/_snippets/9.1.0/deprecations.md
@@ -0,0 +1,13 @@
+## 9.1.0 [elastic-agent-9.1.0-deprecations]
+
+
+::::{dropdown} Deprecate the elasticinframetrics processor. It will be removed in 9.2.0.
+The elasticinframetrics processor is no longer necessary and is deprecated in EDOT Collector 9.1.0. It is scheduled for removal in 9.2.0.
+
+For more information, check [#8659](https://github.com/elastic/elastic-agent/pull/8659).
+
+% **Impact**
_Add a description of the impact_
+
+% **Action**
_Add a description of the what action to take_
+::::
+
diff --git a/docs/release-notes/_snippets/9.1.0/index.md b/docs/release-notes/_snippets/9.1.0/index.md
new file mode 100644
index 00000000000..f992e081c99
--- /dev/null
+++ b/docs/release-notes/_snippets/9.1.0/index.md
@@ -0,0 +1,80 @@
+## 9.1.0 [elastic-agent-release-notes-9.1.0]
+
+_This release also includes: [Deprecations](/release-notes/deprecations.md#elastic-agent-9.1.0-deprecations)._
+
+### Features and enhancements [elastic-agent-9.1.0-features-enhancements]
+
+* Adds a new configuration setting, `agent.upgrade.rollback.window`. [#8065](https://github.com/elastic/elastic-agent/pull/8065) [#6881](https://github.com/elastic/elastic-agent/issues/6881)
+
+ The value of the `agent.upgrade.rollback.window` setting determines the period after upgrading
+ Elastic Agent when a rollback to the previous version can be triggered. This is an optional
+ setting, with a default value of `168h` (7 days). The value can be any string that is parseable
+ by https://pkg.go.dev/time#ParseDuration.
+
+* Remove resource/k8s processor and use k8sattributes processor for service attributes. [#8599](https://github.com/elastic/elastic-agent/pull/8599)
+
+ This PR removes the `resource/k8s` processor in honour of the k8sattributes processor that
+ provides native support for the Service attributes:
+ https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.127.0/processor/k8sattributesprocessor#configuring-recommended-resource-attributes
+
+ This change is aligned with the respective Semantic Conventions' guidance:
+ https://opentelemetry.io/docs/specs/semconv/non-normative/k8s-attributes/#service-attributes
+
+* Add elastic.agent.fips to local_metadata. [#7112](https://github.com/elastic/elastic-agent/pull/7112)
+
+ Add elastic.agent.fips (bool) attribute to local_metadata sent with enroll and checkin requests.
+ The value of this attribute indicates if the agent is a FIPS-capable distribution.
+
+* Validate pbkdf2 settings when in FIPS mode. [#7187](https://github.com/elastic/elastic-agent/pull/7187)
+* FIPS-capable agent file vault. [#7360](https://github.com/elastic/elastic-agent/pull/7360)
+
+ Change elastic file vault implementation to allow variable length salt sizes
+ only in FIPS enabled agents. Increase default salt size to 16 for FIPS
+ compliance. Non-FIPS agents are unchanged.
+
+* With this change FIPS-capable agents will only be able to upgrade to other FIPS-capable agents. This change also restricts non-fips to fips upgrades as well. [#7312](https://github.com/elastic/elastic-agent/pull/7312) [#4811](https://github.com/elastic/ingest-dev/issues/4811)
+* Updated the error messages returned for fips upgrades. [#7453](https://github.com/elastic/elastic-agent/pull/7453)
+* Retry enrollment requests on any error. [#8056](https://github.com/elastic/elastic-agent/pull/8056)
+
+ If any error is encountered during an attempted enrollment, the elastic-agent
+ will backoff and retry. Add a new --enroll-timeout flag and
+ FLEET_ENROLL_TIMEOUT env var to set how long it tries for, default 10m. A
+ negative value disables the timeout.
+
+* Remove deprecated otel elasticsearch exporter config `*_dynamic_index` from code and samples. [#8592](https://github.com/elastic/elastic-agent/pull/8592)
+* Include the forwardconnector as an EDOT collector commponent. [#8753](https://github.com/elastic/elastic-agent/pull/8753)
+
+ https://github.com/open-telemetry/opentelemetry-collector/tree/main/connector/forwardconnector
+* Update OTel components to v0.129.0.
+* Update APM Config extension to v0.4.0.
+* Update Elastic Trace processor to v0.7.0.
+* Update Elastic APM connector to v0.4.0.
+* Update API Key Auth extension to v0.2.0.
+* Update Elastic Infra Metrics processor to v0.16.0.
+
+
+### Fixes [elastic-agent-9.1.0-fixes]
+
+* Upgrade to Go 1.24.3. [#8109](https://github.com/elastic/elastic-agent/pull/8109)
+* Correctly handle sending signal to child process. [#7738](https://github.com/elastic/elastic-agent/pull/7738) [#6875](https://github.com/elastic/elastic-agent/issues/6875)
+* Preserve agent run state on DEB and RPM upgrades. [#7999](https://github.com/elastic/elastic-agent/pull/7999) [#3832](https://github.com/elastic/elastic-agent/issues/3832)
+* Use --header from enrollment when communicating with Fleet Server. [#8071](https://github.com/elastic/elastic-agent/pull/8071) [#6823](https://github.com/elastic/elastic-agent/issues/6823)
+
+ The --header option for the enrollment command now adds the headers to the communication with Fleet Server. This
+ allows a proxy that requires specific headers present for traffic to flow to be placed in front of a Fleet Server
+ to be used and still allowing the Elastic Agent to enroll.
+
+* Address a race condition that can occur in Agent diagnostics if log rotation runs while logs are being zipped.
+* Use paths.TempDir for diagnostics actions. [#8472](https://github.com/elastic/elastic-agent/pull/8472)
+* Use Debian 11 to build linux/arm to match linux/amd64. Upgrades linux/arm64's statically linked glibc from 2.28 to 2.31. [#8497](https://github.com/elastic/elastic-agent/pull/8497)
+* Relax file ownership check to allow admin re-enrollment on Windows. [#8503](https://github.com/elastic/elastic-agent/pull/8503) [#7794](https://github.com/elastic/elastic-agent/issues/7794)
+
+ On Windows, the agent previously enforced a strict file ownership (SID) check during re-enrollment, which prevented legitimate admin users from re-enrolling the agent if the owner did not match. This PR changes the Windows-specific logic to a no-op, allowing any admin to re-enroll the agent. This restores usability for admin users, but reintroduces the risk that privileged re-enrollment can break unprivileged installs. The Unix-specific ownership check remains unchanged.
+
+* Remove incorrect logging that unprivileged installations are in beta. [#8715](https://github.com/elastic/elastic-agent/pull/8715) [#8689](https://github.com/elastic/elastic-agent/issues/8689)
+
+ Unprivileged installations went GA in 8.15.0: https://www.elastic.co/docs/reference/fleet/elastic-agent-unprivileged
+* Ensure standalone Elastic Agent uses log level from configuration instead of persisted state. [#8784](https://github.com/elastic/elastic-agent/pull/8784) [#8137](https://github.com/elastic/elastic-agent/issues/8137)
+* Resolve deadlocks in runtime checkin communication. [#8881](https://github.com/elastic/elastic-agent/pull/8881) [#7944](https://github.com/elastic/elastic-agent/issues/7944)
+* Removed init.d support from RPM packages. [#8896](https://github.com/elastic/elastic-agent/pull/8896) [#8840](https://github.com/elastic/elastic-agent/issues/8840)
+
diff --git a/docs/release-notes/_snippets/9.1.1/breaking.md b/docs/release-notes/_snippets/9.1.1/breaking.md
new file mode 100644
index 00000000000..a5dfa583781
--- /dev/null
+++ b/docs/release-notes/_snippets/9.1.1/breaking.md
@@ -0,0 +1,3 @@
+## 9.1.1 [elastic-agent-9.1.1-breaking-changes]
+
+_No breaking changes._
diff --git a/docs/release-notes/_snippets/9.1.1/deprecations.md b/docs/release-notes/_snippets/9.1.1/deprecations.md
new file mode 100644
index 00000000000..35341da249e
--- /dev/null
+++ b/docs/release-notes/_snippets/9.1.1/deprecations.md
@@ -0,0 +1,3 @@
+## 9.1.1 [elastic-agent-9.1.1-deprecations]
+
+_No deprecations._
diff --git a/docs/release-notes/_snippets/9.1.1/index.md b/docs/release-notes/_snippets/9.1.1/index.md
new file mode 100644
index 00000000000..25cae5d9b47
--- /dev/null
+++ b/docs/release-notes/_snippets/9.1.1/index.md
@@ -0,0 +1,12 @@
+## 9.1.1 [elastic-agent-release-notes-9.1.1]
+
+
+### Features and enhancements [elastic-agent-9.1.1-features-enhancements]
+
+* Add k8s leader elector Otel extension. [#9261](https://github.com/elastic/elastic-agent/pull/9261) [#9262](https://github.com/elastic/elastic-agent/pull/9262) [#9065](https://github.com/elastic/elastic-agent/pull/9065)
+
+
+### Fixes [elastic-agent-9.1.1-fixes]
+
+* Don't overwrite elasticsearch output headers from enrollment --headers flag. [#9199](https://github.com/elastic/elastic-agent/pull/9199) [#9197](https://github.com/elastic/elastic-agent/issues/9197)
+
diff --git a/docs/release-notes/_snippets/9.1.2/breaking.md b/docs/release-notes/_snippets/9.1.2/breaking.md
new file mode 100644
index 00000000000..0d5b1b08b5b
--- /dev/null
+++ b/docs/release-notes/_snippets/9.1.2/breaking.md
@@ -0,0 +1,3 @@
+## 9.1.2 [elastic-agent-9.1.2-breaking-changes]
+
+_No breaking changes._
diff --git a/docs/release-notes/_snippets/9.1.2/deprecations.md b/docs/release-notes/_snippets/9.1.2/deprecations.md
new file mode 100644
index 00000000000..ba9fd48cbae
--- /dev/null
+++ b/docs/release-notes/_snippets/9.1.2/deprecations.md
@@ -0,0 +1,3 @@
+## 9.1.2 [elastic-agent-9.1.2-deprecations]
+
+_No deprecations._
diff --git a/docs/release-notes/_snippets/9.1.2/index.md b/docs/release-notes/_snippets/9.1.2/index.md
new file mode 100644
index 00000000000..b5f08784dc8
--- /dev/null
+++ b/docs/release-notes/_snippets/9.1.2/index.md
@@ -0,0 +1,4 @@
+## 9.1.2 [elastic-agent-release-notes-9.1.2]
+
+
+_No new features, enhancements, or fixes._
diff --git a/docs/release-notes/_snippets/9.1.3/breaking.md b/docs/release-notes/_snippets/9.1.3/breaking.md
new file mode 100644
index 00000000000..6d785eb51ac
--- /dev/null
+++ b/docs/release-notes/_snippets/9.1.3/breaking.md
@@ -0,0 +1,3 @@
+## 9.1.3 [elastic-agent-9.1.3-breaking-changes]
+
+_No breaking changes._
diff --git a/docs/release-notes/_snippets/9.1.3/deprecations.md b/docs/release-notes/_snippets/9.1.3/deprecations.md
new file mode 100644
index 00000000000..07da8faa7b8
--- /dev/null
+++ b/docs/release-notes/_snippets/9.1.3/deprecations.md
@@ -0,0 +1,3 @@
+## 9.1.3 [elastic-agent-9.1.3-deprecations]
+
+_No deprecations._
diff --git a/docs/release-notes/_snippets/9.1.3/index.md b/docs/release-notes/_snippets/9.1.3/index.md
new file mode 100644
index 00000000000..60ccc25c5ed
--- /dev/null
+++ b/docs/release-notes/_snippets/9.1.3/index.md
@@ -0,0 +1,22 @@
+## 9.1.3 [elastic-agent-release-notes-9.1.3]
+
+
+### Features and enhancements [elastic-agent-9.1.3-features-enhancements]
+
+* Adjust the timeout for Elastic Defend check command. [#9329](https://github.com/elastic/elastic-agent/pull/9329) [#9521](https://github.com/elastic/elastic-agent/pull/9521) [#9522](https://github.com/elastic/elastic-agent/pull/9522) [#9545](https://github.com/elastic/elastic-agent/pull/9545) [#9213](https://github.com/elastic/elastic-agent/pull/9213)
+* Update OTel components to v0.130.0. [#9329](https://github.com/elastic/elastic-agent/pull/9329) [#9521](https://github.com/elastic/elastic-agent/pull/9521) [#9522](https://github.com/elastic/elastic-agent/pull/9522) [#9545](https://github.com/elastic/elastic-agent/pull/9545) [#9362](https://github.com/elastic/elastic-agent/pull/9362)
+
+
+### Fixes [elastic-agent-9.1.3-fixes]
+
+* Upgrade to Go 1.24.6. [#9287](https://github.com/elastic/elastic-agent/pull/9287)
+* On Windows, retry saving the Agent information file to disk. [#9224](https://github.com/elastic/elastic-agent/pull/9224) [#5862](https://github.com/elastic/elastic-agent/issues/5862)
+
+ Saving the Agent information file involves renaming/moving a file to its final destination. However, on Windows, it is sometimes not possible to rename/move a file to its destination file because the destination file is locked by another process (e.g. antivirus software). For such situations, we now retry the save operation on Windows.
+
+* Correct hints annotations parsing to resolve only `${kubernetes.*}` placeholders instead of resolving all `${...}` patterns. [#9307](https://github.com/elastic/elastic-agent/pull/9307)
+* Treat exit code 28 from Endpoint binary as non-fatal. [#9320](https://github.com/elastic/elastic-agent/pull/9320)
+* Fixed jitter backoff strategy reset. [#9342](https://github.com/elastic/elastic-agent/pull/9342) [#8864](https://github.com/elastic/elastic-agent/issues/8864)
+* Fix Docker container failing to start with no matching vars: ${env.ELASTICSEARCH_API_KEY:} and similar errors by restoring support for `:` to set default values. [#9451](https://github.com/elastic/elastic-agent/pull/9451) [#9328](https://github.com/elastic/elastic-agent/issues/9328)
+* Fix deb upgrade by stopping elastic-agent service before stopping endpoint. [#9462](https://github.com/elastic/elastic-agent/pull/9462)
+
diff --git a/docs/release-notes/_snippets/breaking-changes.md b/docs/release-notes/_snippets/breaking-changes.md
new file mode 100644
index 00000000000..ddf448615d3
--- /dev/null
+++ b/docs/release-notes/_snippets/breaking-changes.md
@@ -0,0 +1,32 @@
+:::{include} /release-notes/_snippets/9.1.3/breaking.md
+:::
+
+:::{include} /release-notes/_snippets/9.1.2/breaking.md
+:::
+
+:::{include} /release-notes/_snippets/9.1.1/breaking.md
+:::
+
+:::{include} /release-notes/_snippets/9.1.0/breaking.md
+:::
+
+:::{include} /release-notes/_snippets/9.0.6/breaking.md
+:::
+
+:::{include} /release-notes/_snippets/9.0.5/breaking.md
+:::
+
+:::{include} /release-notes/_snippets/9.0.4/breaking.md
+:::
+
+:::{include} /release-notes/_snippets/9.0.3/breaking.md
+:::
+
+:::{include} /release-notes/_snippets/9.0.2/breaking.md
+:::
+
+:::{include} /release-notes/_snippets/9.0.1/breaking.md
+:::
+
+:::{include} /release-notes/_snippets/9.0.0/breaking.md
+:::
diff --git a/docs/release-notes/_snippets/deprecations.md b/docs/release-notes/_snippets/deprecations.md
new file mode 100644
index 00000000000..4c96ecc6cbd
--- /dev/null
+++ b/docs/release-notes/_snippets/deprecations.md
@@ -0,0 +1,32 @@
+:::{include} /release-notes/_snippets/9.1.3/deprecations.md
+:::
+
+:::{include} /release-notes/_snippets/9.1.2/deprecations.md
+:::
+
+:::{include} /release-notes/_snippets/9.1.1/deprecations.md
+:::
+
+:::{include} /release-notes/_snippets/9.1.0/deprecations.md
+:::
+
+:::{include} /release-notes/_snippets/9.0.6/deprecations.md
+:::
+
+:::{include} /release-notes/_snippets/9.0.5/deprecations.md
+:::
+
+:::{include} /release-notes/_snippets/9.0.4/deprecations.md
+:::
+
+:::{include} /release-notes/_snippets/9.0.3/deprecations.md
+:::
+
+:::{include} /release-notes/_snippets/9.0.2/deprecations.md
+:::
+
+:::{include} /release-notes/_snippets/9.0.1/deprecations.md
+:::
+
+:::{include} /release-notes/_snippets/9.0.0/deprecations.md
+:::
diff --git a/docs/release-notes/_snippets/index.md b/docs/release-notes/_snippets/index.md
new file mode 100644
index 00000000000..373f1bc3c80
--- /dev/null
+++ b/docs/release-notes/_snippets/index.md
@@ -0,0 +1,32 @@
+:::{include} /release-notes/_snippets/9.1.3/index.md
+:::
+
+:::{include} /release-notes/_snippets/9.1.2/index.md
+:::
+
+:::{include} /release-notes/_snippets/9.1.1/index.md
+:::
+
+:::{include} /release-notes/_snippets/9.1.0/index.md
+:::
+
+:::{include} /release-notes/_snippets/9.0.6/index.md
+:::
+
+:::{include} /release-notes/_snippets/9.0.5/index.md
+:::
+
+:::{include} /release-notes/_snippets/9.0.4/index.md
+:::
+
+:::{include} /release-notes/_snippets/9.0.3/index.md
+:::
+
+:::{include} /release-notes/_snippets/9.0.2/index.md
+:::
+
+:::{include} /release-notes/_snippets/9.0.1/index.md
+:::
+
+:::{include} /release-notes/_snippets/9.0.0/index.md
+:::
diff --git a/docs/release-notes/breaking-changes.md b/docs/release-notes/breaking-changes.md
new file mode 100644
index 00000000000..ded9e0bf161
--- /dev/null
+++ b/docs/release-notes/breaking-changes.md
@@ -0,0 +1,16 @@
+---
+navigation_title: Breaking changes
+products:
+ - id: elastic-agent
+applies_to:
+ stack: ga
+sub:
+ product: Elastic Agent
+---
+
+# {{product}} breaking changes
+
+Breaking changes can impact your Elastic applications, potentially disrupting normal operations. Before you upgrade, carefully review the {{product}} breaking changes and take the necessary steps to mitigate any issues. To learn how to upgrade, check [Upgrade](docs-content://deploy-manage/upgrade.md).
+
+:::{include} /release-notes/_snippets/breaking-changes.md
+:::
diff --git a/docs/release-notes/deprecations.md b/docs/release-notes/deprecations.md
new file mode 100644
index 00000000000..8bea6c9b535
--- /dev/null
+++ b/docs/release-notes/deprecations.md
@@ -0,0 +1,18 @@
+---
+navigation_title: Deprecations
+products:
+ - id: elastic-agent
+applies_to:
+ stack: ga
+sub:
+ product: Elastic Agent
+---
+
+# {{product}} deprecations
+
+Over time, certain Elastic functionality becomes outdated and is replaced or removed. To help with the transition, Elastic deprecates functionality for a period before removal, giving you time to update your applications.
+
+Review the deprecated functionality for {{product}}. While deprecations have no immediate impact, we strongly encourage you update your implementation after you upgrade. To learn how to upgrade, check out [Upgrade](docs-content://deploy-manage/upgrade.md).
+
+:::{include} /release-notes/_snippets/deprecations.md
+:::
diff --git a/docs/release-notes/index.md b/docs/release-notes/index.md
new file mode 100644
index 00000000000..5cf1d6d3369
--- /dev/null
+++ b/docs/release-notes/index.md
@@ -0,0 +1,26 @@
+---
+navigation_title: Elastic Agent
+mapped_pages:
+ - https://www.elastic.co/guide/en/fleet/current/release-notes.html
+products:
+ - id: elastic-agent
+applies_to:
+ stack: ga
+sub:
+ product: Elastic Agent
+---
+
+% Release notes include only features, enhancements, and fixes. Add breaking changes, deprecations, and known issues to the applicable release notes sections.
+
+# {{product}} release notes
+
+Review the changes, fixes, and more in each version of {{product}}.
+
+To check for security updates, go to [Security announcements for the Elastic Stack](https://discuss.elastic.co/c/announcements/security-announcements/31).
+
+:::{admonition} Related release notes
+{{agent}} integrates and manages {{beats}} for data collection, and Beats changes may impact {{agent}} functionality. To check for {{agent}} changes in {{beats}}, go to [{{beats}} release notes](beats://release-notes/index.md).
+:::
+
+:::{include} /release-notes/_snippets/index.md
+:::
diff --git a/docs/release-notes/known-issues.md b/docs/release-notes/known-issues.md
new file mode 100644
index 00000000000..d25cbfb652a
--- /dev/null
+++ b/docs/release-notes/known-issues.md
@@ -0,0 +1,155 @@
+---
+navigation_title: Known issues
+products:
+ - id: elastic-agent
+applies_to:
+ stack: ga
+sub:
+ product: Elastic Agent
+---
+
+# {{product}} known issues
+
+Known issues are significant defects or limitations that may impact your implementation. These issues are actively being worked on and will be addressed in a future release. Review the {{product}} known issues to help you make informed decisions, such as upgrading to a new version.
+
+% Use the following template to add entries to this page.
+
+% :::{dropdown} Title of known issue
+% **Applicable versions for the known issue and the version for when the known issue was fixed**
+% On [Month Day, Year], a known issue was discovered that [description of known issue].
+% For more information, check [Issue #](Issue link).
+
+% **Workaround**
+% Workaround description.
+% :::
+
+:::{dropdown} [Windows] {{agent}} does not process Windows security events
+
+**Applies to: {{agent}} 8.19.0, 9.1.0 (Windows only)**
+
+On August 1, 2025, a known issue was discovered where {{agent}} does not process Windows security events on hosts running Windows 10, Windows 11, and Windows Server 2022.
+
+For more information, check [Issue #45693](https://github.com/elastic/beats/issues/45693).
+
+**Workaround**
+
+No workaround is available at the moment, but a fix is expected to be available in {{agent}} 8.19.1 and 9.1.1.
+:::
+
+:::{dropdown} {{agents}} remain in an "Upgrade scheduled" state
+
+**Applies to: {{agent}} 8.18.0, 8.18.1, 8.18.2, 8.18.3, 8.18.4, 8.19.0, 9.0.0, 9.0.1, 9.0.2, 9.0.3, 9.1.0**
+
+On July 2, 2025, a known issue was discovered where {{agent}} remains in an `Upgrade scheduled` state when a scheduled {{agent}} upgrade is cancelled. Attempting to restart the upgrade on the UI returns an error: `The selected agent is not upgradeable: agent is already being upgraded.`.
+
+For more information, check [Issue #8778](https://github.com/elastic/elastic-agent/issues/8778).
+
+**Workaround**
+
+Call the [Upgrade an agent](https://www.elastic.co/docs/api/doc/kibana/operation/operation-post-fleet-agents-agentid-upgrade) endpoint of the Kibana Fleet API with the `force` parameter set to `true` to force-upgrade the {{agent}}:
+
+```powershell
+curl --request POST \
+ --url https:///api/fleet/agents//upgrade \
+ --user ":" \
+ --header 'Content-Type: application/json' \
+ --header 'kbn-xsrf: true' \
+ --data '{"version": "","force": true}'
+```
+
+To force-upgrade multiple {{agents}}, call the [Bulk upgrade agents](https://www.elastic.co/docs/api/doc/kibana/operation/operation-post-fleet-agents-bulk-upgrade) endpoint of the Kibana Fleet API with the `force` parameter set to `true`:
+
+```powershell
+curl --request POST \
+ --url https:///api/fleet/agents/bulk_upgrade \
+ --user ":" \
+ --header 'Content-Type: application/json' \
+ --header 'kbn-xsrf: true' \
+ --data '{"version": "","force": true,"agents":[""]}'
+```
+:::
+
+:::{dropdown} [Windows] {{agent}} is unable to re-enroll into {{fleet}}
+
+**Applies to: {{agent}} 9.0.0, 9.0.1, 9.0.2 (Windows only)**
+
+On April 9, 2025, a known issue was discovered where an {{agent}} installed on Windows and previously enrolled into {{fleet}} is unable to re-enroll. Attempting to enroll the {{agent}} fails with the following error:
+
+```shell
+Error: the command is executed as root but the program files are not owned by the root user.
+```
+
+For more information, check [Issue #7794](https://github.com/elastic/elastic-agent/issues/7794).
+
+**Workaround**
+
+Until a bug fix is available in a later release, you can resolve the issue temporarily using the following workaround:
+
+1. Change the ownership of the {{agent}} directory:
+
+ ```shell
+ icacls "C:\Program Files\Elastic\Agent" /setowner "NT AUTHORITY\SYSTEM" /t /l
+ ```
+
+2. After the output confirms all files were successfully processed, run the `enroll` command again.
+
+:::
+
+:::{dropdown} [macOS] Osquery integration fails to start on fresh agent installs
+
+**Applies to: {{agent}} 9.0.0 and 9.0.1 (macOS only)**
+
+On May 26th, 2025, a known issue was discovered that causes the `osquery` integration to fail on new {{agent}} installations on macOS. During the installation process, the required `osquery.app/` directory is removed, which prevents the integration from starting.
+
+For more information, check [Issue #8245](https://github.com/elastic/elastic-agent/issues/8245).
+
+**Workaround**
+
+As a workaround, you can manually restore the `osquery.app/` directory as follows:
+
+1. Extract the {{agent}} package, but do not install it yet.
+
+2. Open the following file in the extracted directory:
+
+ ```
+ data/elastic-agent-68f3ed/components/agentbeat.spec.yml
+ ```
+
+3. Locate the `component_files` section at the top of the file. It should look similar to this:
+
+ ```yaml
+ version: 2
+ component_files:
+ - certs/*
+ - lenses/*
+ - module/*
+ - "osquery-extension.ext"
+ - "osquery-extension.exe"
+ - osqueryd
+ - "osqueryd.exe"
+ ```
+
+4. Add the following entry to the end of the list:
+
+ ```yaml
+ - "osquery.app/*"
+ ```
+
+ The updated section should now look like this:
+
+ ```yaml
+ version: 2
+ component_files:
+ - certs/*
+ - lenses/*
+ - module/*
+ - "osquery-extension.ext"
+ - "osquery-extension.exe"
+ - osqueryd
+ - "osqueryd.exe"
+ - "osquery.app/*"
+ ```
+
+5. Proceed to install {{agent}} from the extracted directory as usual.
+
+:::
\ No newline at end of file
diff --git a/docs/release-notes/toc.yml b/docs/release-notes/toc.yml
new file mode 100644
index 00000000000..0896bfe9bbd
--- /dev/null
+++ b/docs/release-notes/toc.yml
@@ -0,0 +1,5 @@
+toc:
+ - file: index.md
+ - file: known-issues.md
+ - file: breaking-changes.md
+ - file: deprecations.md