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/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/breaking-changes.md b/docs/release-notes/_snippets/breaking-changes.md
new file mode 100644
index 00000000000..3bae5a0d8e1
--- /dev/null
+++ b/docs/release-notes/_snippets/breaking-changes.md
@@ -0,0 +1,20 @@
+:::{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..00f664e3ed8
--- /dev/null
+++ b/docs/release-notes/_snippets/deprecations.md
@@ -0,0 +1,20 @@
+:::{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..329a63a1745
--- /dev/null
+++ b/docs/release-notes/_snippets/index.md
@@ -0,0 +1,20 @@
+:::{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