diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a01df5..6feac41 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to SentinelID are documented in this file. +## v2.3.5 (2026-03-01) + +### Release Integrity Guardrails +- Added release duplicate-pair guard `scripts/release/check_no_duplicate_pairs.sh` to block accidental ` 2` artifacts when the original path exists. +- Integrated duplicate guard into `make release-check` and exposed it as `make check-no-duplicates`. +- Added `*.tsbuildinfo` to `.gitignore` to suppress transient TypeScript build artifacts from polluting release worktrees. + ## v2.3.4 (2026-02-28) ### Release Pipeline Reliability diff --git a/Makefile b/Makefile index dcadf8b..a1eedc7 100644 --- a/Makefile +++ b/Makefile @@ -37,7 +37,7 @@ clean help: - @echo "SentinelID v2.3.4 Commands" + @echo "SentinelID v2.3.5 Commands" @echo "" @echo "Demo" @echo " make demo-up Start cloud/admin/postgres and wait for health" diff --git a/RUNBOOK.md b/RUNBOOK.md index 3ee7932..9ffa498 100644 --- a/RUNBOOK.md +++ b/RUNBOOK.md @@ -1,4 +1,4 @@ -# SentinelID Runbook (v2.3.4) +# SentinelID Runbook (v2.3.5) This is the single source of truth for local setup, run, and validation. diff --git a/apps/desktop/src-tauri/tauri.conf.json b/apps/desktop/src-tauri/tauri.conf.json index 79e9959..cca2060 100644 --- a/apps/desktop/src-tauri/tauri.conf.json +++ b/apps/desktop/src-tauri/tauri.conf.json @@ -7,7 +7,7 @@ }, "package": { "productName": "SentinelID", - "version": "2.3.4" + "version": "2.3.5" }, "tauri": { "allowlist": { diff --git a/docs/DEMO_CHECKLIST.md b/docs/DEMO_CHECKLIST.md index 0778c55..d01e6a6 100644 --- a/docs/DEMO_CHECKLIST.md +++ b/docs/DEMO_CHECKLIST.md @@ -1,4 +1,4 @@ -# SentinelID Demo Checklist (v2.3.4) +# SentinelID Demo Checklist (v2.3.5) Target runtime: under 10 minutes for a full manual pass. diff --git a/docs/RELEASE.md b/docs/RELEASE.md index ba66f4a..6cda9a1 100644 --- a/docs/RELEASE.md +++ b/docs/RELEASE.md @@ -1,4 +1,4 @@ -# Release Guide (v2.3.4) +# Release Guide (v2.3.5) ## Scope