diff --git a/CHANGELOG.md b/CHANGELOG.md
index bddba05d3e..210fc85a43 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,29 @@
# Changelog
+## 3.0.5 (2025-08-01)
+
+### Features
+
+- feat(language-core): introduce `compileSFCStyle` to provide style related infomation (#5548) - Thanks to @KazariEX!
+- feat(language-service): completion snippet for `v-for` (#5553) - Thanks to @KazariEX!
+
+### Bug Fixes
+
+- fix(language-core): generate `modelModifiers` for explicitly declared default model name (#5558) - Thanks to @KazariEX!
+- fix(language-service): more responsive `.value` insertion
+- fix(vscode): add `class` scope fallback for `component` semantic tokens (#5559) - Thanks to @KazariEX!
+- fix(vscode): make sure extension is loaded immediately
+- fix(language-service): only check `globalTypesPath` for FS files
+- fix(vscode): handle fail tsserver requests to avoid memory leak
+- fix(vscode): do not delay the execution of `restartExtensionHost`
+- fix(language-core): avoid references highlight of unrelated native element tags (#5563) - Thanks to @KazariEX!
+- fix(language-core): tolerance for incomplete root template tag
+- fix(language-core): enable navigation code feature on directive modifiers - Thanks to @KazariEX!
+
+### Other Changes
+
+- chore(language-service): improve global types error message for JS projects (#5574) - Thanks to @Ciallo-Chiaki!
+
## 3.0.4 (2025-07-25)
### Features
@@ -162,4828 +186,16 @@
- refactor(vscode): remove split editor feature (#5446)
- refactor(vscode): rename configuration keys from `complete` to `suggest` for clarity
-## 2.2.10 official (2025-04-22)
-
-## Bug Fixes
-
-- fix(language-core): generate condition guards for model events (#5225) - Thanks to @KazariEX!
-- fix(language-core): prevent global types generation in declaration files (#5239) - Thanks to @KazariEX!
-- fix(language-core): prevent eager inference of slot props from generics (#5247) - Thanks to @KazariEX!
-- fix(typescript-plugin): prevent highlighting native element tags with same name as components (#5253) - Thanks to @KazariEX!
-
-## 2.2.8 official, 2.2.9 insiders (2025-03-02)
-
-### Bug Fixes
-
-- revert "fix(language-core): validate `v-model` variable against model type"
-
-## 2.2.6 official, 2.2.7 insiders (2025-03-01)
-
-### Features
-
-- feat(language-core): infer prop JSDoc from `defineModel`'s leading comments (#5211) - Thanks to @KazariEX!
-
-### Bug Fixes
-
-- fix(language-core): map camelized prop name correctly (#5207) - Thanks to @KazariEX!
-- fix(component-meta): resolve `defineModel` options to collect `default` value (#5209) - Thanks to @KazariEX!
-- fix(language-core): avoid duplicate generation of `defineExpose`'s codes - Thanks to @KazariEX!
-- fix(language-core): generate camelized prop name for `defineModel` (#5213) - Thanks to @KazariEX!
-- fix(language-core): validate `v-model` variable against model type (#5214) - Thanks to @KazariEX!
-- fix(language-core): use keywords instead of semicolons to separate script sections (#5217) - Thanks to @KazariEX!
-
-### Other Changes
-
-- ci: auto close issues with `can't reproduce` label - Thanks to @KazariEX!
-- refactor(language-core): defer the calculation of `linkedCodeMappings` offsets (#5220) - Thanks to @KazariEX!
-
-## 2.2.4 official, 2.2.5 insiders (2025-02-22)
-
-### Features
-
-- feat(language-service): map sfc compiler errors outside the template inner content (#5045) - Thanks to @KazariEX!
-- feat(language-core): introduce options to control type inference of `$attrs`, `$el`, `$refs` and `$slots` (#5135) - Thanks to @KazariEX!
-- feat(language-core): enhance single root nodes collection (#4819) - Thanks to @KazariEX!
-
-### Bug Fixes
-
-- fix(language-core): move `generateSfcBlockSection` to the end to fix missing comma errors (#5184) - Thanks to @zhiyuanzmj!
-- fix(language-core): handle edge case of default slot name mismatch - Thanks to @KazariEX!
-- fix(language-core): combine dollar variable keys from the upper level interface - Thanks to @KazariEX!
-- fix(language-core): hoist the variables that may cause `TS4081` (#5192) - Thanks to @KazariEX!
-- fix(language-core): adjust regex match for `@vue-generic` to improve offset calculation (#5193) - Thanks to @Gehbt!
-- fix(language-core): correct codegen of native element refs - Thanks to @KazariEX!
-- fix(language-core): ignore latex block content (#5151) - Thanks to @KazariEX!
-- fix(language-core): do not emit `undefined` for model with default value (#5198) - Thanks to @RylanBueckert-Broadsign!
-- fix(language-service): typescript-semantic renaming first in style blocks (#4685) - Thanks to @KazariEX!
-- fix(typescript-plugin): prevent removed components from appearing in the completion list - Thanks to @KazariEX!
-
-### Other Changes
-
-- refactor(language-core): drop invalid `v-scope` implemention - Thanks to @KazariEX!
-- refactor(language-core): improve type declaration of `v-for` - Thanks to @KazariEX!
-- test: enable `declaration` to track more errors - Thanks to @KazariEX!
-- refactor(language-core): remove semantic highlight of style module names - Thanks to @KazariEX!
-- chore(language-core): add docs for `@vue-expect-error` support (#5176) - Thanks to @machty!
-- ci: upload extension as artifact for each commit - Thanks to @KazariEX!
-
-## 2.2.2 official, 2.2.3 insiders (2025-02-15)
-
-### Features
-
-- feat(language-core): navigation support for `$attrs`, `$slots`, `$refs` and `$el` in the template (#5056) - Thanks to @KazariEX!
-- feat(language-service): support global directives completion (#4989) - Thanks to @KazariEX!
-- feat(language-core): type support of `useAttrs` (#5106) - Thanks to @KazariEX!
-- feat(language-core): add options for fine-grained configuration of `strictTemplates` (#5138)
-- feat(language-service): display deprecated info of props in completion (#5134) - Thanks to @KazariEX!
-- feat(component-meta): collect destructured props defaults (#5101) - Thanks to @Akryum!
-- feat(language-core): add `checkUnknownDirectives` option (#5141) - Thanks to @KazariEX!
-- feat(language-core): support `