diff --git a/CHANGELOG.md b/CHANGELOG.md
index c4c9d61956..1d0abb20d8 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,38 @@
This changelog goes through the changes that have been made in each release
without substantial changes to our git log; to see the highlights of what has
been added to each release, please refer to the [blog](https://blog.gitea.com).
+## [v1.26.1-moko.05.15.00] - 2026-05-31
+
+* FEATURES
+ * feat(ui): add generic combo-multiselect component (#361)
+ * Reusable dropdown with search, checkable items, and selected-items display
+ * Template: `shared/combolist.tmpl` — accepts Items, Name, Title, SelectedValues
+ * Decoupled from issue sidebar — works in any form context
+ * feat(updates): extension metadata settings for update feed generation
+ * feat(licenses): platform enforcement, key deletion, expired key cleanup
+ * feat(licenses): store keys in plaintext, show full key with copy button
+* TECH DEBT
+ * chore: full namespace migration from git.mokoconsulting.tech to code.mokoconsulting.tech (#336, #337, #344)
+ * Go module path, all imports, template URLs, workflow configs (2,276 files)
+ * fix(blame): set HasSourceRenderedToggle for renderable files (#344)
+ * fix(settings): translate team permission strings via data-locale attributes (#344)
+ * fix(dropzone): use relative path for non-image attachment markdown links (#344)
+ * fix(templates): add required validation to issue dropdown fields (#350)
+ * refactor(ts): remove redundant `handled` field from MarkdownHandleIndentionResult (#350)
+ * refactor(go): rename HasOrgOrUserVisible to IsOwnerVisibleToDoer (#350)
+ * refactor(go): replace ValuesRepository with maps.Values (Go 1.21+) (#357)
+ * refactor(go): remove CanEnableEditor wrapper, use CanContentChange directly (#357)
+ * fix(ts): parseIssueHref now uses URL pathname and trims appSubUrl (#360)
+ * fix(actions): enforce MaxJobNumPerRun (256) limit when creating jobs (#360)
+ * fix(css): use calc(infinity * 1px) for --border-radius-full (#361)
+ * fix(css): remove legacy .center class from 2015, replace with tw-text-center (#361)
+* BUGFIXES
+ * fix(build): use slices.Collect for maps.Values (Go 1.23+ compat)
+ * fix(licenses): remove duplicate DeleteLicenseKey declaration
+ * fix(licenses): only show licenses tab when licensing is enabled
+ * fix(licenses): show feed URLs based on repo update platform setting
+ * fix(updates): correct dlid prefix and align XML with Joomla standard
+
## [v1.26.1-moko.05.06.00] - 2026-05-30
* FEATURES
diff --git a/templates/shared/combolist.tmpl b/templates/shared/combolist.tmpl
new file mode 100644
index 0000000000..c120ca4ae4
--- /dev/null
+++ b/templates/shared/combolist.tmpl
@@ -0,0 +1,46 @@
+{{/*
+ Generic multiselect combo list component.
+ Provides a dropdown with search, checkable items, and a selected-items display list.
+
+ Parameters:
+ Name - form input name (required)
+ Title - display label (required)
+ Items - slice of items, each must have .Value and .Label fields
+ SelectedValues - comma-separated string of selected values
+ Placeholder - search input placeholder (optional, defaults to "Filter...")
+ EmptyText - text when nothing is selected (optional)
+ Disabled - whether the control is disabled (optional)
+ Icon - gear icon shown next to title (optional, defaults to "octicon-gear")
+*/}}
+