workflow_dispatch button (patch/minor/major/custom) to bump version, update CHANGELOG, tag and push, reusing yarn release / standard-version / sync-versions.js instead of duplicating bump logic in YAML — tag push then triggers images.yml as-is.
Fixed version drift: flowsint-app/package.json was stuck at 1.0.0, root pyproject.toml at 1.2.8, both behind the actual v1.2.11 tag — would have tagged v1.0.1 next (semver regression, broken Docker tags).
sync-versions.js now also bumps the 4 workspace pyproject.toml (api/core/enrichers/types), not just root + flowsint-app.
Test plan
Add GH_PAT secret
Run workflow manually with bump: patch, confirm commit/tag/push + images.yml triggers
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
## 📋 Pull Request Information
**Original PR:** https://github.com/reconurge/flowsint/pull/215
**Author:** [@dextmorgn](https://github.com/dextmorgn)
**Created:** 8/24/2026
**Status:** ✅ Merged
**Merged:** 8/24/2026
**Merged by:** [@dextmorgn](https://github.com/dextmorgn)
**Base:** `main` ← **Head:** `feat/release-workflow`
---
### 📝 Commits (2)
- [`24177b2`](https://github.com/reconurge/flowsint/commit/24177b2572d239c0d87596350378a530bb9ca167) fix(release): realign version files to latest tag (v1.2.11)
- [`e8aa938`](https://github.com/reconurge/flowsint/commit/e8aa938e7a14a2bde797f4633ea24e98365ebec1) feat(ci): add manual release workflow
### 📊 Changes
**9 files changed** (+88 additions, -12 deletions)
<details>
<summary>View changed files</summary>
➕ `.github/workflows/release.yml` (+62 -0)
📝 `flowsint-api/pyproject.toml` (+1 -1)
📝 `flowsint-app/package.json` (+1 -1)
📝 `flowsint-core/pyproject.toml` (+1 -1)
📝 `flowsint-enrichers/pyproject.toml` (+1 -1)
📝 `flowsint-types/pyproject.toml` (+1 -1)
📝 `package.json` (+2 -1)
📝 `pyproject.toml` (+1 -1)
📝 `scripts/sync-versions.js` (+18 -5)
</details>
### 📄 Description
## Summary
- `workflow_dispatch` button (patch/minor/major/custom) to bump version, update CHANGELOG, tag and push, reusing `yarn release` / `standard-version` / `sync-versions.js` instead of duplicating bump logic in YAML — tag push then triggers `images.yml` as-is.
- Fixed version drift: `flowsint-app/package.json` was stuck at `1.0.0`, root `pyproject.toml` at `1.2.8`, both behind the actual `v1.2.11` tag — would have tagged `v1.0.1` next (semver regression, broken Docker tags).
- `sync-versions.js` now also bumps the 4 workspace `pyproject.toml` (api/core/enrichers/types), not just root + `flowsint-app`.
## Test plan
- [ ] Add `GH_PAT` secret
- [ ] Run workflow manually with `bump: patch`, confirm commit/tag/push + `images.yml` triggers
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/reconurge/flowsint/pull/215
Author: @dextmorgn
Created: 8/24/2026
Status: ✅ Merged
Merged: 8/24/2026
Merged by: @dextmorgn
Base:
main← Head:feat/release-workflow📝 Commits (2)
24177b2fix(release): realign version files to latest tag (v1.2.11)e8aa938feat(ci): add manual release workflow📊 Changes
9 files changed (+88 additions, -12 deletions)
View changed files
➕
.github/workflows/release.yml(+62 -0)📝
flowsint-api/pyproject.toml(+1 -1)📝
flowsint-app/package.json(+1 -1)📝
flowsint-core/pyproject.toml(+1 -1)📝
flowsint-enrichers/pyproject.toml(+1 -1)📝
flowsint-types/pyproject.toml(+1 -1)📝
package.json(+2 -1)📝
pyproject.toml(+1 -1)📝
scripts/sync-versions.js(+18 -5)📄 Description
Summary
workflow_dispatchbutton (patch/minor/major/custom) to bump version, update CHANGELOG, tag and push, reusingyarn release/standard-version/sync-versions.jsinstead of duplicating bump logic in YAML — tag push then triggersimages.ymlas-is.flowsint-app/package.jsonwas stuck at1.0.0, rootpyproject.tomlat1.2.8, both behind the actualv1.2.11tag — would have taggedv1.0.1next (semver regression, broken Docker tags).sync-versions.jsnow also bumps the 4 workspacepyproject.toml(api/core/enrichers/types), not just root +flowsint-app.Test plan
GH_PATsecretbump: patch, confirm commit/tag/push +images.ymltriggers🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.