# Changelog

All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.97.1](https://github.com/Studio-Saelix/sencho/compare/v0.97.0...v0.97.1) (2026-08-09)


### Fixed

* **compose-doctor:** recognize Docker socket proxy topologies ([#1791](https://github.com/Studio-Saelix/sencho/issues/1791)) ([bb98cba](https://github.com/Studio-Saelix/sencho/commit/bb98cba1f2ca7796a3732c1de6b77e2bd579ea69)), thanks @Crosis47
* **fleet-sync:** open status and reset-anchor to Community admins ([#1792](https://github.com/Studio-Saelix/sencho/issues/1792)) ([b9e73f7](https://github.com/Studio-Saelix/sencho/commit/b9e73f7bd8423e8b8c2279925de241e91903f853))
* **fleet:** reject negative or non-finite remote reclaimableBytes in prune estimate ([#1803](https://github.com/Studio-Saelix/sencho/issues/1803)) ([0d5ff26](https://github.com/Studio-Saelix/sencho/commit/0d5ff26a8ffa68d54cd0a4d1c9514dd527f3cee1))
* **nodes:** return conflict on duplicate rename ([#1801](https://github.com/Studio-Saelix/sencho/issues/1801)) ([5014ad2](https://github.com/Studio-Saelix/sencho/commit/5014ad20a6ee8ff42075138ec4a75371c6fa14e1))
* **rbac:** make complete built-in RBAC available on Community ([#1793](https://github.com/Studio-Saelix/sencho/issues/1793)) ([5c52ae2](https://github.com/Studio-Saelix/sencho/commit/5c52ae26eb602cc581f08bdbc5d35a12c21def7d))
* **resources:** center rollback state badges in their column ([#1807](https://github.com/Studio-Saelix/sencho/issues/1807)) ([4aae09d](https://github.com/Studio-Saelix/sencho/commit/4aae09db4a3ff2e1f87550771c22bc1449cde85a))
* **resources:** exclude rollback-held images from reclaimable figure ([#1808](https://github.com/Studio-Saelix/sencho/issues/1808)) ([12d80c5](https://github.com/Studio-Saelix/sencho/commit/12d80c5ca759aed344b9aeb16368cb4873d3a3bf))
* **sso:** forward RFC 9207 iss parameter in OIDC callback ([#1785](https://github.com/Studio-Saelix/sencho/issues/1785)) ([e084ad4](https://github.com/Studio-Saelix/sencho/commit/e084ad424c1f8ee85b61a0dba2aa8acc0b94e9a0))
* truncate long error text in fleet prune estimate per-node rows ([#1802](https://github.com/Studio-Saelix/sencho/issues/1802)) ([4f30db3](https://github.com/Studio-Saelix/sencho/commit/4f30db3abc9b5cbfb6df8a107750eb48f14e4485))
* **whats-new:** backfill entries for unannounced 0.97.0 features ([#1804](https://github.com/Studio-Saelix/sencho/issues/1804)) ([fe003d5](https://github.com/Studio-Saelix/sencho/commit/fe003d5c49abb5a95709da076f7181c4deacd6aa))

## [0.97.0](https://github.com/Studio-Saelix/sencho/compare/v0.96.0...v0.97.0) (2026-08-06)


### Added

* account for VM memory ballooning in host memory reporting ([#1750](https://github.com/Studio-Saelix/sencho/issues/1750)) ([c613010](https://github.com/Studio-Saelix/sencho/commit/c613010199fc67b21f940a379fbe3d801f0d36a4)), thanks @Crosis47
* add inspect image action on stack container cards ([#1780](https://github.com/Studio-Saelix/sencho/issues/1780)) ([4e54a92](https://github.com/Studio-Saelix/sencho/commit/4e54a9272d783f8484a9fc864625afc10bc18762))
* add node-scoped opt-out for image update detection ([#1715](https://github.com/Studio-Saelix/sencho/issues/1715)) ([fa503dd](https://github.com/Studio-Saelix/sencho/commit/fa503ddf2782871d476713b6183cb28c86b560e1)), thanks @Crosis47
* add ntfy notification channel ([#1761](https://github.com/Studio-Saelix/sencho/issues/1761)) ([0ba09eb](https://github.com/Studio-Saelix/sencho/commit/0ba09ebdee30d50e19e5f6a6438866a55a2b7f2e))
* add stack:read permission gate to Settings Labels section ([#1747](https://github.com/Studio-Saelix/sencho/issues/1747)) ([7c02f6e](https://github.com/Studio-Saelix/sencho/commit/7c02f6eeb520f8f77a4c6dbc72f1b6dfb0da331c))
* add target-aware RBAC authorization to Scheduled Operations ([#1745](https://github.com/Studio-Saelix/sencho/issues/1745)) ([209c9c5](https://github.com/Studio-Saelix/sencho/commit/209c9c5d532df0de77307ff21f77037d9a09c7d1))
* **auth:** add SSO-only authentication mode ([#1714](https://github.com/Studio-Saelix/sencho/issues/1714)) ([e175db8](https://github.com/Studio-Saelix/sencho/commit/e175db8e626f3b1d44464efa13d928da736bf6cb)), thanks @Crosis47
* **compose-doctor:** show All Clear when findings are acknowledged ([#1721](https://github.com/Studio-Saelix/sencho/issues/1721)) ([543e4ef](https://github.com/Studio-Saelix/sencho/commit/543e4ef256ee09a2160f5ae025088ef77592d210)), thanks @Crosis47
* expose Community audit log via system:audit navigation ([#1740](https://github.com/Studio-Saelix/sencho/issues/1740)) ([a1e2846](https://github.com/Studio-Saelix/sencho/commit/a1e2846d7d16f0015cd9a741ae8d09d064a74287))
* **fleet-secrets:** graduate encrypted fleet-wide environment bundles to Community ([#1758](https://github.com/Studio-Saelix/sencho/issues/1758)) ([5f5cd5e](https://github.com/Studio-Saelix/sencho/commit/5f5cd5ea514e532ea579b302b719302c17dde772))
* **fleet:** add Node details sheet to the node card kebab ([#1752](https://github.com/Studio-Saelix/sencho/issues/1752)) ([97be019](https://github.com/Studio-Saelix/sencho/commit/97be019696ef31a95765a21cd0a5d1caa9c1c4b6))
* **fleet:** reapply Compose configuration without a version update ([#1716](https://github.com/Studio-Saelix/sencho/issues/1716)) ([b0b423b](https://github.com/Studio-Saelix/sencho/commit/b0b423b234a29fcf29ec45c725f2f92b3f4801d7)), thanks @Crosis47
* **fleet:** show itemized prune plans ([#1734](https://github.com/Studio-Saelix/sencho/issues/1734)) ([44d6078](https://github.com/Studio-Saelix/sencho/commit/44d607824113a6bca9723978f7200492c9e28736)), thanks @Crosis47
* live-refresh stack detail container and health state ([#1712](https://github.com/Studio-Saelix/sencho/issues/1712)) ([60092dd](https://github.com/Studio-Saelix/sencho/commit/60092dd46231b837534a0c404a14fcf1d68f3965)), thanks @Crosis47
* make the Files explorer tree pane resizable ([#1774](https://github.com/Studio-Saelix/sencho/issues/1774)) ([85b8411](https://github.com/Studio-Saelix/sencho/commit/85b841175a2e2827dea87d8f27657615ce4d3465))
* **rbac:** make Settings authorization permission-aware ([#1738](https://github.com/Studio-Saelix/sencho/issues/1738)) ([a3026f4](https://github.com/Studio-Saelix/sencho/commit/a3026f47a8291c6b4d0a554b7aa4bde17c3ef32b))
* **rbac:** make stack-scoped grants node-specific ([#1727](https://github.com/Studio-Saelix/sencho/issues/1727)) ([9922d8e](https://github.com/Studio-Saelix/sencho/commit/9922d8e765a7fbd917cec1473153fa462a46d0cd))
* **recovery:** make rollback-recovery image lifecycle visible and controllable ([#1753](https://github.com/Studio-Saelix/sencho/issues/1753)) ([41bf075](https://github.com/Studio-Saelix/sencho/commit/41bf075eb06c2991eaaab670cffc91698a8c042b))
* **schedules:** auto-update stacks by Stack Label ([#1717](https://github.com/Studio-Saelix/sencho/issues/1717)) ([72cdbb0](https://github.com/Studio-Saelix/sencho/commit/72cdbb0eaa5c9632d262c075db9e30bd15dd4e1e)), thanks @Sn00zEZA
* surface ZFS ARC reclaimable as dashboard context line ([#1760](https://github.com/Studio-Saelix/sencho/issues/1760)) ([71be163](https://github.com/Studio-Saelix/sencho/commit/71be1634a5b6214d39ee9159eadf4151a85500c8)), thanks @Crosis47
* validate scheduled task target existence at creation time ([#1757](https://github.com/Studio-Saelix/sencho/issues/1757)) ([5240957](https://github.com/Studio-Saelix/sencho/commit/5240957ff370e2fa2362772c7afdbfae369c9746))


### Fixed

* allow chmod on protected stack files ([#1772](https://github.com/Studio-Saelix/sencho/issues/1772)) ([a826cd3](https://github.com/Studio-Saelix/sencho/commit/a826cd398dceb5d3466e2ecbf7f9d1f4c488093c))
  - In mixed-version fleets, chmod runs on the target node's own Sencho instance. An updated hub proxying an older remote still returns 409 `PROTECTED_FILE` on that remote until it is updated.
  - Windows stat reports `0o666` for `0o600` (Node distinguishes writable vs read-only, not modes); Linux/Docker QA is authoritative.
* **auth:** align WebSocket token_version checks with HTTP ([#1744](https://github.com/Studio-Saelix/sencho/issues/1744)) ([a74905f](https://github.com/Studio-Saelix/sencho/commit/a74905ff1ed7a7309a899eddd612fab56246ea02))
* **auth:** gate scoped JWTs on container-exec WebSocket ([#1741](https://github.com/Studio-Saelix/sencho/issues/1741)) ([ce4b91e](https://github.com/Studio-Saelix/sencho/commit/ce4b91e90f1ca7c6a45ac200ebf831260ee015ac))
* **auth:** keep active sessions alive and add stay-signed-in ([#1711](https://github.com/Studio-Saelix/sencho/issues/1711)) ([681ecc7](https://github.com/Studio-Saelix/sencho/commit/681ecc7047818345220150ed8a18b3259d1d283f))
* bump golang.org/x/text to v0.39.0 in Docker CLI and Compose builds ([#1728](https://github.com/Studio-Saelix/sencho/issues/1728)) ([d698eb4](https://github.com/Studio-Saelix/sencho/commit/d698eb46f96906a1962463d4861689a8bf51b74f))
* **compose-doctor:** resolve effective healthcheck coverage ([#1713](https://github.com/Studio-Saelix/sencho/issues/1713)) ([78475d9](https://github.com/Studio-Saelix/sencho/commit/78475d96ef2f5e0571db8f953f274b189462b957)), thanks @Crosis47
* condition --volumes in downStack() on the removeVolumes option ([#1764](https://github.com/Studio-Saelix/sencho/issues/1764)) ([92d974b](https://github.com/Studio-Saelix/sencho/commit/92d974b13eba47a74cd482a1b6fb4a6120a15ea7))
* credit issue openers linked to a PR without closing text ([#1718](https://github.com/Studio-Saelix/sencho/issues/1718)) ([ea38113](https://github.com/Studio-Saelix/sencho/commit/ea381131940d35c506f16d8122df3725f91538a1))
* **dashboard:** scope alert-rule count to stacks on the active node ([#1722](https://github.com/Studio-Saelix/sencho/issues/1722)) ([c90e960](https://github.com/Studio-Saelix/sencho/commit/c90e9606f1314ead738254664b5240a4e9a17d70))
* **files:** preserve tree expand state after mutations ([#1773](https://github.com/Studio-Saelix/sencho/issues/1773)) ([9b48121](https://github.com/Studio-Saelix/sencho/commit/9b481212f651655221dbde2d3655f337808d52b1))
* **fleet-secrets:** invalidate stale preview when target inputs change ([#1756](https://github.com/Studio-Saelix/sencho/issues/1756)) ([bfabdc2](https://github.com/Studio-Saelix/sencho/commit/bfabdc244447af6ad033a611584484c9b76277fa))
* forward scoped node-admin permission for Settings writes through remote proxy ([#1748](https://github.com/Studio-Saelix/sencho/issues/1748)) ([ba017ee](https://github.com/Studio-Saelix/sencho/commit/ba017ee665bb2b7f7ef479b5d8a9f8cbb0681302))
* **image-updates:** explain persistent digest rebuilds after update ([#1784](https://github.com/Studio-Saelix/sencho/issues/1784)) ([4fa5325](https://github.com/Studio-Saelix/sencho/commit/4fa532530e857d3d09e9c55b579b5b604126b2de))
* keep fleet prune estimate bytes after a target timeout ([#1783](https://github.com/Studio-Saelix/sencho/issues/1783)) ([575848e](https://github.com/Studio-Saelix/sencho/commit/575848e017219ac2e9fc2b8d6be262f98ccbcb40))
* **mesh:** close error-listener race in pilot tunnel reverse-dial connect ([#1754](https://github.com/Studio-Saelix/sencho/issues/1754)) ([48c89d2](https://github.com/Studio-Saelix/sencho/commit/48c89d217d2d7e1f360c2b9a1c73d8d60de5c303))
* **networking:** ignore verified Mesh attachments in drift ([#1729](https://github.com/Studio-Saelix/sencho/issues/1729)) ([3c93406](https://github.com/Studio-Saelix/sencho/commit/3c934066f3d49d5850a42475821a2d47dbf52b2e)), thanks @Crosis47
* **proxy:** forward scoped stack evidence for alerts, auto-heal, and node-wide image refresh ([#1749](https://github.com/Studio-Saelix/sencho/issues/1749)) ([2e2b095](https://github.com/Studio-Saelix/sencho/commit/2e2b095b0002ea09d5ce9e4c5209735ceb4d9a51))
* **rbac:** enforce operational permission parity ([#1736](https://github.com/Studio-Saelix/sencho/issues/1736)) ([c704cb5](https://github.com/Studio-Saelix/sencho/commit/c704cb54d20a41329af5319b04b3c58f1b58d3f6))
* **rbac:** handle permission metadata failures ([#1735](https://github.com/Studio-Saelix/sencho/issues/1735)) ([a65bf4d](https://github.com/Studio-Saelix/sencho/commit/a65bf4d46aab9e668ca11ed078b09efac4a9e3df))
* **rbac:** permission-gate alerts, auto-heal, and image updates ([#1743](https://github.com/Studio-Saelix/sencho/issues/1743)) ([1580131](https://github.com/Studio-Saelix/sencho/commit/15801318d69525f7f2b6e047891c06ea83ea5740))
* reduce prune estimate work and add managed-scope timeout ([#1768](https://github.com/Studio-Saelix/sencho/issues/1768)) ([e2fc3a5](https://github.com/Studio-Saelix/sencho/commit/e2fc3a58a0ac7d0bbf2e06aaf559d607902bd82e))
* **resources:** attribute free images to managed prune by repository family ([#1769](https://github.com/Studio-Saelix/sencho/issues/1769)) ([a29d451](https://github.com/Studio-Saelix/sencho/commit/a29d4518759d4bd474d571dc0d456a4337cf972b))
* surface NOT_EMPTY error code so DeleteFileConfirm can offer recursive delete ([#1765](https://github.com/Studio-Saelix/sencho/issues/1765)) ([4be3319](https://github.com/Studio-Saelix/sencho/commit/4be3319a07db98b1e5a5298ce9ae508191ccb8ed))
* **ui:** flatten single-container Update onto the service row ([#1759](https://github.com/Studio-Saelix/sencho/issues/1759))q ([1c9060a](https://github.com/Studio-Saelix/sencho/commit/1c9060a855a8673915e638906f5e8f190f097378))
* **ui:** restore equal gutters on container logs modal ([#1771](https://github.com/Studio-Saelix/sencho/issues/1771)) ([63a3594](https://github.com/Studio-Saelix/sencho/commit/63a3594671956fd36ca130f7c9179af8ada2ac7f))
* **ui:** show delayed busy feedback on confirm actions ([#1763](https://github.com/Studio-Saelix/sencho/issues/1763)) ([5d89a10](https://github.com/Studio-Saelix/sencho/commit/5d89a1075476d454048a245922e992619a716eb2))

## [0.96.0](https://github.com/Studio-Saelix/sencho/compare/v0.95.0...v0.96.0) (2026-07-26)


### Added

* add Admiral Hardened Build channel and business assurance surfaces ([#1629](https://github.com/Studio-Saelix/sencho/issues/1629)) ([381ed2a](https://github.com/Studio-Saelix/sencho/commit/381ed2a91fa7ff5743a365511d9f5cd6bff141a9))
* add Apprise as a fourth notification channel ([#1644](https://github.com/Studio-Saelix/sencho/issues/1644)) ([83b3d93](https://github.com/Studio-Saelix/sencho/commit/83b3d932e5a9664264b4b5ac40d601925654e4b1))
* add configurable notification dispatch retries ([#1655](https://github.com/Studio-Saelix/sencho/issues/1655)) ([090a0d7](https://github.com/Studio-Saelix/sencho/commit/090a0d73acbad1a85db1603372d79b65e044392d))
* add developer-mode startup and stack hydration timing ([#1619](https://github.com/Studio-Saelix/sencho/issues/1619)) ([b70a529](https://github.com/Studio-Saelix/sencho/commit/b70a529656a232df0012c56b3280aed9aa49c4fa))
* add service-scoped Compose update and restore ([#1648](https://github.com/Studio-Saelix/sencho/issues/1648)) ([63213c0](https://github.com/Studio-Saelix/sencho/commit/63213c096026551f9fb3b10ada625eb2be8ff35f))
* add service-scoped stack alert rules ([#1681](https://github.com/Studio-Saelix/sencho/issues/1681)) ([85842cc](https://github.com/Studio-Saelix/sencho/commit/85842cc54788b453071890fb57764ab608de78a0))
* **blueprints:** require confirmed rollout preview before reconcile ([#1649](https://github.com/Studio-Saelix/sencho/issues/1649)) ([d94e586](https://github.com/Studio-Saelix/sencho/commit/d94e586af3011733af5f2d9c991c745385b7b29e))
* graduate Host Console to Community admins ([#1669](https://github.com/Studio-Saelix/sencho/issues/1669)) ([dd54a2e](https://github.com/Studio-Saelix/sencho/commit/dd54a2e483f4432c59f602ea1129a47ec87c1ec8))
* guide missing external network creation during deploy ([#1645](https://github.com/Studio-Saelix/sencho/issues/1645)) ([35bb744](https://github.com/Studio-Saelix/sencho/commit/35bb74425be6d906d13dc9a2fd67f7c8acd5b534))
* node-scoped Networking operator page ([#1603](https://github.com/Studio-Saelix/sencho/issues/1603)) ([8980910](https://github.com/Studio-Saelix/sencho/commit/8980910153c1c6264af35076dbeb64fca0f3301e))
* stack glob patterns and route severity levels ([#1651](https://github.com/Studio-Saelix/sencho/issues/1651)) ([972f2b9](https://github.com/Studio-Saelix/sencho/commit/972f2b9483432648689ba01aa7a2d64bb0eed917))
* surface stack Monitor from header and service cards ([#1693](https://github.com/Studio-Saelix/sencho/issues/1693)) ([524cc56](https://github.com/Studio-Saelix/sencho/commit/524cc56d2ff43d1d38b737c0a8751509e72d29bc))
* **ui:** add Classic, Smart, and Compact desktop navigation styles ([#1642](https://github.com/Studio-Saelix/sencho/issues/1642)) ([25586fc](https://github.com/Studio-Saelix/sencho/commit/25586fc8ab8a8fdd8d2ef7b23d57b41be6c11d83))
* weekly UTC maintenance windows for mute rules ([#1661](https://github.com/Studio-Saelix/sencho/issues/1661)) ([a3edee5](https://github.com/Studio-Saelix/sencho/commit/a3edee5e6a6c6319bb292f2e37d96aa3260acf3f))


### Fixed

* assorted UI/UX polish fixes ([#1670](https://github.com/Studio-Saelix/sencho/issues/1670)) ([cfb42af](https://github.com/Studio-Saelix/sencho/commit/cfb42af4e098ce8375529eff9c78c33b17c0e9fa))
* **blueprints:** fail closed on marker ownership for apply and withdraw ([#1694](https://github.com/Studio-Saelix/sencho/issues/1694)) ([17a8dc8](https://github.com/Studio-Saelix/sencho/commit/17a8dc8a94b18b396492735de8cd89bc2cf45c97))
* **blueprints:** gate confirmed apply on live intent fingerprint ([#1663](https://github.com/Studio-Saelix/sencho/issues/1663)) ([155db30](https://github.com/Studio-Saelix/sencho/commit/155db30554e566fcb1a449451fc79b6e6bb4e3d9))
* **blueprints:** write compose.yaml so first-time apply is not shadowed ([#1668](https://github.com/Studio-Saelix/sencho/issues/1668)) ([e15b9d1](https://github.com/Studio-Saelix/sencho/commit/e15b9d1244f1e59f7140aaa2139fe34a16f681bb))
* bump brace-expansion override to 5.0.8 to clear high-severity audit ([#1702](https://github.com/Studio-Saelix/sencho/issues/1702)) ([d0a4f1e](https://github.com/Studio-Saelix/sencho/commit/d0a4f1ead9652667580319e1c83f31baea675060))
* dedupe healthcheck alerts and share crash rate limits ([#1690](https://github.com/Studio-Saelix/sencho/issues/1690)) ([ec0f59a](https://github.com/Studio-Saelix/sencho/commit/ec0f59a85e3a54f29670d2424e4e04d21b07d6c4))
* **docs:** remove duplicate license url key in openapi.yaml ([#1628](https://github.com/Studio-Saelix/sencho/issues/1628)) ([8ca8eba](https://github.com/Studio-Saelix/sencho/commit/8ca8ebaa2468ad6df79bd0be87a94dba6c4faf15))
* **fleet:** expose Community cordon on NodeCard ([#1646](https://github.com/Studio-Saelix/sencho/issues/1646)) ([674220b](https://github.com/Studio-Saelix/sencho/commit/674220b9deaee8f4e8a58626fdf1d0679a7c669b))
* **fleet:** isolate corrupt snapshot file decrypt failures ([#1650](https://github.com/Studio-Saelix/sencho/issues/1650)) ([3b02795](https://github.com/Studio-Saelix/sencho/commit/3b027957c4369a4d8c0ea5513b9e631b1bf2508b))
* **fleet:** refresh prune reclaimable estimate after successful run ([#1675](https://github.com/Studio-Saelix/sencho/issues/1675)) ([ed5ca9c](https://github.com/Studio-Saelix/sencho/commit/ed5ca9c4f690d07dc1ccf25c3a8557e57780410d))
* **fleet:** verify update status before removing readiness cards ([#1697](https://github.com/Studio-Saelix/sencho/issues/1697)) ([719180f](https://github.com/Studio-Saelix/sencho/commit/719180f156c49bea48ad2b319d81cb9823cfb9fa))
* **image-updates:** match any local RepoDigest against the remote tag ([#1695](https://github.com/Studio-Saelix/sencho/issues/1695)) ([6688da9](https://github.com/Studio-Saelix/sencho/commit/6688da97b1e3b107b379539354ceddc56b549b7d))
* **image-updates:** normalize docker.io host aliases to the registry API host ([#1706](https://github.com/Studio-Saelix/sencho/issues/1706)) ([bb7c76b](https://github.com/Studio-Saelix/sencho/commit/bb7c76ba4664abcdfafcdc5816e35073076c66d7))
* **image-updates:** treat multi-arch child digests as up to date ([#1641](https://github.com/Studio-Saelix/sencho/issues/1641)) ([66ec4eb](https://github.com/Studio-Saelix/sencho/commit/66ec4ebdd2c6c67576f6e4c328bd7fe87c28285c))
* keep running containers until stack pull/build succeeds ([#1657](https://github.com/Studio-Saelix/sencho/issues/1657)) ([3f1f15a](https://github.com/Studio-Saelix/sencho/commit/3f1f15a6f433eb137206833550c2eb0a0134fbf0))
* leave editor after deleting the open stack ([#1665](https://github.com/Studio-Saelix/sencho/issues/1665)) ([55fa29f](https://github.com/Studio-Saelix/sencho/commit/55fa29f565473865f4c262f2b8516bc1899faa82))
* **notifications:** align Sencho update alerts with Fleet cache ([#1620](https://github.com/Studio-Saelix/sencho/issues/1620)) ([4079cb9](https://github.com/Studio-Saelix/sencho/commit/4079cb919817509e17ba4ed9f13889be892a09e0))
* **notifications:** neutralize satellite-local node names in alert bodies ([#1640](https://github.com/Studio-Saelix/sencho/issues/1640)) ([d8e4ede](https://github.com/Studio-Saelix/sencho/commit/d8e4ede94f1fcacc631e70eaca5ec3a8540951e5))
* **notifications:** stop embedding Local in janitor alerts ([#1631](https://github.com/Studio-Saelix/sencho/issues/1631)) ([678c198](https://github.com/Studio-Saelix/sencho/commit/678c198faadc065c081013590dd810dfbcf35242))
* **notifications:** version mute replica retractions for soft-cleanup restore ([#1703](https://github.com/Studio-Saelix/sencho/issues/1703)) ([9859ce6](https://github.com/Studio-Saelix/sencho/commit/9859ce60b813fd3fc5247234a1f21ac7259eb9e3))
* pin brace-expansion to a patched version in both packages ([#1658](https://github.com/Studio-Saelix/sencho/issues/1658)) ([8598390](https://github.com/Studio-Saelix/sencho/commit/859839082c89f912b346b11a42acfc0576268314))
* pin postcss override to clear backend audit vulnerability ([#1701](https://github.com/Studio-Saelix/sencho/issues/1701)) ([e33eda3](https://github.com/Studio-Saelix/sencho/commit/e33eda3c38423b047f1c870ea7a452cf11b1741f))
* prevent false empty states during stack hydration ([#1659](https://github.com/Studio-Saelix/sencho/issues/1659)) ([b06dfd7](https://github.com/Studio-Saelix/sencho/commit/b06dfd71754242e6a09104aa9b61f38ba1bcbc7c))
* purge deleted-stack notifications from panel and ticker ([#1674](https://github.com/Studio-Saelix/sencho/issues/1674)) ([698b7d0](https://github.com/Studio-Saelix/sencho/commit/698b7d0713919b9f91a63e05d84b44057b7f1d12))
* **rate-limit:** verify node_proxy JWT before skipping limiters ([#1647](https://github.com/Studio-Saelix/sencho/issues/1647)) ([31d4e46](https://github.com/Studio-Saelix/sencho/commit/31d4e4669b335ce270cece716045b34072385e7b))
* **rbac:** cover stack assignment cleanup on blueprint withdraw ([#1664](https://github.com/Studio-Saelix/sencho/issues/1664)) ([6484c79](https://github.com/Studio-Saelix/sencho/commit/6484c79015b5da7321379a76bc34d43478eb7dd0))
* recognize clean one-shot completions in health gate and drift ([#1691](https://github.com/Studio-Saelix/sencho/issues/1691)) ([79914fe](https://github.com/Studio-Saelix/sencho/commit/79914fe7503923edebe64e9f006b4fbe5b7d189f))
* reconcile sticky update indicators with Anatomy preview ([#1698](https://github.com/Studio-Saelix/sencho/issues/1698)) ([0daddfd](https://github.com/Studio-Saelix/sencho/commit/0daddfde00dfe37a8e0622f639d2a84125c031f3))
* **security:** bump grpc to 1.82.1 in docker CLI and compose builds ([#1678](https://github.com/Studio-Saelix/sencho/issues/1678)) ([ce4eeb6](https://github.com/Studio-Saelix/sencho/commit/ce4eeb6b933b299a880dd566d40148c970a78422))
* **settings:** toast and block save when node settings fail to load ([#1654](https://github.com/Studio-Saelix/sencho/issues/1654)) ([ad00517](https://github.com/Studio-Saelix/sencho/commit/ad00517a0ea5c9ab1a2b992e0cad622b0f2d4503))
* **sso:** correct settings description to drop unsupported SAML claim ([#1662](https://github.com/Studio-Saelix/sencho/issues/1662)) ([a4d9fa7](https://github.com/Studio-Saelix/sencho/commit/a4d9fa79a1d6043708fb3f951b58337b2c0abfaa))
* **stacks:** fail closed when compose ps errors during update orphan classify ([#1708](https://github.com/Studio-Saelix/sencho/issues/1708)) ([6887670](https://github.com/Studio-Saelix/sencho/commit/688767092a3b4be5a11709fac72ffcd7ffadb299))
* **ui:** default Reduced Motion on Calm and quiet decorative rails ([#1622](https://github.com/Studio-Saelix/sencho/issues/1622)) ([c170c3f](https://github.com/Studio-Saelix/sencho/commit/c170c3f30ca0673df1e5e395dcd82dd1baed33b6))
* **ui:** hide log service chips on single-service stacks ([#1689](https://github.com/Studio-Saelix/sencho/issues/1689)) ([a89498a](https://github.com/Studio-Saelix/sencho/commit/a89498ae5b4bb8b88178fe8088e1acb46e3821b9))
* **ui:** lower-overhead Reduced effects for constrained GPUs ([#1616](https://github.com/Studio-Saelix/sencho/issues/1616)) ([c01f247](https://github.com/Studio-Saelix/sencho/commit/c01f2479b94b2214a949ae736a3c5141cc52b5be))
* **ui:** use Docker health status terms on container cards ([#1696](https://github.com/Studio-Saelix/sencho/issues/1696)) ([4d2270a](https://github.com/Studio-Saelix/sencho/commit/4d2270a097b797c632353efaf513b67ccd5f57a6)), closes [#1677](https://github.com/Studio-Saelix/sencho/issues/1677), thanks @Crosis47
* unlock Community deploy policy hard-blocking ([#1643](https://github.com/Studio-Saelix/sencho/issues/1643)) ([b91025d](https://github.com/Studio-Saelix/sencho/commit/b91025dc8b5d476dd295f12695f4225a88081b90))

## [0.95.0](https://github.com/Studio-Saelix/sencho/compare/v0.94.1...v0.95.0) (2026-07-12)


### Thanks

* @auspex for [#1581](https://github.com/Studio-Saelix/sencho/issues/1581)

### Added

* add confirmed Take down stack action with optional volume removal ([#1599](https://github.com/Studio-Saelix/sencho/issues/1599)) ([d113004](https://github.com/Studio-Saelix/sencho/commit/d1130043592778749db4169711ed3f8028fb6719))
* add mobile row layout to Security History tab ([#1608](https://github.com/Studio-Saelix/sencho/issues/1608)) ([2da87c8](https://github.com/Studio-Saelix/sencho/commit/2da87c8c5d2df408e81d2d199b2db49b24b379f5))
* add routable browser URLs for stacks and shell views ([#1586](https://github.com/Studio-Saelix/sencho/issues/1586)) ([5fe0843](https://github.com/Studio-Saelix/sencho/commit/5fe0843eb275a31726a17ffa9f6dbd3c8adf9cce))
* first-boot compose discovery and adopt-first sidebar ([#1600](https://github.com/Studio-Saelix/sencho/issues/1600)) ([ba2e7bd](https://github.com/Studio-Saelix/sencho/commit/ba2e7bded94b3332e78bfc1356bb808016c376c3))
* open compose editor in edit mode with one click ([#1592](https://github.com/Studio-Saelix/sencho/issues/1592)) ([e2001fe](https://github.com/Studio-Saelix/sencho/commit/e2001fed72ef9a140b76da499d7e8020a45ef8e2))
* **registries:** add exact-ID tag browser with non-401 failures ([#1613](https://github.com/Studio-Saelix/sencho/issues/1613)) ([ce69986](https://github.com/Studio-Saelix/sencho/commit/ce699864c1bdfc499c9e927a62941379e9a3b4f5))
* **resources:** bind prune to fingerprinted itemized plans ([#1611](https://github.com/Studio-Saelix/sencho/issues/1611)) ([213d3d5](https://github.com/Studio-Saelix/sencho/commit/213d3d5d3a8fb02bf0d092a43da2c4b0fdc09203))
* **resources:** show multi-stack usedByStacks on images ([#1612](https://github.com/Studio-Saelix/sencho/issues/1612)) ([362a18e](https://github.com/Studio-Saelix/sencho/commit/362a18e91aea02816f377017b32198e6f838bca4))
* **scheduler:** include node identifier in remote proxy error messages ([#1609](https://github.com/Studio-Saelix/sencho/issues/1609)) ([8fd526b](https://github.com/Studio-Saelix/sencho/commit/8fd526ba0532cc891efe0366b0f9ad8e658e8319))
* **security:** add triage status and OpenVEX justification parity ([#1615](https://github.com/Studio-Saelix/sencho/issues/1615)) ([e7ac496](https://github.com/Studio-Saelix/sencho/commit/e7ac496009ef6e6efbe2c6f467c5cbd7adc64909))
* **security:** prefer digest identity in scan history ([#1610](https://github.com/Studio-Saelix/sencho/issues/1610)) ([4834e2e](https://github.com/Studio-Saelix/sencho/commit/4834e2e51ddbc4ee648642523e88fe047f2b8b52))


### Fixed

* assorted UI polish across Home, Security, and Resources pages ([#1590](https://github.com/Studio-Saelix/sencho/issues/1590)) ([3fed67a](https://github.com/Studio-Saelix/sencho/commit/3fed67a3f1ef17f5b3639c90d3f579a05b014201))
* **drift:** resolve explicit network names that equal compose keys ([#1588](https://github.com/Studio-Saelix/sencho/issues/1588)) ([4123793](https://github.com/Studio-Saelix/sencho/commit/4123793e68a43cc60b8e9b3a4665d1ae9be58886)), closes [#1581](https://github.com/Studio-Saelix/sencho/issues/1581)
* **editor:** remove misleading image line above stack actions ([#1584](https://github.com/Studio-Saelix/sencho/issues/1584)) ([dbe230e](https://github.com/Studio-Saelix/sencho/commit/dbe230eef39dd92faf86fd5a49ebc9e2fd31100a))
* keep confirm modal actions visible for long titles ([#1578](https://github.com/Studio-Saelix/sencho/issues/1578)) ([383d224](https://github.com/Studio-Saelix/sencho/commit/383d2248a20f821f5e70a63f97fa47d34ff28a29))
* normalize dashboard network sparkline to bytes per second ([#1589](https://github.com/Studio-Saelix/sencho/issues/1589)) ([0c37d18](https://github.com/Studio-Saelix/sencho/commit/0c37d18586fea006e34fd226305b1d744d84aa76))
* repin semver compose tags during fleet self-update ([#1587](https://github.com/Studio-Saelix/sencho/issues/1587)) ([e126020](https://github.com/Studio-Saelix/sencho/commit/e12602091adfbe6b51354027d50b6b7c7c807532))
* **routing:** basename env URLs and defer writes during node hydration ([#1598](https://github.com/Studio-Saelix/sencho/issues/1598)) ([1de9f5e](https://github.com/Studio-Saelix/sencho/commit/1de9f5e4b24ff4d2cedade3275662f0d418cf993))
* **routing:** guard remote stack hydration and settle empty env routes ([#1602](https://github.com/Studio-Saelix/sencho/issues/1602)) ([7517a4f](https://github.com/Studio-Saelix/sencho/commit/7517a4f49c3a2f9f6af348d773829e377812476f))
* **routing:** split stack detail URL from compose editor URL ([#1605](https://github.com/Studio-Saelix/sencho/issues/1605)) ([296ddff](https://github.com/Studio-Saelix/sencho/commit/296ddff2a0b0a521ad717c40d43c22a85054a5ac))
* **scheduler:** show every Timeline lane dot and rename the Maintenance lane to Upkeep ([#1618](https://github.com/Studio-Saelix/sencho/issues/1618)) ([78fbc15](https://github.com/Studio-Saelix/sencho/commit/78fbc151e70778dfb8404aa2a9ed5125fe6cc62c))

## [0.94.1](https://github.com/Studio-Saelix/sencho/compare/v0.94.0...v0.94.1) (2026-07-06)


### Fixed

* default to compact density only for multi-container stacks ([#1576](https://github.com/Studio-Saelix/sencho/issues/1576)) ([30f1ca0](https://github.com/Studio-Saelix/sencho/commit/30f1ca0a5f714f2c07488ed7d485971c278954f3))

## [0.94.0](https://github.com/Studio-Saelix/sencho/compare/v0.93.4...v0.94.0) (2026-07-06)


### Added

* acknowledge Compose Doctor preflight findings per stack ([#1560](https://github.com/Studio-Saelix/sencho/issues/1560)) ([4077546](https://github.com/Studio-Saelix/sencho/commit/4077546492885b3f94806ee024366e4eb0906707))
* add build-aware compose stack updates ([#1561](https://github.com/Studio-Saelix/sencho/issues/1561)) ([f2b5c68](https://github.com/Studio-Saelix/sencho/commit/f2b5c68d84c9c5bfa766fe2986a67664e0da1751))
* add Docker label audit across Fleet and Stack views ([#1531](https://github.com/Studio-Saelix/sencho/issues/1531)) ([4a350e7](https://github.com/Studio-Saelix/sencho/commit/4a350e7a0ae2f27492f3f526fc3b59a9549f2ba0))
* add notification suppression rules ([#1525](https://github.com/Studio-Saelix/sencho/issues/1525)) ([b65daf6](https://github.com/Studio-Saelix/sencho/commit/b65daf6845cbb4836638f0800a1f6b26a01ec50e))
* add sidebar update indicator toggle and Stack Health badge ([#1570](https://github.com/Studio-Saelix/sencho/issues/1570)) ([bb35c1b](https://github.com/Studio-Saelix/sencho/commit/bb35c1bc928862b6bd18a199dd478426b097a271))
* block self-stack lifecycle ops with UI and preflight guardrails ([#1569](https://github.com/Studio-Saelix/sencho/issues/1569)) ([0f9925e](https://github.com/Studio-Saelix/sencho/commit/0f9925e04f93341137ebd50f8e4aa2c8cb15f04e))
* bound container health pane so logs stay visible on large stacks ([#1556](https://github.com/Studio-Saelix/sencho/issues/1556)) ([fbe9867](https://github.com/Studio-Saelix/sencho/commit/fbe98676cb8a0d0021873cfa768adaf8c1455946))
* enforce singleton local node per instance ([#1567](https://github.com/Studio-Saelix/sencho/issues/1567)) ([a7e856f](https://github.com/Studio-Saelix/sencho/commit/a7e856f44752a7e67263a7fbe0eb6dfc34a0f4df))
* move Blueprint orchestration and Federation placement to Community tier ([#1555](https://github.com/Studio-Saelix/sencho/issues/1555)) ([fdbc1b1](https://github.com/Studio-Saelix/sencho/commit/fdbc1b1ebb7ce95b415f6edf8a40518cf28d44e8))
* **scheduler:** schedule container restart, stop, and start ([#1526](https://github.com/Studio-Saelix/sencho/issues/1526)) ([10fb93d](https://github.com/Studio-Saelix/sencho/commit/10fb93dcb1697376f8add20ee80451f9345419ab))


### Fixed

* **anatomy:** name each image with a pending update in the update banner ([#1575](https://github.com/Studio-Saelix/sencho/issues/1575)) ([f30a65e](https://github.com/Studio-Saelix/sencho/commit/f30a65ee08a0fc1b65bb46cd8315c135f9395c15))
* **deploy:** selective compose recreate on Save and Deploy ([#1565](https://github.com/Studio-Saelix/sencho/issues/1565)) ([#1568](https://github.com/Studio-Saelix/sencho/issues/1568)) ([b3bc223](https://github.com/Studio-Saelix/sencho/commit/b3bc223c45b9e8c22194e4ca2cb0109bb2aba264))
* **drift:** resolve image tags via effective compose model ([#1574](https://github.com/Studio-Saelix/sencho/issues/1574)) ([04f3a55](https://github.com/Studio-Saelix/sencho/commit/04f3a55e5aa5e549268b18539d91c6dc217dd9d4)), closes [#1572](https://github.com/Studio-Saelix/sencho/issues/1572)
* fall back to enroll token when pilot tunnel JWT is rejected ([#1566](https://github.com/Studio-Saelix/sencho/issues/1566)) ([c677b8b](https://github.com/Studio-Saelix/sencho/commit/c677b8bb661e48d3f5ebdfd89112416a6ad3e2ac))
* parse LSIO volume :ro suffixes for App Store deploys ([#1557](https://github.com/Studio-Saelix/sencho/issues/1557)) ([ecd7572](https://github.com/Studio-Saelix/sencho/commit/ecd757270fd6d5970925496c1c7d6bf499adb080)), closes [#1554](https://github.com/Studio-Saelix/sencho/issues/1554)
* stop Doctor exposing hash fragments as unset variables ([#1558](https://github.com/Studio-Saelix/sencho/issues/1558)) ([122c1b8](https://github.com/Studio-Saelix/sencho/commit/122c1b80732292628dace7344bee31e584cf6bdb))
* truncate long sidebar stack names before trailing indicators clip ([#1562](https://github.com/Studio-Saelix/sencho/issues/1562)) ([3323108](https://github.com/Studio-Saelix/sencho/commit/33231089c35ff2ca12eb361bb3091e02a9bf83b8))
* UI polish - tooltips, masthead, tabs, settings, and layout consistency ([#1563](https://github.com/Studio-Saelix/sencho/issues/1563)) ([bbcc4b5](https://github.com/Studio-Saelix/sencho/commit/bbcc4b59e45b72f8e2af1c07c8ed2c1740faa12d))
* update NodeCard cordon tests for paid-tier gate parity ([#1571](https://github.com/Studio-Saelix/sencho/issues/1571)) ([adcc27e](https://github.com/Studio-Saelix/sencho/commit/adcc27e2cf9e3440e60f4c3400a45e7156c5f90c))

## [0.93.4](https://github.com/Studio-Saelix/sencho/compare/v0.93.3...v0.93.4) (2026-07-02)


### Fixed

* make host memory usage ZFS ARC-aware ([#1547](https://github.com/Studio-Saelix/sencho/issues/1547)) ([98667e0](https://github.com/Studio-Saelix/sencho/commit/98667e0d6f352daf53c7bdb6dff7b8370be0b809))

## [0.93.3](https://github.com/Studio-Saelix/sencho/compare/v0.93.2...v0.93.3) (2026-07-02)


### Added

* add GitHub Sponsors alongside Buy Me a Coffee ([#1535](https://github.com/Studio-Saelix/sencho/issues/1535)) ([7c759ff](https://github.com/Studio-Saelix/sencho/commit/7c759ff2b7614b2c26febe33463d38cd3e90fe14))


### Fixed

* **deploy-modal:** hide frozen countdown label in inline feedback style ([#1534](https://github.com/Studio-Saelix/sencho/issues/1534)) ([60de0dd](https://github.com/Studio-Saelix/sencho/commit/60de0ddec281187dd9ac6790168551630ebeeb9f))
* **deps:** patch frontend dompurify and @babel/core advisories ([#1539](https://github.com/Studio-Saelix/sencho/issues/1539)) ([d80538f](https://github.com/Studio-Saelix/sencho/commit/d80538f2541ac08feb7255b47fff30fb4332d72d))
* reflect toggle state in scheduled task Enabled/Disabled label ([#1533](https://github.com/Studio-Saelix/sencho/issues/1533)) ([90c69b1](https://github.com/Studio-Saelix/sencho/commit/90c69b1ea4135077d501399dd1e668b1b5113fa7))
* wrap auto-heal policy history in stack monitor sheet ([#1538](https://github.com/Studio-Saelix/sencho/issues/1538)) ([c3dcf31](https://github.com/Studio-Saelix/sencho/commit/c3dcf31cc8012cb891534985a0d678d72d381baa))


### Miscellaneous

* correct release version after mistagged sponsors PR ([#1537](https://github.com/Studio-Saelix/sencho/issues/1537)) ([ad8d874](https://github.com/Studio-Saelix/sencho/commit/ad8d87429409de7d09ff7e53741d42e2fa4c3930))

## [0.93.2](https://github.com/Studio-Saelix/sencho/compare/v0.93.1...v0.93.2) (2026-06-30)


### Fixed

* **ci:** correct github-script pin in preview workflow ([#1528](https://github.com/Studio-Saelix/sencho/issues/1528)) ([c9dcc3a](https://github.com/Studio-Saelix/sencho/commit/c9dcc3acf352f5c5cc717dc1d2d6f038832c81cb))

## [0.93.1](https://github.com/Studio-Saelix/sencho/compare/v0.93.0...v0.93.1) (2026-06-30)


### Fixed

* align notification unread badge with panel visibility rules ([#1520](https://github.com/Studio-Saelix/sencho/issues/1520)) ([1b9a40f](https://github.com/Studio-Saelix/sencho/commit/1b9a40f874e11f91610b75065278796d65832e00)), closes [#1513](https://github.com/Studio-Saelix/sencho/issues/1513)
* enforce 1:1 compose path mapping for Pilot agent mounts ([#1516](https://github.com/Studio-Saelix/sencho/issues/1516)) ([41dc339](https://github.com/Studio-Saelix/sencho/commit/41dc339c26ccf950d42b813ff10a10623848751a))
* make auth canvas scroll actually constrain on short viewports ([#1523](https://github.com/Studio-Saelix/sencho/issues/1523)) ([e1176fb](https://github.com/Studio-Saelix/sencho/commit/e1176fbb269c98752d96c5e28fc990598b09b4d4))
* polish sidebar and masthead chrome, scroll setup preflight ([#1522](https://github.com/Studio-Saelix/sencho/issues/1522)) ([322d337](https://github.com/Studio-Saelix/sencho/commit/322d337d2073d93362b908627060d082b824c6d9))
* replace Janitor wording with reclaim/prune actions in user-facing copy ([#1518](https://github.com/Studio-Saelix/sencho/issues/1518)) ([89b9341](https://github.com/Studio-Saelix/sencho/commit/89b9341568c402ec74bc87813443c5908f22560c))
* scroll auth canvas when preflight content overflows ([#1521](https://github.com/Studio-Saelix/sencho/issues/1521)) ([da73ee0](https://github.com/Studio-Saelix/sencho/commit/da73ee071795fedd2f499476f8361f2e6cb0c5a8))

## [0.93.0](https://github.com/Studio-Saelix/sencho/compare/v0.92.0...v0.93.0) (2026-06-29)


### Added

* add a Simple mode to the New Schedule flow ([#1495](https://github.com/Studio-Saelix/sencho/issues/1495)) ([3bece54](https://github.com/Studio-Saelix/sencho/commit/3bece54e7231dd1698ac95ac01066acdf74406ab))
* add cron scheduling mode for image update checks ([#1460](https://github.com/Studio-Saelix/sencho/issues/1460)) ([7320a86](https://github.com/Studio-Saelix/sencho/commit/7320a86579fb2bfd418dc526e2786e4858a00e4e))
* add node update alerts with changelog tab and skip-version handling ([#1463](https://github.com/Studio-Saelix/sencho/issues/1463)) ([315e8b6](https://github.com/Studio-Saelix/sencho/commit/315e8b63791af86ce07007528cdc7b3f42f144e7))
* add ON/OFF toggle for host threshold alerts ([#1456](https://github.com/Studio-Saelix/sencho/issues/1456)) ([b7dd9dc](https://github.com/Studio-Saelix/sencho/commit/b7dd9dc1b079e49437171239818dd1baf432e008))
* add per-stack project env file selection for Docker Compose ([#1457](https://github.com/Studio-Saelix/sencho/issues/1457)) ([a698aaa](https://github.com/Studio-Saelix/sencho/commit/a698aaa926cab97c76c70942f695d71dcb1dab71))
* add posture reasons and review queue to Security overview ([#1462](https://github.com/Studio-Saelix/sencho/issues/1462)) ([0384c47](https://github.com/Studio-Saelix/sencho/commit/0384c47d1eacdba875283330c983606db3dc2260))
* add Reduced motion setting and polish chrome, files, and stack-detail ([#1501](https://github.com/Studio-Saelix/sencho/issues/1501)) ([b5810a9](https://github.com/Studio-Saelix/sencho/commit/b5810a9b55d76e23b7667802d3a512212754b2a6))
* add syntax highlighting to .env editor tab ([#1459](https://github.com/Studio-Saelix/sencho/issues/1459)) ([3bf677a](https://github.com/Studio-Saelix/sencho/commit/3bf677af6ca5d0afcc9595e2bf1076cb282bb78b))
* **appearance:** add Calm/Signature visual style, readability mode, and chart palette ([#1407](https://github.com/Studio-Saelix/sencho/issues/1407)) ([8d9e657](https://github.com/Studio-Saelix/sencho/commit/8d9e6574cc4448f12dbd8f6fd002f3a7f49fac1a))
* **files:** copy & duplicate, bulk actions, disk-backed uploads, and an accessible file tree ([#1409](https://github.com/Studio-Saelix/sencho/issues/1409)) ([37e6e48](https://github.com/Studio-Saelix/sencho/commit/37e6e48b40a7d2f75715929789ece4071b9ac5af))
* **fleet:** cross-node bulk label assign with authoritative label discovery ([#1389](https://github.com/Studio-Saelix/sencho/issues/1389)) ([d26ab58](https://github.com/Studio-Saelix/sencho/commit/d26ab58189efe1a0c8510a2ad45d41da8cf67c86))
* make all security features available on every tier ([#1502](https://github.com/Studio-Saelix/sencho/issues/1502)) ([04e6902](https://github.com/Studio-Saelix/sencho/commit/04e69021e0f61b7daf87df926c5926db02d6c997))
* per-stack storage inventory and portability guardrails ([#1399](https://github.com/Studio-Saelix/sencho/issues/1399)) ([9ea2864](https://github.com/Studio-Saelix/sencho/commit/9ea2864d607d18a3f0d89ab7de7d8a5be5372427))
* purge scan data for deleted images and stacks ([#1467](https://github.com/Studio-Saelix/sencho/issues/1467)) ([26d557a](https://github.com/Studio-Saelix/sencho/commit/26d557a701015acdab5b1bf64d100007b2c86e42))
* **resources:** render anonymous volume names readably in the volume browser ([#1429](https://github.com/Studio-Saelix/sencho/issues/1429)) ([401980f](https://github.com/Studio-Saelix/sencho/commit/401980ffa375f70a3433c784bb992262e23328f0))
* **scheduler:** add helper text and risk badges to scheduled action picker ([#1449](https://github.com/Studio-Saelix/sencho/issues/1449)) ([7982251](https://github.com/Studio-Saelix/sencho/commit/7982251dc6f5fe93d14ddd64711ca3446cd82747))
* **scheduler:** consistent action targeting in Scheduled Operations ([#1431](https://github.com/Studio-Saelix/sencho/issues/1431)) ([bc8c051](https://github.com/Studio-Saelix/sencho/commit/bc8c051962f66191a3304eba1b2fa01e30bf0a75))
* **scheduler:** flag one-shot tasks in the Scheduled Operations table ([#1433](https://github.com/Studio-Saelix/sencho/issues/1433)) ([2c70e11](https://github.com/Studio-Saelix/sencho/commit/2c70e11485a72fe645326e18c0440c3eb3135917))
* **scheduler:** group schedule action picker by operator intent ([#1446](https://github.com/Studio-Saelix/sencho/issues/1446)) ([cc78873](https://github.com/Studio-Saelix/sencho/commit/cc78873e65f683aae2509c16caf1367690e5ffcc))
* **security:** action-posture Security dashboard with exploit intel and triage ([#1424](https://github.com/Studio-Saelix/sencho/issues/1424)) ([f794702](https://github.com/Studio-Saelix/sencho/commit/f794702171cb02a2033384a5e5c9a2d2b7efc206))
* **security:** gate deploys on exploitation risk, not just severity ([#1432](https://github.com/Studio-Saelix/sencho/issues/1432)) ([6527bc9](https://github.com/Studio-Saelix/sencho/commit/6527bc971bb6b9c4c9e7fd873722ab4fb78e45e8))
* **security:** prioritization-led Overview charts (posture + exploit intel) ([#1427](https://github.com/Studio-Saelix/sencho/issues/1427)) ([b163078](https://github.com/Studio-Saelix/sencho/commit/b1630788bad5f475eab716c3186af8d746b11a91))
* **security:** surface Compose internet-reachability exposure in posture ([#1442](https://github.com/Studio-Saelix/sencho/issues/1442)) ([3a22f59](https://github.com/Studio-Saelix/sencho/commit/3a22f5905741259162b264e7e8712b90dad650d6))
* show container name in structured log output ([#1452](https://github.com/Studio-Saelix/sencho/issues/1452)) ([f1f64ec](https://github.com/Studio-Saelix/sencho/commit/f1f64ec7f61e7cc526b214a87799ab4bfa48cce2))
* show node and fleet targets on schedule timeline pills ([#1480](https://github.com/Studio-Saelix/sencho/issues/1480)) ([5960c1e](https://github.com/Studio-Saelix/sencho/commit/5960c1e85efec06536b551f56f5d998fc93329d6))
* **sidebar:** surface partial status for multi-container stacks ([#1426](https://github.com/Studio-Saelix/sencho/issues/1426)) ([bb4ddde](https://github.com/Studio-Saelix/sencho/commit/bb4ddde35a321225e11b0b2ab5d32301572f42ae))
* sortable resource tables and richer dashboard stack-health columns ([#1498](https://github.com/Studio-Saelix/sencho/issues/1498)) ([60536aa](https://github.com/Studio-Saelix/sencho/commit/60536aa61427952065c7bc7839e945974bab66ec))
* split Host Alerts into Host Alerts, Container Alerts, and Stacks guardrails ([#1461](https://github.com/Studio-Saelix/sencho/issues/1461)) ([e9c262a](https://github.com/Studio-Saelix/sencho/commit/e9c262ae6ac2d1aca7663f9010bce9932a6c06c8))
* **stacks:** browse and edit mounted volume files in the explorer ([#1403](https://github.com/Studio-Saelix/sencho/issues/1403)) ([b9d8e9f](https://github.com/Studio-Saelix/sencho/commit/b9d8e9f490d423603fb15bd6c11b44a0ec13d48c))
* **stacks:** per-stack environment inventory and secret-safe guardrails ([#1397](https://github.com/Studio-Saelix/sencho/issues/1397)) ([57a0856](https://github.com/Studio-Saelix/sencho/commit/57a0856ffce3c1abab4d23e46cea9e327696fa29))


### Fixed

* always reconcile the scan banner with the current policy verdict ([#1488](https://github.com/Studio-Saelix/sencho/issues/1488)) ([3343630](https://github.com/Studio-Saelix/sencho/commit/33436301715ee21f6bb341296979ab22580a27a1))
* bind fleet stop-by-label to the exact confirmed nodes and stacks ([#1506](https://github.com/Studio-Saelix/sencho/issues/1506)) ([1dc12f7](https://github.com/Studio-Saelix/sencho/commit/1dc12f7da8c33bbab5d4cb8402d1b9ff41c62c0a))
* bind the node-update changelog to the advertised release version ([#1492](https://github.com/Studio-Saelix/sencho/issues/1492)) ([4cf0405](https://github.com/Studio-Saelix/sencho/commit/4cf04056c9f5d3487942bba6d91a7b98243b07b5))
* block file-explorer binds that overlap Sencho's application directory ([#1479](https://github.com/Studio-Saelix/sencho/issues/1479)) ([3e2f045](https://github.com/Studio-Saelix/sencho/commit/3e2f0450c252ae1c5e4f2c946ac50998c8fd81a1))
* **build:** patch bundled Docker CLI golang.org/x/net to v0.55.0 ([#1421](https://github.com/Studio-Saelix/sencho/issues/1421)) ([7c5ba1c](https://github.com/Studio-Saelix/sencho/commit/7c5ba1cf68e757e0f7f49a0f905078ae829cdc3c))
* classify degraded remote stacks as partial on the compatibility path ([#1511](https://github.com/Studio-Saelix/sencho/issues/1511)) ([e9c2c0c](https://github.com/Studio-Saelix/sencho/commit/e9c2c0cf8ecf1615004fe88a3629096357d91f53))
* clear stale node-update changelog notes when a refetch fails ([#1494](https://github.com/Studio-Saelix/sencho/issues/1494)) ([ed06900](https://github.com/Studio-Saelix/sencho/commit/ed06900fd4f262d018d31986041c7a976c7146f2))
* clear structured log viewer rows on stack switch ([#1448](https://github.com/Studio-Saelix/sencho/issues/1448)) ([79f840a](https://github.com/Studio-Saelix/sencho/commit/79f840ab6e669d5b5f5e178d71b085fd55e4c9f4)), closes [#1444](https://github.com/Studio-Saelix/sencho/issues/1444)
* contain file-explorer binds into Sencho's system directories ([#1484](https://github.com/Studio-Saelix/sencho/issues/1484)) ([73f4bc2](https://github.com/Studio-Saelix/sencho/commit/73f4bc27c355156e4aa101c0fd5ac3cb1e1bd966))
* contain file-explorer binds into Sencho's temporary and tool directories ([#1487](https://github.com/Studio-Saelix/sencho/issues/1487)) ([3386c63](https://github.com/Studio-Saelix/sencho/commit/3386c631528af60017833281f2a21857e91d3438))
* contain file-explorer binds that reach dangling symlinked managed paths ([#1490](https://github.com/Studio-Saelix/sencho/issues/1490)) ([bee0dfd](https://github.com/Studio-Saelix/sencho/commit/bee0dfd0943796a218c305736821db50a2f2210e))
* contain file-explorer binds that reach symlinked Sencho-managed paths ([#1489](https://github.com/Studio-Saelix/sencho/issues/1489)) ([349ee1f](https://github.com/Studio-Saelix/sencho/commit/349ee1f905da68a5d520b4762909bfb29ffbe282))
* contain file-explorer writes and browse reachable out-of-base binds ([#1465](https://github.com/Studio-Saelix/sencho/issues/1465)) ([1c82e3e](https://github.com/Studio-Saelix/sencho/commit/1c82e3e1d4351fa5bb4ca4ef53f5577a725fd625))
* **containers:** guard container and port reads with stack:read ([#1416](https://github.com/Studio-Saelix/sencho/issues/1416)) ([82cc139](https://github.com/Studio-Saelix/sencho/commit/82cc13951bb3b30c082f741d7587649e35527e7d))
* copy the full finding set when reusing a cached scan for the deploy gate ([#1476](https://github.com/Studio-Saelix/sencho/issues/1476)) ([000a592](https://github.com/Studio-Saelix/sencho/commit/000a5923882279a0b55223f10aca438ffe335f18))
* **dependency-map:** stop flagging env-var bind mounts as missing volumes ([#1468](https://github.com/Studio-Saelix/sencho/issues/1468)) ([5e2194f](https://github.com/Studio-Saelix/sencho/commit/5e2194f4a36294d9fd7bc664e4a533f380a77db7))
* **deploy:** preserve compose.override.yml when Mesh is enabled ([#1420](https://github.com/Studio-Saelix/sencho/issues/1420)) ([b753d2d](https://github.com/Studio-Saelix/sencho/commit/b753d2d5e07c31f390618b9ddd9c4ca390eeb3fe))
* **deploy:** verify atomic-deploy backup integrity before restore ([#1422](https://github.com/Studio-Saelix/sencho/issues/1422)) ([96b3c49](https://github.com/Studio-Saelix/sencho/commit/96b3c493590da6efc7cafafb3f2a7a23dfbca2f5))
* differentiate security action links and add suppression editing ([#1500](https://github.com/Studio-Saelix/sencho/issues/1500)) ([083442d](https://github.com/Studio-Saelix/sencho/commit/083442d5eaf51fd29826ccd4c647d51b9d695c86))
* distinguish failed image-update checks from "up to date" ([#1470](https://github.com/Studio-Saelix/sencho/issues/1470)) ([d9b7911](https://github.com/Studio-Saelix/sencho/commit/d9b7911f123c63b3dcfdc92318f427b435494cec))
* **drift:** reconcile the drift ledger on deploy and timestamp its history ([#1405](https://github.com/Studio-Saelix/sencho/issues/1405)) ([f9c6c5f](https://github.com/Studio-Saelix/sencho/commit/f9c6c5fd09ce82859fac916ebaff986ae08d2226))
* **drift:** stop flagging declared external networks as drift ([#1402](https://github.com/Studio-Saelix/sencho/issues/1402)) ([b611f41](https://github.com/Studio-Saelix/sencho/commit/b611f41872d03094a2d8ad579fd96c1839ef9d43))
* **editor:** suppress global hotkeys while the code editor is focused ([#1413](https://github.com/Studio-Saelix/sencho/issues/1413)) ([1c5b271](https://github.com/Studio-Saelix/sencho/commit/1c5b2715b86dfd1e064e98614d1d7980edacdeb0)), closes [#1410](https://github.com/Studio-Saelix/sencho/issues/1410)
* enforce the originating user's role on remote WebSocket connections ([#1508](https://github.com/Studio-Saelix/sencho/issues/1508)) ([ef164f0](https://github.com/Studio-Saelix/sencho/commit/ef164f0e5b62bdbf368ace0540190c56639c4e3a))
* enforce the signed-in user's role on cross-node proxied requests ([#1505](https://github.com/Studio-Saelix/sencho/issues/1505)) ([78a742f](https://github.com/Studio-Saelix/sencho/commit/78a742fb4476dcdbe6b0a67769d8b17e3a060dae))
* explain why a failed pre-deploy scan blocks a deploy ([#1477](https://github.com/Studio-Saelix/sencho/issues/1477)) ([628400a](https://github.com/Studio-Saelix/sencho/commit/628400ac192d10da47b2f804bd69ced0924742de))
* export the full vulnerability list to CSV ([#1472](https://github.com/Studio-Saelix/sencho/issues/1472)) ([e3b3c3b](https://github.com/Studio-Saelix/sencho/commit/e3b3c3b8578365a4b5b931c483d7b71b227aef0b))
* fire a one-time schedule on the exact chosen date and time ([#1497](https://github.com/Studio-Saelix/sencho/issues/1497)) ([cf0db36](https://github.com/Studio-Saelix/sencho/commit/cf0db36e7876efe8d2190221fa409fe5ba3ed695))
* gate cross-node HTTP and stop-by-label on remote RBAC capability ([#1509](https://github.com/Studio-Saelix/sencho/issues/1509)) ([997a6bb](https://github.com/Studio-Saelix/sencho/commit/997a6bb79ac2450f79eeff010f47f5100694c2a2))
* harden cross-node fleet label actions and guard container reads ([#1503](https://github.com/Studio-Saelix/sencho/issues/1503)) ([05c483f](https://github.com/Studio-Saelix/sencho/commit/05c483f2133e06d0c984e110d12766911b0a3c54))
* honor suppressions in the informational scan policy evaluation ([#1481](https://github.com/Studio-Saelix/sencho/issues/1481)) ([7c12081](https://github.com/Studio-Saelix/sencho/commit/7c120816456f01b527031fdcb24734dd4197c276))
* keep security posture accurate for secret-only scans and any-severity KEVs ([#1475](https://github.com/Studio-Saelix/sencho/issues/1475)) ([89a13f5](https://github.com/Studio-Saelix/sencho/commit/89a13f51e915613e51815c1b33703c4715d50408))
* keep the scan banner consistent with the deploy gate after suppression changes ([#1485](https://github.com/Studio-Saelix/sencho/issues/1485)) ([04e9d18](https://github.com/Studio-Saelix/sencho/commit/04e9d1888977ec0a53752400d9e16e48f4c148e2))
* keep the schedule's stack selected on prefill and edit ([#1496](https://github.com/Studio-Saelix/sencho/issues/1496)) ([a6d431f](https://github.com/Studio-Saelix/sencho/commit/a6d431f0d7f860e098bc1df662552e896bf52e26))
* load the full vulnerability list in the scan detail sheet ([#1483](https://github.com/Studio-Saelix/sencho/issues/1483)) ([1bca75a](https://github.com/Studio-Saelix/sencho/commit/1bca75a9990b5e9344fafffd58a27b3dca6a46e5))
* make Reduced motion gate overlays, standardize the tab band, and polish fleet/snapshots ([#1504](https://github.com/Studio-Saelix/sencho/issues/1504)) ([d6ce60d](https://github.com/Studio-Saelix/sencho/commit/d6ce60d280200a35d005f6749aa6ffeb81f5ba70))
* name matched risk inputs in policy block messages ([#1471](https://github.com/Studio-Saelix/sencho/issues/1471)) ([ca496c8](https://github.com/Studio-Saelix/sencho/commit/ca496c89dcabdf8594814a306e0e8e23c9712fdf))
* name matched risk inputs in policy scan banner and alerts ([#1473](https://github.com/Studio-Saelix/sencho/issues/1473)) ([1de49f8](https://github.com/Studio-Saelix/sencho/commit/1de49f8b1aeb93c4a518871ef13354267bcc7acb))
* **networking:** treat host-network services as host-exposed in summaries ([#1430](https://github.com/Studio-Saelix/sencho/issues/1430)) ([2eafee3](https://github.com/Studio-Saelix/sencho/commit/2eafee3594e9a0718530ea7a1740b9b65acb3bab))
* persist a one-time schedule's run time so edit and disable keep its year ([#1499](https://github.com/Studio-Saelix/sencho/issues/1499)) ([ba57c67](https://github.com/Studio-Saelix/sencho/commit/ba57c6704807f2122feea9631a4ac695c225beb8))
* **preflight:** suppress node-state checks when the Docker snapshot is unavailable ([#1423](https://github.com/Studio-Saelix/sencho/issues/1423)) ([2ed0164](https://github.com/Studio-Saelix/sencho/commit/2ed01641c89a8a690f91f43eb69ee96bfb78d922))
* probe remote RBAC capability live and enforce exact stop-result membership ([#1510](https://github.com/Studio-Saelix/sencho/issues/1510)) ([a7144d4](https://github.com/Studio-Saelix/sencho/commit/a7144d4e71b20d91e30fb62f69e099799433aa50))
* rank exploit-risk findings before the cap and disclose truncation ([#1482](https://github.com/Studio-Saelix/sencho/issues/1482)) ([7c9c640](https://github.com/Studio-Saelix/sencho/commit/7c9c640625b032c4de844219f2d40af741040a11))
* rank the exploit-risk cap by the same tiers the overview list shows ([#1486](https://github.com/Studio-Saelix/sencho/issues/1486)) ([c2b508e](https://github.com/Studio-Saelix/sencho/commit/c2b508e8b1fd707e409fd5677e0f1a6a3b9eea4d))
* **rate-limit:** key authenticated requests by verified JWT, not unverified decode ([#1412](https://github.com/Studio-Saelix/sencho/issues/1412)) ([9480cc9](https://github.com/Studio-Saelix/sencho/commit/9480cc98bb44503648c5e35587b5652abcf52254))
* reject atomic restore when a checksummed backup file is missing ([#1466](https://github.com/Studio-Saelix/sencho/issues/1466)) ([eaf0642](https://github.com/Studio-Saelix/sencho/commit/eaf0642d8863321ec381e4f6093bc89d9591007d))
* render node-update changelog notes as formatted markdown ([#1474](https://github.com/Studio-Saelix/sencho/issues/1474)) ([6256131](https://github.com/Studio-Saelix/sencho/commit/6256131dc6f7353bfb61680aa3afad2f89d457b2))
* render node-update changelog only for the advertised release version ([#1493](https://github.com/Studio-Saelix/sencho/issues/1493)) ([dd49ef6](https://github.com/Studio-Saelix/sencho/commit/dd49ef65aad3d2a7bf99ba47e81f8401313b79c7))
* request registry tokens with the target repository scope ([#1478](https://github.com/Studio-Saelix/sencho/issues/1478)) ([2911ccf](https://github.com/Studio-Saelix/sencho/commit/2911ccfe2bbd8cf618d12b75c8bc9465a954700a))
* require node:read for fleet topology reads and hide Fleet without it ([#1507](https://github.com/Studio-Saelix/sencho/issues/1507)) ([dd76b13](https://github.com/Studio-Saelix/sencho/commit/dd76b13d5532dea7f21123658ee0fca9d7fb7762))
* schedule the first image-update check on the cron cadence after a restart ([#1491](https://github.com/Studio-Saelix/sencho/issues/1491)) ([3ad807b](https://github.com/Studio-Saelix/sencho/commit/3ad807be45c4802fa7ffb26df538ed0b384f3d72))
* **scheduler:** reject 6-field cron in Scheduled Operations ([#1435](https://github.com/Studio-Saelix/sencho/issues/1435)) ([db8bb70](https://github.com/Studio-Saelix/sencho/commit/db8bb70b7d33bbe9dde7dcc93c9a515e8edfecf2))
* **search:** don't open the command palette via Cmd/Ctrl+K while typing ([#1414](https://github.com/Studio-Saelix/sencho/issues/1414)) ([f91227d](https://github.com/Studio-Saelix/sencho/commit/f91227dada3d57a1b4ab9c421a69fad409f7f42b))
* **security:** fix Security page table layouts and exploit-risk pagination ([#1434](https://github.com/Studio-Saelix/sencho/issues/1434)) ([330f9f1](https://github.com/Studio-Saelix/sencho/commit/330f9f1acd517b72091ee33df3b7c208691a49e5))
* skip Docker Compose $$ escaped variables in Anatomy parser ([#1450](https://github.com/Studio-Saelix/sencho/issues/1450)) ([ba1be3c](https://github.com/Studio-Saelix/sencho/commit/ba1be3cc4ef1bf37dce720bbf4035f1635c9ae86))
* stack the volume browser panels on phones so the file preview is readable ([#1512](https://github.com/Studio-Saelix/sencho/issues/1512)) ([8bec32d](https://github.com/Studio-Saelix/sencho/commit/8bec32dea66b113cb46a6d32bc261679ac81f510))
* **stacks:** harden stack file path containment against symlink escapes ([#1415](https://github.com/Studio-Saelix/sencho/issues/1415)) ([69ba0e6](https://github.com/Studio-Saelix/sencho/commit/69ba0e6d21c9d0b7c8ce0ece013b1877317e00c0))

## [0.92.0](https://github.com/Studio-Saelix/sencho/compare/v0.91.1...v0.92.0) (2026-06-19)


### Added

* add a compact icon-only top navigation toggle ([#1363](https://github.com/Studio-Saelix/sencho/issues/1363)) ([1b96f3b](https://github.com/Studio-Saelix/sencho/commit/1b96f3b9803f37ae6f120e1bb0181ae67f88751f))
* add an inline deploy-progress style for the stack detail ([#1355](https://github.com/Studio-Saelix/sencho/issues/1355)) ([e20f1fe](https://github.com/Studio-Saelix/sencho/commit/e20f1fe415ab887261f97d31040ada90c70c6220))
* add an on-demand node-wide security scan with live progress ([#1367](https://github.com/Studio-Saelix/sencho/issues/1367)) ([ef5a3f0](https://github.com/Studio-Saelix/sencho/commit/ef5a3f00a7f2a304a6f17073932e29433e506980))
* add Compose Doctor preflight checks for stacks ([#1348](https://github.com/Studio-Saelix/sencho/issues/1348)) ([52ff072](https://github.com/Studio-Saelix/sencho/commit/52ff0725f414fdebebd5cd18c8ba044211b68e0c))
* add dedicated Security page and policy-pack foundation ([#1362](https://github.com/Studio-Saelix/sencho/issues/1362)) ([2a4955f](https://github.com/Studio-Saelix/sencho/commit/2a4955f56d4f6c29614cb450ac16bd2bb82128e4))
* chart-led Security overview with sortable Images and History tables ([#1364](https://github.com/Studio-Saelix/sencho/issues/1364)) ([3d39d85](https://github.com/Studio-Saelix/sencho/commit/3d39d856a376f6e68a202d20560c5f0ef5ca9154))
* Compose Network Inspector and exposure intent guard ([#1360](https://github.com/Studio-Saelix/sencho/issues/1360)) ([77f1611](https://github.com/Studio-Saelix/sencho/commit/77f161197193198c4a10e4a8348fa4521172dea1))
* detect stalled stack updates and add in-app recovery actions ([#1347](https://github.com/Studio-Saelix/sencho/issues/1347)) ([d369b03](https://github.com/Studio-Saelix/sencho/commit/d369b03a38e19d1e2fa7ee98f4e6738fce5da3ef))
* **editor:** enable mobile compose and env editing ([#1371](https://github.com/Studio-Saelix/sencho/issues/1371)) ([a5109e7](https://github.com/Studio-Saelix/sencho/commit/a5109e7916d926f1a99191c4bc1789d9ec62a0f0))
* **files:** move files and folders across directories in the stack explorer ([#1373](https://github.com/Studio-Saelix/sencho/issues/1373)) ([888f658](https://github.com/Studio-Saelix/sencho/commit/888f658a7a2406a7f059d08fe4d81a078a423f0b))
* flag documentation drift in the stack dossier ([#1349](https://github.com/Studio-Saelix/sencho/issues/1349)) ([739bbf9](https://github.com/Studio-Saelix/sencho/commit/739bbf990e97fd67d4c61192561c043c44f36fff))
* **fleet:** refine the Fleet Overview toolbar ([#1376](https://github.com/Studio-Saelix/sencho/issues/1376)) ([02c3b00](https://github.com/Studio-Saelix/sencho/commit/02c3b006eba3852ec37324b9d7611047a8ff1a9d))
* **fleet:** reorder Overview toolbar actions so Add node sits far right ([#1381](https://github.com/Studio-Saelix/sencho/issues/1381)) ([f166a53](https://github.com/Studio-Saelix/sencho/commit/f166a537c390f790b1e2aa579f0f562ed82de916))
* **fleet:** tidy the Overview toolbar and shorten tab labels ([#1361](https://github.com/Studio-Saelix/sencho/issues/1361)) ([bef51a9](https://github.com/Studio-Saelix/sencho/commit/bef51a979f0add0b3deeff7e9bde78c91b967dd6))
* health-gated updates and rollback readiness ([#1354](https://github.com/Studio-Saelix/sencho/issues/1354)) ([38aabe7](https://github.com/Studio-Saelix/sencho/commit/38aabe70648e6c8d1252f753022b72f908819480))
* link container images to registry and source metadata ([#1358](https://github.com/Studio-Saelix/sencho/issues/1358)) ([e394429](https://github.com/Studio-Saelix/sencho/commit/e3944295f2291516e070f67ff440e5c4ad83ddf9))
* make image-update check cadence configurable and visible ([#1377](https://github.com/Studio-Saelix/sencho/issues/1377)) ([058cf8f](https://github.com/Studio-Saelix/sencho/commit/058cf8f2c7caf5e2c76111ce2c79e8adfd9376ec))
* match the Security masthead to the primary-page hero and make History search realtime ([#1365](https://github.com/Studio-Saelix/sencho/issues/1365)) ([6cbab66](https://github.com/Studio-Saelix/sencho/commit/6cbab661a07a180d7aec52d9c6ea07acad4bea4a))
* **mobile:** standardize secondary pages and the stack list on the status masthead ([#1374](https://github.com/Studio-Saelix/sencho/issues/1374)) ([6cc66fa](https://github.com/Studio-Saelix/sencho/commit/6cc66faa8c5cbb39351d2056b3bd94d6149d85fe))
* ordered multi-file Compose for Git sources ([#1380](https://github.com/Studio-Saelix/sencho/issues/1380)) ([f23b7e1](https://github.com/Studio-Saelix/sencho/commit/f23b7e1bacb6f2f6c1863cc8d64ec3791e9fd860))
* pre-deploy scan visibility and pinned scanner version ([#1378](https://github.com/Studio-Saelix/sencho/issues/1378)) ([7ce045a](https://github.com/Studio-Saelix/sencho/commit/7ce045accb3872e4aad57e5f0dbf2296fb7a3d5c))
* **security:** reflow the node Security page for mobile ([#1372](https://github.com/Studio-Saelix/sencho/issues/1372)) ([0066887](https://github.com/Studio-Saelix/sencho/commit/0066887ceeb8ecbd8b41a5b72c3df4f2249527de))
* **settings:** add Stacks section for stack workflow preferences ([#1366](https://github.com/Studio-Saelix/sencho/issues/1366)) ([ebf66fd](https://github.com/Studio-Saelix/sencho/commit/ebf66fd92a2c1e93c36257b34f7524f78be41013))


### Fixed

* base Git multi-file Compose deploy env and dossier on the effective config ([#1391](https://github.com/Studio-Saelix/sencho/issues/1391)) ([ba09e6f](https://github.com/Studio-Saelix/sencho/commit/ba09e6f69e544cfd8c922e6bd4db215957d3e5f9))
* bind deploy progress, request, and health gate to the captured node ([#1357](https://github.com/Studio-Saelix/sencho/issues/1357)) ([48cebf9](https://github.com/Studio-Saelix/sencho/commit/48cebf9501e2444b03e8b6ec6f16545ef30a8fdf))
* **deps:** bump form-data, protobufjs, and vite to clear high-severity CVEs ([#1379](https://github.com/Studio-Saelix/sencho/issues/1379)) ([770bead](https://github.com/Studio-Saelix/sencho/commit/770bead8890e3c04d132e8caba567332f4d6a24b))
* **fleet:** resolve Stop-by-label stack labels across all nodes ([#1382](https://github.com/Studio-Saelix/sencho/issues/1382)) ([cb58cc4](https://github.com/Studio-Saelix/sencho/commit/cb58cc423f659675aea2b240877deee1c506e829))
* **fleet:** scope Stop-by-label to stack labels with a typed suggestion source ([#1368](https://github.com/Studio-Saelix/sencho/issues/1368)) ([4610a43](https://github.com/Studio-Saelix/sencho/commit/4610a433e667499a83cddbb0d491c7b29b87e635))
* gate fleet stop-by-label on a resolved preview and validate remote stop responses ([#1392](https://github.com/Studio-Saelix/sencho/issues/1392)) ([2821e87](https://github.com/Studio-Saelix/sencho/commit/2821e87d3f5e95185c5e9d6845e2287c83d66b28))
* harden deploy/update concurrency and node-targeting safety ([#1390](https://github.com/Studio-Saelix/sencho/issues/1390)) ([5f1baa7](https://github.com/Studio-Saelix/sencho/commit/5f1baa752225d6d466e46e65dd4da858d08d6972))
* make published port links open reliably ([#1359](https://github.com/Studio-Saelix/sencho/issues/1359)) ([f253276](https://github.com/Studio-Saelix/sencho/commit/f25327630317ca59af7ab58a0bf0872e12763ffc))
* **mobile:** keep the bottom tab bar visible with dynamic viewport height ([#1375](https://github.com/Studio-Saelix/sencho/issues/1375)) ([85bcd13](https://github.com/Studio-Saelix/sencho/commit/85bcd1341e2e96ff3ad9d4b11d78dced993f980d))
* **settings:** clear stale pending and unsaved indicators after save ([#1370](https://github.com/Studio-Saelix/sencho/issues/1370)) ([49f1b49](https://github.com/Studio-Saelix/sencho/commit/49f1b49ac6c5f7bdb2986ef285c91b48f3ece7ad))
* **sidebar:** skip the auto-update next-run poll for non-admins ([#1388](https://github.com/Studio-Saelix/sencho/issues/1388)) ([2960f9f](https://github.com/Studio-Saelix/sencho/commit/2960f9f85381723c420690b4004bb91a07db1095))
* **stacks:** return a handled response when saving env to a stack with no env file ([#1393](https://github.com/Studio-Saelix/sencho/issues/1393)) ([29c599d](https://github.com/Studio-Saelix/sencho/commit/29c599d370f4beed4bd9c5b8934405323bcf2771))
* **updates:** allow "Apply now" on the readiness board without a schedule ([#1394](https://github.com/Studio-Saelix/sencho/issues/1394)) ([de87c41](https://github.com/Studio-Saelix/sencho/commit/de87c41b782ae3c040d4930f4987896822111198))

## [0.91.1](https://github.com/Studio-Saelix/sencho/compare/v0.91.0...v0.91.1) (2026-06-10)


### Fixed

* base Stack health uptime on container start, not creation ([#1341](https://github.com/Studio-Saelix/sencho/issues/1341)) ([e7895c8](https://github.com/Studio-Saelix/sencho/commit/e7895c889d439b05eaafef290c9d94468da248b3))

## [0.91.0](https://github.com/Studio-Saelix/sencho/compare/v0.90.0...v0.91.0) (2026-06-08)


### Added

* allow local Docker Hub, GHCR, and custom registry credentials on Community ([#1338](https://github.com/Studio-Saelix/sencho/issues/1338)) ([2298f47](https://github.com/Studio-Saelix/sencho/commit/2298f470bd195cd64513a182852f49f28406085f))
* **fleet:** add read-only dependency map tab ([#1324](https://github.com/Studio-Saelix/sencho/issues/1324)) ([af40831](https://github.com/Studio-Saelix/sencho/commit/af4083175cddcf8346fb23fe9e4bd7caf16ca965))
* **fleet:** export a whole-fleet Markdown dossier ([#1334](https://github.com/Studio-Saelix/sencho/issues/1334)) ([842ee7d](https://github.com/Studio-Saelix/sencho/commit/842ee7dd0ca0a75793663866f9c9bc7f666009bc))
* give Community a 14-day in-app audit log ([#1337](https://github.com/Studio-Saelix/sencho/issues/1337)) ([ea1267b](https://github.com/Studio-Saelix/sencho/commit/ea1267b32f8b603ac2008b6a14f8c8115111bb7e))
* **mobile:** bespoke phone layouts for dashboard, fleet, schedules, and settings ([#1330](https://github.com/Studio-Saelix/sencho/issues/1330)) ([928a3a8](https://github.com/Studio-Saelix/sencho/commit/928a3a8343a557a0ecc3cf346df8974456ec2ce2))
* move trivy auto-update, node labels, fleet topology, and single-scan SBOM to Community ([#1336](https://github.com/Studio-Saelix/sencho/issues/1336)) ([54119be](https://github.com/Studio-Saelix/sencho/commit/54119be0c21253a00f1aeee74eafe0be3741e25e))
* **snapshots:** preserve stack dossiers with fleet snapshots ([#1339](https://github.com/Studio-Saelix/sencho/issues/1339)) ([710647a](https://github.com/Studio-Saelix/sencho/commit/710647a44fa0aff703cf4aed6f3b069ba5bba26f))
* **stacks:** add compose-vs-runtime drift detection ([#1329](https://github.com/Studio-Saelix/sencho/issues/1329)) ([421177e](https://github.com/Studio-Saelix/sencho/commit/421177e4a602e8ce2c5cde41f56309a6ee984bb3))
* **stacks:** add Stack Dossier tab with operator notes and Markdown export ([#1326](https://github.com/Studio-Saelix/sencho/issues/1326)) ([57fe430](https://github.com/Studio-Saelix/sencho/commit/57fe430db8c166dabd71643d9920fe759ce87568))
* **stacks:** copy stack anatomy as Markdown ([#1323](https://github.com/Studio-Saelix/sencho/issues/1323)) ([13b6aca](https://github.com/Studio-Saelix/sencho/commit/13b6acab16660f0474160f6776b7bbca8cffbc64))
* **stacks:** persist a drift ledger with temporal source-change detection ([#1333](https://github.com/Studio-Saelix/sencho/issues/1333)) ([b21324f](https://github.com/Studio-Saelix/sencho/commit/b21324f97ab49efca91dde84b171a16e7e99712b))
* **ui:** make Fleet, Settings, and the dashboard table usable on mobile ([#1331](https://github.com/Studio-Saelix/sencho/issues/1331)) ([2072378](https://github.com/Studio-Saelix/sencho/commit/20723783961ae4605814fa6f4b5da84f68c3556c))
* **ui:** make the core stack flow usable on mobile ([#1327](https://github.com/Studio-Saelix/sencho/issues/1327)) ([e8f271f](https://github.com/Studio-Saelix/sencho/commit/e8f271f5f6500340ed95bfda9f6f114c826860e5))

## [0.90.0](https://github.com/Studio-Saelix/sencho/compare/v0.89.0...v0.90.0) (2026-06-06)


### Added

* **resources:** reclaim banner controls and accurate reclaim math ([#1318](https://github.com/Studio-Saelix/sencho/issues/1318)) ([3089492](https://github.com/Studio-Saelix/sencho/commit/308949282c93c5046bec83a85b59a8cc020d1fc2))
* **settings:** reorganize the settings hub into domain groups ([#1321](https://github.com/Studio-Saelix/sencho/issues/1321)) ([ce08a59](https://github.com/Studio-Saelix/sencho/commit/ce08a593d7df95333a9d8b2762501b3d6d525c33))
* **stacks:** one-click import for stray compose files ([#1320](https://github.com/Studio-Saelix/sencho/issues/1320)) ([f7f3afe](https://github.com/Studio-Saelix/sencho/commit/f7f3afe05a80a172028c099b419106d075b33fe8))
* **updates:** auto-prune dangling images after updates ([#1316](https://github.com/Studio-Saelix/sencho/issues/1316)) ([716daf7](https://github.com/Studio-Saelix/sencho/commit/716daf77d083fc2270366d7ef1be0a59424a83d2))


### Fixed

* **blueprints:** allow deleting blueprints stuck on awaiting-confirmation deployments ([#1313](https://github.com/Studio-Saelix/sencho/issues/1313)) ([b4cca9b](https://github.com/Studio-Saelix/sencho/commit/b4cca9b9958bdc17a3d232b5b535ed8ddcbb4124))
* **blueprints:** keep the edit sheet body within the sheet width ([#1314](https://github.com/Studio-Saelix/sencho/issues/1314)) ([5d508b9](https://github.com/Studio-Saelix/sencho/commit/5d508b941683cdc4b3a9065e02653ccde0a53726))
* **security:** resolve open CodeQL path-injection and temp-file alerts ([#1322](https://github.com/Studio-Saelix/sencho/issues/1322)) ([86bfc10](https://github.com/Studio-Saelix/sencho/commit/86bfc108aea5b3799ea1897d9c141d6cbab3a776))
* **theme:** make sheets and dialogs track the active theme ([#1315](https://github.com/Studio-Saelix/sencho/issues/1315)) ([622af7e](https://github.com/Studio-Saelix/sencho/commit/622af7e0b388e1e7951b672fb6a73ef0f934f27e))

## [0.89.0](https://github.com/Studio-Saelix/sencho/compare/v0.88.2...v0.89.0) (2026-06-05)


### Added

* **appearance:** add theme, accent, contrast, and typography personalization ([#1307](https://github.com/Studio-Saelix/sencho/issues/1307)) ([c0a2520](https://github.com/Studio-Saelix/sencho/commit/c0a252026d3d7a3d2afef7f7a5e3b71caa35adbc))
* **mesh:** refine the Routing tab and add per-route removal ([#1311](https://github.com/Studio-Saelix/sencho/issues/1311)) ([81858a0](https://github.com/Studio-Saelix/sencho/commit/81858a0bb0df43251cea214e121358e69a31aa03))
* **pricing:** collapse to two tiers ([#1309](https://github.com/Studio-Saelix/sencho/issues/1309)) ([865d792](https://github.com/Studio-Saelix/sencho/commit/865d792874ba42af23cfe4708c89d9f4f2517c8f))


### Fixed

* **settings:** reflect role, tier, and node scope in settings panels ([#1300](https://github.com/Studio-Saelix/sencho/issues/1300)) ([0683aa9](https://github.com/Studio-Saelix/sencho/commit/0683aa93955f25071accfe6c78e76dcf8d078003))
* **settings:** serialize GET /api/settings from an allowlist ([#1299](https://github.com/Studio-Saelix/sencho/issues/1299)) ([4596a90](https://github.com/Studio-Saelix/sencho/commit/4596a90474b3a1266d2df187674aa0dc16223fa4))
* **ui:** center create-stack label and drop duplicate plus on mesh CTA ([#1310](https://github.com/Studio-Saelix/sencho/issues/1310)) ([9d30550](https://github.com/Studio-Saelix/sencho/commit/9d3055049feb388ddca939b3c9537519221b5b56))

## [0.88.2](https://github.com/Studio-Saelix/sencho/compare/v0.88.1...v0.88.2) (2026-06-03)


### Fixed

* **metrics:** host memory usage excludes reclaimable page cache ([#1297](https://github.com/Studio-Saelix/sencho/issues/1297)) ([42fc804](https://github.com/Studio-Saelix/sencho/commit/42fc8048fe3e637393d76b15161ad90caefe3406))

## [0.88.1](https://github.com/Studio-Saelix/sencho/compare/v0.88.0...v0.88.1) (2026-06-03)


### Fixed

* **api-tokens:** harden rate limiting and surface list-load errors ([#1292](https://github.com/Studio-Saelix/sencho/issues/1292)) ([2435da2](https://github.com/Studio-Saelix/sencho/commit/2435da232b883d38d5f951fdbcfbbe238457c9fa))

## [0.88.0](https://github.com/Studio-Saelix/sencho/compare/v0.87.0...v0.88.0) (2026-06-03)


### Added

* **fleet-snapshots:** add restore-all, per-file download, and scrollable preview ([#1276](https://github.com/Studio-Saelix/sencho/issues/1276)) ([e60c1c0](https://github.com/Studio-Saelix/sencho/commit/e60c1c0525355768d4100a5a1eb559bee85d972d))
* **mesh:** add developer-mode diagnostics to the mesh data plane ([#1287](https://github.com/Studio-Saelix/sencho/issues/1287)) ([5e6e96e](https://github.com/Studio-Saelix/sencho/commit/5e6e96e40555ebcc762f5c5547d7c70d9774701e))
* **onboarding:** add first-run environment checker ([#1290](https://github.com/Studio-Saelix/sencho/issues/1290)) ([5289f01](https://github.com/Studio-Saelix/sencho/commit/5289f01bfd9d587c3453403a89ace6ff82b6f27e))
* **recovery:** add safe-mode recovery surface and emergency CLI ([#1286](https://github.com/Studio-Saelix/sencho/issues/1286)) ([c6d1631](https://github.com/Studio-Saelix/sencho/commit/c6d1631afe9be235d12cc4c86f841b879c876677))
* **stacks:** guided first stack import flow ([#1285](https://github.com/Studio-Saelix/sencho/issues/1285)) ([06b2526](https://github.com/Studio-Saelix/sencho/commit/06b25262cc63a0cbf48011a019c1f2fce9faf70f))


### Fixed

* **blueprints:** stop the deployment detail sheet flickering and show deploy progress ([#1278](https://github.com/Studio-Saelix/sencho/issues/1278)) ([f6c6ffe](https://github.com/Studio-Saelix/sencho/commit/f6c6ffea150187b5a6786f2c1df423cc8f243a89))
* **federation:** gate node cordon control on node:manage to match backend ([#1277](https://github.com/Studio-Saelix/sencho/issues/1277)) ([dd2c2b2](https://github.com/Studio-Saelix/sencho/commit/dd2c2b22ecf55bc8cc4b4b162b9d3fd3c1ed852f))
* **fleet-secrets:** restrict bundle management to admin hub sessions ([#1274](https://github.com/Studio-Saelix/sencho/issues/1274)) ([9fb4ccc](https://github.com/Studio-Saelix/sencho/commit/9fb4ccccff7cc7b32a595f6f869717fba697dfa6))
* **git-sources:** return 200 for stacks without a Git source ([#1294](https://github.com/Studio-Saelix/sencho/issues/1294)) ([ae0b9d1](https://github.com/Studio-Saelix/sencho/commit/ae0b9d166c63e6009c62645fc76c674a6bf375a3))
* **mesh:** hide node and stack management controls from non-admins ([#1284](https://github.com/Studio-Saelix/sencho/issues/1284)) ([c82a39c](https://github.com/Studio-Saelix/sencho/commit/c82a39c65a9d344e4ea84731c9d5590898708d9b))
* **nodes:** gate node-management actions by role and release pilot tunnels on delete ([#1280](https://github.com/Studio-Saelix/sencho/issues/1280)) ([35a1182](https://github.com/Studio-Saelix/sencho/commit/35a1182890c5799c369a0b6ed6d5a4e8463d2b2d))
* **nodes:** never send stored node tokens to clients ([#1281](https://github.com/Studio-Saelix/sencho/issues/1281)) ([65a69d9](https://github.com/Studio-Saelix/sencho/commit/65a69d9ecc7ff9b484e69b7e8c71473356008ff5))
* **notifications:** stop subscribing to offline remote nodes ([#1291](https://github.com/Studio-Saelix/sencho/issues/1291)) ([a8f0ce9](https://github.com/Studio-Saelix/sencho/commit/a8f0ce90726c4b3df4169192211286261ab39d0d))
* **stack-files:** record download metric when response closes after a full read ([#1282](https://github.com/Studio-Saelix/sencho/issues/1282)) ([5af0c04](https://github.com/Studio-Saelix/sencho/commit/5af0c043d513f8fb7e8653a6d361f3b13dada125))
* **stacks:** name the body field in the stack-create required error ([#1289](https://github.com/Studio-Saelix/sencho/issues/1289)) ([653be32](https://github.com/Studio-Saelix/sencho/commit/653be3296bdcaeb2251c6fa5ad0d1ea02a51d216))
* **stacks:** reflect apply progress and clear the anatomy update banner ([#1279](https://github.com/Studio-Saelix/sencho/issues/1279)) ([2dd0660](https://github.com/Studio-Saelix/sencho/commit/2dd0660491db0b2f61b6f9b365c6a3bf8bf8c8d0))

## [0.87.0](https://github.com/Studio-Saelix/sencho/compare/v0.86.6...v0.87.0) (2026-06-01)


### Added

* **auto-heal:** restart crashed containers and harden the heal loop ([#1258](https://github.com/Studio-Saelix/sencho/issues/1258)) ([dbb7fe8](https://github.com/Studio-Saelix/sencho/commit/dbb7fe8215a2c21522f5ced1c2d2a0ea901a11ee))
* **dashboard:** surface metrics-stale indicator after sustained poll failure ([#1213](https://github.com/Studio-Saelix/sencho/issues/1213)) ([7c3ba3f](https://github.com/Studio-Saelix/sencho/commit/7c3ba3f24d9ee1cf1302c42cb6c33d659b4118e7))
* **deploy-panel:** tell Community operators deploys lack auto-rollback ([#1193](https://github.com/Studio-Saelix/sencho/issues/1193)) ([27b8954](https://github.com/Studio-Saelix/sencho/commit/27b89546766eda1aa2d6d3f10a92b168f6e32ac8))
* **fleet-sync:** gate sync-status polling on admin role ([#1271](https://github.com/Studio-Saelix/sencho/issues/1271)) ([7d7e0a6](https://github.com/Studio-Saelix/sencho/commit/7d7e0a6264f2563a3d25c497db17d85e27d93d87))
* **fleet:** show stack-label filtering in Fleet View on every tier ([#1268](https://github.com/Studio-Saelix/sencho/issues/1268)) ([d8f73f8](https://github.com/Studio-Saelix/sencho/commit/d8f73f820315d4d43a89e49882a59f425213c048))
* **labels:** harden Stack Labels (gate parity, abort, dry-run, cap) ([#1232](https://github.com/Studio-Saelix/sencho/issues/1232)) ([2a29fed](https://github.com/Studio-Saelix/sencho/commit/2a29fed11703e98f39dd239b205ae8ac69888706))
* **security:** make CVE suppressions optionally honored by deploy-block policies ([#1269](https://github.com/Studio-Saelix/sencho/issues/1269)) ([085267b](https://github.com/Studio-Saelix/sencho/commit/085267b466d76e28466ae099a3e09b46f320b424))
* **security:** per-image scroll + retention cap in scan history ([#1231](https://github.com/Studio-Saelix/sencho/issues/1231)) ([42e8d3a](https://github.com/Studio-Saelix/sencho/commit/42e8d3a78cde7f1fc411cdeb3586f6856baa16d6))
* **sidebar:** surface unreachable nodes in cross-node stack search ([#1195](https://github.com/Studio-Saelix/sencho/issues/1195)) ([5196f04](https://github.com/Studio-Saelix/sencho/commit/5196f0440e363a447d51b81892d9bcb2a94142f7))
* **stack-activity:** in-process metrics, structured diagnostic logs, docs ([#1229](https://github.com/Studio-Saelix/sencho/issues/1229)) ([80499ee](https://github.com/Studio-Saelix/sencho/commit/80499ee18da248d38d6cd4a73c10b930cf152969))
* **stack-files:** cap directory listings at 1000 + add file-tree filter ([#1208](https://github.com/Studio-Saelix/sencho/issues/1208)) ([fcf2222](https://github.com/Studio-Saelix/sencho/commit/fcf22226041e2eb6845dcf90b1a6b36ed92d57d7))
* **stack-files:** drag-and-drop upload zone ([#1207](https://github.com/Studio-Saelix/sencho/issues/1207)) ([ea002cd](https://github.com/Studio-Saelix/sencho/commit/ea002cd9a0a9950225326660944efbeb3583a455))
* **stack-files:** force-text override for misidentified binary files ([#1215](https://github.com/Studio-Saelix/sencho/issues/1215)) ([d8b6f8c](https://github.com/Studio-Saelix/sencho/commit/d8b6f8cf3bc29be7c5f1887bb1d19dc664507350))
* **stack-files:** in-process metrics and structured mutation logs ([#1216](https://github.com/Studio-Saelix/sencho/issues/1216)) ([9f2f13f](https://github.com/Studio-Saelix/sencho/commit/9f2f13f35acf267a5a156c4714148255d9b2591a))
* **stack-logs:** WebSocket reconnect with backoff and gap sentinel ([#1197](https://github.com/Studio-Saelix/sencho/issues/1197)) ([07a2e8f](https://github.com/Studio-Saelix/sencho/commit/07a2e8f0e31bfcf2494d863255e604397a2ca283))
* **stacks:** in-process per-(nodeId, action) metrics + admin endpoint ([#1196](https://github.com/Studio-Saelix/sencho/issues/1196)) ([7ec6fe0](https://github.com/Studio-Saelix/sencho/commit/7ec6fe05bb7e32921b9dd06e52a850918f4e7bbc))
* **stacks:** optimistic concurrency on compose and env file writes ([#1183](https://github.com/Studio-Saelix/sencho/issues/1183)) ([fbd13ac](https://github.com/Studio-Saelix/sencho/commit/fbd13accdaa554e08a980fb516af896fa3f84c94))
* **stacks:** server-side POST /api/stacks/bulk endpoint ([#1185](https://github.com/Studio-Saelix/sencho/issues/1185)) ([5aedc52](https://github.com/Studio-Saelix/sencho/commit/5aedc52737c155be735b663809df05d213ef7d35))
* **stacks:** structured 503 docker_unavailable envelope + disconnect tests ([#1191](https://github.com/Studio-Saelix/sencho/issues/1191)) ([009ec43](https://github.com/Studio-Saelix/sencho/commit/009ec43638455f42428424629ffb1cfe074786f1))
* **stacks:** surface post-deploy scan attempt status ([#1198](https://github.com/Studio-Saelix/sencho/issues/1198)) ([d727a55](https://github.com/Studio-Saelix/sencho/commit/d727a55a5fbbdb26c3c3103cdc0d43a0e0628e95))


### Fixed

* **app-store:** harden template deploy, registry fetch, and catalogue refresh ([#1250](https://github.com/Studio-Saelix/sencho/issues/1250)) ([96c5f05](https://github.com/Studio-Saelix/sencho/commit/96c5f05cdcb547ec0069b125135c0bd6a14baae0))
* **atomic-deploy:** harden rollback locking, restore fidelity, and tier gating ([#1247](https://github.com/Studio-Saelix/sencho/issues/1247)) ([45844b9](https://github.com/Studio-Saelix/sencho/commit/45844b92ca187d1a0d759554cfcf18effc81838e))
* **audit-log:** neutralize CSV export injection, clamp pagination, bound anomaly history ([#1259](https://github.com/Studio-Saelix/sencho/issues/1259)) ([5e66b54](https://github.com/Studio-Saelix/sencho/commit/5e66b541535f4818791123c71a57d2b7e6018398))
* **auto-heal:** gate panel write controls on admin role ([#1245](https://github.com/Studio-Saelix/sencho/issues/1245)) ([b034de5](https://github.com/Studio-Saelix/sencho/commit/b034de58f32993435ddc0a0aaa44242a9805e8b9))
* **auto-update:** paid-gate execute route and harden image-check watchdog ([#1257](https://github.com/Studio-Saelix/sencho/issues/1257)) ([ca34691](https://github.com/Studio-Saelix/sencho/commit/ca346916c1683279f18526358e953aa87bc1879c))
* **blueprints:** gate Federation pin control on admin role ([#1252](https://github.com/Studio-Saelix/sencho/issues/1252)) ([d41282e](https://github.com/Studio-Saelix/sencho/commit/d41282e3520995ec54d8f51eff9b97d791ab03c7))
* **dashboard:** debounce state-invalidate refetches ([#1209](https://github.com/Studio-Saelix/sencho/issues/1209)) ([03a5826](https://github.com/Studio-Saelix/sencho/commit/03a5826f7e31b3fbb53c1e4ca251935da2111d62))
* **dashboard:** decouple FleetHeartbeat refresh from the active local node ([#1210](https://github.com/Studio-Saelix/sencho/issues/1210)) ([0db0d29](https://github.com/Studio-Saelix/sencho/commit/0db0d29f3b31c9e3a1ca931b8a9822601e62193e))
* **dashboard:** slow HealthStatusBar sync-label tick to 5s ([#1211](https://github.com/Studio-Saelix/sencho/issues/1211)) ([6d995b9](https://github.com/Studio-Saelix/sencho/commit/6d995b9aafbc481678a6fbd9a79e179c7d9d763b))
* **deploy-enforcement:** surface scan-policy blocks on update and sidebar deploys ([#1248](https://github.com/Studio-Saelix/sencho/issues/1248)) ([b33a0e8](https://github.com/Studio-Saelix/sencho/commit/b33a0e842243fcb2a618e1fe544c6e7639b5fb96))
* **deploy-progress:** decouple deploys from the live progress stream ([#1246](https://github.com/Studio-Saelix/sencho/issues/1246)) ([5dea040](https://github.com/Studio-Saelix/sencho/commit/5dea040ec84ff38aa09f0fbb0b9b38ebc3bd40ad))
* **editor:** harden save-deploy, node-switch, delete, and stats reactivity ([#1188](https://github.com/Studio-Saelix/sencho/issues/1188)) ([7c84969](https://github.com/Studio-Saelix/sencho/commit/7c84969b310b7c58c94ddab04854c47e63b607cf))
* **fleet-actions:** stop-by-label works on Community remote nodes ([#1270](https://github.com/Studio-Saelix/sencho/issues/1270)) ([7e0cffa](https://github.com/Studio-Saelix/sencho/commit/7e0cffa3762fa1247d69aac78ca450ab0e753aa5))
* **fleet-snapshots:** gate reads on admin role and encrypt content at rest ([#1273](https://github.com/Studio-Saelix/sencho/issues/1273)) ([c11a550](https://github.com/Studio-Saelix/sencho/commit/c11a550b6a6724889d7e07fe817b6591c27250d6))
* **fleet:** gate node update actions to admins and harden update tracking ([#1272](https://github.com/Studio-Saelix/sencho/issues/1272)) ([0953025](https://github.com/Studio-Saelix/sencho/commit/09530250364de607e059c27b84aae1ea12d2c58f))
* **git-sources:** harden webhook delivery, transport errors, and clone limits ([#1249](https://github.com/Studio-Saelix/sencho/issues/1249)) ([2844f60](https://github.com/Studio-Saelix/sencho/commit/2844f606cd7ac0543a398ee44d55b1caacfeef7b))
* **global-search:** close the command palette on Escape deterministically ([#1256](https://github.com/Studio-Saelix/sencho/issues/1256)) ([a5bfd48](https://github.com/Studio-Saelix/sencho/commit/a5bfd480056e93f275e130cbdec4dbfb383df440))
* **global-search:** surface unreachable nodes and harden the command palette ([#1253](https://github.com/Studio-Saelix/sencho/issues/1253)) ([98049e3](https://github.com/Studio-Saelix/sencho/commit/98049e3b1c89c06ae1ad8e6480d50f0f474d1ca3))
* **host-console:** audit session lifecycle and harden path, resize, and route gating ([#1263](https://github.com/Studio-Saelix/sencho/issues/1263)) ([d4fa4a4](https://github.com/Studio-Saelix/sencho/commit/d4fa4a496580aca3be1268c3490f34bfef93104f))
* **mesh:** re-evaluate data plane every 10s and add opt-in auto-recreate ([#1184](https://github.com/Studio-Saelix/sencho/issues/1184)) ([aa3d99a](https://github.com/Studio-Saelix/sencho/commit/aa3d99a594bbef3fe146fb31eb85bb97e378e7c3))
* **mfa:** enforce single-use backup codes under concurrent verification ([#1262](https://github.com/Studio-Saelix/sencho/issues/1262)) ([7e65a2a](https://github.com/Studio-Saelix/sencho/commit/7e65a2ae19a9c1e95d3033695324cbd405eb4568))
* **nodes:** close capability-gating gaps in node compatibility ([#1261](https://github.com/Studio-Saelix/sencho/issues/1261)) ([d03d97d](https://github.com/Studio-Saelix/sencho/commit/d03d97d964c0f60b4c425877ddda3886d78ac05a))
* **notifications:** harden alert dispatch crash-safety and redact webhook secrets in logs ([#1255](https://github.com/Studio-Saelix/sencho/issues/1255)) ([7d4e616](https://github.com/Studio-Saelix/sencho/commit/7d4e61625f64bd33b2a7dba316b76e4d5071cd47))
* **notifications:** prevent self-container stack routing ([#1242](https://github.com/Studio-Saelix/sencho/issues/1242)) ([265fece](https://github.com/Studio-Saelix/sencho/commit/265fece988804bf2b983080dd45331963df5981f))
* **observability:** gate global logs to admins, scope to managed containers, harden SSE ([#1254](https://github.com/Studio-Saelix/sencho/issues/1254)) ([69edb0d](https://github.com/Studio-Saelix/sencho/commit/69edb0dcbb68100e42a9990bf70e3fcee8fb0dc8))
* **rbac:** enforce admin seat cap on promotion and harden last-admin and audit paths ([#1266](https://github.com/Studio-Saelix/sencho/issues/1266)) ([b61388c](https://github.com/Studio-Saelix/sencho/commit/b61388c675b82eaefd44943fed5b64774cb1839f))
* **registries:** keep registry endpoints local to each instance ([#1267](https://github.com/Studio-Saelix/sencho/issues/1267)) ([18762fa](https://github.com/Studio-Saelix/sencho/commit/18762fa74b7ce2d1516ad87c1565cbc9f177328f))
* **resources:** harden Resources Hub data race, prune errors, and scan lifecycle ([#1251](https://github.com/Studio-Saelix/sencho/issues/1251)) ([eed7e04](https://github.com/Studio-Saelix/sencho/commit/eed7e04e7133c4e11cc4d3db70c0c6f4fdc16223))
* **scheduled-ops:** run stack lifecycle schedules on remote nodes and harden run visibility ([#1260](https://github.com/Studio-Saelix/sencho/issues/1260)) ([6fc7f20](https://github.com/Studio-Saelix/sencho/commit/6fc7f200a61fbde175a43f3f9350ae6ebee6de2d))
* **security:** gate admin-only scan affordances on isAdmin ([#1230](https://github.com/Studio-Saelix/sencho/issues/1230)) ([117f590](https://github.com/Studio-Saelix/sencho/commit/117f590332f1ed53dde4399f479b0484b5d9e3c5))
* **sidebar:** cancel pending debounce emit on external value reset ([#1244](https://github.com/Studio-Saelix/sencho/issues/1244)) ([0a8e6a7](https://github.com/Studio-Saelix/sencho/commit/0a8e6a79ae01261fa15c09f99da7db539cca7559))
* **sidebar:** require admin role for Schedule task and debounce search input ([#1243](https://github.com/Studio-Saelix/sencho/issues/1243)) ([9791818](https://github.com/Studio-Saelix/sencho/commit/979181875dea9e12d1de3f54e69f5a5001aff17b))
* **sso:** surface config load, test, and removal errors in the SSO settings UI ([#1265](https://github.com/Studio-Saelix/sencho/issues/1265)) ([4248ac0](https://github.com/Studio-Saelix/sencho/commit/4248ac0e7235cb7926ebda07d8d57d888f0e73d3))
* **stack-activity:** per-stack history integrity, attribution, sanitization ([#1228](https://github.com/Studio-Saelix/sencho/issues/1228)) ([2d56ea9](https://github.com/Studio-Saelix/sencho/commit/2d56ea958acd36b4b910e481e518bc841edeb170))
* **stack-files:** atomic write via tmp+rename with optional exclusive mode ([#1205](https://github.com/Studio-Saelix/sencho/issues/1205)) ([668eda6](https://github.com/Studio-Saelix/sencho/commit/668eda6cc87ad17330d40b70c9a0eea734817010))
* **stack-files:** avoid false failed download metrics ([#1236](https://github.com/Studio-Saelix/sencho/issues/1236)) ([92355d5](https://github.com/Studio-Saelix/sencho/commit/92355d51a1045eaf6d1fec3a0995bc0552699a99))
* **stack-files:** confirm before overwriting an existing upload target ([#1204](https://github.com/Studio-Saelix/sencho/issues/1204)) ([c8b095b](https://github.com/Studio-Saelix/sencho/commit/c8b095b88791424fac6c6955d7d3853ef59eb3e3))
* **stack-files:** guard download stream destroy against the supertest in-process close race ([#1227](https://github.com/Studio-Saelix/sencho/issues/1227)) ([a4a8abb](https://github.com/Studio-Saelix/sencho/commit/a4a8abb5f803d49aaf401bcce90c2286ccdfd686))
* **stack-files:** optimistic concurrency on file-tab writes via mtime ETag ([#1206](https://github.com/Studio-Saelix/sencho/issues/1206)) ([4964320](https://github.com/Studio-Saelix/sencho/commit/4964320f505c9d33c0976f8e77c8541a855b2f3b))
* **stack-files:** prompt before discarding unsaved edits on file switch ([#1203](https://github.com/Studio-Saelix/sencho/issues/1203)) ([3e56696](https://github.com/Studio-Saelix/sencho/commit/3e56696c912bdbf393276ed144bc8fc17244c6e7))
* **stack-files:** symlink-aware delete and chmod ([#1214](https://github.com/Studio-Saelix/sencho/issues/1214)) ([c2357ec](https://github.com/Studio-Saelix/sencho/commit/c2357ec5347960a01aec0af4a95c024ad680570e))
* **stack-files:** track download metric off the file stream, not the response ([#1220](https://github.com/Studio-Saelix/sencho/issues/1220)) ([f86042b](https://github.com/Studio-Saelix/sencho/commit/f86042b2ad594531d66e4d2c8669c2779da2b650))
* **stacks:** default Empty template ships ports block commented out ([#1189](https://github.com/Studio-Saelix/sencho/issues/1189)) ([8ba8875](https://github.com/Studio-Saelix/sencho/commit/8ba88755b1e85aa60a8b08c03da4a0cfa2801d30))
* **stacks:** refuse file-explorer delete/rename/chmod on protected stack files ([#1202](https://github.com/Studio-Saelix/sencho/issues/1202)) ([37b1237](https://github.com/Studio-Saelix/sencho/commit/37b12379c1b12aa71aee2c834086d41b0ff1f583))
* **stacks:** require stack:read on file explorer GET routes ([#1200](https://github.com/Studio-Saelix/sencho/issues/1200)) ([4c28b37](https://github.com/Studio-Saelix/sencho/commit/4c28b37a59daa67e388d07948319a0f02921b305))
* **stacks:** serialize concurrent lifecycle operations per stack ([#1182](https://github.com/Studio-Saelix/sencho/issues/1182)) ([60ecd57](https://github.com/Studio-Saelix/sencho/commit/60ecd574b3488aff53c0c417d1cd8087251b763a))

## [0.86.6](https://github.com/Studio-Saelix/sencho/compare/v0.86.5...v0.86.6) (2026-05-23)


### Fixed

* **monitor:** collapse repeated host-metric alerts into per-window summary (F-11) ([#1175](https://github.com/Studio-Saelix/sencho/issues/1175)) ([fcff8e9](https://github.com/Studio-Saelix/sencho/commit/fcff8e90473f030614eeab357d17798995bfa044))
* **webhooks:** address Codex review of PR [#1177](https://github.com/Studio-Saelix/sencho/issues/1177) ([#1181](https://github.com/Studio-Saelix/sencho/issues/1181)) ([f03c9dc](https://github.com/Studio-Saelix/sencho/commit/f03c9dc7b6e90895d81484117b0271d2f9a55201))
* **webhooks:** harden trigger response surface ([#1177](https://github.com/Studio-Saelix/sencho/issues/1177)) ([21ec5e7](https://github.com/Studio-Saelix/sencho/commit/21ec5e7e0a2f46273374a225ee6be7a55333f4b6))
* **webhooks:** hide write affordances from non-admin paid users ([#1176](https://github.com/Studio-Saelix/sencho/issues/1176)) ([a928267](https://github.com/Studio-Saelix/sencho/commit/a9282671d54c8d57a063df3b35b3806841d56490))

## [0.86.5](https://github.com/Studio-Saelix/sencho/compare/v0.86.4...v0.86.5) (2026-05-23)


### Fixed

* **security:** collapse repeated trivy-missing pre-deploy notifications ([#1166](https://github.com/Studio-Saelix/sencho/issues/1166)) ([0947da1](https://github.com/Studio-Saelix/sencho/commit/0947da13ae9280ff41026d5b803be7e0ffe20002))
* **stacks:** close dialog and toast on Empty create (F-2) ([#1168](https://github.com/Studio-Saelix/sencho/issues/1168)) ([9d8d8ab](https://github.com/Studio-Saelix/sencho/commit/9d8d8abcbacadc46b4b0a3713243d925ae4e13cc))

## [0.86.4](https://github.com/Studio-Saelix/sencho/compare/v0.86.3...v0.86.4) (2026-05-23)


### Fixed

* **monitor:** decouple janitor disk-usage check from 30s cycle (F-6) ([#1164](https://github.com/Studio-Saelix/sencho/issues/1164)) ([a51547a](https://github.com/Studio-Saelix/sencho/commit/a51547a1582a1f0dc85dad461d94fd6e752e40c9))

## [0.86.3](https://github.com/Studio-Saelix/sencho/compare/v0.86.2...v0.86.3) (2026-05-23)


### Fixed

* **mesh:** bias Sencho static IP via IPAM IPRange (F-13) ([#1162](https://github.com/Studio-Saelix/sencho/issues/1162)) ([64bf634](https://github.com/Studio-Saelix/sencho/commit/64bf6344a3c883cb39671dec43b07a4681b54b36))

## [0.86.2](https://github.com/Studio-Saelix/sencho/compare/v0.86.1...v0.86.2) (2026-05-22)


### Fixed

* **mesh:** log boot state to console so docker logs surfaces mesh status ([#1159](https://github.com/Studio-Saelix/sencho/issues/1159)) ([4742900](https://github.com/Studio-Saelix/sencho/commit/474290081d2b99dbb51fffca64becd242b7ebace))

## [0.86.1](https://github.com/Studio-Saelix/sencho/compare/v0.86.0...v0.86.1) (2026-05-22)


### Fixed

* **mesh:** address Codex audit findings on F-1 PR ([#1158](https://github.com/Studio-Saelix/sencho/issues/1158)) ([e4fe4cf](https://github.com/Studio-Saelix/sencho/commit/e4fe4cfced6c81eb13cc186b324c2e3c55acdffa))
* **mesh:** auto-fallback through candidate subnets when default overlaps ([#1156](https://github.com/Studio-Saelix/sencho/issues/1156)) ([1a03cf8](https://github.com/Studio-Saelix/sencho/commit/1a03cf82af67237c4109a9a7a8e112a49f893232))

## [0.86.0](https://github.com/Studio-Saelix/sencho/compare/v0.85.0...v0.86.0) (2026-05-22)


### Added

* **cloud-backup:** make Custom S3-compatible target available on every tier ([#1143](https://github.com/Studio-Saelix/sencho/issues/1143)) ([380ed6f](https://github.com/Studio-Saelix/sencho/commit/380ed6fd5093790f8b1456c7b5a4a6186eaf6321))
* **files:** open stack file explorer to every tier ([#1144](https://github.com/Studio-Saelix/sencho/issues/1144)) ([535023b](https://github.com/Studio-Saelix/sencho/commit/535023b35005021fff24b5bb55564ff923c7db59))
* **fleet:** move bulk Remote OTA updates to Community tier ([#1151](https://github.com/Studio-Saelix/sencho/issues/1151)) ([60f893a](https://github.com/Studio-Saelix/sencho/commit/60f893a81f1accc411b85d6cc72fae5f0818aa0d))
* **fleet:** open Fleet Actions tab to Community (admin-only) ([#1153](https://github.com/Studio-Saelix/sencho/issues/1153)) ([519a59e](https://github.com/Studio-Saelix/sencho/commit/519a59ed2e370e4da53fb7f702c149b50b0fd281))
* **notifications:** move Notification Routing to Skipper tier ([#1145](https://github.com/Studio-Saelix/sencho/issues/1145)) ([66b8493](https://github.com/Studio-Saelix/sencho/commit/66b84932e0dd4cc5a89c632f599933289a02c195))
* **resources:** protect Sencho's own image, network, volumes from deletion ([#1149](https://github.com/Studio-Saelix/sencho/issues/1149)) ([b740dd1](https://github.com/Studio-Saelix/sencho/commit/b740dd1078a8d0c2d96603ad0d5d0b6015996e9c))
* **schedules:** make every scheduled action available on Skipper ([#1141](https://github.com/Studio-Saelix/sencho/issues/1141)) ([c491d30](https://github.com/Studio-Saelix/sencho/commit/c491d309c12a7b823915e40c1f340495076dec32))
* **security:** move managed Trivy auto-update to Skipper tier ([#1150](https://github.com/Studio-Saelix/sencho/issues/1150)) ([8a3889d](https://github.com/Studio-Saelix/sencho/commit/8a3889dc67c2d61d2e539ac5b8778bd81c558d52))


### Fixed

* **fleet:** equalize action card heights, swap order, replace native autocomplete ([#1138](https://github.com/Studio-Saelix/sencho/issues/1138)) ([2563e30](https://github.com/Studio-Saelix/sencho/commit/2563e30424d1cead0cecaf8affada275f4f1e91d))
* **fleet:** route remaining fleet dispatches through getProxyTarget for pilot-agent nodes ([#1152](https://github.com/Studio-Saelix/sencho/issues/1152)) ([2f2401d](https://github.com/Studio-Saelix/sencho/commit/2f2401df68e9a50dbd6d724dce0a0a181dc21f44))
* **frontend:** wire favicon to existing logo assets ([#1146](https://github.com/Studio-Saelix/sencho/issues/1146)) ([dc8a368](https://github.com/Studio-Saelix/sencho/commit/dc8a368785518279b1d1f4cd0c4cc02f32996087))
* **hub-only-guard:** reject hub-only collection paths without trailing slash ([#1142](https://github.com/Studio-Saelix/sencho/issues/1142)) ([8d1304b](https://github.com/Studio-Saelix/sencho/commit/8d1304b0dfb4e5476a5729482b8e72bbd89c6faf))
* **resources:** subtract shared layers when accounting managed prune bytes ([#1155](https://github.com/Studio-Saelix/sencho/issues/1155)) ([cd1cde2](https://github.com/Studio-Saelix/sencho/commit/cd1cde2fd44d8bf67c397aa3ade6b4d99f523147))
* **resources:** use daemon-reported reclaimable image bytes ([#1154](https://github.com/Studio-Saelix/sencho/issues/1154)) ([a1caf6b](https://github.com/Studio-Saelix/sencho/commit/a1caf6b0dd8269911a61adff9bb31e1ad1a01461))

## [0.85.0](https://github.com/Studio-Saelix/sencho/compare/v0.84.3...v0.85.0) (2026-05-21)


### Added

* **api-tokens:** make API tokens available on every tier ([#1136](https://github.com/Studio-Saelix/sencho/issues/1136)) ([d0e1404](https://github.com/Studio-Saelix/sencho/commit/d0e140444af4702e2d9b0c28d7ff2f2da60121f5))
* **fleet:** redesign Fleet Action cards to the System Sheet recipe ([#1137](https://github.com/Studio-Saelix/sencho/issues/1137)) ([6f301e0](https://github.com/Studio-Saelix/sencho/commit/6f301e005a8a82f00d38fa41c15749945a6754e7))
* **routing:** redesign node cards to the System Sheet recipe ([#1133](https://github.com/Studio-Saelix/sencho/issues/1133)) ([cdb9cd4](https://github.com/Studio-Saelix/sencho/commit/cdb9cd414e60717f3a98a40c4ba3ca0d49798743))

## [0.84.3](https://github.com/Studio-Saelix/sencho/compare/v0.84.2...v0.84.3) (2026-05-21)


### Fixed

* **pilot:** post-merge audit followups (WS via getProxyTarget, closeTunnel lifecycle, mesh source buffer, docs) ([#1128](https://github.com/Studio-Saelix/sencho/issues/1128)) ([e65c5e8](https://github.com/Studio-Saelix/sencho/commit/e65c5e855108b8fc726c5d84ae7925932a54f056))

## [0.84.2](https://github.com/Studio-Saelix/sencho/compare/v0.84.1...v0.84.2) (2026-05-20)


### Fixed

* **mesh:** address audit follow-ups (early-data, recompose, admiral gate, error codes, docs) ([#1126](https://github.com/Studio-Saelix/sencho/issues/1126)) ([982c783](https://github.com/Studio-Saelix/sencho/commit/982c7830b1a17734b38fd76e4453d44a7be63781))

## [0.84.1](https://github.com/Studio-Saelix/sencho/compare/v0.84.0...v0.84.1) (2026-05-20)


### Fixed

* **fleet:** route remote update trigger through getProxyTarget ([#1123](https://github.com/Studio-Saelix/sencho/issues/1123)) ([0b50c88](https://github.com/Studio-Saelix/sencho/commit/0b50c88eb3727c4808e409b4639817b3128764a8))
* **pilot:** let SENCHO_PUBLIC_URL override the request Host in enrollment ([#1122](https://github.com/Studio-Saelix/sencho/issues/1122)) ([282ab8d](https://github.com/Studio-Saelix/sencho/commit/282ab8d8440bc4afb9e560f97d38df5be412cc34))
* **self-update:** resolve /app/data through bind or named volume ([#1124](https://github.com/Studio-Saelix/sencho/issues/1124)) ([ee891b0](https://github.com/Studio-Saelix/sencho/commit/ee891b093b593b43d39f2aa04e7ef14bd421b35f))

## [0.84.0](https://github.com/Studio-Saelix/sencho/compare/v0.83.1...v0.84.0) (2026-05-20)


### Added

* **pilot:** make Docker Compose the canonical pilot enrollment payload ([#1121](https://github.com/Studio-Saelix/sencho/issues/1121)) ([3ad6ea9](https://github.com/Studio-Saelix/sencho/commit/3ad6ea9c5dfc1ca48d734bd8ff53315c1aa6d2a7))


### Fixed

* **fleet:** rename Traffic tab label to Routing for consistency ([#1119](https://github.com/Studio-Saelix/sencho/issues/1119)) ([0117556](https://github.com/Studio-Saelix/sencho/commit/0117556beab91e0845e81da079f1e3009df2a8d4))

## [0.83.1](https://github.com/Studio-Saelix/sencho/compare/v0.83.0...v0.83.1) (2026-05-19)


### Fixed

* **fleet-sync:** make control-identity-mismatch sticky and surface in UI ([#1117](https://github.com/Studio-Saelix/sencho/issues/1117)) ([e05099f](https://github.com/Studio-Saelix/sencho/commit/e05099f2a1b81fdf1834f36a6e8d1aa86f0af8f0))

## [0.83.0](https://github.com/Studio-Saelix/sencho/compare/v0.82.1...v0.83.0) (2026-05-19)


### Added

* **cloud-backup:** paginate cloud snapshots list ([#1110](https://github.com/Studio-Saelix/sencho/issues/1110)) ([37413c1](https://github.com/Studio-Saelix/sencho/commit/37413c1020b3562a24884a57c43425c07b3526af))
* **fleet-secrets:** add Import from stack action to bundle editor ([#1115](https://github.com/Studio-Saelix/sencho/issues/1115)) ([e3e5943](https://github.com/Studio-Saelix/sencho/commit/e3e5943b57090639289a5a83431ddfb499361f9e))


### Fixed

* **fleet-secrets:** align bundle-row action aria-label with icon ("Send") ([#1116](https://github.com/Studio-Saelix/sencho/issues/1116)) ([96d9bb9](https://github.com/Studio-Saelix/sencho/commit/96d9bb9f764dcdf661d9436dd70cdb899bb262c0))
* **stack-update:** refresh frontend state automatically after a stack update ([#1113](https://github.com/Studio-Saelix/sencho/issues/1113)) ([6722335](https://github.com/Studio-Saelix/sencho/commit/6722335a79382e4e6674d63ca7a040f1d4d13e8d))

## [0.82.1](https://github.com/Studio-Saelix/sencho/compare/v0.82.0...v0.82.1) (2026-05-19)


### Fixed

* **spawn:** attribute ENOMEM and ENOENT-under-memory-pressure spawn failures to host OOM ([#1111](https://github.com/Studio-Saelix/sencho/issues/1111)) ([9dbce9c](https://github.com/Studio-Saelix/sencho/commit/9dbce9c3c7ec2539878bc7977b3ab31ec187b408))

## [0.82.0](https://github.com/Studio-Saelix/sencho/compare/v0.81.15...v0.82.0) (2026-05-19)


### Added

* **fleet:** add fleet-wide Docker prune to Fleet Actions ([#1104](https://github.com/Studio-Saelix/sencho/issues/1104)) ([1f67307](https://github.com/Studio-Saelix/sencho/commit/1f673073ca4f91ae69d39f84d6397250b6c9bc20))


### Fixed

* **stack-editor:** reset tab to compose.yaml when clicking edit ([#1107](https://github.com/Studio-Saelix/sencho/issues/1107)) ([3a839b7](https://github.com/Studio-Saelix/sencho/commit/3a839b781b17ef1b6d0ce2b8bb8028c423ca21ed))
* **stacks:** return 404 for nonexistent stacks on deploy/down/update (F-7) ([#1108](https://github.com/Studio-Saelix/sencho/issues/1108)) ([523ba58](https://github.com/Studio-Saelix/sencho/commit/523ba5854caddebfc082865716f00e92be7f2c3b))

## [0.81.15](https://github.com/Studio-Saelix/sencho/compare/v0.81.14...v0.81.15) (2026-05-19)


### Fixed

* **mesh:** clean up activeStreams on src socket close/error (F-10) ([#1105](https://github.com/Studio-Saelix/sencho/issues/1105)) ([0cffd60](https://github.com/Studio-Saelix/sencho/commit/0cffd60173a1f347862260062a8e107192419b7b))

## [0.81.14](https://github.com/Studio-Saelix/sencho/compare/v0.81.13...v0.81.14) (2026-05-18)


### Fixed

* **security:** suppress CVE-2026-41567 and CVE-2026-42306 against vendored docker-compose moby library (VEX) ([#1102](https://github.com/Studio-Saelix/sencho/issues/1102)) ([596cce3](https://github.com/Studio-Saelix/sencho/commit/596cce35070c1bc868129236831992904c178256))

## [0.81.13](https://github.com/Studio-Saelix/sencho/compare/v0.81.12...v0.81.13) (2026-05-18)


### Fixed

* **mesh:** probe upstream synchronously in route diagnostic (F-11) ([#1100](https://github.com/Studio-Saelix/sencho/issues/1100)) ([c460bb8](https://github.com/Studio-Saelix/sencho/commit/c460bb87a87cb4a39db11c6cec2ca9f1ffbb956f))

## [0.81.12](https://github.com/Studio-Saelix/sencho/compare/v0.81.11...v0.81.12) (2026-05-18)


### Fixed

* **mesh:** surface stopped-stack opt-ins on routing node cards ([#1098](https://github.com/Studio-Saelix/sencho/issues/1098)) ([554f662](https://github.com/Studio-Saelix/sencho/commit/554f6625637c60562b0c5fc3858aa965acd60bb5))

## [0.81.11](https://github.com/Studio-Saelix/sencho/compare/v0.81.10...v0.81.11) (2026-05-18)


### Fixed

* **mesh:** cascade opt-out when a stack is deleted (F-1 / F-14) ([#1096](https://github.com/Studio-Saelix/sencho/issues/1096)) ([9f238e1](https://github.com/Studio-Saelix/sencho/commit/9f238e187c228c717eef0e237339fb649b2b040f))

## [0.81.10](https://github.com/Studio-Saelix/sencho/compare/v0.81.9...v0.81.10) (2026-05-18)


### Fixed

* **mesh:** route peer→central traffic over the existing forward WS ([#1094](https://github.com/Studio-Saelix/sencho/issues/1094)) ([f6e4253](https://github.com/Studio-Saelix/sencho/commit/f6e42535c8acda6e06facadf1fc5f41e00cd9a93))

## [0.81.9](https://github.com/Studio-Saelix/sencho/compare/v0.81.8...v0.81.9) (2026-05-18)


### Fixed

* **http:** strip zstd from Accept-Encoding so compression sets Content-Encoding ([#1092](https://github.com/Studio-Saelix/sencho/issues/1092)) ([ed49ed6](https://github.com/Studio-Saelix/sencho/commit/ed49ed6165f33426064eb3e1d04f59b93eec0419))

## [0.81.8](https://github.com/Studio-Saelix/sencho/compare/v0.81.7...v0.81.8) (2026-05-17)


### Fixed

* **mesh:** recompose previously-meshed containers when alias set changes ([#1090](https://github.com/Studio-Saelix/sencho/issues/1090)) ([1d7418a](https://github.com/Studio-Saelix/sencho/commit/1d7418a233796f61efc4739cd358298ab71f6438))

## [0.81.7](https://github.com/Studio-Saelix/sencho/compare/v0.81.6...v0.81.7) (2026-05-17)


### Fixed

* **mesh:** surface data-plane failures in health, meta, and Routing tab ([#1088](https://github.com/Studio-Saelix/sencho/issues/1088)) ([578cac8](https://github.com/Studio-Saelix/sencho/commit/578cac89da005b57085d6ab4addbeee15d4ff17a))

## [0.81.6](https://github.com/Studio-Saelix/sencho/compare/v0.81.5...v0.81.6) (2026-05-17)


### Fixed

* **mesh:** close data-plane race that dropped early TcpData frames ([#1086](https://github.com/Studio-Saelix/sencho/issues/1086)) ([a318e6b](https://github.com/Studio-Saelix/sencho/commit/a318e6b3c17a9aed734d8a8f5e309cc50b571ca3))

## [0.81.5](https://github.com/Studio-Saelix/sencho/compare/v0.81.4...v0.81.5) (2026-05-17)


### Fixed

* **mesh:** cascade override regen across all meshed nodes on opt-in/opt-out ([#1079](https://github.com/Studio-Saelix/sencho/issues/1079)) ([a32183d](https://github.com/Studio-Saelix/sencho/commit/a32183d198e11ffa23bf26d3803129e2ee843962))
* **stacks:** prevent right-side clipping in Create Stack modal ([#1081](https://github.com/Studio-Saelix/sencho/issues/1081)) ([24155ca](https://github.com/Studio-Saelix/sencho/commit/24155cad664e8b36d6f44ce0649ce1b72187ecc3))

## [0.81.4](https://github.com/Studio-Saelix/sencho/compare/v0.81.3...v0.81.4) (2026-05-17)


### Fixed

* **mesh:** gate Trigger 2 re-bootstrap on actual api_token change ([#1076](https://github.com/Studio-Saelix/sencho/issues/1076)) ([9aaa857](https://github.com/Studio-Saelix/sencho/commit/9aaa8573c0ecceade58a613c209effeab52aeec0))
* **mesh:** name actual bridge kind in proxy-bridge rejection ([#1075](https://github.com/Studio-Saelix/sencho/issues/1075)) ([7e3e221](https://github.com/Studio-Saelix/sencho/commit/7e3e22138bb7110d9316dfe67fd2dadb6b84bc66))
* **mesh:** persist PilotMetrics counters across central restart ([#1078](https://github.com/Studio-Saelix/sencho/issues/1078)) ([6b72859](https://github.com/Studio-Saelix/sencho/commit/6b728599c471034761d6b3e48772eedc899d08eb))

## [0.81.3](https://github.com/Studio-Saelix/sencho/compare/v0.81.2...v0.81.3) (2026-05-17)


### Fixed

* **mesh:** persist rotated handshake when peer bridge owns reverse-dialer slot ([#1073](https://github.com/Studio-Saelix/sencho/issues/1073)) ([3a20105](https://github.com/Studio-Saelix/sencho/commit/3a20105a337c5ec29bf6de36c3cfe8043c463ac1))

## [0.81.2](https://github.com/Studio-Saelix/sencho/compare/v0.81.1...v0.81.2) (2026-05-17)


### Fixed

* **mesh:** peer-initiated callback bridge installs reverse dialer ([#1071](https://github.com/Studio-Saelix/sencho/issues/1071)) ([0b4cf90](https://github.com/Studio-Saelix/sencho/commit/0b4cf90bf1175c0c3e813724a5a95c02e445fe8f))
* **security-ui:** expose Community-tier scan surfaces per PR [#930](https://github.com/Studio-Saelix/sencho/issues/930) ([#1070](https://github.com/Studio-Saelix/sencho/issues/1070)) ([6354cb3](https://github.com/Studio-Saelix/sencho/commit/6354cb33870481311a453a525071991128d8d15f))

## [0.81.1](https://github.com/Studio-Saelix/sencho/compare/v0.81.0...v0.81.1) (2026-05-16)


### Fixed

* **mesh:** skip peer-side recovery in openCrossNode on central instances ([#1068](https://github.com/Studio-Saelix/sencho/issues/1068)) ([54d84a7](https://github.com/Studio-Saelix/sencho/commit/54d84a7edb50959b7ca1906611d10bf3fb77bec8))

## [0.81.0](https://github.com/Studio-Saelix/sencho/compare/v0.80.0...v0.81.0) (2026-05-16)


### Added

* **mesh:** symmetric WS dial for proxy-mode mesh peers ([#1066](https://github.com/Studio-Saelix/sencho/issues/1066)) ([cf618dd](https://github.com/Studio-Saelix/sencho/commit/cf618dd866e5fe48d6dce8db2c18b54a6b089618))

## [0.80.0](https://github.com/Studio-Saelix/sencho/compare/v0.79.0...v0.80.0) (2026-05-15)


### Added

* **fleet:** add node management actions to Fleet Overview ([#1064](https://github.com/Studio-Saelix/sencho/issues/1064)) ([16774ae](https://github.com/Studio-Saelix/sencho/commit/16774ae51518bbfd545aeaff2eba3f0b0fac7b4f))

## [0.79.0](https://github.com/Studio-Saelix/sencho/compare/v0.78.1...v0.79.0) (2026-05-15)


### Added

* **api-tokens:** switch to sen_sk_ prefixed opaque keys ([#1062](https://github.com/Studio-Saelix/sencho/issues/1062)) ([d882f22](https://github.com/Studio-Saelix/sencho/commit/d882f223f4ad1cad37ffda24d697e02351ba5b1f))

## [0.78.1](https://github.com/Studio-Saelix/sencho/compare/v0.78.0...v0.78.1) (2026-05-15)


### Fixed

* **mesh:** persist proxy-tunnel self-id across bridge teardown ([#1060](https://github.com/Studio-Saelix/sencho/issues/1060)) ([f63ffdd](https://github.com/Studio-Saelix/sencho/commit/f63ffdd0989e5cce985869b653523d5e6d832897))

## [0.78.0](https://github.com/Studio-Saelix/sencho/compare/v0.77.1...v0.78.0) (2026-05-15)


### Added

* **fleet:** multi-mode topology with label grouping and persisted positions ([#1054](https://github.com/Studio-Saelix/sencho/issues/1054)) ([2e82eb4](https://github.com/Studio-Saelix/sencho/commit/2e82eb44fec48c33c73cd10e030c4b27010b4824))
* **mesh:** add topology graph view and per-stack drill sheet ([#1052](https://github.com/Studio-Saelix/sencho/issues/1052)) ([9e4b969](https://github.com/Studio-Saelix/sencho/commit/9e4b969dfb3513947a76b37e9f05a750741e1def))


### Fixed

* **mesh:** poll topology data and tighten stack-membership equality ([#1059](https://github.com/Studio-Saelix/sencho/issues/1059)) ([3323a59](https://github.com/Studio-Saelix/sencho/commit/3323a59003eab4b067d61861a1f91d63e8f1101e))
* **mesh:** proxy peer learns its central-namespace nodeId at tunnel upgrade ([#1055](https://github.com/Studio-Saelix/sencho/issues/1055)) ([6185206](https://github.com/Studio-Saelix/sencho/commit/6185206323c7f6b1b89c1c7f899d1e92518d0974))
* **mesh:** reject opt-in when every service has empty ports ([#1056](https://github.com/Studio-Saelix/sencho/issues/1056)) ([3d5f0ff](https://github.com/Studio-Saelix/sencho/commit/3d5f0ffacdc3deecfecbea1e9766c68e27b2aa16))
* **mesh:** testUpstream dials via ensureBridge so proxy-mode targets are probeable ([#1057](https://github.com/Studio-Saelix/sencho/issues/1057)) ([489aab4](https://github.com/Studio-Saelix/sencho/commit/489aab451691d95bdc1b2c4cd8f5f14a17b9aebb))
* **ui:** close user dropdown after clicking menu actions ([#1058](https://github.com/Studio-Saelix/sencho/issues/1058)) ([13e4edc](https://github.com/Studio-Saelix/sencho/commit/13e4edc1e2537d944d6f5669d668d18a7de140b1))

## [0.77.1](https://github.com/Studio-Saelix/sencho/compare/v0.77.0...v0.77.1) (2026-05-15)


### Fixed

* **mesh:** accept node_proxy at the proxy-tunnel WS upgrade ([#1050](https://github.com/Studio-Saelix/sencho/issues/1050)) ([946db9d](https://github.com/Studio-Saelix/sencho/commit/946db9df5251d4b437dec3847fce4f32ddc84283))

## [0.77.0](https://github.com/Studio-Saelix/sencho/compare/v0.76.9...v0.77.0) (2026-05-15)


### Added

* **mesh:** route mesh traffic over Distributed API remotes ([#1048](https://github.com/Studio-Saelix/sencho/issues/1048)) ([a38a3e0](https://github.com/Studio-Saelix/sencho/commit/a38a3e022696019e6aa529f10fbffc27b1347c53))

## [0.76.9](https://github.com/Studio-Saelix/sencho/compare/v0.76.8...v0.76.9) (2026-05-14)


### Fixed

* **fleet:** show capabilities, version, metrics, and stacks for pilot-agent nodes ([#1044](https://github.com/Studio-Saelix/sencho/issues/1044)) ([8dd0fce](https://github.com/Studio-Saelix/sencho/commit/8dd0fce621496be788f14242a4dab9cd478b0082))
* harden auto-heal policies ([#1042](https://github.com/Studio-Saelix/sencho/issues/1042)) ([e7a3b54](https://github.com/Studio-Saelix/sencho/commit/e7a3b544c0964362649054c5625430a9a9c5c370))
* harden git source webhooks ([#1033](https://github.com/Studio-Saelix/sencho/issues/1033)) ([c31d48b](https://github.com/Studio-Saelix/sencho/commit/c31d48b93349e1500f1669112cf21885a38aa28d))
* harden stack label permissions ([#1036](https://github.com/Studio-Saelix/sencho/issues/1036)) ([b523230](https://github.com/Studio-Saelix/sencho/commit/b52323036b6d399d81d3a5c4cf519368c627a9ab))
* harden stack management operations ([#1046](https://github.com/Studio-Saelix/sencho/issues/1046)) ([5461bc3](https://github.com/Studio-Saelix/sencho/commit/5461bc316bdb993f2cf0efb6897091cf15320501))
* harden vulnerability scan scheduling ([#1035](https://github.com/Studio-Saelix/sencho/issues/1035)) ([328a984](https://github.com/Studio-Saelix/sencho/commit/328a98439dd75134ac13402599ee3ea9ec2f756b))
* **monitor:** parallelize per-container stats fetch in evaluation cycle ([#1045](https://github.com/Studio-Saelix/sencho/issues/1045)) ([2dda1be](https://github.com/Studio-Saelix/sencho/commit/2dda1bee1fb46e6a0adc83a23f8cb415f7871f9b))
* **schedules:** align Schedules surface with backend tier gate for Skipper admins ([#1047](https://github.com/Studio-Saelix/sencho/issues/1047)) ([44e40af](https://github.com/Studio-Saelix/sencho/commit/44e40afb6205b0cce42b5998ef0488e51411f533))

## [0.76.8](https://github.com/Studio-Saelix/sencho/compare/v0.76.7...v0.76.8) (2026-05-12)


### Fixed

* bump protobufjs to clear npm audit high-severity advisories ([#1031](https://github.com/Studio-Saelix/sencho/issues/1031)) ([668474e](https://github.com/Studio-Saelix/sencho/commit/668474e9a8110626ca1cb0dd82f707af9689af08))
* harden atomic deployment rollback ([#1029](https://github.com/Studio-Saelix/sencho/issues/1029)) ([74ae2ce](https://github.com/Studio-Saelix/sencho/commit/74ae2ce0c698ee506a0b4c835aecc1eeb40518a2))
* harden blueprint deployment guardrails ([#1027](https://github.com/Studio-Saelix/sencho/issues/1027)) ([19cdb36](https://github.com/Studio-Saelix/sencho/commit/19cdb3681df2803d50be628f30258768f7639a56))
* harden deploy enforcement paths ([#1030](https://github.com/Studio-Saelix/sencho/issues/1030)) ([b1c5fe8](https://github.com/Studio-Saelix/sencho/commit/b1c5fe8391b8415283130d9451ba138fff7569eb))
* harden stack file explorer operations ([#1028](https://github.com/Studio-Saelix/sencho/issues/1028)) ([69b6ac1](https://github.com/Studio-Saelix/sencho/commit/69b6ac1f3bc172b0d636cc443460acec521a23e2))

## [0.76.7](https://github.com/Studio-Saelix/sencho/compare/v0.76.6...v0.76.7) (2026-05-10)


### Fixed

* **mesh:** enumerate stacks on remote pilot nodes for opt-in sheet ([#1025](https://github.com/Studio-Saelix/sencho/issues/1025)) ([b8af40d](https://github.com/Studio-Saelix/sencho/commit/b8af40d2b4f8d3e8f8b7ad79b764cc5d76846e5b))

## [0.76.6](https://github.com/Studio-Saelix/sencho/compare/v0.76.5...v0.76.6) (2026-05-10)


### Fixed

* **mesh:** fix pilot handleAccept dispatch by deriving self nodeId from enrollment token ([#1023](https://github.com/Studio-Saelix/sencho/issues/1023)) ([41a1df2](https://github.com/Studio-Saelix/sencho/commit/41a1df279d2fbc64637ac05c50141f60b7fb791c))

## [0.76.5](https://github.com/Studio-Saelix/sencho/compare/v0.76.4...v0.76.5) (2026-05-10)


### Fixed

* **mesh:** push alias port map to pilot so reverse-direction forwarder binds listeners ([#1021](https://github.com/Studio-Saelix/sencho/issues/1021)) ([6ac7da9](https://github.com/Studio-Saelix/sencho/commit/6ac7da978c05e93b1239034b6f4ccdcfeb0f5256))

## [0.76.4](https://github.com/Studio-Saelix/sencho/compare/v0.76.3...v0.76.4) (2026-05-10)


### Fixed

* **mesh:** apply D-1 pushed override on pilot deploys via file-presence fallback ([#1019](https://github.com/Studio-Saelix/sencho/issues/1019)) ([c12b3ba](https://github.com/Studio-Saelix/sencho/commit/c12b3ba995a425cc3ba375432a32f7a0a1a4b0b6))

## [0.76.3](https://github.com/Studio-Saelix/sencho/compare/v0.76.2...v0.76.3) (2026-05-09)


### Fixed

* **mesh:** derive override services from compose file and surface cross-node dispatch ([#1017](https://github.com/Studio-Saelix/sencho/issues/1017)) ([2d9e4d0](https://github.com/Studio-Saelix/sencho/commit/2d9e4d0480328a18629a577542439d978ecd0484))

## [0.76.2](https://github.com/Studio-Saelix/sencho/compare/v0.76.1...v0.76.2) (2026-05-09)


### Fixed

* **mesh:** operator-triggered override regen and boot lifecycle hardening ([#1016](https://github.com/Studio-Saelix/sencho/issues/1016)) ([7cca68f](https://github.com/Studio-Saelix/sencho/commit/7cca68f84a1b92c8c972f6c55ce2b215ec882f17))
* **mesh:** trust central for cross-node dial auth and regenerate overrides at boot ([#1014](https://github.com/Studio-Saelix/sencho/issues/1014)) ([0947a80](https://github.com/Studio-Saelix/sencho/commit/0947a80cda8d1767c74fdc94f49b06eaa6a07496))

## [0.76.1](https://github.com/Studio-Saelix/sencho/compare/v0.76.0...v0.76.1) (2026-05-09)


### Fixed

* **fleet:** drop tier gate from stack and container list endpoints ([#1012](https://github.com/Studio-Saelix/sencho/issues/1012)) ([693f9b4](https://github.com/Studio-Saelix/sencho/commit/693f9b4495bf7bffa805b6d2f0459aa4fdc70908))

## [0.76.0](https://github.com/Studio-Saelix/sencho/compare/v0.75.1...v0.76.0) (2026-05-09)


### ⚠ BREAKING CHANGES

* **mesh:** the operator's `docker-compose.yml` no longer uses `network_mode: host`. After upgrading, redeploy any meshed stacks once so they pick up the new IP-based override and join `sencho_mesh`.

### Added

* **mesh:** replace host-mode with shared sencho_mesh Docker network ([#1009](https://github.com/Studio-Saelix/sencho/issues/1009)) ([23bbee4](https://github.com/Studio-Saelix/sencho/commit/23bbee4f45ea08d133b5249a537e978fb94ad1b4))
* **nodes:** hide hub-only views when active node is remote ([#1007](https://github.com/Studio-Saelix/sencho/issues/1007)) ([ccad5c9](https://github.com/Studio-Saelix/sencho/commit/ccad5c925b419d1d3915fccb53bdd3fad580b657))

## [0.75.1](https://github.com/Studio-Saelix/sencho/compare/v0.75.0...v0.75.1) (2026-05-08)


### Fixed

* **mesh:** bind every alias port on every node, not just local-owned ([#1004](https://github.com/Studio-Saelix/sencho/issues/1004)) ([10a469e](https://github.com/Studio-Saelix/sencho/commit/10a469ecb4c208e2b0b3aacf66e04772fa0d4aa9))

## [0.75.0](https://github.com/Studio-Saelix/sencho/compare/v0.74.4...v0.75.0) (2026-05-08)


### Added

* drop stack labels and network topology to Community tier ([#995](https://github.com/Studio-Saelix/sencho/issues/995)) ([1803512](https://github.com/Studio-Saelix/sencho/commit/1803512f706cde7d46dc12e5173ece3d1355880c))
* **mesh:** bidirectional routing via tcp_open_reverse and central relay ([#1003](https://github.com/Studio-Saelix/sencho/issues/1003)) ([567e524](https://github.com/Studio-Saelix/sencho/commit/567e52445099cbd8e13b8386ed94c14e37cb1fc9))
* **mesh:** collapse sidecar into Sencho process via in-process forwarder ([#1000](https://github.com/Studio-Saelix/sencho/issues/1000)) ([f599110](https://github.com/Studio-Saelix/sencho/commit/f599110386e744c4329887237a210a2f6597addd))

## [0.74.4](https://github.com/Studio-Saelix/sencho/compare/v0.74.3...v0.74.4) (2026-05-08)


### Fixed

* **pilot:** generate auth_jwt_secret on pilot-agent boot ([#997](https://github.com/Studio-Saelix/sencho/issues/997)) ([3d1cf0f](https://github.com/Studio-Saelix/sencho/commit/3d1cf0f8f15f6d331f55bad88264ac5ab952f83c))

## [0.74.3](https://github.com/Studio-Saelix/sencho/compare/v0.74.2...v0.74.3) (2026-05-08)


### Fixed

* **mesh:** treat local-node aliases as always reachable in diagnostics ([#994](https://github.com/Studio-Saelix/sencho/issues/994)) ([34581e5](https://github.com/Studio-Saelix/sencho/commit/34581e55e76b98152531909b46ffcb80529f54f0))

## [0.74.2](https://github.com/Studio-Saelix/sencho/compare/v0.74.1...v0.74.2) (2026-05-08)


### Fixed

* **mesh:** inspect remote stacks via HTTP proxy not Dockerode ([#992](https://github.com/Studio-Saelix/sencho/issues/992)) ([e176ae9](https://github.com/Studio-Saelix/sencho/commit/e176ae9f178335dcf3eadda4d2780b2465115026))

## [0.74.1](https://github.com/Studio-Saelix/sencho/compare/v0.74.0...v0.74.1) (2026-05-08)


### Fixed

* **pilot:** inject loopback auth on agent-side HTTP/WS forwarding ([#990](https://github.com/Studio-Saelix/sencho/issues/990)) ([a6d3e5d](https://github.com/Studio-Saelix/sencho/commit/a6d3e5d0521d0bf09f2f917ac3290e8eed2a39e0))

## [0.74.0](https://github.com/Studio-Saelix/sencho/compare/v0.73.0...v0.74.0) (2026-05-08)


### Added

* **app-store:** show inline port-conflict message on deploy sheet ([#984](https://github.com/Studio-Saelix/sencho/issues/984)) ([86abd90](https://github.com/Studio-Saelix/sencho/commit/86abd901f6d663cdd456632921ccb1b2ad614fcd))


### Fixed

* **pilot:** harden outbound reverse-tunnel against resource exhaustion ([#979](https://github.com/Studio-Saelix/sencho/issues/979)) ([3d94896](https://github.com/Studio-Saelix/sencho/commit/3d9489648ec9d2b13051edd07f2f13982914a095))
* **pilot:** stop silently swallowing fs errors in agent token helpers ([#985](https://github.com/Studio-Saelix/sencho/issues/985)) ([8f13a7f](https://github.com/Studio-Saelix/sencho/commit/8f13a7faf3ad51ead5c288475fbe437c2061a03a))
* **proxy:** route pilot-agent HTTP via PilotTunnelBridge loopback ([#989](https://github.com/Studio-Saelix/sencho/issues/989)) ([94ce7c7](https://github.com/Studio-Saelix/sencho/commit/94ce7c71d24bc16656ca1bb8167f469b3ffd33b5))
* **templates:** align App Store deploy gate with stack:create permission ([#986](https://github.com/Studio-Saelix/sencho/issues/986)) ([3112f58](https://github.com/Studio-Saelix/sencho/commit/3112f58a883e764e631b48d83cd538a9389463ab))

## [0.73.0](https://github.com/Studio-Saelix/sencho/compare/v0.72.0...v0.73.0) (2026-05-07)


### Added

* **fleet-sync:** anchor replicas to a control fingerprint ([#968](https://github.com/Studio-Saelix/sencho/issues/968)) ([f3757b4](https://github.com/Studio-Saelix/sencho/commit/f3757b43c6b30a72d5ed4cf26a69873920b1aa45))
* **fleet-sync:** hide other replicas' identity-scoped policies on a replica ([#973](https://github.com/Studio-Saelix/sencho/issues/973)) ([a284732](https://github.com/Studio-Saelix/sencho/commit/a284732a95675234c316e60a819ee0a02cbd9bc9))
* **fleet-sync:** replica self-demote endpoint and role UX ([#969](https://github.com/Studio-Saelix/sencho/issues/969)) ([7dde257](https://github.com/Studio-Saelix/sencho/commit/7dde257e1fab84bbfcafbcd78ec2ba4597781398))
* **fleet-sync:** retry failed pushes and backfill on add-node ([#970](https://github.com/Studio-Saelix/sencho/issues/970)) ([33b15d6](https://github.com/Studio-Saelix/sencho/commit/33b15d6cbacdc95656da696f50c29323d704a319))
* **security:** audit-hardening pass for fleet-replicated CVE suppressions ([#976](https://github.com/Studio-Saelix/sencho/issues/976)) ([060bc30](https://github.com/Studio-Saelix/sencho/commit/060bc300ac36a00eb38a2492717b89546d4c7b76))
* **security:** audit-hardening pass for secret and misconfiguration scanning ([#977](https://github.com/Studio-Saelix/sencho/issues/977)) ([887d8fb](https://github.com/Studio-Saelix/sencho/commit/887d8fb8f0b91451d1c8a61bef5056a5f3b25ad7))


### Fixed

* **fleet-sync:** clear stale policy_evaluation on replica sync swap ([#971](https://github.com/Studio-Saelix/sencho/issues/971)) ([f8c75aa](https://github.com/Studio-Saelix/sencho/commit/f8c75aa6cdba6d4d189281ce1b5466dec949ed16))
* **fleet-sync:** hygiene pass on receiver behavior and cleanup ([#972](https://github.com/Studio-Saelix/sencho/issues/972)) ([4007709](https://github.com/Studio-Saelix/sencho/commit/4007709590a2b2d54bdc1102e7f20a72655a7ff4))
* **fleet-sync:** version the wire protocol and serialize per-node pushes ([#967](https://github.com/Studio-Saelix/sencho/issues/967)) ([27660f6](https://github.com/Studio-Saelix/sencho/commit/27660f622bce5c99ed279bdab63017ff746808db))

## [0.72.0](https://github.com/Studio-Saelix/sencho/compare/v0.71.2...v0.72.0) (2026-05-07)


### Added

* **blueprints:** capture compose snapshot before stateful eviction ([#957](https://github.com/Studio-Saelix/sencho/issues/957)) ([7fe90d9](https://github.com/Studio-Saelix/sencho/commit/7fe90d9f3a8c68eb8dcb1a90ca5106524eb7a6fa))
* **fleet:** add Federation tab with cordon and pin policy (Admiral) ([#964](https://github.com/Studio-Saelix/sencho/issues/964)) ([52b4675](https://github.com/Studio-Saelix/sencho/commit/52b46753afde31c094f238dc27f1d80ba5e34c18))
* **fleet:** add Fleet Actions tab for cross-node bulk operations ([#963](https://github.com/Studio-Saelix/sencho/issues/963)) ([77d5ff5](https://github.com/Studio-Saelix/sencho/commit/77d5ff58d37a4442be35f45651e4fa495189a4e6))
* **fleet:** Fleet Secrets tab with env-var bundles (v1 MVP) ([#965](https://github.com/Studio-Saelix/sencho/issues/965)) ([0f0b22c](https://github.com/Studio-Saelix/sencho/commit/0f0b22c51aaf4033bab5f6de3ce33fc249b3817b))
* **frontend:** add SystemSheet primitive and migrate mesh sheets to §9.11 chrome ([#960](https://github.com/Studio-Saelix/sencho/issues/960)) ([4d9617a](https://github.com/Studio-Saelix/sencho/commit/4d9617a5c6a57d873f5438bec665a5e6dd6dcbbb))
* **frontend:** migrate resources, app store, and blueprint sheets to §9.11 chrome ([#962](https://github.com/Studio-Saelix/sencho/issues/962)) ([907e742](https://github.com/Studio-Saelix/sencho/commit/907e7427e5983a3a59d7dad831d2bb4e1302f15f))
* **frontend:** SystemSheet §9.11 — security and scheduled sheets (PR 2/3) ([#961](https://github.com/Studio-Saelix/sencho/issues/961)) ([3ec0a45](https://github.com/Studio-Saelix/sencho/commit/3ec0a45ff0cfeb781796cd81512f2521a238bac8))

## [0.71.2](https://github.com/Studio-Saelix/sencho/compare/v0.71.1...v0.71.2) (2026-05-06)


### Fixed

* harden MonitorService evaluation loop ([#942](https://github.com/Studio-Saelix/sencho/issues/942)) ([13cb49c](https://github.com/Studio-Saelix/sencho/commit/13cb49ce3ab59eeb649362a5a88c180276284762))

## [0.71.1](https://github.com/Studio-Saelix/sencho/compare/v0.71.0...v0.71.1) (2026-05-06)


### Fixed

* suppress ERROR logging for missing .env files in image update scan ([#936](https://github.com/Studio-Saelix/sencho/issues/936)) ([72b6cdd](https://github.com/Studio-Saelix/sencho/commit/72b6cdd0a3afe72ec332c71a2f45000aee957adc))

## [0.71.0](https://github.com/Studio-Saelix/sencho/compare/v0.70.0...v0.71.0) (2026-05-06)


### Added

* **dashboard:** replace duplicate Recent Activity card with Fleet Heartbeat / Stack Restart Map ([#932](https://github.com/Studio-Saelix/sencho/issues/932)) ([775fab7](https://github.com/Studio-Saelix/sencho/commit/775fab7d6451c306e9930bf2c8ec486add8f6a87))
* implement file explorer context menus and dialogs ([#934](https://github.com/Studio-Saelix/sencho/issues/934)) ([0c3ce4b](https://github.com/Studio-Saelix/sencho/commit/0c3ce4b22431441943ea7feff1fdbb996d77befb))
* open security basics, manual fleet ops, and basic fleet management to Community ([#930](https://github.com/Studio-Saelix/sencho/issues/930)) ([ecf4dd5](https://github.com/Studio-Saelix/sencho/commit/ecf4dd5d52bb56521e9196d621ddb63c25daf67f))
* **sidebar:** filter toggle + action button padding fix ([#933](https://github.com/Studio-Saelix/sencho/issues/933)) ([166ba21](https://github.com/Studio-Saelix/sencho/commit/166ba21ff195315e80352a3d199808c6a6071d77))


### Fixed

* add CodeQL barrier model for sanitizeForLog against log injection ([#935](https://github.com/Studio-Saelix/sencho/issues/935)) ([0dcf309](https://github.com/Studio-Saelix/sencho/commit/0dcf309c48e527bbe82237ba0e440c86c9b4c8fb))

## [0.70.0](https://github.com/Studio-Saelix/sencho/compare/v0.69.3...v0.70.0) (2026-05-05)


### Added

* **resources:** add image details sheet with layer history ([#925](https://github.com/Studio-Saelix/sencho/issues/925)) ([7e5dc2d](https://github.com/Studio-Saelix/sencho/commit/7e5dc2d9ea4f1e1e458516b5bb4fc62a797c8ee3))
* **volumes:** add read-only volume browser ([#926](https://github.com/Studio-Saelix/sencho/issues/926)) ([49d775c](https://github.com/Studio-Saelix/sencho/commit/49d775c61feece1ca4c5f1ea649df857a4b3d226))


### Fixed

* **frontend:** align sidebar brand box with top nav chrome ([#928](https://github.com/Studio-Saelix/sencho/issues/928)) ([6f45a3b](https://github.com/Studio-Saelix/sencho/commit/6f45a3b7880caecbb693ee8c47f282a90435f378))
* **frontend:** tighten bell notification panel toolbar ([#929](https://github.com/Studio-Saelix/sencho/issues/929)) ([a85af40](https://github.com/Studio-Saelix/sencho/commit/a85af40cb5ed572564308bb2791ff1ba3bef0863))

## [0.69.3](https://github.com/Studio-Saelix/sencho/compare/v0.69.2...v0.69.3) (2026-05-04)


### Fixed

* **ci:** create posts dir before writing scaffold output ([#914](https://github.com/Studio-Saelix/sencho/issues/914)) ([73b5ca7](https://github.com/Studio-Saelix/sencho/commit/73b5ca7b34bbb3900792dbf825f2ef6357d388c0))

## [0.69.2](https://github.com/Studio-Saelix/sencho/compare/v0.69.1...v0.69.2) (2026-05-04)


### Fixed

* **backend:** batch-insert stress test metrics to avoid per-insert fsync timeout ([#911](https://github.com/Studio-Saelix/sencho/issues/911)) ([2e8ca76](https://github.com/Studio-Saelix/sencho/commit/2e8ca761038d8787d16b9670a327b668f436fc8b))

## [0.69.1](https://github.com/Studio-Saelix/sencho/compare/v0.69.0...v0.69.1) (2026-05-04)


### Fixed

* **frontend:** remove unused MockWS constructor param ([#904](https://github.com/Studio-Saelix/sencho/issues/904)) ([34fcb25](https://github.com/Studio-Saelix/sencho/commit/34fcb2591f94d8d94f25e143e0e18559d9a9df02))

## [0.69.0](https://github.com/Studio-Saelix/sencho/compare/v0.68.0...v0.69.0) (2026-05-03)


### Added

* **license:** simplify community license page to activate form + pricing link ([#892](https://github.com/Studio-Saelix/sencho/issues/892)) ([c06f937](https://github.com/Studio-Saelix/sencho/commit/c06f937d8d0452ea93c726cb718ce628aaa3013a))
* **ui:** add ConfirmModal, migrate EditorLayout inline confirms ([#897](https://github.com/Studio-Saelix/sencho/issues/897)) ([d492594](https://github.com/Studio-Saelix/sencho/commit/d492594189640c67c85c3b2d341bf03edf5c430f))
* **ui:** add Modal chrome primitives, migrate file dialogs ([#896](https://github.com/Studio-Saelix/sencho/issues/896)) ([898ef1a](https://github.com/Studio-Saelix/sencho/commit/898ef1a0e8e941d2eba722891c0f4720211898bb))
* **ui:** hide paid features from community-tier dashboard ([#891](https://github.com/Studio-Saelix/sencho/issues/891)) ([1f8ce77](https://github.com/Studio-Saelix/sencho/commit/1f8ce773ff7d42240605d4d4f8dd93c7f3c59760))


### Fixed

* **ci:** disable CLA Assistant PR auto-lock so release-please can comment ([#890](https://github.com/Studio-Saelix/sencho/issues/890)) ([b9ada7f](https://github.com/Studio-Saelix/sencho/commit/b9ada7f50bea3f2f74c8dfeb582a86fbe29d9f4c))

## [0.68.0](https://github.com/Studio-Saelix/sencho/compare/v0.67.1...v0.68.0) (2026-05-02)


### Added

* **meta:** gate deferred Fleet tabs behind SENCHO_EXPERIMENTAL flag ([#886](https://github.com/Studio-Saelix/sencho/issues/886)) ([d69fb9f](https://github.com/Studio-Saelix/sencho/commit/d69fb9f1da24ef257d58ce9682fad308be2f86ff))

## [0.67.1](https://github.com/Studio-Saelix/sencho/compare/v0.67.0...v0.67.1) (2026-05-02)


### Fixed

* **ci:** tolerate empty inline blogPosts array in scaffold script ([#883](https://github.com/Studio-Saelix/sencho/issues/883)) ([87abfc2](https://github.com/Studio-Saelix/sencho/commit/87abfc2ec0a2165aa86d00bcde286660533e99e9))

## [0.67.0](https://github.com/Studio-Saelix/sencho/compare/v0.66.2...v0.67.0) (2026-05-02)


### Added

* **entitlements:** wire dynamic import of @studio-saelix/sencho-pro ([#880](https://github.com/Studio-Saelix/sencho/issues/880)) ([cffb481](https://github.com/Studio-Saelix/sencho/commit/cffb481106702b03415445ad35b17ec159ed772a))
* **frontend:** add LazyBoundary for chunk-load failure recovery ([#875](https://github.com/Studio-Saelix/sencho/issues/875)) ([b843b89](https://github.com/Studio-Saelix/sencho/commit/b843b89ca46cef2aa93bdd3e4ec2a5f9e5e16f3f))
* **frontend:** code-split non-settings paid views and security overlay ([#872](https://github.com/Studio-Saelix/sencho/issues/872)) ([a8d1a9d](https://github.com/Studio-Saelix/sencho/commit/a8d1a9d4619a00ed1c731f90f8dcefbc7212c8f4))
* **frontend:** code-split paid-tier settings sections ([#870](https://github.com/Studio-Saelix/sencho/issues/870)) ([fd05b5e](https://github.com/Studio-Saelix/sencho/commit/fd05b5ef4b3da454540946c2920de4d769920ad3))


### Fixed

* **frontend:** replace post-dismissal blur in PaidGate / AdmiralGate with click-to-restore pill ([#874](https://github.com/Studio-Saelix/sencho/issues/874)) ([6fa0272](https://github.com/Studio-Saelix/sencho/commit/6fa0272e7999759775ba7b68a8049fd2fc62c85e))
* **frontend:** short-circuit CapabilityGate and extract shared LockCard ([#873](https://github.com/Studio-Saelix/sencho/issues/873)) ([6b74767](https://github.com/Studio-Saelix/sencho/commit/6b74767388f5d4f2737ee866f4651933f6381d87))

## [0.66.2](https://github.com/Studio-Saelix/sencho/compare/v0.66.1...v0.66.2) (2026-05-02)


### Fixed

* **license:** reject activation when LS response is missing instance.id ([#867](https://github.com/Studio-Saelix/sencho/issues/867)) ([d17562a](https://github.com/Studio-Saelix/sencho/commit/d17562ac6029c90a39a46eab72e9f5f1c1aa4c43))

## [0.66.1](https://github.com/Studio-Saelix/sencho/compare/v0.66.0...v0.66.1) (2026-05-02)


### Fixed

* **license:** verify LS store, product, and variant IDs in validate response ([#862](https://github.com/Studio-Saelix/sencho/issues/862)) ([9f9e1bd](https://github.com/Studio-Saelix/sencho/commit/9f9e1bdff0692f806c69f4831ead1aecada0cd69))

## [0.66.0](https://github.com/Studio-Saelix/sencho/compare/v0.65.1...v0.66.0) (2026-05-01)


### Added

* **blueprints:** add Fleet &gt; Deployments tab UI, node labels, and docs ([#861](https://github.com/Studio-Saelix/sencho/issues/861)) ([e5391e6](https://github.com/Studio-Saelix/sencho/commit/e5391e66cbd90027b39ab38111e6ba6b2793afdc))
* **blueprints:** backend foundation for fleet-wide compose templates ([#860](https://github.com/Studio-Saelix/sencho/issues/860)) ([685d5d7](https://github.com/Studio-Saelix/sencho/commit/685d5d729e71e6320aa015c88609b3cbda5a1f9b))
* **editor:** opt-in diff preview before save ([#855](https://github.com/Studio-Saelix/sencho/issues/855)) ([a25acbe](https://github.com/Studio-Saelix/sencho/commit/a25acbec7c1d9f933f8ebe78326f10efe79bf742))
* **fleet:** §16 orchestrator tab foundation (Deployments, Federation, Secrets) ([#856](https://github.com/Studio-Saelix/sencho/issues/856)) ([b8437e8](https://github.com/Studio-Saelix/sencho/commit/b8437e8780d6e7eeb8f9f2a9a0570e71abb700c6))
* **fleet:** sencho mesh in traffic and routing tab ([#858](https://github.com/Studio-Saelix/sencho/issues/858)) ([7663f4c](https://github.com/Studio-Saelix/sencho/commit/7663f4cd8bb3f0cba89dd994098ce0431a89b0e4))
* **pilot:** add tcp tunnel frames + mesh sidecar package ([#857](https://github.com/Studio-Saelix/sencho/issues/857)) ([6893ece](https://github.com/Studio-Saelix/sencho/commit/6893ece898f00fbacff1dd98357cb1dab7394269))
* **settings:** dress the page to match the audit ([#849](https://github.com/Studio-Saelix/sencho/issues/849)) ([eead195](https://github.com/Studio-Saelix/sencho/commit/eead1955298249e22b9444f5f1eeaeac9e0db28d))
* **sidebar:** §14 sidebar orchestration, filter chips, pinned rail, trailing column ([#850](https://github.com/Studio-Saelix/sencho/issues/850)) ([4c0efcb](https://github.com/Studio-Saelix/sencho/commit/4c0efcb9a8ffa634b376030b883af89abfd440b4))
* **sidebar:** bulk stack operations ([#854](https://github.com/Studio-Saelix/sencho/issues/854)) ([a0bf5b5](https://github.com/Studio-Saelix/sencho/commit/a0bf5b5bf5a58025db33ac54171107cad5e4d2d6))
* **stack:** per-stack activity timeline with actor attribution ([#852](https://github.com/Studio-Saelix/sencho/issues/852)) ([3e01daf](https://github.com/Studio-Saelix/sencho/commit/3e01daf76fbcfc0775555e30e99d8151959119de))

## [0.65.1](https://github.com/AnsoCode/Sencho/compare/v0.65.0...v0.65.1) (2026-04-29)


### Fixed

* **backend:** resolve ts-node dynamic import and TS2322 narrowing errors ([#839](https://github.com/AnsoCode/Sencho/issues/839)) ([7d4390a](https://github.com/AnsoCode/Sencho/commit/7d4390a7e49c3fc7631f8a32162c5d5b02cb7b43))
* **cla:** ensure signatures file has no BOM ([1f21526](https://github.com/AnsoCode/Sencho/commit/1f21526367d74d9968f0016de531c3f97f763dc5))
* **cla:** strictly enforce no-BOM UTF8 for signatures ([1a67c6c](https://github.com/AnsoCode/Sencho/commit/1a67c6c35b2c2f2d3900390dcc08235f697605a9))
* **convert:** resolve TS7016 and TS2322 for composerize dynamic import ([#837](https://github.com/AnsoCode/Sencho/issues/837)) ([219dee7](https://github.com/AnsoCode/Sencho/commit/219dee720e1f4b6435666fe710acf702621f2784))
* **docker:** upgrade CLI to v29.4.1 and Compose to v5.1.3, clear VEX ([#836](https://github.com/AnsoCode/Sencho/issues/836)) ([e124874](https://github.com/AnsoCode/Sencho/commit/e124874dac9b2c97ad0647be63d7f50316e6fb41))

## [0.65.0](https://github.com/AnsoCode/Sencho/compare/v0.64.2...v0.65.0) (2026-04-28)


### Added

* **scaffold:** fully automate release blog post publishing ([#810](https://github.com/AnsoCode/Sencho/issues/810)) ([b5acfd8](https://github.com/AnsoCode/Sencho/commit/b5acfd8f58008164c3af1f7253f8cb61347c99c3))


### Fixed

* **backend:** batch audit_log inserts into a buffered transaction ([#817](https://github.com/AnsoCode/Sencho/issues/817)) ([5cf4323](https://github.com/AnsoCode/Sencho/commit/5cf4323511eb7e1bf3640f5ceac557cb64395e5d))
* **backend:** cache global_settings reads in DatabaseService ([#814](https://github.com/AnsoCode/Sencho/issues/814)) ([836e384](https://github.com/AnsoCode/Sencho/commit/836e384d17d8e9daf7d16f900a6ed0a560c654e0))
* **backend:** lazy-load @aws-sdk/client-s3 in CloudBackupService ([#820](https://github.com/AnsoCode/Sencho/issues/820)) ([14c25a6](https://github.com/AnsoCode/Sencho/commit/14c25a6dbc908cb8de9e89199ddc3907377bf006))
* **backend:** lazy-load composerize and isomorphic-git ([#819](https://github.com/AnsoCode/Sencho/issues/819)) ([329b4ec](https://github.com/AnsoCode/Sencho/commit/329b4ec4e2f84e590f027511877ec9b5ed3d0ca7))
* **backend:** mark AWS SDK clients as optional dependencies ([#821](https://github.com/AnsoCode/Sencho/issues/821)) ([04f35fd](https://github.com/AnsoCode/Sencho/commit/04f35fdf220c8e9024875750846aed96bf4c7b09))
* **backend:** parallelize independent startup initializers ([#816](https://github.com/AnsoCode/Sencho/issues/816)) ([18cf2e6](https://github.com/AnsoCode/Sencho/commit/18cf2e65e8c4b173b1d614f52153e905b8a87ff4))
* **backend:** parallelize pruneManagedOnly removals ([#830](https://github.com/AnsoCode/Sencho/issues/830)) ([46fae21](https://github.com/AnsoCode/Sencho/commit/46fae21e67a4f0650849c45b972efbe4c84e864a))
* **backend:** replace docker system df shell-out with dockerode API ([#818](https://github.com/AnsoCode/Sencho/issues/818)) ([279ec62](https://github.com/AnsoCode/Sencho/commit/279ec62dff70cce1054df99f18160eb73d41aaac))
* **build:** enable incremental tsc ([#827](https://github.com/AnsoCode/Sencho/issues/827)) ([f4338c9](https://github.com/AnsoCode/Sencho/commit/f4338c9d6bffd8673962e8896874c69bf078762a))
* **docker:** switch builder stages to npm ci ([#822](https://github.com/AnsoCode/Sencho/issues/822)) ([eb1d627](https://github.com/AnsoCode/Sencho/commit/eb1d627096053fa3acac0576b9f66ba7d6017493))
* **fleet:** forward main node tier to remote config fetch and hide local-only fields ([#811](https://github.com/AnsoCode/Sencho/issues/811)) ([ae8211c](https://github.com/AnsoCode/Sencho/commit/ae8211c0b415ef4ac4f4968d5867e6034a8c94cb))
* **frontend:** lazy-load Monaco editor + diff editor ([#824](https://github.com/AnsoCode/Sencho/issues/824)) ([b5d038f](https://github.com/AnsoCode/Sencho/commit/b5d038f395d4909ecd1a35ad7feca65262f3fb97))
* **frontend:** lazy-load xterm chunk + addons ([#825](https://github.com/AnsoCode/Sencho/issues/825)) ([e74b4db](https://github.com/AnsoCode/Sencho/commit/e74b4db44dd327b263886440c2a54a243e2d28e8))
* **frontend:** parallelize auth bootstrap fetches ([#826](https://github.com/AnsoCode/Sencho/issues/826)) ([405f9cd](https://github.com/AnsoCode/Sencho/commit/405f9cd921f0c4868a4e2c4e774f2a598002b001))
* **frontend:** split heavyweight vendors into manual chunks ([#823](https://github.com/AnsoCode/Sencho/issues/823)) ([f5dd8af](https://github.com/AnsoCode/Sencho/commit/f5dd8af7db0f0a4d599c4f8d10c649ea96530f3e))
* **proxy:** cache LicenseService tier headers for the proxy hot path ([#815](https://github.com/AnsoCode/Sencho/issues/815)) ([61a7e43](https://github.com/AnsoCode/Sencho/commit/61a7e43d82ae181e4a506e031db60788d5971ffe))
* **test:** build baseline DB once via vitest globalSetup ([#829](https://github.com/AnsoCode/Sencho/issues/829)) ([2000653](https://github.com/AnsoCode/Sencho/commit/2000653fb4c8062063503f77815b9ad5f0804ac4))
* **test:** cap vitest fork pool at 4 workers ([#828](https://github.com/AnsoCode/Sencho/issues/828)) ([65f43b8](https://github.com/AnsoCode/Sencho/commit/65f43b803281f0743d424f2c3e0ac11df1930fbc))

## [0.64.2](https://github.com/AnsoCode/Sencho/compare/v0.64.1...v0.64.2) (2026-04-27)


### Fixed

* **backend:** use URL parser for registry scheme + template host check ([#808](https://github.com/AnsoCode/Sencho/issues/808)) ([6ac02c7](https://github.com/AnsoCode/Sencho/commit/6ac02c792a6a768091d402e6d7ceb54e208f394e))
* **deps:** bump dompurify to 3.4.0 to resolve four advisories ([#801](https://github.com/AnsoCode/Sencho/issues/801)) ([c18d369](https://github.com/AnsoCode/Sencho/commit/c18d3696e9a4f8185ccb6527a4809b0fec9160e2))

## [0.64.1](https://github.com/AnsoCode/Sencho/compare/v0.64.0...v0.64.1) (2026-04-27)


### Fixed

* **docker:** build compose plugin from ./cmd, not ./cmd/compose ([#803](https://github.com/AnsoCode/Sencho/issues/803)) ([06d9ef5](https://github.com/AnsoCode/Sencho/commit/06d9ef5904d5d75be5a7c698c0ccc8abeb477518))

## [0.64.0](https://github.com/AnsoCode/Sencho/compare/v0.63.0...v0.64.0) (2026-04-27)


### Added

* **app-store:** sort grid by stars and rotate featured weekly ([#787](https://github.com/AnsoCode/Sencho/issues/787)) ([dcf8794](https://github.com/AnsoCode/Sencho/commit/dcf8794047b1eb72d9e8c767c969d26a4168b945))
* **auto-update:** per-stack auto-update enable/disable toggle ([#771](https://github.com/AnsoCode/Sencho/issues/771)) ([af9cb0a](https://github.com/AnsoCode/Sencho/commit/af9cb0aa63f73f54fc516869a167771a1712bd9b))
* **auto-update:** show pending image updates fleet-wide on the Auto-Updates page ([#770](https://github.com/AnsoCode/Sencho/issues/770)) ([58df1a5](https://github.com/AnsoCode/Sencho/commit/58df1a50b399defd5f155d53b7d4470dfcf06031))
* change default listen port from 3000 to 1852 ([#756](https://github.com/AnsoCode/Sencho/issues/756)) ([ed553f1](https://github.com/AnsoCode/Sencho/commit/ed553f1f19fd8a7abc930fd52e2f65ea86b323fd))
* **cloud-backup:** mirror fleet snapshots to S3-compatible storage ([#782](https://github.com/AnsoCode/Sencho/issues/782)) ([03f91cd](https://github.com/AnsoCode/Sencho/commit/03f91cd5bbbf76394efb432ed177ddfc5ab554b4))
* **dashboard:** replace 24h charts with Configuration Status and Recent Activity ([#785](https://github.com/AnsoCode/Sencho/issues/785)) ([d7d8f9b](https://github.com/AnsoCode/Sencho/commit/d7d8f9bfe87ade1b19e7a0905275f873b6f1ac28))
* **deploy-logs:** opt-in deploy progress modal with structured log rows ([#779](https://github.com/AnsoCode/Sencho/issues/779)) ([dd9d338](https://github.com/AnsoCode/Sencho/commit/dd9d33813b32188027f05b7439f867ca9dd08778))
* **events:** broadcast state-invalidate on docker events so dashboard updates live ([#768](https://github.com/AnsoCode/Sencho/issues/768)) ([5c50218](https://github.com/AnsoCode/Sencho/commit/5c5021846a274c4e975ff1872e3e2a4bc445b0f6))
* **files:** per-stack file explorer ([#780](https://github.com/AnsoCode/Sencho/issues/780)) ([801a098](https://github.com/AnsoCode/Sencho/commit/801a098a5b550dbc8089117b288a0834fcfe6e95))
* **license:** replace local auto-trial with Lemon Squeezy hosted trial flow ([#755](https://github.com/AnsoCode/Sencho/issues/755)) ([d6b744e](https://github.com/AnsoCode/Sencho/commit/d6b744e8e6a55d85478b2b47f750c5098f68c59c))
* **notifications:** add structured category enum to dispatcher and history ([#774](https://github.com/AnsoCode/Sencho/issues/774)) ([44dba59](https://github.com/AnsoCode/Sencho/commit/44dba59cabc001a007d40bf5ce143f091523a6db))
* **notifications:** match routing rules by labels and categories ([#776](https://github.com/AnsoCode/Sencho/issues/776)) ([e003413](https://github.com/AnsoCode/Sencho/commit/e0034132b4251b9adc13059b3af9f90b243e3bf7))
* **scheduler:** add auto_backup, auto_stop, auto_down, auto_start and delete_after_run one-shot mode ([#777](https://github.com/AnsoCode/Sencho/issues/777)) ([abee078](https://github.com/AnsoCode/Sencho/commit/abee078741333b873abf6042f1147bcb62f49444))
* **scheduler:** support fleet-wide auto-update schedules per node ([#773](https://github.com/AnsoCode/Sencho/issues/773)) ([a74564f](https://github.com/AnsoCode/Sencho/commit/a74564fd61df0236a387d9ed67fd1180cb878dd5))
* **security:** add SBOM attestations, VEX document, and retire .trivyignore ([#790](https://github.com/AnsoCode/Sencho/issues/790)) ([3668c71](https://github.com/AnsoCode/Sencho/commit/3668c71860e49a6acb45237b7b358a32ab7e9cf5))
* **security:** rebuild Docker CLI/Compose from source, pin base image digests ([#789](https://github.com/AnsoCode/Sencho/issues/789)) ([7e4ea71](https://github.com/AnsoCode/Sencho/commit/7e4ea714c1d72dd4e63a345f2a7d73025859f1dd))
* **sidebar:** keyboard shortcuts for stack menu actions ([#729](https://github.com/AnsoCode/Sencho/issues/729)) ([1ef9658](https://github.com/AnsoCode/Sencho/commit/1ef96582e10264f0113615650a95d9d2fba6ac3e))
* **sso:** split SSO providers by delivery model across tiers ([#754](https://github.com/AnsoCode/Sencho/issues/754)) ([a502da5](https://github.com/AnsoCode/Sencho/commit/a502da54ee2d6befdbe414d54b8d8182f42cdde8))
* **stacks:** add optional volume prune to delete confirmation ([#788](https://github.com/AnsoCode/Sencho/issues/788)) ([38a9f27](https://github.com/AnsoCode/Sencho/commit/38a9f277c679cd58b26076403a923734cfa31542))
* **stacks:** add Schedule task shortcut to stack context and kebab menus ([#772](https://github.com/AnsoCode/Sencho/issues/772)) ([819d2a6](https://github.com/AnsoCode/Sencho/commit/819d2a63fcfd124609e3041f5dbae186660dd8dd))
* **stacks:** per-service start/stop/restart lifecycle actions ([#778](https://github.com/AnsoCode/Sencho/issues/778)) ([6986b92](https://github.com/AnsoCode/Sencho/commit/6986b927e301bacc78aeffa55bd250dec9647df0))


### Fixed

* **auto-update:** label same-tag rebuilds as 'Rebuild available' instead of '10.11 -&gt; 10.11' ([#766](https://github.com/AnsoCode/Sencho/issues/766)) ([584cda7](https://github.com/AnsoCode/Sencho/commit/584cda718238f379c014f686edd27b32069e52db))
* **backend:** restore remote proxy mount order before local routers ([#747](https://github.com/AnsoCode/Sencho/issues/747)) ([43a5959](https://github.com/AnsoCode/Sencho/commit/43a595905b1474908d96260f70a49dbf16812e32))
* **env:** return empty body for missing .env files; surface non-OK responses cleanly ([#767](https://github.com/AnsoCode/Sencho/issues/767)) ([a962654](https://github.com/AnsoCode/Sencho/commit/a962654a3b96e9822df2aca387d8c9e525d39e1c))
* **frontend:** clear sidebar update dot after toolbar Update click ([#763](https://github.com/AnsoCode/Sencho/issues/763)) ([5746104](https://github.com/AnsoCode/Sencho/commit/57461043b06f3c5f4f86312a93ffc7086c4db8ac))
* **frontend:** make copy buttons work over plain HTTP ([#757](https://github.com/AnsoCode/Sencho/issues/757)) ([4c35226](https://github.com/AnsoCode/Sencho/commit/4c352267198f94e69a3fab85228a5484c0f7363e))
* **frontend:** stream log lines on next paint and show ms-precision timestamps ([#764](https://github.com/AnsoCode/Sencho/issues/764)) ([c9657b1](https://github.com/AnsoCode/Sencho/commit/c9657b1d46746b43310c3045a06f58a773d73099))
* **login:** remove branding duplication, add shimmer and ping dot ([#727](https://github.com/AnsoCode/Sencho/issues/727)) ([d47f6b4](https://github.com/AnsoCode/Sencho/commit/d47f6b40e4b2f01fac3b9151318b1ada3e74d6fc))
* **logs:** drop millisecond suffix from log timestamp display ([#769](https://github.com/AnsoCode/Sencho/issues/769)) ([c7cdcd0](https://github.com/AnsoCode/Sencho/commit/c7cdcd082d64281dcfe2b031b699c2fd3e83bdb6))
* **monitor:** include node name in janitor alert and stop firing on near-empty hosts ([#765](https://github.com/AnsoCode/Sencho/issues/765)) ([9e0f521](https://github.com/AnsoCode/Sencho/commit/9e0f521ea8fb8809367de1fa646dc263e8d93fd9))
* **notifications:** scope routing rules to nodes via node_id column ([#775](https://github.com/AnsoCode/Sencho/issues/775)) ([fcbdd59](https://github.com/AnsoCode/Sencho/commit/fcbdd59ec24d9bac180a19310eee29334d6eadb6))
* **security:** clear cached policy evaluations when a scan policy is deleted ([#758](https://github.com/AnsoCode/Sencho/issues/758)) ([24c0a28](https://github.com/AnsoCode/Sencho/commit/24c0a2833ba527bcb56e2b8dce682194f182a8f2))
* **sidebar:** remove 1-hour staleness filter from activity ticker ([#786](https://github.com/AnsoCode/Sencho/issues/786)) ([f94b2ce](https://github.com/AnsoCode/Sencho/commit/f94b2ce85cddd6774c1dd7be83c6bbbe89d0697b))

## [0.63.0](https://github.com/AnsoCode/Sencho/compare/v0.62.0...v0.63.0) (2026-04-21)


### Added

* **auth:** redesign login, MFA, and setup surfaces with cockpit voice ([#714](https://github.com/AnsoCode/Sencho/issues/714)) ([0a01980](https://github.com/AnsoCode/Sencho/commit/0a0198013d714d2e06acaef4414cc03a29062065))
* **design-system:** retune oklch tokens to cozy-pebble palette ([#709](https://github.com/AnsoCode/Sencho/issues/709)) ([2b499cb](https://github.com/AnsoCode/Sencho/commit/2b499cb2c95fab0a348b18f1d973c3dd2d4c3d8c))
* **fleet:** aggregate labels across nodes and allow remote edits ([#710](https://github.com/AnsoCode/Sencho/issues/710)) ([a41af47](https://github.com/AnsoCode/Sencho/commit/a41af47ff3506afd4fa51b11e390308fd41daf44))
* **fleet:** interactive topology with ReactFlow hub-and-spoke layout ([#713](https://github.com/AnsoCode/Sencho/issues/713)) ([d95e154](https://github.com/AnsoCode/Sencho/commit/d95e154aeb57310d3486d540c9b3087c10afafe6))
* **fleet:** reorganize overview page for clarity and density ([#712](https://github.com/AnsoCode/Sencho/issues/712)) ([6f132b7](https://github.com/AnsoCode/Sencho/commit/6f132b7ffe93132d9c296f53ebdaf5084706341a))
* **notifications:** add per-node filter and 60s refetch safety net ([#717](https://github.com/AnsoCode/Sencho/issues/717)) ([3e1fb76](https://github.com/AnsoCode/Sencho/commit/3e1fb76bd0c7b8bce66a556618bbae96473af82f))
* **search:** add global Ctrl+K command palette ([#711](https://github.com/AnsoCode/Sencho/issues/711)) ([856de35](https://github.com/AnsoCode/Sencho/commit/856de35a52a4e17c18b337a296112d529b1a9406))
* **security:** enforce scan policies as a pre-deploy gate ([#719](https://github.com/AnsoCode/Sencho/issues/719)) ([661b9c6](https://github.com/AnsoCode/Sencho/commit/661b9c638b7b7dc4e11d86d36edaf2cab6e1bf75))
* **security:** polish scan sheets, fix CVE links, surface policy violations ([#721](https://github.com/AnsoCode/Sencho/issues/721)) ([12c2b37](https://github.com/AnsoCode/Sencho/commit/12c2b37510b5f364ee42f582edcbb8fb655c269b))
* **settings:** surface security, notifications, and app store on remote nodes ([#716](https://github.com/AnsoCode/Sencho/issues/716)) ([08f57c7](https://github.com/AnsoCode/Sencho/commit/08f57c714146d4fe533b82e1011a18d86cd957a1))
* **sidebar:** cockpit redesign with grouped stacks and activity footer ([#702](https://github.com/AnsoCode/Sencho/issues/702)) ([370b67d](https://github.com/AnsoCode/Sencho/commit/370b67d7ec5f8f5ee1d8df81bdd4a892c0c0c9d5))
* **sidebar:** inline label create, live sync, and kebab submenu parity ([#706](https://github.com/AnsoCode/Sencho/issues/706)) ([75370d8](https://github.com/AnsoCode/Sencho/commit/75370d8fce8c0d9669f957a54db8e6e145ce5804))
* **ui:** redesign global logs as cockpit surface ([#699](https://github.com/AnsoCode/Sencho/issues/699)) ([b95442c](https://github.com/AnsoCode/Sencho/commit/b95442c8f7c0a69b53893382f9cafdbbea44efcf))
* **ui:** redesign host console as cockpit surface ([#701](https://github.com/AnsoCode/Sencho/issues/701)) ([490c89c](https://github.com/AnsoCode/Sencho/commit/490c89c049f7d379ef8a72e36970638807163683))


### Fixed

* **app-store:** use stack name as compose service key ([#704](https://github.com/AnsoCode/Sencho/issues/704)) ([9f861e0](https://github.com/AnsoCode/Sencho/commit/9f861e00721a71c615a6478b24aec2b8087b2fc7))
* **dashboard:** remove peak indicator dot from CPU sparkline ([#705](https://github.com/AnsoCode/Sencho/issues/705)) ([5f2d678](https://github.com/AnsoCode/Sencho/commit/5f2d67848cda077edbde349ce07ed261ff743e3d))
* **security:** convert scan history from full page to sheet overlay ([#720](https://github.com/AnsoCode/Sencho/issues/720)) ([e4fdb1c](https://github.com/AnsoCode/Sencho/commit/e4fdb1cd6c32016a646bf23d3e4ae3d5fafe4e02))
* **sidebar:** distinct fuchsia notification dot for update indicator ([#708](https://github.com/AnsoCode/Sencho/issues/708)) ([c7dfde4](https://github.com/AnsoCode/Sencho/commit/c7dfde4b79eb5110d7d5420002a0631151401645))
* **trivy:** remove unsupported --no-progress flag from `trivy config` ([#718](https://github.com/AnsoCode/Sencho/issues/718)) ([aa10db1](https://github.com/AnsoCode/Sencho/commit/aa10db1d09261741faf5b2f8cd6a64436facf2f6))
* **ui:** raise toast z-index above dialog overlays ([#715](https://github.com/AnsoCode/Sencho/issues/715)) ([a42cc5b](https://github.com/AnsoCode/Sencho/commit/a42cc5bf03a971ebb21fc516363a11b362053793))

## [0.62.0](https://github.com/AnsoCode/Sencho/compare/v0.61.0...v0.62.0) (2026-04-19)


### Added

* **notifications:** deep-link bell rows to source stack and container logs ([#692](https://github.com/AnsoCode/Sencho/issues/692)) ([ed2a16a](https://github.com/AnsoCode/Sencho/commit/ed2a16af798db3db80cce89b550c1c27f418753d))
* **sidebar:** global multi-node stack search with status ([#685](https://github.com/AnsoCode/Sencho/issues/685)) ([bd94ef9](https://github.com/AnsoCode/Sencho/commit/bd94ef9e1549eea85a1e6f0e0389eb7ac5d6db4d))
* **stack-view:** anatomy panel replaces always-open yaml ([#690](https://github.com/AnsoCode/Sencho/issues/690)) ([9e41d5e](https://github.com/AnsoCode/Sencho/commit/9e41d5e6b81015e04f10b7ae699d2f228a78eaf0))
* **stack-view:** identity header with health state and action hierarchy ([#688](https://github.com/AnsoCode/Sencho/issues/688)) ([82aabfe](https://github.com/AnsoCode/Sencho/commit/82aabfe64caa43548757f0f13fcaadde1b5a0518))
* **stack-view:** per-container health strip and structured logs viewer ([#689](https://github.com/AnsoCode/Sencho/issues/689)) ([a65a1c0](https://github.com/AnsoCode/Sencho/commit/a65a1c0e867ad8d52cdbbe972548a040deea0ae2))
* **ui:** redesign node switcher as sidebar identity anchor ([#694](https://github.com/AnsoCode/Sencho/issues/694)) ([e721742](https://github.com/AnsoCode/Sencho/commit/e7217425605df55911405cc51cc48fca200b6622))
* **ui:** redesign top bar as chrome-glass masthead ([#696](https://github.com/AnsoCode/Sencho/issues/696)) ([5589110](https://github.com/AnsoCode/Sencho/commit/5589110925907f6f7bfee234f3e004c0485239c2))
* **ui:** redesign user menu and notification panel ([#691](https://github.com/AnsoCode/Sencho/issues/691)) ([7c01906](https://github.com/AnsoCode/Sencho/commit/7c01906e708f1b8af56fa07e257d2ae5e3e76c76))
* **ui:** replace Switch with TogglePill per design audit ([#687](https://github.com/AnsoCode/Sencho/issues/687)) ([88ec71f](https://github.com/AnsoCode/Sencho/commit/88ec71fcaaf7caea21697505ab638c5faeacfa30))
* **ui:** wire overlay popovers to density tokens ([#695](https://github.com/AnsoCode/Sencho/issues/695)) ([72a1ecd](https://github.com/AnsoCode/Sencho/commit/72a1ecd19290e3895def4f8c6a4b5e7fbf28404e))

## [0.61.0](https://github.com/AnsoCode/Sencho/compare/v0.60.0...v0.61.0) (2026-04-18)


### Added

* **app-store:** editorial hero, category rail, security scan signal per tile ([#679](https://github.com/AnsoCode/Sencho/issues/679)) ([ec76206](https://github.com/AnsoCode/Sencho/commit/ec7620675e7fb9cf33a5ec842992bd7d537f02aa))
* **audit-log:** signal rail, day-banded stream, anomaly detection ([#682](https://github.com/AnsoCode/Sencho/issues/682)) ([591dc75](https://github.com/AnsoCode/Sencho/commit/591dc75d1ee992f28f2d3bb2dcf1fc899c0b9fa2))
* **dashboard:** status masthead, unified gauges, stack health sparklines ([#676](https://github.com/AnsoCode/Sencho/issues/676)) ([748ba46](https://github.com/AnsoCode/Sencho/commit/748ba46669aa5dcdc97a80a133da7d9f9f85be36))
* **design-system:** adopt cyan as data color, add Instrument Serif, introduce label roles ([#674](https://github.com/AnsoCode/Sencho/issues/674)) ([7ec189d](https://github.com/AnsoCode/Sencho/commit/7ec189dc3508de8a4458157425f3928b2ffa7c68))
* **fleet:** add aggregate masthead and local-vs-remote topology ([#677](https://github.com/AnsoCode/Sencho/issues/677)) ([c3b06f4](https://github.com/AnsoCode/Sencho/commit/c3b06f4b13b8c6e2c59bbb7ec8e04c27a84d861a))
* **resources:** lead with reclaimable disk banner and per-tab landings ([#678](https://github.com/AnsoCode/Sencho/issues/678)) ([5f6fdfc](https://github.com/AnsoCode/Sencho/commit/5f6fdfcba88ab103b4ad8ac0c6a0f6022e6a3d21))
* **schedules:** next-24h timeline + merge auto-update into schedules ([#681](https://github.com/AnsoCode/Sencho/issues/681)) ([9527884](https://github.com/AnsoCode/Sencho/commit/95278843cf94917886aa8a85e2dce4bb9eb5be1e))
* **settings:** add comfortable/compact density toggle ([#683](https://github.com/AnsoCode/Sencho/issues/683)) ([ad90bd9](https://github.com/AnsoCode/Sencho/commit/ad90bd9404fd5210879c4d79db18d347b4b471d4))
* **settings:** group sections, add ⌘K search, scope breadcrumb ([#680](https://github.com/AnsoCode/Sencho/issues/680)) ([0bf061a](https://github.com/AnsoCode/Sencho/commit/0bf061a7456a4bb1a82918c0d845ca29e1cb87d6))

## [0.60.0](https://github.com/AnsoCode/Sencho/compare/v0.59.0...v0.60.0) (2026-04-18)


### Added

* auto-heal policies for unhealthy containers ([#671](https://github.com/AnsoCode/Sencho/issues/671)) ([5bb4b01](https://github.com/AnsoCode/Sencho/commit/5bb4b0195370363a7ff11d27262a22c076ba9191))

## [0.59.0](https://github.com/AnsoCode/Sencho/compare/v0.58.1...v0.59.0) (2026-04-18)


### Added

* pilot agent outbound-mode for remote nodes ([#667](https://github.com/AnsoCode/Sencho/issues/667)) ([8e7a567](https://github.com/AnsoCode/Sencho/commit/8e7a567f691cbb0cc047a69c1da38ad097b8d5ee))

## [0.58.1](https://github.com/AnsoCode/Sencho/compare/v0.58.0...v0.58.1) (2026-04-17)


### Fixed

* **security:** relabel unchanged bucket for cross-image comparisons ([#662](https://github.com/AnsoCode/Sencho/issues/662)) ([e0f2e23](https://github.com/AnsoCode/Sencho/commit/e0f2e230a64e0822ba3f9c3e4ac89f6226feecfa))
* **security:** server-driven pagination for scan history ([#661](https://github.com/AnsoCode/Sencho/issues/661)) ([2fce1d3](https://github.com/AnsoCode/Sencho/commit/2fce1d3baf3965c7c94d76422815491b6fef6794))
* **security:** signal when scan comparison is truncated ([#658](https://github.com/AnsoCode/Sencho/issues/658)) ([c211f65](https://github.com/AnsoCode/Sencho/commit/c211f655c3144927e54bf7f47697c36146692bf9))

## [0.58.0](https://github.com/AnsoCode/Sencho/compare/v0.57.0...v0.58.0) (2026-04-17)


### Added

* **security:** severity-aware scheduled scan notifications ([#654](https://github.com/AnsoCode/Sencho/issues/654)) ([29ed052](https://github.com/AnsoCode/Sencho/commit/29ed0524c1c28c614c9c624fd40d6c796b16e366))

## [0.57.0](https://github.com/AnsoCode/Sencho/compare/v0.56.0...v0.57.0) (2026-04-17)


### Added

* **fleet:** replicate scan policies across managed nodes ([#649](https://github.com/AnsoCode/Sencho/issues/649)) ([708d15b](https://github.com/AnsoCode/Sencho/commit/708d15b2b351cef50585dc2a5c8697460cb01f50))
* **scheduler:** notify on scheduled scan completion ([#646](https://github.com/AnsoCode/Sencho/issues/646)) ([e660d2a](https://github.com/AnsoCode/Sencho/commit/e660d2a658a9a0775cd5e448dd2c2933491a33d3))
* **security:** export scan results as SARIF 2.1.0 ([#652](https://github.com/AnsoCode/Sencho/issues/652)) ([12bbf86](https://github.com/AnsoCode/Sencho/commit/12bbf86dc481bf0f5ba99cf144c1161c31cbee12))
* **security:** fleet-replicated CVE suppression list ([#650](https://github.com/AnsoCode/Sencho/issues/650)) ([732fc95](https://github.com/AnsoCode/Sencho/commit/732fc95415ddeddf7827ce95ee790839e6c10e46))
* **security:** scan comparison UI ([#648](https://github.com/AnsoCode/Sencho/issues/648)) ([8ee0c0c](https://github.com/AnsoCode/Sencho/commit/8ee0c0c476e1652d59ef8e4f53dd728996e36250))
* **security:** secret and misconfiguration scanning ([#651](https://github.com/AnsoCode/Sencho/issues/651)) ([a95bf1f](https://github.com/AnsoCode/Sencho/commit/a95bf1ff333e301125ef8a2b6442f0c74f30c089))

## [0.56.0](https://github.com/AnsoCode/Sencho/compare/v0.55.1...v0.56.0) (2026-04-17)


### Added

* **security:** one-click managed Trivy install ([#643](https://github.com/AnsoCode/Sencho/issues/643)) ([61bac08](https://github.com/AnsoCode/Sencho/commit/61bac080272579161fbcac31dbe8588d2cdb4e10))

## [0.55.1](https://github.com/AnsoCode/Sencho/compare/v0.55.0...v0.55.1) (2026-04-17)


### Fixed

* **security:** harden Trivy scan lifecycle, logging, and docs ([#639](https://github.com/AnsoCode/Sencho/issues/639)) ([dc8370f](https://github.com/AnsoCode/Sencho/commit/dc8370f5a4fc143fa8c60f094b51163d0bcdd25b))

## [0.55.0](https://github.com/AnsoCode/Sencho/compare/v0.54.1...v0.55.0) (2026-04-16)


### Added

* **images:** Trivy-powered vulnerability scanning ([#635](https://github.com/AnsoCode/Sencho/issues/635)) ([c9cd699](https://github.com/AnsoCode/Sencho/commit/c9cd6990d2aa898e93de256bdf6e6a0e3461b2be))

## [0.54.1](https://github.com/AnsoCode/Sencho/compare/v0.54.0...v0.54.1) (2026-04-16)


### Fixed

* **sso:** harden Custom OIDC provider and SSO configuration ([#630](https://github.com/AnsoCode/Sencho/issues/630)) ([6890224](https://github.com/AnsoCode/Sencho/commit/6890224903bfa90aff5737f8778b6587be528416))

## [0.54.0](https://github.com/AnsoCode/Sencho/compare/v0.53.0...v0.54.0) (2026-04-16)


### Added

* add Custom OIDC provider and move SSO to Community tier ([#626](https://github.com/AnsoCode/Sencho/issues/626)) ([7c6df0a](https://github.com/AnsoCode/Sencho/commit/7c6df0aa5d0d15d62b7da8692bcc7815cf1bd685))

## [0.53.0](https://github.com/AnsoCode/Sencho/compare/v0.52.0...v0.53.0) (2026-04-16)


### Added

* docker run to compose converter ([#623](https://github.com/AnsoCode/Sencho/issues/623)) ([b2f341b](https://github.com/AnsoCode/Sencho/commit/b2f341b43d5fd2da408ef25635d3f1b38c5e7d58))

## [0.52.0](https://github.com/AnsoCode/Sencho/compare/v0.51.0...v0.52.0) (2026-04-15)


### Added

* **mfa:** UX hardening — auto-submit, paste tolerance, low-codes warning, dev-mode diagnostics ([#620](https://github.com/AnsoCode/Sencho/issues/620)) ([4722028](https://github.com/AnsoCode/Sencho/commit/4722028904463dcd4019b2a9cf17a531f3b9da04))

## [0.51.0](https://github.com/AnsoCode/Sencho/compare/v0.50.0...v0.51.0) (2026-04-15)


### Added

* **auth:** add TOTP two-factor authentication with backup codes ([#615](https://github.com/AnsoCode/Sencho/issues/615)) ([7d78c9f](https://github.com/AnsoCode/Sencho/commit/7d78c9fe22a2f42941397b980a46248402741598))

## [0.50.0](https://github.com/AnsoCode/Sencho/compare/v0.49.0...v0.50.0) (2026-04-15)


### Added

* **git-sources:** harden create-from-git with LFS + submodule warnings ([#609](https://github.com/AnsoCode/Sencho/issues/609)) ([6529a24](https://github.com/AnsoCode/Sencho/commit/6529a245304438bb7120361cb05fcb9616917d32))

## [0.49.0](https://github.com/AnsoCode/Sencho/compare/v0.48.1...v0.49.0) (2026-04-15)


### Added

* **git-sources:** create a stack from a Git repository ([#606](https://github.com/AnsoCode/Sencho/issues/606)) ([3955267](https://github.com/AnsoCode/Sencho/commit/3955267bbe5eac816f8e80a9e6a41dbcefdd75b0))

## [0.48.1](https://github.com/AnsoCode/Sencho/compare/v0.48.0...v0.48.1) (2026-04-15)


### Fixed

* **git-sources:** harden validation, RBAC, concurrency, and deploy recovery ([#603](https://github.com/AnsoCode/Sencho/issues/603)) ([00901cf](https://github.com/AnsoCode/Sencho/commit/00901cf5bf0b618651e185ad796c0502a7735380))

## [0.48.0](https://github.com/AnsoCode/Sencho/compare/v0.47.0...v0.48.0) (2026-04-15)


### Added

* **git-sources:** link stacks to Git repositories with diff-and-apply workflow ([#600](https://github.com/AnsoCode/Sencho/issues/600)) ([377df7e](https://github.com/AnsoCode/Sencho/commit/377df7e54631a4f791deb1432dbec80b3844159a))

## [0.47.0](https://github.com/AnsoCode/Sencho/compare/v0.46.20...v0.47.0) (2026-04-14)


### Added

* **registries:** harden Private Registry Credentials feature ([#597](https://github.com/AnsoCode/Sencho/issues/597)) ([6275adc](https://github.com/AnsoCode/Sencho/commit/6275adc6b35eaad1322dedd537551b7519052980))

## [0.46.20](https://github.com/AnsoCode/Sencho/compare/v0.46.19...v0.46.20) (2026-04-14)


### Fixed

* **notifications:** stop Sencho version notifications from silently skipping ([#594](https://github.com/AnsoCode/Sencho/issues/594)) ([6b8c369](https://github.com/AnsoCode/Sencho/commit/6b8c369745b16fad7ba6f97026751192ccc24572))

## [0.46.19](https://github.com/AnsoCode/Sencho/compare/v0.46.18...v0.46.19) (2026-04-14)


### Fixed

* **docker-events:** harden crash detection against edge cases ([#591](https://github.com/AnsoCode/Sencho/issues/591)) ([44a89d9](https://github.com/AnsoCode/Sencho/commit/44a89d9d2e4c114859a1f54665ad08c112632c1d))

## [0.46.18](https://github.com/AnsoCode/Sencho/compare/v0.46.17...v0.46.18) (2026-04-14)


### Fixed

* **notifications:** replace polling with Docker event stream for container lifecycle detection ([#588](https://github.com/AnsoCode/Sencho/issues/588)) ([ad9a685](https://github.com/AnsoCode/Sencho/commit/ad9a6859e6f854b750aeaf1348bae5470af8f768))

## [0.46.17](https://github.com/AnsoCode/Sencho/compare/v0.46.16...v0.46.17) (2026-04-14)


### Fixed

* **notifications:** resolve version notification showing 0.0.0 and backfill missing image update notifications ([#586](https://github.com/AnsoCode/Sencho/issues/586)) ([4a03193](https://github.com/AnsoCode/Sencho/commit/4a0319331a80a63273b8299ee3cbca75c88a91ce))

## [0.46.16](https://github.com/AnsoCode/Sencho/compare/v0.46.15...v0.46.16) (2026-04-14)


### Fixed

* **network-topology:** harden with edge-case fixes, logging, and test coverage ([#583](https://github.com/AnsoCode/Sencho/issues/583)) ([23fc702](https://github.com/AnsoCode/Sencho/commit/23fc702296fd1827d3b7e916f8e0014d3509166e))

## [0.46.15](https://github.com/AnsoCode/Sencho/compare/v0.46.14...v0.46.15) (2026-04-14)


### Fixed

* **host-console:** harden with security fixes, validation, and test coverage ([#580](https://github.com/AnsoCode/Sencho/issues/580)) ([718c1eb](https://github.com/AnsoCode/Sencho/commit/718c1eb1eac4560efe623ef0350c25e304b852b1))

## [0.46.14](https://github.com/AnsoCode/Sencho/compare/v0.46.13...v0.46.14) (2026-04-14)


### Fixed

* **container-exec:** harden with security fixes, validation, and test coverage ([#577](https://github.com/AnsoCode/Sencho/issues/577)) ([c4ff583](https://github.com/AnsoCode/Sencho/commit/c4ff58347e45c52b0a296aea72de3cfdefd09d6d))

## [0.46.13](https://github.com/AnsoCode/Sencho/compare/v0.46.12...v0.46.13) (2026-04-14)


### Fixed

* **notification-routing:** harden with security fixes, validation, and test coverage ([#573](https://github.com/AnsoCode/Sencho/issues/573)) ([e59df35](https://github.com/AnsoCode/Sencho/commit/e59df354e227572aec75f428a40c386e96268711))

## [0.46.12](https://github.com/AnsoCode/Sencho/compare/v0.46.11...v0.46.12) (2026-04-14)


### Fixed

* **alerts:** harden with security fixes, design compliance, and test coverage ([#570](https://github.com/AnsoCode/Sencho/issues/570)) ([0a94df3](https://github.com/AnsoCode/Sencho/commit/0a94df318ae0e5bc55c646927f568501b36c5287))

## [0.46.11](https://github.com/AnsoCode/Sencho/compare/v0.46.10...v0.46.11) (2026-04-13)


### Fixed

* **api-tokens:** harden with security fixes, design compliance, and test coverage ([#567](https://github.com/AnsoCode/Sencho/issues/567)) ([e0d1ca9](https://github.com/AnsoCode/Sencho/commit/e0d1ca9dc00fb2b30ce5e8e7f6181c38cd9b1289))

## [0.46.10](https://github.com/AnsoCode/Sencho/compare/v0.46.9...v0.46.10) (2026-04-13)


### Fixed

* **sso:** harden SSO with role sync, security fixes, design compliance, and test coverage ([#564](https://github.com/AnsoCode/Sencho/issues/564)) ([1d89e8c](https://github.com/AnsoCode/Sencho/commit/1d89e8ce59cba102ae92741ed639461338b21620))

## [0.46.9](https://github.com/AnsoCode/Sencho/compare/v0.46.8...v0.46.9) (2026-04-13)


### Fixed

* **audit:** harden audit log with summary fixes, design compliance, and test coverage ([#561](https://github.com/AnsoCode/Sencho/issues/561)) ([6daa7a1](https://github.com/AnsoCode/Sencho/commit/6daa7a135dca665484ae85f5c020b8c3c050e835))

## [0.46.8](https://github.com/AnsoCode/Sencho/compare/v0.46.7...v0.46.8) (2026-04-13)


### Fixed

* **rbac:** harden user management with token versioning, session invalidation, and test coverage ([#558](https://github.com/AnsoCode/Sencho/issues/558)) ([c261fbc](https://github.com/AnsoCode/Sencho/commit/c261fbc327ca92169bdd439c297cd96e5e6751de))

## [0.46.7](https://github.com/AnsoCode/Sencho/compare/v0.46.6...v0.46.7) (2026-04-13)


### Fixed

* **fleet:** harden fleet snapshots with DRY capture, audit fixes, and design compliance ([#555](https://github.com/AnsoCode/Sencho/issues/555)) ([809bf76](https://github.com/AnsoCode/Sencho/commit/809bf76c205e9a4e0f20db735c55b010b98851eb))

## [0.46.6](https://github.com/AnsoCode/Sencho/compare/v0.46.5...v0.46.6) (2026-04-13)


### Fixed

* **labels:** harden stack labels with nodeId filtering, concurrency guard, and test coverage ([#552](https://github.com/AnsoCode/Sencho/issues/552)) ([a695251](https://github.com/AnsoCode/Sencho/commit/a695251f38a21dd12ba535471a9e934928d5672e))

## [0.46.5](https://github.com/AnsoCode/Sencho/compare/v0.46.4...v0.46.5) (2026-04-13)


### Fixed

* **scheduler:** harden scheduled operations with stale cleanup, cron validation, and design fixes ([#549](https://github.com/AnsoCode/Sencho/issues/549)) ([44e8fdf](https://github.com/AnsoCode/Sencho/commit/44e8fdfba9455231f1ac3469bbd58745eb33bb10))

## [0.46.4](https://github.com/AnsoCode/Sencho/compare/v0.46.3...v0.46.4) (2026-04-13)


### Fixed

* **scheduler:** harden auto-update policies with cascade deletes, error reporting, and UI fixes ([#545](https://github.com/AnsoCode/Sencho/issues/545)) ([a17b16b](https://github.com/AnsoCode/Sencho/commit/a17b16b2586206556453174e8712922eeb48cc41))

## [0.46.3](https://github.com/AnsoCode/Sencho/compare/v0.46.2...v0.46.3) (2026-04-13)


### Fixed

* **fleet:** harden remote node updates with admin enforcement, expiry fix, and diagnostics ([#542](https://github.com/AnsoCode/Sencho/issues/542)) ([d23c677](https://github.com/AnsoCode/Sencho/commit/d23c6779afd912a165ab44e79c8b7f4853d0df06))

## [0.46.2](https://github.com/AnsoCode/Sencho/compare/v0.46.1...v0.46.2) (2026-04-13)


### Fixed

* **logs:** harden global logs with shared parsing, SSE fixes, and level filter ([#539](https://github.com/AnsoCode/Sencho/issues/539)) ([a74a516](https://github.com/AnsoCode/Sencho/commit/a74a516850314ec5d17144987d3b9f87831047e2))

## [0.46.1](https://github.com/AnsoCode/Sencho/compare/v0.46.0...v0.46.1) (2026-04-13)


### Fixed

* **fleet:** add auth middleware, input validation, and design system compliance ([#536](https://github.com/AnsoCode/Sencho/issues/536)) ([1702dab](https://github.com/AnsoCode/Sencho/commit/1702dabb7af910c523970d1daa939861c047b714))

## [0.46.0](https://github.com/AnsoCode/Sencho/compare/v0.45.6...v0.46.0) (2026-04-12)


### Added

* **app-store:** add port conflict indicator to deploy sheet ([#533](https://github.com/AnsoCode/Sencho/issues/533)) ([cd3d7b2](https://github.com/AnsoCode/Sencho/commit/cd3d7b23be444a8c085255b557ef2594e9b3fea5))

## [0.45.6](https://github.com/AnsoCode/Sencho/compare/v0.45.5...v0.45.6) (2026-04-12)


### Fixed

* **app-store:** handle orphaned stack directories on template deploy ([#530](https://github.com/AnsoCode/Sencho/issues/530)) ([5f91e16](https://github.com/AnsoCode/Sencho/commit/5f91e16417f86f04bb8f5aad2fd49f008a24c057))

## [0.45.5](https://github.com/AnsoCode/Sencho/compare/v0.45.4...v0.45.5) (2026-04-12)


### Fixed

* **resources:** harden Resource Explorer with auth, validation, design, and UX fixes ([#527](https://github.com/AnsoCode/Sencho/issues/527)) ([4909c35](https://github.com/AnsoCode/Sencho/commit/4909c35e50ec0227d153f79b34ba27d159cd55ae))

## [0.45.4](https://github.com/AnsoCode/Sencho/compare/v0.45.3...v0.45.4) (2026-04-12)


### Fixed

* **app-store:** harden App Store with auth, validation, bug fixes, and design compliance ([#523](https://github.com/AnsoCode/Sencho/issues/523)) ([d4882d3](https://github.com/AnsoCode/Sencho/commit/d4882d32d90e7635df51f5e79b89717594928496))

## [0.45.3](https://github.com/AnsoCode/Sencho/compare/v0.45.2...v0.45.3) (2026-04-12)


### Fixed

* **stacks:** harden stack management with security, validation, and logging ([#520](https://github.com/AnsoCode/Sencho/issues/520)) ([2465f76](https://github.com/AnsoCode/Sencho/commit/2465f7607e5bccd0b0f84d0ca9f1eecc18018753))

## [0.45.2](https://github.com/AnsoCode/Sencho/compare/v0.45.1...v0.45.2) (2026-04-12)


### Fixed

* **dashboard:** harden real-time dashboard with bug fixes and design compliance ([#517](https://github.com/AnsoCode/Sencho/issues/517)) ([9db9710](https://github.com/AnsoCode/Sencho/commit/9db97107aa1130c0cd6ecc064e2e522991bb6913))

## [0.45.1](https://github.com/AnsoCode/Sencho/compare/v0.45.0...v0.45.1) (2026-04-12)


### Fixed

* **updates:** scan all filesystem stacks for image updates ([#514](https://github.com/AnsoCode/Sencho/issues/514)) ([4950cd0](https://github.com/AnsoCode/Sencho/commit/4950cd0bd094ab620b79971ca33817c1c62940f3))

## [0.45.0](https://github.com/AnsoCode/Sencho/compare/v0.44.1...v0.45.0) (2026-04-12)


### Added

* add automated docs pipeline and scaffold /docs folder ([9496b14](https://github.com/AnsoCode/Sencho/commit/9496b14f723858d7134e90bf27d921791045dacf))
* add Community/Pro licensing, fleet view, and UI reorganization ([#145](https://github.com/AnsoCode/Sencho/issues/145)) ([4f26f22](https://github.com/AnsoCode/Sencho/commit/4f26f22ccef89441be032a266723cf6fca0a488a))
* add update-screenshots CI job and screenshot capture spec ([ed8b8e3](https://github.com/AnsoCode/Sencho/commit/ed8b8e33b6b52d9cefef9a2a677a9e12a1b34e61))
* **api-tokens:** add scoped API tokens for CI/CD automation (Team Pro) ([#220](https://github.com/AnsoCode/Sencho/issues/220)) ([8d8118c](https://github.com/AnsoCode/Sencho/commit/8d8118c963a1c3b10872041ea0f645d8f0a65196))
* **api:** add global rate limiter for all API endpoints ([#317](https://github.com/AnsoCode/Sencho/issues/317)) ([b28ebfa](https://github.com/AnsoCode/Sencho/commit/b28ebfa6ffff7fa76657c67e5fdb3494a76bd8a1))
* **app-store:** category filter bar + custom registry settings ([ae4540b](https://github.com/AnsoCode/Sencho/commit/ae4540bf4613c2ae416c828b622bb4e198f1a11f))
* **app-store:** category filter bar and custom registry settings ([34cad76](https://github.com/AnsoCode/Sencho/commit/34cad76d45fe7212bd61aa514f40e13217e2fd8e))
* audit logging, secrets at rest, and legacy cleanup ([#205](https://github.com/AnsoCode/Sencho/issues/205)) ([1799030](https://github.com/AnsoCode/Sencho/commit/179903006035280d5c1655daaf3dbe3384588bf0))
* **audit-log:** add configurable retention, export, Auditor role, and enhanced filtering ([#258](https://github.com/AnsoCode/Sencho/issues/258)) ([d586ce3](https://github.com/AnsoCode/Sencho/commit/d586ce393af34c8cc34cd046d2d90a70e0d79964))
* **auth:** redesign Login and Setup pages with split-panel branding layout ([#153](https://github.com/AnsoCode/Sencho/issues/153)) ([e0319b5](https://github.com/AnsoCode/Sencho/commit/e0319b5daebbae88b942ba55f6891ce0e2ecaf29))
* **auth:** redesign Login and Setup pages with split-panel branding layout ([#168](https://github.com/AnsoCode/Sencho/issues/168)) ([f80190d](https://github.com/AnsoCode/Sencho/commit/f80190d926c1d768ee1282861dffc7d272f06e21))
* auto-refresh doc screenshots on develop push ([eaf2177](https://github.com/AnsoCode/Sencho/commit/eaf217720c42a07cce7afadd673178c886717878))
* **auto-update:** add auto-update policies and fix image update detection ([#297](https://github.com/AnsoCode/Sencho/issues/297)) ([28c7a8f](https://github.com/AnsoCode/Sencho/commit/28c7a8fd544f33ea0fbe90f19ed96154743eb527))
* automated docs pipeline ([05a6b93](https://github.com/AnsoCode/Sencho/commit/05a6b93af0b2de04e70565445178873d5f858348))
* **ci:** add release-please automated versioning workflow ([c2d5d37](https://github.com/AnsoCode/Sencho/commit/c2d5d37be41267e71bb8515010b049fcd31f5d6b))
* **ci:** add release-please automated versioning workflow ([c2d5d37](https://github.com/AnsoCode/Sencho/commit/c2d5d37be41267e71bb8515010b049fcd31f5d6b))
* **ci:** add release-please automated versioning workflow ([c294def](https://github.com/AnsoCode/Sencho/commit/c294def7ccce1705be55e38e19c7da4f7341c3f4))
* **ci:** automated versioning with release-please ([c991b81](https://github.com/AnsoCode/Sencho/commit/c991b8121edcd30bd6806e959d0dcd14711f439f))
* **ci:** automated versioning with release-please ([c991b81](https://github.com/AnsoCode/Sencho/commit/c991b8121edcd30bd6806e959d0dcd14711f439f))
* **contact:** add official contact emails throughout app and docs ([#428](https://github.com/AnsoCode/Sencho/issues/428)) ([8e0857e](https://github.com/AnsoCode/Sencho/commit/8e0857e7f62d89434768da5f57223ae25276b33d))
* **dashboard:** add node badge to Recent Alerts for remote node alerts ([#423](https://github.com/AnsoCode/Sencho/issues/423)) ([a6849ae](https://github.com/AnsoCode/Sencho/commit/a6849aedabc06cd85a74a915445765ff6f857f6f))
* **dashboard:** redesign as DevOps command center ([#371](https://github.com/AnsoCode/Sencho/issues/371)) ([2ee959e](https://github.com/AnsoCode/Sencho/commit/2ee959ec3b696c5beba7b8b62bec2221ca65d525))
* **design:** animated design system foundation with animate-ui and motion ([c34092f](https://github.com/AnsoCode/Sencho/commit/c34092f8ec07fa84e1bb83775ac767c6cb2dd744))
* **design:** animated design system foundation with animate-ui and motion ([0cb5fae](https://github.com/AnsoCode/Sencho/commit/0cb5fae947ac69b5e3b6c06c82d2f2870e6600de))
* **docker:** add linux/arm64 platform support via xx cross-compilation ([cf19390](https://github.com/AnsoCode/Sencho/commit/cf19390fd559a0ee49b9c2b08675565afd715dd5))
* **docker:** add linux/arm64 platform support via xx cross-compilation ([cf19390](https://github.com/AnsoCode/Sencho/commit/cf19390fd559a0ee49b9c2b08675565afd715dd5))
* **fleet:** add Pro fleet management features and container drill-down ([#174](https://github.com/AnsoCode/Sencho/issues/174)) ([0630f57](https://github.com/AnsoCode/Sencho/commit/0630f57ca87451352e7c50d511522ac621771458))
* **fleet:** add remote node update management ([#353](https://github.com/AnsoCode/Sencho/issues/353)) ([87b5908](https://github.com/AnsoCode/Sencho/commit/87b59082887902af24ad2bf88ae3d4d4c941411e))
* home dashboard and Settings Hub polish ([#506](https://github.com/AnsoCode/Sencho/issues/506)) ([622c1f9](https://github.com/AnsoCode/Sencho/commit/622c1f9262800bf315e244db93265076bb1c2ba8))
* **host-console:** gate Host Console behind Admiral tier ([#277](https://github.com/AnsoCode/Sencho/issues/277)) ([b5d3f49](https://github.com/AnsoCode/Sencho/commit/b5d3f497cb1a09fdc2107f4ef720ebb7f07cbd87))
* **labels:** add stack labels for organizing, filtering, and bulk actions ([#341](https://github.com/AnsoCode/Sencho/issues/341)) ([28e7be6](https://github.com/AnsoCode/Sencho/commit/28e7be652cb18abdd51ca6df8eda2104d213dc30))
* **license:** distributed license enforcement across multi-node setups ([#359](https://github.com/AnsoCode/Sencho/issues/359)) ([6c26ae3](https://github.com/AnsoCode/Sencho/commit/6c26ae3f501d438dcde5331bae588ee6e26c2c3e))
* **multi-node:** warn when configuring remote node with plain HTTP URL ([#292](https://github.com/AnsoCode/Sencho/issues/292)) ([e587256](https://github.com/AnsoCode/Sencho/commit/e587256086997a784007a69d8a7fd56881d0a9b1))
* **nav:** add pulsing animation to local node status dot ([#418](https://github.com/AnsoCode/Sencho/issues/418)) ([8920d8c](https://github.com/AnsoCode/Sencho/commit/8920d8c55a95e3b4e799489dd757627f218a3d11))
* **nodes:** add capability-based node compatibility negotiation ([#350](https://github.com/AnsoCode/Sencho/issues/350)) ([ee75811](https://github.com/AnsoCode/Sencho/commit/ee75811e255e8d5f9ae87117d12c2902185d98f1))
* **nodes:** add per-node scheduling and update visibility ([#344](https://github.com/AnsoCode/Sencho/issues/344)) ([efbd20f](https://github.com/AnsoCode/Sencho/commit/efbd20fed57299acae43ecaee3b1d9ff52da5aae))
* **notifications:** add shared notification routing rules (Admiral tier) ([#347](https://github.com/AnsoCode/Sencho/issues/347)) ([1b573f5](https://github.com/AnsoCode/Sencho/commit/1b573f542a36cde3e94c05f285d34330df96edb1))
* **notifications:** aggregate alerts from all connected nodes in the notification panel ([16f55bb](https://github.com/AnsoCode/Sencho/commit/16f55bbb40fedc4e8ae6344671ddd016faf78151))
* **notifications:** aggregate alerts from all nodes in the notification panel ([1690f0d](https://github.com/AnsoCode/Sencho/commit/1690f0d3c6b80f0825d71d32f4c6bdd3f07a1290))
* **notifications:** replace polling with WebSocket push ([4d1aef7](https://github.com/AnsoCode/Sencho/commit/4d1aef744b8fe9195ceb5dcafbaf593d216ff8e0))
* **notifications:** replace polling with WebSocket push ([a5ac3e4](https://github.com/AnsoCode/Sencho/commit/a5ac3e4981383eda70f4817c530e89872c3639b6))
* RBAC, atomic deployments, and fleet-wide backups (Pro) ([#181](https://github.com/AnsoCode/Sencho/issues/181)) ([db73d76](https://github.com/AnsoCode/Sencho/commit/db73d7671a22b72756a16594004d9767970d4190))
* RBAC, atomic deployments, fleet backups, and licensing (Pro) ([#185](https://github.com/AnsoCode/Sencho/issues/185)) ([32a7d53](https://github.com/AnsoCode/Sencho/commit/32a7d53b2b1b9b3d2a067433c9e77709ade96697))
* **rbac:** add Deployer & Node Admin roles with scoped permissions (Team Pro) ([#253](https://github.com/AnsoCode/Sencho/issues/253)) ([8380fba](https://github.com/AnsoCode/Sencho/commit/8380fbad4b617b004e2d2f19595d1490eaa1e005))
* **registries:** add private registry credential management (Team Pro) ([#240](https://github.com/AnsoCode/Sencho/issues/240)) ([244c83a](https://github.com/AnsoCode/Sencho/commit/244c83a0c3102a797658d35d087bf47366f6df75))
* **release:** sign and attest published docker images ([#480](https://github.com/AnsoCode/Sencho/issues/480)) ([2a2efb8](https://github.com/AnsoCode/Sencho/commit/2a2efb847e1847908e2f3ab9d0c38da01f36bd0b))
* **resources:** add loading toast for prune, delete, and purge operations ([#426](https://github.com/AnsoCode/Sencho/issues/426)) ([f6d2199](https://github.com/AnsoCode/Sencho/commit/f6d219997875be46c5c207a7960dd13dad118f3e))
* **resources:** add network management with create, inspect, and topology ([#338](https://github.com/AnsoCode/Sencho/issues/338)) ([24299a0](https://github.com/AnsoCode/Sencho/commit/24299a0115ce0371f44608f8d64248e6474df8ce))
* **resources:** add network management with create, inspect, and topology visualization ([#335](https://github.com/AnsoCode/Sencho/issues/335)) ([4488637](https://github.com/AnsoCode/Sencho/commit/4488637656b8a19f8df2fcea7ffafff023786068))
* **resources:** managed/unmanaged resource separation across Resources Hub ([2a444bd](https://github.com/AnsoCode/Sencho/commit/2a444bde99e13b2e94fa2476f463399840d0e3bf))
* **resources:** managed/unmanaged resource separation across Resources Hub ([5191737](https://github.com/AnsoCode/Sencho/commit/5191737d5365fcc607358993298aad40ab7c2d26))
* **scheduled-ops:** add failure notifications, granular targeting, and history export ([#286](https://github.com/AnsoCode/Sencho/issues/286)) ([eccdd1b](https://github.com/AnsoCode/Sencho/commit/eccdd1b87903c17af822edb0cdb4236812929bd2))
* **scheduled-ops:** add scheduled operations for Team Pro users ([#231](https://github.com/AnsoCode/Sencho/issues/231)) ([31e1795](https://github.com/AnsoCode/Sencho/commit/31e1795af06beaa68ec6e2240d83b7656ab549f7))
* **settings:** harden settings API and overhaul SettingsModal ([23a2259](https://github.com/AnsoCode/Sencho/commit/23a22598abb9185996b6180cb2c78f0311efd4c6))
* **settings:** harden settings API and overhaul SettingsModal ([322e717](https://github.com/AnsoCode/Sencho/commit/322e7175140b1b11db79854d43c322fe2b860b93))
* **settings:** replace static license CTA with dynamic upgrade cards ([#201](https://github.com/AnsoCode/Sencho/issues/201)) ([d3828e8](https://github.com/AnsoCode/Sencho/commit/d3828e885d78b23902a3a82186dcd009e3f2c0d9))
* **settings:** scope split — developer settings always target local node ([f7e8e40](https://github.com/AnsoCode/Sencho/commit/f7e8e409158e038404d4a531331b09d7c37f5113))
* SSO & LDAP authentication for Team Pro ([#209](https://github.com/AnsoCode/Sencho/issues/209)) ([bd4008f](https://github.com/AnsoCode/Sencho/commit/bd4008f5091122f74967b4debdd4c4f046693f46))
* stack context menu, tier icons, centered logo & support ([#194](https://github.com/AnsoCode/Sencho/issues/194)) ([dda1671](https://github.com/AnsoCode/Sencho/commit/dda1671e5a4c6788ba5ad97b00cbac98910f3ef0))
* **stack-management:** add scan stacks folder button ([#332](https://github.com/AnsoCode/Sencho/issues/332)) ([6f74153](https://github.com/AnsoCode/Sencho/commit/6f7415351f648120ab4039f1fcc9a1226cfa52f4))
* **stacks:** per-stack action tracking, optimistic status, and bulk status endpoint ([#362](https://github.com/AnsoCode/Sencho/issues/362)) ([dfd4d28](https://github.com/AnsoCode/Sencho/commit/dfd4d2858a023ed013afbe93c077a3152a0773c5))
* **stacks:** state-aware sidebar context menu and Open App action ([#368](https://github.com/AnsoCode/Sencho/issues/368)) ([55d3b8c](https://github.com/AnsoCode/Sencho/commit/55d3b8ca1dea6958cecf9d1672a6d891751f7ae3))
* **topology:** overhaul network topology with dagre layout, enriched nodes, and click-to-logs ([#447](https://github.com/AnsoCode/Sencho/issues/447)) ([3ee4fe6](https://github.com/AnsoCode/Sencho/commit/3ee4fe6e447a503c94d3199ab93c2504ee58a7da))
* UI polish sprint — 7 items + logs toolbar redesign ([#365](https://github.com/AnsoCode/Sencho/issues/365)) ([f9ebd1d](https://github.com/AnsoCode/Sencho/commit/f9ebd1d77c74434e641e2fc41f4f6d3de8cbeeee))
* **ui:** glassmorphism redesign with settings decomposition ([#274](https://github.com/AnsoCode/Sencho/issues/274)) ([7637091](https://github.com/AnsoCode/Sencho/commit/7637091e84838047c462e3dbce38122d4c24d007))
* **ui:** redesign top bar with three-zone navigation layout ([#237](https://github.com/AnsoCode/Sencho/issues/237)) ([b7e7ee8](https://github.com/AnsoCode/Sencho/commit/b7e7ee8f55ec6bf89acc7bb54d47eab12ac940c5))
* **ui:** theme-aware sidebar logo with dark/light variants ([#74](https://github.com/AnsoCode/Sencho/issues/74)) ([b25574a](https://github.com/AnsoCode/Sencho/commit/b25574a427fcfabd69d13f7515e100fe652fbef7))
* **webhooks:** add CI/CD webhook integration for triggering stack actions (Pro) ([#177](https://github.com/AnsoCode/Sencho/issues/177)) ([4fc3633](https://github.com/AnsoCode/Sencho/commit/4fc363301a1aaa442adbed83aebd21ca0e71c9c5))


### Fixed

* add --exclude='.git' to the rsync invocation. ([8902f6f](https://github.com/AnsoCode/Sencho/commit/8902f6fb4ccddb06f8dec7ef193fca817d2e686a))
* add linux/arm64 platform to Docker build for ARM server support ([12467c3](https://github.com/AnsoCode/Sencho/commit/12467c3fc1d19f43eb234802944300d7a36ccf56))
* **alerts:** overhaul alerts & notifications system for local and remote nodes ([33c4976](https://github.com/AnsoCode/Sencho/commit/33c4976dc78832e0c8a53c92b1ad03ba01c44175))
* **alerts:** overhaul alerts & notifications system for local and remote nodes ([e190f3a](https://github.com/AnsoCode/Sencho/commit/e190f3ad8a0532d400a59216ccdc32218e7568c0))
* **api-tokens:** harden scope enforcement and add expiration support ([#224](https://github.com/AnsoCode/Sencho/issues/224)) ([954994c](https://github.com/AnsoCode/Sencho/commit/954994cdc01e5cee3e65153c2a302afed2da2b44))
* **api-tokens:** harden scope enforcement and block sensitive endpoints ([#228](https://github.com/AnsoCode/Sencho/issues/228)) ([5b607de](https://github.com/AnsoCode/Sencho/commit/5b607de227eecf4000208b347d8157f2d5d94651))
* **api:** add tiered rate limiting to prevent polling lockouts ([#460](https://github.com/AnsoCode/Sencho/issues/460)) ([8e1b982](https://github.com/AnsoCode/Sencho/commit/8e1b9826cf2eb4128d7e9d6d1c667db7c664728f))
* **auto-update:** proxy update execution to remote nodes via Distributed API ([#419](https://github.com/AnsoCode/Sencho/issues/419)) ([ca8f227](https://github.com/AnsoCode/Sencho/commit/ca8f22734d1c6f960cf564cf9fa9588396fbd1fd))
* **billing:** hide billing portal for lifetime licenses ([#427](https://github.com/AnsoCode/Sencho/issues/427)) ([be7eda8](https://github.com/AnsoCode/Sencho/commit/be7eda85f19afe34c311f1fcf751f9a3180cc837))
* **charts:** suppress Recharts dimension warnings on initial render ([#141](https://github.com/AnsoCode/Sencho/issues/141)) ([c6633b0](https://github.com/AnsoCode/Sencho/commit/c6633b0245d10671aac78fedac875be63c62a1e1))
* **ci:** add linux/arm64 Docker build support with QEMU optimization ([#76](https://github.com/AnsoCode/Sencho/issues/76)) ([278f7f1](https://github.com/AnsoCode/Sencho/commit/278f7f18d91ccae8afda48275e8e62b9c2b86d4f))
* **ci:** add load: true to buildx so Trivy can find the built image ([353fd25](https://github.com/AnsoCode/Sencho/commit/353fd253e93356720243f2ccde8b34a5801cfc10))
* **ci:** correct release-please changelog section names and tag format ([ea57cbe](https://github.com/AnsoCode/Sencho/commit/ea57cbe97f7f4166c747f3e3710f85e57ab476a1))
* **ci:** correct release-please changelog section names and tag format ([ea57cbe](https://github.com/AnsoCode/Sencho/commit/ea57cbe97f7f4166c747f3e3710f85e57ab476a1))
* **ci:** correct release-please changelog section names and tag format ([e653bc2](https://github.com/AnsoCode/Sencho/commit/e653bc2210f07d83fcf16ca97e3c2863a40e2cdf))
* **ci:** docker-publish tag trigger ([6cd84ba](https://github.com/AnsoCode/Sencho/commit/6cd84ba9c6b40f2a1630e783c49b397e6d6969dc))
* **ci:** docker-publish tag trigger + re-release v0.1.0 ([6cd84ba](https://github.com/AnsoCode/Sencho/commit/6cd84ba9c6b40f2a1630e783c49b397e6d6969dc))
* **ci:** exclude .git from rsync --delete in sync-docs ([aefeb7a](https://github.com/AnsoCode/Sencho/commit/aefeb7a35febb6fb33843f2c407fce70b40bcb56))
* **ci:** exclude .git from rsync --delete in sync-docs ([8902f6f](https://github.com/AnsoCode/Sencho/commit/8902f6fb4ccddb06f8dec7ef193fca817d2e686a))
* **ci:** fix sync-docs empty-repo crash and update-screenshots protected-branch push ([bed63f8](https://github.com/AnsoCode/Sencho/commit/bed63f8b4725065988254c5d5113866033de38ac))
* **ci:** fix sync-docs empty-repo crash and update-screenshots protected-branch push ([9505132](https://github.com/AnsoCode/Sencho/commit/9505132aaf3c1457383040f5356f6c1d9d4296d0))
* **ci:** fix update-screenshots token and sync-docs empty-repo handling ([392a49e](https://github.com/AnsoCode/Sencho/commit/392a49e0bd27894249f918b6a918b0642ae7c41f))
* **ci:** fix update-screenshots token and sync-docs empty-repo handling ([b24863d](https://github.com/AnsoCode/Sencho/commit/b24863db66ffdc015f723d8c24428f271fcd98b4))
* **ci:** release-please config corrections ([b6391b9](https://github.com/AnsoCode/Sencho/commit/b6391b96ffd4edf7a303350f7416ab1945136e1b))
* **ci:** release-please config corrections ([b6391b9](https://github.com/AnsoCode/Sencho/commit/b6391b96ffd4edf7a303350f7416ab1945136e1b))
* **ci:** trigger docker-publish on v* tag push instead of GitHub Release event ([c8047c2](https://github.com/AnsoCode/Sencho/commit/c8047c209cfb98fd56e7484b5db01f564aa6d027))
* **ci:** trigger docker-publish on v* tag push instead of GitHub Release event ([c8047c2](https://github.com/AnsoCode/Sencho/commit/c8047c209cfb98fd56e7484b5db01f564aa6d027))
* **ci:** trigger docker-publish on v* tag push instead of GitHub Release event ([6c911fd](https://github.com/AnsoCode/Sencho/commit/6c911fd67fa55548173678f08504541fede52299))
* **ci:** update lock files after adding ESLint deps and fixing high CVEs ([3cf9f02](https://github.com/AnsoCode/Sencho/commit/3cf9f023d3f5bc798bfbea5ffeebaee940dfe546))
* **ci:** use double-quoted string for if condition to fix YAML parse error ([f5c5eda](https://github.com/AnsoCode/Sencho/commit/f5c5eda30a65ba7fc4443a1a927f818e339c34f4))
* **ci:** YAML syntax error and sync-docs git directory failure ([dfa93c0](https://github.com/AnsoCode/Sencho/commit/dfa93c0bba9f3cbf684140b9a456359c6745a98f))
* **ci:** YAML syntax error in if condition and safe.directory for sync-docs ([dc79683](https://github.com/AnsoCode/Sencho/commit/dc79683b01690cfe16293660481aa5fdb030603d))
* **compose:** move atomic backup out of stack folder, silence stale stats 404s ([#498](https://github.com/AnsoCode/Sencho/issues/498)) ([ba9c4f4](https://github.com/AnsoCode/Sencho/commit/ba9c4f4aa62f44b4631e2478e03618b2e59891d5))
* **console:** send proxy tier headers for remote node console-token requests ([#424](https://github.com/AnsoCode/Sencho/issues/424)) ([2354bee](https://github.com/AnsoCode/Sencho/commit/2354beed02b52ef4ddd90a861e0037e7d3d090b8))
* **csp:** allow external images in App Store and suppress console warnings ([#138](https://github.com/AnsoCode/Sencho/issues/138)) ([c5217cd](https://github.com/AnsoCode/Sencho/commit/c5217cd96de3dd8d2971668373b6eabd2c1654a4))
* **dashboard:** correct stale Stats reset with inactive field ([0d5dc57](https://github.com/AnsoCode/Sencho/commit/0d5dc574a42e6550bf0e58cc5f60988a970201db))
* **db:** recreate stack_update_status table with composite primary key ([#356](https://github.com/AnsoCode/Sencho/issues/356)) ([4fe4ac5](https://github.com/AnsoCode/Sencho/commit/4fe4ac5d19cddc7db3d05563e8977d0c70d963f2))
* **deps:** migrate SSO OIDC code to openid-client v6 ([#492](https://github.com/AnsoCode/Sencho/issues/492)) ([12fe79f](https://github.com/AnsoCode/Sencho/commit/12fe79fc85cf44f3723424b70a9e2d76d1c32b11))
* **docker:** add entrypoint for volume permission handling ([593a709](https://github.com/AnsoCode/Sencho/commit/593a7091978a2024080ef1bbd394d86acb185b17))
* **docker:** entrypoint for volume permission handling ([c743f6c](https://github.com/AnsoCode/Sencho/commit/c743f6cd45ed8adf97e5bc49f88dbb4b69b41561))
* **docker:** fix xx cross-compilation sysroot for native modules ([#80](https://github.com/AnsoCode/Sencho/issues/80)) ([381701e](https://github.com/AnsoCode/Sencho/commit/381701ee258727b24031c09695c11bdf2cc7c854))
* **docker:** fix xx cross-compilation sysroot for node-pty and C++ modules ([518b0af](https://github.com/AnsoCode/Sencho/commit/518b0afb85023dbd32d7e90bdebaa139f9688d44))
* **docker:** install Docker CLI v29.3.1 from static binaries to resolve CVEs ([#268](https://github.com/AnsoCode/Sencho/issues/268)) ([f9b86e6](https://github.com/AnsoCode/Sencho/commit/f9b86e6f53e83ea0b5e8de7c1c916196d3345aee))
* **docker:** repair broken entrypoint from bad merge conflict resolution ([987fc3d](https://github.com/AnsoCode/Sencho/commit/987fc3d3396f7d66d5b847bb2700be5e87c20af4))
* **docker:** replace QEMU npm execution with tonistiigi/xx cross-compilation ([#78](https://github.com/AnsoCode/Sencho/issues/78)) ([1e0014e](https://github.com/AnsoCode/Sencho/commit/1e0014e1832653a0d8ce23182a2c2c7ef9efde2e))
* **docker:** upgrade Compose v2.40.3 → v5.1.1 to remediate dependency CVEs ([#283](https://github.com/AnsoCode/Sencho/issues/283)) ([36ebd5a](https://github.com/AnsoCode/Sencho/commit/36ebd5a9c1c82b5d7631d32831ac8ac420b0c782))
* **docker:** use native g++ for same-platform builds, xx-clang only for cross ([f23d8c6](https://github.com/AnsoCode/Sencho/commit/f23d8c660dc817f8e4486e656a38aadd9e6e5414))
* **e2e:** fill api_token in nodes tests so submit button is enabled ([707a5e8](https://github.com/AnsoCode/Sencho/commit/707a5e81c1865a45ee1789b7d43fa08eeb81b00b))
* **e2e:** fix stacks timeout and nodes skip in CI ([14c24c8](https://github.com/AnsoCode/Sencho/commit/14c24c82456cd8792cfb5d9f45d6c27b35dac32e))
* **e2e:** fully rewrite nodes tests to handle Radix UI Select and remote type flow ([12bbe51](https://github.com/AnsoCode/Sencho/commit/12bbe51a3af2ef8e48b5165b48026dd4566e9777))
* **e2e:** get all E2E tests passing and fix AlertDialog crash on delete ([f7471a1](https://github.com/AnsoCode/Sencho/commit/f7471a1a18f28c20e903b838ab4bcc8f8e0b73f8))
* **e2e:** use #node-name locator instead of getByLabel in nodes tests ([e01c0d6](https://github.com/AnsoCode/Sencho/commit/e01c0d6b4818c815897fd13b6ec319721a226b73))
* **e2e:** use button role for Resources nav item in screenshots spec ([b0e2b2d](https://github.com/AnsoCode/Sencho/commit/b0e2b2d025b86fca26b193f3eeda7e20c285da53))
* **e2e:** wait for sidebar stacks to finish loading before assertions ([#149](https://github.com/AnsoCode/Sencho/issues/149)) ([9ba9a3a](https://github.com/AnsoCode/Sencho/commit/9ba9a3a4565702135f22736a6b2310fc0da1d2f1))
* **editor:** bundle Monaco locally to fix stuck Loading state ([0eaa45b](https://github.com/AnsoCode/Sencho/commit/0eaa45bd7f5a4b5db9d51a577d25175bbcb4ff77))
* **editor:** bundle Monaco locally to fix stuck Loading state ([0eaa45b](https://github.com/AnsoCode/Sencho/commit/0eaa45bd7f5a4b5db9d51a577d25175bbcb4ff77))
* **editor:** bundle Monaco locally to fix stuck Loading state and CSP block ([79fde6e](https://github.com/AnsoCode/Sencho/commit/79fde6e2bd598085abfc7c702f5745bdfd692aec))
* **editor:** ESLint unused params fix ([dd5b698](https://github.com/AnsoCode/Sencho/commit/dd5b698b3f96e643af608a36128f05874a3b1f3c))
* **editor:** ESLint unused params fix ([dd5b698](https://github.com/AnsoCode/Sencho/commit/dd5b698b3f96e643af608a36128f05874a3b1f3c))
* **editor:** Monaco CSP fix + release pipeline fixes ([36a9bf3](https://github.com/AnsoCode/Sencho/commit/36a9bf3109c096ddd5d8095089a6ffb7bd6dee8d))
* **editor:** Monaco CSP fix + release pipeline fixes — v0.2.1 ([36a9bf3](https://github.com/AnsoCode/Sencho/commit/36a9bf3109c096ddd5d8095089a6ffb7bd6dee8d))
* **editor:** remove unused params from getWorker to satisfy ESLint ([34172a9](https://github.com/AnsoCode/Sencho/commit/34172a99226a4810465968ff9d238b85b1430829))
* **editor:** remove unused params from getWorker to satisfy ESLint ([34172a9](https://github.com/AnsoCode/Sencho/commit/34172a99226a4810465968ff9d238b85b1430829))
* **editor:** remove unused params from getWorker to satisfy ESLint ([59290e9](https://github.com/AnsoCode/Sencho/commit/59290e9e9d00cc97698e0223ab2810ae9f7b06d2))
* **env:** resolve 404 when loading env files and CSP inline script violation ([#134](https://github.com/AnsoCode/Sencho/issues/134)) ([1e6367a](https://github.com/AnsoCode/Sencho/commit/1e6367a147dddb323799a3cd1947507c595d21db))
* **error-handling:** surface silent errors across the codebase ([#326](https://github.com/AnsoCode/Sencho/issues/326)) ([10597d2](https://github.com/AnsoCode/Sencho/commit/10597d213a5dfdc47dddd53998336fb09889962b))
* **fleet:** add Docker Hub fallback for version detection on private repos ([#463](https://github.com/AnsoCode/Sencho/issues/463)) ([8adcef8](https://github.com/AnsoCode/Sencho/commit/8adcef8e4744a16e08a0841b6c5b8e775e92f36f))
* **fleet:** capture local self-update helper errors ([#495](https://github.com/AnsoCode/Sencho/issues/495)) ([4003e7c](https://github.com/AnsoCode/Sencho/commit/4003e7c04730c8ff3d2f8ae9f1885f020aafc8db))
* **fleet:** detect updates via GitHub Releases instead of gateway self-comparison ([#454](https://github.com/AnsoCode/Sencho/issues/454)) ([368bef2](https://github.com/AnsoCode/Sencho/commit/368bef20d3512165b74848ecea4669605fcea88a))
* **fleet:** filter invalid version strings from UI display ([#399](https://github.com/AnsoCode/Sencho/issues/399)) ([2089e75](https://github.com/AnsoCode/Sencho/commit/2089e75ef1e973f3e04aa6cc448211db35d95848))
* **fleet:** forward host bind mounts to self-update helper container ([#509](https://github.com/AnsoCode/Sencho/issues/509)) ([023e962](https://github.com/AnsoCode/Sencho/commit/023e962a26c6b07eff167cf26d48ea97d455464f))
* **fleet:** make local self-update flow reliable end-to-end ([#472](https://github.com/AnsoCode/Sencho/issues/472)) ([3d69746](https://github.com/AnsoCode/Sencho/commit/3d69746eee96698b3f805dcbea11eef81836d155))
* **fleet:** navigate to editor instead of dashboard on "Open in Editor" click ([#289](https://github.com/AnsoCode/Sencho/issues/289)) ([71ce6b3](https://github.com/AnsoCode/Sencho/commit/71ce6b3e1b6cb974d44279e503f9a158d027555a))
* **fleet:** prevent modal flash when clicking Recheck button ([#457](https://github.com/AnsoCode/Sencho/issues/457)) ([8de82ed](https://github.com/AnsoCode/Sencho/commit/8de82ed81f52b00b537788edc1dd134fede986a9))
* **fleet:** resolve ENOENT when triggering remote node self-update ([#413](https://github.com/AnsoCode/Sencho/issues/413)) ([1b890b4](https://github.com/AnsoCode/Sencho/commit/1b890b4d03f1e3dcf813cb74105192f49328df17))
* **fleet:** resolve getSenchoVersion crash in Docker containers ([#391](https://github.com/AnsoCode/Sencho/issues/391)) ([d437a19](https://github.com/AnsoCode/Sencho/commit/d437a195b695f6cb60411db8dbf1f23f22e298db))
* **fleet:** resolve getSenchoVersion crash in Docker containers ([#396](https://github.com/AnsoCode/Sencho/issues/396)) ([670a429](https://github.com/AnsoCode/Sencho/commit/670a42916899954f805ddb0aa50d106e5617d037))
* **fleet:** resolve remote node capability detection failures ([#388](https://github.com/AnsoCode/Sencho/issues/388)) ([dee7c66](https://github.com/AnsoCode/Sencho/commit/dee7c6685b22b3daf9e57363564133f6d7f0639f))
* **fleet:** resolve self-update compose file access and improve completion detection ([#441](https://github.com/AnsoCode/Sencho/issues/441)) ([6fff2c2](https://github.com/AnsoCode/Sencho/commit/6fff2c2d35dcc4fb13a363c803b5c16e24879694))
* **fleet:** resolve stuck update states and improve detection ([#405](https://github.com/AnsoCode/Sencho/issues/405)) ([cc2da99](https://github.com/AnsoCode/Sencho/commit/cc2da99d6f2ac4fad5fba03006377f54262a6dd2))
* **fleet:** resolve version detection pipeline for Docker builds ([#402](https://github.com/AnsoCode/Sencho/issues/402)) ([a55d124](https://github.com/AnsoCode/Sencho/commit/a55d1245f88b377a6a940cee38bc673987465d75))
* **fleet:** resolve version detection using package.json over stale generated constant ([#410](https://github.com/AnsoCode/Sencho/issues/410)) ([8ba4532](https://github.com/AnsoCode/Sencho/commit/8ba4532995bd8c92c92dae2a2c05b5d8c6abc4d5))
* **fleet:** strip trailing slash in fetchRemoteMeta URL construction ([#444](https://github.com/AnsoCode/Sencho/issues/444)) ([8080540](https://github.com/AnsoCode/Sencho/commit/80805408818e1943613efa7df4ae2a3d1c239018))
* gate SSO and Audit behind Team Pro license tier ([#213](https://github.com/AnsoCode/Sencho/issues/213)) ([8d48b0a](https://github.com/AnsoCode/Sencho/commit/8d48b0abff08195a436f98bf8d42c45de51930df))
* **license:** default 14-day trial to Personal Pro instead of Team Pro ([#216](https://github.com/AnsoCode/Sencho/issues/216)) ([f99abe9](https://github.com/AnsoCode/Sencho/commit/f99abe907d5a39f4f32fb08bf25eda9b00dae88b))
* **licensing:** backward-compatible tier/variant enforcement and self-healing variant detection ([#385](https://github.com/AnsoCode/Sencho/issues/385)) ([9e0c9d3](https://github.com/AnsoCode/Sencho/commit/9e0c9d3f2d59f3330becc2153e2b638823c96b10))
* **licensing:** rename variant values to skipper/admiral and store resolved type ([#379](https://github.com/AnsoCode/Sencho/issues/379)) ([797623e](https://github.com/AnsoCode/Sencho/commit/797623e56fb97e6233f27fb9cc5be12613672707))
* **licensing:** resolve Admiral variant detection and lifetime license handling ([#376](https://github.com/AnsoCode/Sencho/issues/376)) ([f841c40](https://github.com/AnsoCode/Sencho/commit/f841c402b2e75874b066400adadcd8dcdfa9ac5f))
* **licensing:** resolve variant from product_name when variant_name lacks tier info ([#382](https://github.com/AnsoCode/Sencho/issues/382)) ([b08f698](https://github.com/AnsoCode/Sencho/commit/b08f698e8f1a2578bdecd274e923f63818239dd1))
* **lint:** resolve all backend ESLint errors to pass CI lint step ([e876a91](https://github.com/AnsoCode/Sencho/commit/e876a91a2e54267b82805731722f4a80ff2ad193))
* **lint:** resolve all ESLint errors to pass CI lint step ([c8a54a9](https://github.com/AnsoCode/Sencho/commit/c8a54a988bc86ea6a9acf05a116e571a735cd4a3))
* **logs:** cap DOM rendering to 300 rows to prevent browser OOM crash ([ec3a249](https://github.com/AnsoCode/Sencho/commit/ec3a2495a2cf71feb1bd8880a8a2ee1d2cc46c10))
* **merge:** resolve CHANGELOG conflict with develop ([9f0257e](https://github.com/AnsoCode/Sencho/commit/9f0257e94fb6dddaa2287103e0f6bad7b3f3fac9))
* **nav:** remove toggle behavior on navigation tabs ([#417](https://github.com/AnsoCode/Sencho/issues/417)) ([5b06992](https://github.com/AnsoCode/Sencho/commit/5b06992e055a8a30c2b3f1cf746cbd2c9b099061))
* **proxy:** prevent remote 401 from triggering local session logout ([278aa22](https://github.com/AnsoCode/Sencho/commit/278aa2298f2874cb5b86c5e38d6e550a792b689b))
* **proxy:** prevent remote 401 from triggering local session logout ([aeefd79](https://github.com/AnsoCode/Sencho/commit/aeefd79b50eb8a864db69ef1625e2a905a521db2))
* **proxy:** re-stream express.json()-consumed body to remote nodes for POST/PUT/PATCH ([a703707](https://github.com/AnsoCode/Sencho/commit/a703707aa0b5bd30cb6715c0371b6822ced353f3))
* **proxy:** skip express.json() for remote proxy requests to fix body forwarding ([ed69543](https://github.com/AnsoCode/Sencho/commit/ed6954307b82370fb8205f359eb412efaaf38d63))
* remediate Dependabot and Docker Scout security vulnerabilities ([#265](https://github.com/AnsoCode/Sencho/issues/265)) ([59fd528](https://github.com/AnsoCode/Sencho/commit/59fd5285351c14f6e9cde073bd983de073fa3a75))
* **resources:** unify container/resource classification with multi-fallback resolution ([#425](https://github.com/AnsoCode/Sencho/issues/425)) ([662bc1a](https://github.com/AnsoCode/Sencho/commit/662bc1a210386e32cd24b33f155ecf6adfda6d8f))
* run as root by default to eliminate stack-folder permission failures ([#501](https://github.com/AnsoCode/Sencho/issues/501)) ([9eb945a](https://github.com/AnsoCode/Sencho/commit/9eb945a6f0a1481b3bf6f06cef28a06474f7fa6c))
* **scheduled-ops:** audit log text, run attribution, prune targets, and pagination ([#234](https://github.com/AnsoCode/Sencho/issues/234)) ([330eec4](https://github.com/AnsoCode/Sencho/commit/330eec4bff6f194aafdcbe499ab893bef06254b6))
* **schedules:** filter auto-update policies from Scheduled Operations view ([#420](https://github.com/AnsoCode/Sencho/issues/420)) ([455bfa8](https://github.com/AnsoCode/Sencho/commit/455bfa8734bf70ffad54b6fc3192ba1f9f16ce39))
* **security:** disable COOP header and Vite module-preload polyfill ([c36ee93](https://github.com/AnsoCode/Sencho/commit/c36ee9341630b3170c17a03d60bab90d387d09be))
* **security:** disable COOP header and Vite module-preload polyfill ([35a57e5](https://github.com/AnsoCode/Sencho/commit/35a57e5fa7ccbaa735cb3f684993b313cb465792))
* **security:** enforce stack name validation on all routes ([#314](https://github.com/AnsoCode/Sencho/issues/314)) ([1ab04be](https://github.com/AnsoCode/Sencho/commit/1ab04be235cc0d3020d17dfb3028e4679206b886))
* **security:** explicitly disable upgrade-insecure-requests via Helmet 8 API ([50df5b3](https://github.com/AnsoCode/Sencho/commit/50df5b3c028cc7dea75f93b994a6feb908988849))
* **security:** harden encryption key permissions, increase password minimum, remove sensitive logs ([#323](https://github.com/AnsoCode/Sencho/issues/323)) ([f317a83](https://github.com/AnsoCode/Sencho/commit/f317a83814fda3a98eb009c1a05a955bfadd6f0d))
* **security:** pre-launch security hardening audit & remediation ([#320](https://github.com/AnsoCode/Sencho/issues/320)) ([2d6b4c2](https://github.com/AnsoCode/Sencho/commit/2d6b4c233daa178de485dfeb198fc90376949ca4))
* **security:** prevent path traversal via env_file resolution ([#311](https://github.com/AnsoCode/Sencho/issues/311)) ([dc545dd](https://github.com/AnsoCode/Sencho/commit/dc545dd61337904e26e18e5e5bed190675432406))
* **security:** remove CSP upgrade-insecure-requests and HSTS for HTTP deployments ([25012a0](https://github.com/AnsoCode/Sencho/commit/25012a07caa7b545cbdbbdb033778cccc42a618c))
* **security:** remove CSP upgrade-insecure-requests and HSTS over HTTP ([cf2946c](https://github.com/AnsoCode/Sencho/commit/cf2946cfa67157db716e15544fdd547945ec0c3e))
* **settings:** prevent X button overlap and add tooltip to Always Local badge ([ed0817b](https://github.com/AnsoCode/Sencho/commit/ed0817b2c59187b3a1ac9dc52a9ce6ec6e3427bd))
* **sidebar:** resolve stacks showing unknown status when compose name field is set ([#416](https://github.com/AnsoCode/Sencho/issues/416)) ([88011e1](https://github.com/AnsoCode/Sencho/commit/88011e1b16975033e9212de3d61aa4987237ead2))
* **stacks:** avoid resource busy error in Docker fallback deletion ([#271](https://github.com/AnsoCode/Sencho/issues/271)) ([10d1636](https://github.com/AnsoCode/Sencho/commit/10d16361fae2869367a9f757bfc0ab4c3e04ca2c))
* **stacks:** resolve permission denied error on stack deletion ([#261](https://github.com/AnsoCode/Sencho/issues/261)) ([116f15d](https://github.com/AnsoCode/Sencho/commit/116f15dae9c3b530145316ea8b2954ed478fed76))
* **stats:** classify managed containers by working_dir instead of project name ([16e978b](https://github.com/AnsoCode/Sencho/commit/16e978bf4e360f59b3f79b7a38194509fcaddda2))
* **stats:** classify managed containers by working_dir instead of project name ([d62ac09](https://github.com/AnsoCode/Sencho/commit/d62ac095031ae203b2d29a1f0caa85a113884da7))
* trigger docs sync on develop instead of main ([7d1b996](https://github.com/AnsoCode/Sencho/commit/7d1b996bb7c10d33330ed645c8cfd1fc302a93e0))
* **ts:** remove unused motion import from alert-dialog ([0dd72b3](https://github.com/AnsoCode/Sencho/commit/0dd72b3eb467598452938133f563042df15c8596))
* **ts:** use type-only import for Node to satisfy verbatimModuleSyntax ([94d6c8f](https://github.com/AnsoCode/Sencho/commit/94d6c8fc0f8f3afce0e95d80f6a75a3884cca2af))
* **ui:** resolve 9 animated design system bugs including Monaco tab height accumulation ([22e6462](https://github.com/AnsoCode/Sencho/commit/22e646286e9321e66101f9aedc89a99edce1d3c4))
* **ui:** settings modal sidebar nav clipped on smaller viewports ([#280](https://github.com/AnsoCode/Sencho/issues/280)) ([9e14ce9](https://github.com/AnsoCode/Sencho/commit/9e14ce999f89052b218d2e3f974644f41355955c))
* **ui:** standardize toast background to match floating overlay glass style ([#451](https://github.com/AnsoCode/Sencho/issues/451)) ([089d43b](https://github.com/AnsoCode/Sencho/commit/089d43b8556c1418e23c93816391a52476edd9db))
* unify caching behind a single CacheService and enable HTTP compression ([#468](https://github.com/AnsoCode/Sencho/issues/468)) ([c0c3212](https://github.com/AnsoCode/Sencho/commit/c0c321227bd5b8b3fb9f992c8cb64182de00056a))
* **ws:** fix remote node console — delegate console session tokens ([6c518ce](https://github.com/AnsoCode/Sencho/commit/6c518cee5a8735dea3f06cc662706b900c8d93f1))
* **ws:** fix remote node console by delegating console session tokens ([30fe77c](https://github.com/AnsoCode/Sencho/commit/30fe77cd5d57b1dbae6a8b40aebf4f14453d571c))


### Security

* harden terminal WebSocket endpoints against three attack vectors ([2e0f3e2](https://github.com/AnsoCode/Sencho/commit/2e0f3e2711e02c2350342e1fdb56878a81658e38))
* pre-release hardening, automated testing, and production readiness ([ce50db0](https://github.com/AnsoCode/Sencho/commit/ce50db0fdee160e20b658f98b5d8fee86215afc3))

## [0.44.1](https://github.com/AnsoCode/Sencho/compare/v0.44.0...v0.44.1) (2026-04-12)


### Fixed

* **fleet:** forward host bind mounts to self-update helper container ([#509](https://github.com/AnsoCode/Sencho/issues/509)) ([023e962](https://github.com/AnsoCode/Sencho/commit/023e962a26c6b07eff167cf26d48ea97d455464f))

## [0.44.0](https://github.com/AnsoCode/Sencho/compare/v0.43.4...v0.44.0) (2026-04-12)


### Added

* home dashboard and Settings Hub polish ([#506](https://github.com/AnsoCode/Sencho/issues/506)) ([622c1f9](https://github.com/AnsoCode/Sencho/commit/622c1f9262800bf315e244db93265076bb1c2ba8))

## [0.43.4](https://github.com/AnsoCode/Sencho/compare/v0.43.3...v0.43.4) (2026-04-11)

### Fixed

* run as root by default to eliminate stack-folder permission failures ([#501](https://github.com/AnsoCode/Sencho/issues/501)) ([9eb945a](https://github.com/AnsoCode/Sencho/commit/9eb945a6f0a1481b3bf6f06cef28a06474f7fa6c))

## [0.43.3](https://github.com/AnsoCode/Sencho/compare/v0.43.2...v0.43.3) (2026-04-11)

### Fixed

* **compose:** move atomic backup out of stack folder, silence stale stats 404s ([#498](https://github.com/AnsoCode/Sencho/issues/498)) ([ba9c4f4](https://github.com/AnsoCode/Sencho/commit/ba9c4f4aa62f44b4631e2478e03618b2e59891d5))

## [0.43.2](https://github.com/AnsoCode/Sencho/compare/v0.43.1...v0.43.2) (2026-04-10)

### Fixed

* **fleet:** capture local self-update helper errors ([#495](https://github.com/AnsoCode/Sencho/issues/495)) ([4003e7c](https://github.com/AnsoCode/Sencho/commit/4003e7c04730c8ff3d2f8ae9f1885f020aafc8db))

## [0.43.1](https://github.com/AnsoCode/Sencho/compare/v0.43.0...v0.43.1) (2026-04-10)

### Fixed

* **deps:** update SSO/OIDC integration for upstream library v6 ([#492](https://github.com/AnsoCode/Sencho/issues/492)) ([12fe79f](https://github.com/AnsoCode/Sencho/commit/12fe79fc85cf44f3723424b70a9e2d76d1c32b11))

## [0.43.0](https://github.com/AnsoCode/Sencho/compare/v0.42.7...v0.43.0) (2026-04-10)

### Added

* **release:** sign and attest published docker images ([#480](https://github.com/AnsoCode/Sencho/issues/480)) ([2a2efb8](https://github.com/AnsoCode/Sencho/commit/2a2efb847e1847908e2f3ab9d0c38da01f36bd0b))

## [0.42.7](https://github.com/AnsoCode/Sencho/compare/v0.42.6...v0.42.7) (2026-04-10)

### Fixed

* **fleet:** make local self-update flow reliable end-to-end ([#472](https://github.com/AnsoCode/Sencho/issues/472)) ([3d69746](https://github.com/AnsoCode/Sencho/commit/3d69746eee96698b3f805dcbea11eef81836d155))

## [0.42.6](https://github.com/AnsoCode/Sencho/compare/v0.42.5...v0.42.6) (2026-04-10)

### Fixed

* unify caching behind a single cache layer and enable HTTP compression ([#468](https://github.com/AnsoCode/Sencho/issues/468)) ([c0c3212](https://github.com/AnsoCode/Sencho/commit/c0c321227bd5b8b3fb9f992c8cb64182de00056a))

## [0.42.5](https://github.com/AnsoCode/Sencho/compare/v0.42.4...v0.42.5) (2026-04-10)

### Fixed

* **fleet:** add Docker Hub fallback for version detection on private repos ([#463](https://github.com/AnsoCode/Sencho/issues/463)) ([8adcef8](https://github.com/AnsoCode/Sencho/commit/8adcef8e4744a16e08a0841b6c5b8e775e92f36f))

## [0.42.4](https://github.com/AnsoCode/Sencho/compare/v0.42.3...v0.42.4) (2026-04-09)

### Fixed

* **api:** add tiered rate limiting to prevent polling lockouts ([#460](https://github.com/AnsoCode/Sencho/issues/460)) ([8e1b982](https://github.com/AnsoCode/Sencho/commit/8e1b9826cf2eb4128d7e9d6d1c667db7c664728f))

## [0.42.3](https://github.com/AnsoCode/Sencho/compare/v0.42.2...v0.42.3) (2026-04-09)

### Fixed

* **fleet:** prevent modal flash when clicking Recheck button ([#457](https://github.com/AnsoCode/Sencho/issues/457)) ([8de82ed](https://github.com/AnsoCode/Sencho/commit/8de82ed81f52b00b537788edc1dd134fede986a9))

## [0.42.2](https://github.com/AnsoCode/Sencho/compare/v0.42.1...v0.42.2) (2026-04-09)

### Fixed

* **fleet:** detect updates via GitHub Releases instead of gateway self-comparison ([#454](https://github.com/AnsoCode/Sencho/issues/454)) ([368bef2](https://github.com/AnsoCode/Sencho/commit/368bef20d3512165b74848ecea4669605fcea88a))

## [0.42.1](https://github.com/AnsoCode/Sencho/compare/v0.42.0...v0.42.1) (2026-04-09)

### Fixed

* **ui:** standardize toast background to match floating overlay glass style ([#451](https://github.com/AnsoCode/Sencho/issues/451)) ([089d43b](https://github.com/AnsoCode/Sencho/commit/089d43b8556c1418e23c93816391a52476edd9db))

## [0.42.0](https://github.com/AnsoCode/Sencho/compare/v0.41.2...v0.42.0) (2026-04-09)

### Added

* **topology:** overhaul network topology with dagre layout, enriched nodes, and click-to-logs ([#447](https://github.com/AnsoCode/Sencho/issues/447)) ([3ee4fe6](https://github.com/AnsoCode/Sencho/commit/3ee4fe6e447a503c94d3199ab93c2504ee58a7da))

## [0.41.2](https://github.com/AnsoCode/Sencho/compare/v0.41.1...v0.41.2) (2026-04-08)

### Fixed

* **fleet:** strip trailing slash in fetchRemoteMeta URL construction ([#444](https://github.com/AnsoCode/Sencho/issues/444)) ([8080540](https://github.com/AnsoCode/Sencho/commit/80805408818e1943613efa7df4ae2a3d1c239018))

## [0.41.1](https://github.com/AnsoCode/Sencho/compare/v0.41.0...v0.41.1) (2026-04-08)

### Fixed

* **fleet:** resolve self-update compose file access and improve completion detection ([#441](https://github.com/AnsoCode/Sencho/issues/441)) ([6fff2c2](https://github.com/AnsoCode/Sencho/commit/6fff2c2d35dcc4fb13a363c803b5c16e24879694))

## [0.41.0](https://github.com/AnsoCode/Sencho/compare/v0.40.0...v0.41.0) (2026-04-08)

### Added

* **contact:** add official contact emails throughout app and docs ([#428](https://github.com/AnsoCode/Sencho/issues/428)) ([8e0857e](https://github.com/AnsoCode/Sencho/commit/8e0857e7f62d89434768da5f57223ae25276b33d))
* **dashboard:** add node badge to Recent Alerts for remote node alerts ([#423](https://github.com/AnsoCode/Sencho/issues/423)) ([a6849ae](https://github.com/AnsoCode/Sencho/commit/a6849aedabc06cd85a74a915445765ff6f857f6f))
* **resources:** add loading toast for prune, delete, and purge operations ([#426](https://github.com/AnsoCode/Sencho/issues/426)) ([f6d2199](https://github.com/AnsoCode/Sencho/commit/f6d219997875be46c5c207a7960dd13dad118f3e))

### Fixed

* **billing:** hide billing portal for lifetime licenses ([#427](https://github.com/AnsoCode/Sencho/issues/427)) ([be7eda8](https://github.com/AnsoCode/Sencho/commit/be7eda85f19afe34c311f1fcf751f9a3180cc837))
* **console:** send proxy tier headers for remote node console-token requests ([#424](https://github.com/AnsoCode/Sencho/issues/424)) ([2354bee](https://github.com/AnsoCode/Sencho/commit/2354beed02b52ef4ddd90a861e0037e7d3d090b8))
* **resources:** unify container/resource classification with multi-fallback resolution ([#425](https://github.com/AnsoCode/Sencho/issues/425)) ([662bc1a](https://github.com/AnsoCode/Sencho/commit/662bc1a210386e32cd24b33f155ecf6adfda6d8f))

## [0.40.0](https://github.com/AnsoCode/Sencho/compare/v0.39.6...v0.40.0) (2026-04-07)

### Added

* **nav:** add pulsing animation to local node status dot ([#418](https://github.com/AnsoCode/Sencho/issues/418)) ([8920d8c](https://github.com/AnsoCode/Sencho/commit/8920d8c55a95e3b4e799489dd757627f218a3d11))

### Fixed

* **auto-update:** proxy update execution to remote nodes via Distributed API ([#419](https://github.com/AnsoCode/Sencho/issues/419)) ([ca8f227](https://github.com/AnsoCode/Sencho/commit/ca8f22734d1c6f960cf564cf9fa9588396fbd1fd))
* **nav:** remove toggle behavior on navigation tabs ([#417](https://github.com/AnsoCode/Sencho/issues/417)) ([5b06992](https://github.com/AnsoCode/Sencho/commit/5b06992e055a8a30c2b3f1cf746cbd2c9b099061))
* **schedules:** filter auto-update policies from Scheduled Operations view ([#420](https://github.com/AnsoCode/Sencho/issues/420)) ([455bfa8](https://github.com/AnsoCode/Sencho/commit/455bfa8734bf70ffad54b6fc3192ba1f9f16ce39))
* **sidebar:** resolve stacks showing unknown status when compose name field is set ([#416](https://github.com/AnsoCode/Sencho/issues/416)) ([88011e1](https://github.com/AnsoCode/Sencho/commit/88011e1b16975033e9212de3d61aa4987237ead2))

## [0.39.6](https://github.com/AnsoCode/Sencho/compare/v0.39.5...v0.39.6) (2026-04-07)

### Fixed

* **fleet:** resolve ENOENT when triggering remote node self-update ([#413](https://github.com/AnsoCode/Sencho/issues/413)) ([1b890b4](https://github.com/AnsoCode/Sencho/commit/1b890b4d03f1e3dcf813cb74105192f49328df17))

## [0.39.5](https://github.com/AnsoCode/Sencho/compare/v0.39.4...v0.39.5) (2026-04-07)

### Fixed

* **fleet:** resolve version detection using package.json over stale generated constant ([#410](https://github.com/AnsoCode/Sencho/issues/410)) ([8ba4532](https://github.com/AnsoCode/Sencho/commit/8ba4532995bd8c92c92dae2a2c05b5d8c6abc4d5))

## [0.39.4](https://github.com/AnsoCode/Sencho/compare/v0.39.3...v0.39.4) (2026-04-07)

### Fixed

* **fleet:** resolve stuck update states and improve detection ([#405](https://github.com/AnsoCode/Sencho/issues/405)) ([cc2da99](https://github.com/AnsoCode/Sencho/commit/cc2da99d6f2ac4fad5fba03006377f54262a6dd2))

## [0.39.3](https://github.com/AnsoCode/Sencho/compare/v0.39.2...v0.39.3) (2026-04-06)

### Fixed

* **fleet:** resolve version detection pipeline for Docker builds ([#402](https://github.com/AnsoCode/Sencho/issues/402)) ([a55d124](https://github.com/AnsoCode/Sencho/commit/a55d1245f88b377a6a940cee38bc673987465d75))

## [0.39.2](https://github.com/AnsoCode/Sencho/compare/v0.39.1...v0.39.2) (2026-04-06)

### Fixed

* **fleet:** filter invalid version strings from UI display ([#399](https://github.com/AnsoCode/Sencho/issues/399)) ([2089e75](https://github.com/AnsoCode/Sencho/commit/2089e75ef1e973f3e04aa6cc448211db35d95848))

## [0.39.1](https://github.com/AnsoCode/Sencho/compare/v0.39.0...v0.39.1) (2026-04-06)

### Fixed

* **fleet:** resolve getSenchoVersion crash in Docker containers ([#396](https://github.com/AnsoCode/Sencho/issues/396)) ([670a429](https://github.com/AnsoCode/Sencho/commit/670a42916899954f805ddb0aa50d106e5617d037))

## [0.39.0](https://github.com/AnsoCode/Sencho/compare/v0.38.6...v0.39.0) (2026-04-06)

### Added

* add automated docs pipeline and scaffold /docs folder ([9496b14](https://github.com/AnsoCode/Sencho/commit/9496b14f723858d7134e90bf27d921791045dacf))
* add Community/Pro licensing, fleet view, and UI reorganization ([#145](https://github.com/AnsoCode/Sencho/issues/145)) ([4f26f22](https://github.com/AnsoCode/Sencho/commit/4f26f22ccef89441be032a266723cf6fca0a488a))
* add dynamic template registry and smart volume path sanitizer ([536a714](https://github.com/AnsoCode/Sencho/commit/536a714d9b9c5f41d694df9f89733356ea61d167))
* add update-screenshots CI job and screenshot capture spec ([ed8b8e3](https://github.com/AnsoCode/Sencho/commit/ed8b8e33b6b52d9cefef9a2a677a9e12a1b34e61))
* Advanced Error Handling & Probes ([b90db01](https://github.com/AnsoCode/Sencho/commit/b90db0124ce168c08c7356a4b94ccb9599c0edc9))
* **api-tokens:** add scoped API tokens for CI/CD automation (Admiral) ([#220](https://github.com/AnsoCode/Sencho/issues/220)) ([8d8118c](https://github.com/AnsoCode/Sencho/commit/8d8118c963a1c3b10872041ea0f645d8f0a65196))
* **api:** add global rate limiter for all API endpoints ([#317](https://github.com/AnsoCode/Sencho/issues/317)) ([b28ebfa](https://github.com/AnsoCode/Sencho/commit/b28ebfa6ffff7fa76657c67e5fdb3494a76bd8a1))
* App Store Polish ([5c7e08a](https://github.com/AnsoCode/Sencho/commit/5c7e08a3912d85c82964ae9bed1e5f56254eacac))
* App Templates & One-Click Installs ([b519fbb](https://github.com/AnsoCode/Sencho/commit/b519fbbddff66cedcd191ccb7d3290cdcfd6f541))
* **app-store:** category filter bar + custom registry settings ([ae4540b](https://github.com/AnsoCode/Sencho/commit/ae4540bf4613c2ae416c828b622bb4e198f1a11f))
* **app-store:** category filter bar and custom registry settings ([34cad76](https://github.com/AnsoCode/Sencho/commit/34cad76d45fe7212bd61aa514f40e13217e2fd8e))
* audit logging, secrets at rest, and legacy cleanup ([#205](https://github.com/AnsoCode/Sencho/issues/205)) ([1799030](https://github.com/AnsoCode/Sencho/commit/179903006035280d5c1655daaf3dbe3384588bf0))
* **audit-log:** add configurable retention, export, Auditor role, and enhanced filtering ([#258](https://github.com/AnsoCode/Sencho/issues/258)) ([d586ce3](https://github.com/AnsoCode/Sencho/commit/d586ce393af34c8cc34cd046d2d90a70e0d79964))
* **auth:** redesign Login and Setup pages with split-panel branding layout ([#153](https://github.com/AnsoCode/Sencho/issues/153)) ([e0319b5](https://github.com/AnsoCode/Sencho/commit/e0319b5daebbae88b942ba55f6891ce0e2ecaf29))
* auto-refresh doc screenshots on develop push ([eaf2177](https://github.com/AnsoCode/Sencho/commit/eaf217720c42a07cce7afadd673178c886717878))
* **auto-update:** add auto-update policies and fix image update detection ([#297](https://github.com/AnsoCode/Sencho/issues/297)) ([28c7a8f](https://github.com/AnsoCode/Sencho/commit/28c7a8fd544f33ea0fbe90f19ed96154743eb527))
* automated docs pipeline ([05a6b93](https://github.com/AnsoCode/Sencho/commit/05a6b93af0b2de04e70565445178873d5f858348))
* **ci:** add release-please automated versioning workflow ([c2d5d37](https://github.com/AnsoCode/Sencho/commit/c2d5d37be41267e71bb8515010b049fcd31f5d6b))
* **ci:** automated versioning with release-please ([c991b81](https://github.com/AnsoCode/Sencho/commit/c991b8121edcd30bd6806e959d0dcd14711f439f))
* **dashboard:** redesign as DevOps command center ([#371](https://github.com/AnsoCode/Sencho/issues/371)) ([2ee959e](https://github.com/AnsoCode/Sencho/commit/2ee959ec3b696c5beba7b8b62bec2221ca65d525))
* Deployment Freedom & Polish ([a6bf1a3](https://github.com/AnsoCode/Sencho/commit/a6bf1a3b9672c098187991e01a47247ee1008f07))
* **design:** animated design system foundation with animate-ui and motion ([c34092f](https://github.com/AnsoCode/Sencho/commit/c34092f8ec07fa84e1bb83775ac767c6cb2dd744))
* **docker:** add linux/arm64 platform support via xx cross-compilation ([cf19390](https://github.com/AnsoCode/Sencho/commit/cf19390fd559a0ee49b9c2b08675565afd715dd5))
* Dynamic Templates & Sanitizer ([c05654b](https://github.com/AnsoCode/Sencho/commit/c05654bdf9eacdd11c35a3eadf10ba8573e40bae))
* Enterprise Logs & Dev Mode ([b32cf54](https://github.com/AnsoCode/Sencho/commit/b32cf5490c36c6ad42dce13c847233d4855d91c3))
* **fleet:** add Pro fleet management features and container drill-down ([#174](https://github.com/AnsoCode/Sencho/issues/174)) ([0630f57](https://github.com/AnsoCode/Sencho/commit/0630f57ca87451352e7c50d511522ac621771458))
* **fleet:** add remote node update management ([#353](https://github.com/AnsoCode/Sencho/issues/353)) ([87b5908](https://github.com/AnsoCode/Sencho/commit/87b59082887902af24ad2bf88ae3d4d4c941411e))
* **host-console:** gate Host Console behind Admiral tier ([#277](https://github.com/AnsoCode/Sencho/issues/277)) ([b5d3f49](https://github.com/AnsoCode/Sencho/commit/b5d3f497cb1a09fdc2107f4ef720ebb7f07cbd87))
* implement app templates storefront and deployment engine ([1676dc2](https://github.com/AnsoCode/Sencho/commit/1676dc22dfc62a4584e4896732a99b951bfb2fe2))
* implement centralized logging and historical metrics dashboard ([a4a5365](https://github.com/AnsoCode/Sencho/commit/a4a5365da1036a5fc381f49d09f353b1bff6ec43))
* implement dynamic volumes, custom env vars, and timezone detection ([f2fbca1](https://github.com/AnsoCode/Sencho/commit/f2fbca17b719f72c139a6e18c420ca8bddfbdb98))
* implement enterprise sse global logs and developer mode ([448a64a](https://github.com/AnsoCode/Sencho/commit/448a64a10deb022a7c96c10fac7463bd83e231e6))
* implement pre-deploy collision checks and universal two-stage t… ([12aab3a](https://github.com/AnsoCode/Sencho/commit/12aab3a5aef1ef2dcb80631646220190919d36a1))
* implement pre-deploy collision checks and universal two-stage teardown ([b979525](https://github.com/AnsoCode/Sencho/commit/b97952567d23448fcc5c0ae3fe2a34e3c704c326))
* implement real-time container log streaming via SSE ([49cef7a](https://github.com/AnsoCode/Sencho/commit/49cef7acfa6cb8176accfa4019933d94f5aa114d))
* implement remote tls/ssh security, isolate system stats, and polish ux ([2a37e11](https://github.com/AnsoCode/Sencho/commit/2a37e114df76a7f09a262b634074c4c190ecd38d))
* implement smart error parser and post-deploy health probe ([953049a](https://github.com/AnsoCode/Sencho/commit/953049a45dfba4f413e71767004f69c601469e43))
* integrate official lsio api and rich template metadata ([f9e8874](https://github.com/AnsoCode/Sencho/commit/f9e8874f6c6ef454912ca69dac12802e59000df5))
* **labels:** add stack labels for organizing, filtering, and bulk actions ([#341](https://github.com/AnsoCode/Sencho/issues/341)) ([28e7be6](https://github.com/AnsoCode/Sencho/commit/28e7be652cb18abdd51ca6df8eda2104d213dc30))
* **license:** distributed license enforcement across multi-node setups ([#359](https://github.com/AnsoCode/Sencho/issues/359)) ([6c26ae3](https://github.com/AnsoCode/Sencho/commit/6c26ae3f501d438dcde5331bae588ee6e26c2c3e))
* **multi-node:** warn when configuring remote node with plain HTTP URL ([#292](https://github.com/AnsoCode/Sencho/issues/292)) ([e587256](https://github.com/AnsoCode/Sencho/commit/e587256086997a784007a69d8a7fd56881d0a9b1))
* **nodes:** add capability-based node compatibility negotiation ([#350](https://github.com/AnsoCode/Sencho/issues/350)) ([ee75811](https://github.com/AnsoCode/Sencho/commit/ee75811e255e8d5f9ae87117d12c2902185d98f1))
* **nodes:** add per-node scheduling and update visibility ([#344](https://github.com/AnsoCode/Sencho/issues/344)) ([efbd20f](https://github.com/AnsoCode/Sencho/commit/efbd20fed57299acae43ecaee3b1d9ff52da5aae))
* **notifications:** add shared notification routing rules (Admiral tier) ([#347](https://github.com/AnsoCode/Sencho/issues/347)) ([1b573f5](https://github.com/AnsoCode/Sencho/commit/1b573f542a36cde3e94c05f285d34330df96edb1))
* **notifications:** aggregate alerts from all connected nodes in the notification panel ([16f55bb](https://github.com/AnsoCode/Sencho/commit/16f55bbb40fedc4e8ae6344671ddd016faf78151))
* **notifications:** aggregate alerts from all nodes in the notification panel ([1690f0d](https://github.com/AnsoCode/Sencho/commit/1690f0d3c6b80f0825d71d32f4c6bdd3f07a1290))
* **notifications:** replace polling with WebSocket push ([4d1aef7](https://github.com/AnsoCode/Sencho/commit/4d1aef744b8fe9195ceb5dcafbaf593d216ff8e0))
* Official LSIO API Integration ([33b4881](https://github.com/AnsoCode/Sencho/commit/33b48811d80a413b394fc85a5f03cfabeed26761))
* polish app store ui and add advanced deployment configuration ([44acfd7](https://github.com/AnsoCode/Sencho/commit/44acfd7d90d283a734b225b086f44d63bfac7e0e))
* RBAC, atomic deployments, and fleet-wide backups (Skipper and Admiral) ([#181](https://github.com/AnsoCode/Sencho/issues/181)) ([db73d76](https://github.com/AnsoCode/Sencho/commit/db73d7671a22b72756a16594004d9767970d4190))
* RBAC, atomic deployments, fleet backups, and licensing (Skipper and Admiral) ([#185](https://github.com/AnsoCode/Sencho/issues/185)) ([32a7d53](https://github.com/AnsoCode/Sencho/commit/32a7d53b2b1b9b3d2a067433c9e77709ade96697))
* **rbac:** add Deployer & Node Admin roles with scoped permissions (Admiral) ([#253](https://github.com/AnsoCode/Sencho/issues/253)) ([8380fba](https://github.com/AnsoCode/Sencho/commit/8380fbad4b617b004e2d2f19595d1490eaa1e005))
* **registries:** add private registry credential management (Admiral) ([#240](https://github.com/AnsoCode/Sencho/issues/240)) ([244c83a](https://github.com/AnsoCode/Sencho/commit/244c83a0c3102a797658d35d087bf47366f6df75))
* Remote Nodes Foundation ([457c997](https://github.com/AnsoCode/Sencho/commit/457c9976bc40e5e48f0415c6ca13f435d3713424))
* Remote Nodes foundation: nodes table, node registry service, node management API, Node Manager UI, active-node switcher, and Nodes settings tab ([02e1ebe](https://github.com/AnsoCode/Sencho/commit/02e1ebe1b66a75d24f967fefe3839b4ad7ec4cfc))
* Remote Nodes Security & Polish ([2373043](https://github.com/AnsoCode/Sencho/commit/23730430d747c23dc13cbb90ed07186240a1d0e0))
* Remote Nodes Wiring & SSH Adapters ([8a4f887](https://github.com/AnsoCode/Sencho/commit/8a4f8874dede12443129c1ab87a8c581513b5cf4))
* **resources:** add network management with create, inspect, and topology ([#338](https://github.com/AnsoCode/Sencho/issues/338)) ([24299a0](https://github.com/AnsoCode/Sencho/commit/24299a0115ce0371f44608f8d64248e6474df8ce))
* **resources:** add network management with create, inspect, and topology visualization ([#335](https://github.com/AnsoCode/Sencho/issues/335)) ([4488637](https://github.com/AnsoCode/Sencho/commit/4488637656b8a19f8df2fcea7ffafff023786068))
* **resources:** managed/unmanaged resource separation across Resources Hub ([2a444bd](https://github.com/AnsoCode/Sencho/commit/2a444bde99e13b2e94fa2476f463399840d0e3bf))
* **scheduled-ops:** add failure notifications, granular targeting, and history export ([#286](https://github.com/AnsoCode/Sencho/issues/286)) ([eccdd1b](https://github.com/AnsoCode/Sencho/commit/eccdd1b87903c17af822edb0cdb4236812929bd2))
* **scheduled-ops:** add scheduled operations for Admiral users ([#231](https://github.com/AnsoCode/Sencho/issues/231)) ([31e1795](https://github.com/AnsoCode/Sencho/commit/31e1795af06beaa68ec6e2240d83b7656ab549f7))
* **settings:** harden settings API and overhaul SettingsModal ([23a2259](https://github.com/AnsoCode/Sencho/commit/23a22598abb9185996b6180cb2c78f0311efd4c6))
* **settings:** replace static license CTA with dynamic upgrade cards ([#201](https://github.com/AnsoCode/Sencho/issues/201)) ([d3828e8](https://github.com/AnsoCode/Sencho/commit/d3828e885d78b23902a3a82186dcd009e3f2c0d9))
* **settings:** scope split: developer settings always target local node ([f7e8e40](https://github.com/AnsoCode/Sencho/commit/f7e8e409158e038404d4a531331b09d7c37f5113))
* SSO & LDAP authentication for Admiral ([#209](https://github.com/AnsoCode/Sencho/issues/209)) ([bd4008f](https://github.com/AnsoCode/Sencho/commit/bd4008f5091122f74967b4debdd4c4f046693f46))
* stack context menu, tier icons, centered logo & support ([#194](https://github.com/AnsoCode/Sencho/issues/194)) ([dda1671](https://github.com/AnsoCode/Sencho/commit/dda1671e5a4c6788ba5ad97b00cbac98910f3ef0))
* **stack-management:** add scan stacks folder button ([#332](https://github.com/AnsoCode/Sencho/issues/332)) ([6f74153](https://github.com/AnsoCode/Sencho/commit/6f7415351f648120ab4039f1fcc9a1226cfa52f4))
* **stacks:** per-stack action tracking, optimistic status, and bulk status endpoint ([#362](https://github.com/AnsoCode/Sencho/issues/362)) ([dfd4d28](https://github.com/AnsoCode/Sencho/commit/dfd4d2858a023ed013afbe93c077a3152a0773c5))
* **stacks:** state-aware sidebar context menu and Open App action ([#368](https://github.com/AnsoCode/Sencho/issues/368)) ([55d3b8c](https://github.com/AnsoCode/Sencho/commit/55d3b8ca1dea6958cecf9d1672a6d891751f7ae3))
* **system:** background image update checker with stack badges ([ef5621e](https://github.com/AnsoCode/Sencho/commit/ef5621e48457341719dc743045c0923178d3b280))
* UI polish sprint: 7 items + logs toolbar redesign ([#365](https://github.com/AnsoCode/Sencho/issues/365)) ([f9ebd1d](https://github.com/AnsoCode/Sencho/commit/f9ebd1d77c74434e641e2fc41f4f6d3de8cbeeee))
* **ui:** glassmorphism redesign with settings decomposition ([#274](https://github.com/AnsoCode/Sencho/issues/274)) ([7637091](https://github.com/AnsoCode/Sencho/commit/7637091e84838047c462e3dbce38122d4c24d007))
* **ui:** Phase 57 - Remote Context Navigation ([b7748b4](https://github.com/AnsoCode/Sencho/commit/b7748b4d170bb712db5f0851ed9cf2f9fa473f78))
* **ui:** Phase 57 - remote context UX (Option A) + network layer fixes ([04c770c](https://github.com/AnsoCode/Sencho/commit/04c770c198892618fa69713f47d3b8efbd44eab7))
* **ui:** redesign top bar with three-zone navigation layout ([#237](https://github.com/AnsoCode/Sencho/issues/237)) ([b7e7ee8](https://github.com/AnsoCode/Sencho/commit/b7e7ee8f55ec6bf89acc7bb54d47eab12ac940c5))
* **ui:** theme-aware sidebar logo with dark/light variants ([#74](https://github.com/AnsoCode/Sencho/issues/74)) ([b25574a](https://github.com/AnsoCode/Sencho/commit/b25574a427fcfabd69d13f7515e100fe652fbef7))
* Unified Observability ([935c2b0](https://github.com/AnsoCode/Sencho/commit/935c2b016a70d79a7c1249cd1ddbab0a6745d3f3))
* **webhooks:** add CI/CD webhook integration for triggering stack actions (Skipper and Admiral) ([#177](https://github.com/AnsoCode/Sencho/issues/177)) ([4fc3633](https://github.com/AnsoCode/Sencho/commit/4fc363301a1aaa442adbed83aebd21ca0e71c9c5))

### Fixed

* add --exclude='.git' to the rsync invocation. ([8902f6f](https://github.com/AnsoCode/Sencho/commit/8902f6fb4ccddb06f8dec7ef193fca817d2e686a))
* add linux/arm64 platform to Docker build for ARM server support ([12467c3](https://github.com/AnsoCode/Sencho/commit/12467c3fc1d19f43eb234802944300d7a36ccf56))
* add tls_ca, tls_cert, tls_key to frontend Node interface ([96b1105](https://github.com/AnsoCode/Sencho/commit/96b1105343402b888ddda98f76c0445b6b3aedf1))
* **alerts:** overhaul alerts & notifications system for local and remote nodes ([33c4976](https://github.com/AnsoCode/Sencho/commit/33c4976dc78832e0c8a53c92b1ad03ba01c44175))
* **api-tokens:** harden scope enforcement and add expiration support ([#224](https://github.com/AnsoCode/Sencho/issues/224)) ([954994c](https://github.com/AnsoCode/Sencho/commit/954994cdc01e5cee3e65153c2a302afed2da2b44))
* **api-tokens:** harden scope enforcement and block sensitive endpoints ([#228](https://github.com/AnsoCode/Sencho/issues/228)) ([5b607de](https://github.com/AnsoCode/Sencho/commit/5b607de227eecf4000208b347d8157f2d5d94651))
* App Store Polish & Rollbacks ([7935029](https://github.com/AnsoCode/Sencho/commit/7935029369e19ec1924e12979a5fcd7089fbe446))
* **backend,frontend:** correct docker socket connection on windows and fix api proxy in vite config ([4aa4bf1](https://github.com/AnsoCode/Sencho/commit/4aa4bf1b804bfee2046f17aea15cea1e96293db2))
* **backend:** remove broken remote branch in the system stats endpoint ([3f473c5](https://github.com/AnsoCode/Sencho/commit/3f473c5c97d3d914df898dc8b590b04c838b85ff))
* cast req.params.id as string to resolve TS2345 type errors ([d2c5b2d](https://github.com/AnsoCode/Sencho/commit/d2c5b2de6711351df5947ebd4004c1fbbc659628))
* **charts:** suppress Recharts dimension warnings on initial render ([#141](https://github.com/AnsoCode/Sencho/issues/141)) ([c6633b0](https://github.com/AnsoCode/Sencho/commit/c6633b0245d10671aac78fedac875be63c62a1e1))
* **ci:** add linux/arm64 Docker build support with QEMU optimization ([#76](https://github.com/AnsoCode/Sencho/issues/76)) ([278f7f1](https://github.com/AnsoCode/Sencho/commit/278f7f18d91ccae8afda48275e8e62b9c2b86d4f))
* **ci:** add load: true to buildx so Trivy can find the built image ([353fd25](https://github.com/AnsoCode/Sencho/commit/353fd253e93356720243f2ccde8b34a5801cfc10))
* **ci:** correct release-please changelog section names and tag format ([ea57cbe](https://github.com/AnsoCode/Sencho/commit/ea57cbe97f7f4166c747f3e3710f85e57ab476a1))
* **ci:** docker-publish tag trigger ([6cd84ba](https://github.com/AnsoCode/Sencho/commit/6cd84ba9c6b40f2a1630e783c49b397e6d6969dc))
* **ci:** docker-publish tag trigger + re-release v0.1.0 ([6cd84ba](https://github.com/AnsoCode/Sencho/commit/6cd84ba9c6b40f2a1630e783c49b397e6d6969dc))
* **ci:** exclude .git from rsync --delete in sync-docs ([aefeb7a](https://github.com/AnsoCode/Sencho/commit/aefeb7a35febb6fb33843f2c407fce70b40bcb56))
* **ci:** fix sync-docs empty-repo crash and update-screenshots protected-branch push ([bed63f8](https://github.com/AnsoCode/Sencho/commit/bed63f8b4725065988254c5d5113866033de38ac))
* **ci:** fix update-screenshots token and sync-docs empty-repo handling ([392a49e](https://github.com/AnsoCode/Sencho/commit/392a49e0bd27894249f918b6a918b0642ae7c41f))
* **ci:** release-please config corrections ([b6391b9](https://github.com/AnsoCode/Sencho/commit/b6391b96ffd4edf7a303350f7416ab1945136e1b))
* **ci:** trigger docker-publish on v* tag push instead of GitHub Release event ([c8047c2](https://github.com/AnsoCode/Sencho/commit/c8047c209cfb98fd56e7484b5db01f564aa6d027))
* **ci:** update lock files after adding ESLint deps and fixing high CVEs ([3cf9f02](https://github.com/AnsoCode/Sencho/commit/3cf9f023d3f5bc798bfbea5ffeebaee940dfe546))
* **ci:** use double-quoted string for if condition to fix YAML parse error ([f5c5eda](https://github.com/AnsoCode/Sencho/commit/f5c5eda30a65ba7fc4443a1a927f818e339c34f4))
* **ci:** YAML syntax error and sync-docs git directory failure ([dfa93c0](https://github.com/AnsoCode/Sencho/commit/dfa93c0bba9f3cbf684140b9a456359c6745a98f))
* **ci:** YAML syntax error in if condition and safe.directory for sync-docs ([dc79683](https://github.com/AnsoCode/Sencho/commit/dc79683b01690cfe16293660481aa5fdb030603d))
* **csp:** allow external images in App Store and suppress console warnings ([#138](https://github.com/AnsoCode/Sencho/issues/138)) ([c5217cd](https://github.com/AnsoCode/Sencho/commit/c5217cd96de3dd8d2971668373b6eabd2c1654a4))
* dashboard cards and stacks list do not update on remote node switch ([497a48c](https://github.com/AnsoCode/Sencho/commit/497a48c2ed1bc81f53533b49e30e975122d41b65))
* **dashboard:** correct stale Stats reset with inactive field ([0d5dc57](https://github.com/AnsoCode/Sencho/commit/0d5dc574a42e6550bf0e58cc5f60988a970201db))
* **dashboard:** surface server error messages in create-stack flow ([9367abf](https://github.com/AnsoCode/Sencho/commit/9367abf8d36fd6769b59f25dac01e7385eaf20c0))
* **db:** recreate stack_update_status table with composite primary key ([#356](https://github.com/AnsoCode/Sencho/issues/356)) ([4fe4ac5](https://github.com/AnsoCode/Sencho/commit/4fe4ac5d19cddc7db3d05563e8977d0c70d963f2))
* Distributed API Auth ([45a6420](https://github.com/AnsoCode/Sencho/commit/45a642014f10eb08a3cc69d5043194ecf4ca00e7))
* Distributed API auth hardening: Bearer tokens and URL normalization ([5932bce](https://github.com/AnsoCode/Sencho/commit/5932bced3660f285b8ec43636c49a93c45d02113))
* Distributed API Proxy & Auth Refinement ([9e6f721](https://github.com/AnsoCode/Sencho/commit/9e6f72111df97b11be7c8a7f62e062fe97881ab9))
* Distributed API proxy memory leak, node switcher refresh, and copy button ([fddd855](https://github.com/AnsoCode/Sencho/commit/fddd85562432e28de2ac879b804a5111eb802c96))
* Distributed API UI & Metrics Polish ([ebec4a5](https://github.com/AnsoCode/Sencho/commit/ebec4a5943bc27ded5ad14443b5da676e852fbf8))
* Distributed API UI & metrics polish + DEP0060 suppression ([eb0c026](https://github.com/AnsoCode/Sencho/commit/eb0c0263c7519ea40720fc992d87409fb01acdb6))
* **docker:** add entrypoint for volume permission handling ([593a709](https://github.com/AnsoCode/Sencho/commit/593a7091978a2024080ef1bbd394d86acb185b17))
* **docker:** entrypoint for volume permission handling ([c743f6c](https://github.com/AnsoCode/Sencho/commit/c743f6cd45ed8adf97e5bc49f88dbb4b69b41561))
* **docker:** fix xx cross-compilation sysroot for native modules ([#80](https://github.com/AnsoCode/Sencho/issues/80)) ([381701e](https://github.com/AnsoCode/Sencho/commit/381701ee258727b24031c09695c11bdf2cc7c854))
* **docker:** fix xx cross-compilation sysroot for node-pty and C++ modules ([518b0af](https://github.com/AnsoCode/Sencho/commit/518b0afb85023dbd32d7e90bdebaa139f9688d44))
* **docker:** install Docker CLI v29.3.1 from static binaries to resolve CVEs ([#268](https://github.com/AnsoCode/Sencho/issues/268)) ([f9b86e6](https://github.com/AnsoCode/Sencho/commit/f9b86e6f53e83ea0b5e8de7c1c916196d3345aee))
* **docker:** repair broken entrypoint from bad merge conflict resolution ([987fc3d](https://github.com/AnsoCode/Sencho/commit/987fc3d3396f7d66d5b847bb2700be5e87c20af4))
* **docker:** replace QEMU npm execution with tonistiigi/xx cross-compilation ([#78](https://github.com/AnsoCode/Sencho/issues/78)) ([1e0014e](https://github.com/AnsoCode/Sencho/commit/1e0014e1832653a0d8ce23182a2c2c7ef9efde2e))
* **docker:** upgrade Compose v2.40.3 → v5.1.1 to remediate dependency CVEs ([#283](https://github.com/AnsoCode/Sencho/issues/283)) ([36ebd5a](https://github.com/AnsoCode/Sencho/commit/36ebd5a9c1c82b5d7631d32831ac8ac420b0c782))
* **docker:** use native g++ for same-platform builds, xx-clang only for cross ([f23d8c6](https://github.com/AnsoCode/Sencho/commit/f23d8c660dc817f8e4486e656a38aadd9e6e5414))
* **e2e:** fill api_token in nodes tests so submit button is enabled ([707a5e8](https://github.com/AnsoCode/Sencho/commit/707a5e81c1865a45ee1789b7d43fa08eeb81b00b))
* **e2e:** fix stacks timeout and nodes skip in CI ([14c24c8](https://github.com/AnsoCode/Sencho/commit/14c24c82456cd8792cfb5d9f45d6c27b35dac32e))
* **e2e:** fully rewrite nodes tests to handle Radix UI Select and remote type flow ([12bbe51](https://github.com/AnsoCode/Sencho/commit/12bbe51a3af2ef8e48b5165b48026dd4566e9777))
* **e2e:** get all E2E tests passing and fix AlertDialog crash on delete ([f7471a1](https://github.com/AnsoCode/Sencho/commit/f7471a1a18f28c20e903b838ab4bcc8f8e0b73f8))
* **e2e:** use #node-name locator instead of getByLabel in nodes tests ([e01c0d6](https://github.com/AnsoCode/Sencho/commit/e01c0d6b4818c815897fd13b6ec319721a226b73))
* **e2e:** use button role for Resources nav item in screenshots spec ([b0e2b2d](https://github.com/AnsoCode/Sencho/commit/b0e2b2d025b86fca26b193f3eeda7e20c285da53))
* **e2e:** wait for sidebar stacks to finish loading before assertions ([#149](https://github.com/AnsoCode/Sencho/issues/149)) ([9ba9a3a](https://github.com/AnsoCode/Sencho/commit/9ba9a3a4565702135f22736a6b2310fc0da1d2f1))
* **editor:** bundle Monaco locally to fix stuck Loading state ([0eaa45b](https://github.com/AnsoCode/Sencho/commit/0eaa45bd7f5a4b5db9d51a577d25175bbcb4ff77))
* **editor:** bundle Monaco locally to fix stuck Loading state and CSP block ([79fde6e](https://github.com/AnsoCode/Sencho/commit/79fde6e2bd598085abfc7c702f5745bdfd692aec))
* **editor:** ESLint unused params fix ([dd5b698](https://github.com/AnsoCode/Sencho/commit/dd5b698b3f96e643af608a36128f05874a3b1f3c))
* **editor:** Monaco CSP fix + release pipeline fixes ([36a9bf3](https://github.com/AnsoCode/Sencho/commit/36a9bf3109c096ddd5d8095089a6ffb7bd6dee8d))
* **editor:** Monaco CSP fix + release pipeline fixes: v0.2.1 ([36a9bf3](https://github.com/AnsoCode/Sencho/commit/36a9bf3109c096ddd5d8095089a6ffb7bd6dee8d))
* **editor:** remove unused params from getWorker to satisfy ESLint ([34172a9](https://github.com/AnsoCode/Sencho/commit/34172a99226a4810465968ff9d238b85b1430829))
* **env:** resolve 404 when loading env files and CSP inline script violation ([#134](https://github.com/AnsoCode/Sencho/issues/134)) ([1e6367a](https://github.com/AnsoCode/Sencho/commit/1e6367a147dddb323799a3cd1947507c595d21db))
* **error-handling:** surface silent errors across the codebase ([#326](https://github.com/AnsoCode/Sencho/issues/326)) ([10597d2](https://github.com/AnsoCode/Sencho/commit/10597d213a5dfdc47dddd53998336fb09889962b))
* fix dashboard out of memory crash on remote nodes ([e027a94](https://github.com/AnsoCode/Sencho/commit/e027a94492a94a4370f578c189065404908f47ef))
* fix dashboard out of memory crashing from massive historical metrics payloads ([4e9777d](https://github.com/AnsoCode/Sencho/commit/4e9777d47fb8c1361cad0454c3bcdefc4cee645d))
* **fleet:** navigate to editor instead of dashboard on "Open in Editor" click ([#289](https://github.com/AnsoCode/Sencho/issues/289)) ([71ce6b3](https://github.com/AnsoCode/Sencho/commit/71ce6b3e1b6cb974d44279e503f9a158d027555a))
* **fleet:** resolve getSenchoVersion crash in Docker containers ([#391](https://github.com/AnsoCode/Sencho/issues/391)) ([d437a19](https://github.com/AnsoCode/Sencho/commit/d437a195b695f6cb60411db8dbf1f23f22e298db))
* **fleet:** resolve remote node capability detection failures ([#388](https://github.com/AnsoCode/Sencho/issues/388)) ([dee7c66](https://github.com/AnsoCode/Sencho/commit/dee7c6685b22b3daf9e57363564133f6d7f0639f))
* **frontend:** remove duplicate ScrollArea tag causing build failure ([d38d48f](https://github.com/AnsoCode/Sencho/commit/d38d48fafe8f2b332be3f0b8ef58712e15d3ce65))
* **frontend:** sync NodeContext with localStorage on initial load ([eb58f30](https://github.com/AnsoCode/Sencho/commit/eb58f302a1bafb7afd155a1a2ca31e874dc8e60d))
* gate SSO and Audit behind Admiral license tier ([#213](https://github.com/AnsoCode/Sencho/issues/213)) ([8d48b0a](https://github.com/AnsoCode/Sencho/commit/8d48b0abff08195a436f98bf8d42c45de51930df))
* Global Logs Polish ([f501fa4](https://github.com/AnsoCode/Sencho/commit/f501fa47128ac9a57591897c77ff87334325a5e8))
* Global Logs UX Polish ([7336ea8](https://github.com/AnsoCode/Sencho/commit/7336ea896e995b0a1aef0c9de95de94c9b9ecb4b))
* harden docker api validation, handle sftp errors, and fix node manager ui ([4bd80e2](https://github.com/AnsoCode/Sencho/commit/4bd80e29bf52f463a9024932a180b82e682f19f0))
* harden telemetry parsing and null node fallbacks ([f1f8e34](https://github.com/AnsoCode/Sencho/commit/f1f8e34da5fa9efe59dbe08b6ba5d136cfcb5be8))
* implement atomic deployment rollbacks and custom scrollbar UI ([6940825](https://github.com/AnsoCode/Sencho/commit/69408257d23803ba3fd1c8fd4a153d7a1a34df9e))
* implement smart auto-scroll and definitive stack filtering in global logs ([b267408](https://github.com/AnsoCode/Sencho/commit/b2674080c4a28888b5fbe98b085ec53c93f19aac))
* implement two-stage teardown for reliable atomic rollbacks ([c4805a1](https://github.com/AnsoCode/Sencho/commit/c4805a17ac2dff894e0db6df4605248098e77053))
* **license:** default 14-day trial to Skipper instead of Admiral ([#216](https://github.com/AnsoCode/Sencho/issues/216)) ([f99abe9](https://github.com/AnsoCode/Sencho/commit/f99abe907d5a39f4f32fb08bf25eda9b00dae88b))
* **licensing:** backward-compatible tier/variant enforcement and self-healing variant detection ([#385](https://github.com/AnsoCode/Sencho/issues/385)) ([9e0c9d3](https://github.com/AnsoCode/Sencho/commit/9e0c9d3f2d59f3330becc2153e2b638823c96b10))
* **licensing:** rename variant values to skipper/admiral and store resolved type ([#379](https://github.com/AnsoCode/Sencho/issues/379)) ([797623e](https://github.com/AnsoCode/Sencho/commit/797623e56fb97e6233f27fb9cc5be12613672707))
* **licensing:** resolve Admiral variant detection and lifetime license handling ([#376](https://github.com/AnsoCode/Sencho/issues/376)) ([f841c40](https://github.com/AnsoCode/Sencho/commit/f841c402b2e75874b066400adadcd8dcdfa9ac5f))
* **licensing:** resolve variant from product_name when variant_name lacks tier info ([#382](https://github.com/AnsoCode/Sencho/issues/382)) ([b08f698](https://github.com/AnsoCode/Sencho/commit/b08f698e8f1a2578bdecd274e923f63818239dd1))
* **lint:** resolve all backend ESLint errors to pass CI lint step ([e876a91](https://github.com/AnsoCode/Sencho/commit/e876a91a2e54267b82805731722f4a80ff2ad193))
* **lint:** resolve all ESLint errors to pass CI lint step ([c8a54a9](https://github.com/AnsoCode/Sencho/commit/c8a54a988bc86ea6a9acf05a116e571a735cd4a3))
* **logs:** cap DOM rendering to 300 rows to prevent browser OOM crash ([ec3a249](https://github.com/AnsoCode/Sencho/commit/ec3a2495a2cf71feb1bd8880a8a2ee1d2cc46c10))
* **logs:** cap DOM rendering to 300 rows to prevent OOM crash ([0db6c94](https://github.com/AnsoCode/Sencho/commit/0db6c946e7dcb38de84346fdd3d0f38450ee3eef))
* **logs:** use monotonic _id key to prevent O(n) DOM mutations on scroll ([753b0c3](https://github.com/AnsoCode/Sencho/commit/753b0c35399f0e564f40970328212ed06393e9d3))
* Memory Leak & Reload Loop ([ac5032d](https://github.com/AnsoCode/Sencho/commit/ac5032d3635614af682f7917a057467ea7b916d3))
* memory leak in SSE log accumulation and infinite reload loop in NodeContext ([fd07374](https://github.com/AnsoCode/Sencho/commit/fd073749563e993524c7d567886b10587f695f1a))
* **merge:** resolve CHANGELOG conflict with develop ([9f0257e](https://github.com/AnsoCode/Sencho/commit/9f0257e94fb6dddaa2287103e0f6bad7b3f3fac9))
* Observability Polish & Normalization ([da5a74a](https://github.com/AnsoCode/Sencho/commit/da5a74a4246fbe691c1a64b00d992bc96da5196f))
* Observability UI & TTY Parsing ([1f544c6](https://github.com/AnsoCode/Sencho/commit/1f544c656804443b221322091b8317aefabb549d))
* proxy forwards browser cookie to remote causing 401; fix node context self-heal loop ([7b2f28f](https://github.com/AnsoCode/Sencho/commit/7b2f28f505cd58c29baaff3f542bbdc7e4963dd2))
* **proxy:** prevent remote 401 from triggering local session logout ([278aa22](https://github.com/AnsoCode/Sencho/commit/278aa2298f2874cb5b86c5e38d6e550a792b689b))
* **proxy:** re-stream express.json()-consumed body to remote nodes for POST/PUT/PATCH ([a703707](https://github.com/AnsoCode/Sencho/commit/a703707aa0b5bd30cb6715c0371b6822ced353f3))
* **proxy:** skip express.json() for remote proxy requests to fix body forwarding ([ed69543](https://github.com/AnsoCode/Sencho/commit/ed6954307b82370fb8205f359eb412efaaf38d63))
* refine log level parsing and implement bottom auto-scroll ([9af0f85](https://github.com/AnsoCode/Sencho/commit/9af0f857498a7caf2b7e4b8c0faac649393c3bf5))
* remediate Dependabot and Docker Scout security vulnerabilities ([#265](https://github.com/AnsoCode/Sencho/issues/265)) ([59fd528](https://github.com/AnsoCode/Sencho/commit/59fd5285351c14f6e9cde073bd983de073fa3a75))
* remediate observability dashboard and global logs parsing ([29b1015](https://github.com/AnsoCode/Sencho/commit/29b10150b43103cdf0a234717b989df0c4660939))
* Remote Nodes Hardening ([7f23c88](https://github.com/AnsoCode/Sencho/commit/7f23c88c7393d82ef7ecfbc09dfd3427f31c4bf2))
* Remote Nodes Remediation: Port Routing, SSH Credentials & compose_dir ([1fb0494](https://github.com/AnsoCode/Sencho/commit/1fb0494e2e155847e83b3f14c4244727bc2fc7fa))
* Remote Nodes Telemetry Fixes ([792e977](https://github.com/AnsoCode/Sencho/commit/792e97709891d197bdc0ee01f4e8c40b4055de10))
* remote proxy strips /api prefix: remote Sencho returns SPA HTML instead of JSON ([efd3d7b](https://github.com/AnsoCode/Sencho/commit/efd3d7bd7f7104550e6a6f793b9a9c4e5b83b9ff))
* remote proxy strips /api prefix causing remote Sencho to return SPA HTML ([a26c255](https://github.com/AnsoCode/Sencho/commit/a26c255e7c2edfc6740f99aef879c9ec870ef420))
* **remote:** harden WS stream lifecycle, auth precedence, and proxy error handling ([1831411](https://github.com/AnsoCode/Sencho/commit/18314119b037b1adcbb16abc2d1e94e66b7168d5))
* **remote:** repair stats, bash exec, and Open App for remote nodes ([dbf8ec8](https://github.com/AnsoCode/Sencho/commit/dbf8ec8a2a0429dc58097cfaa63aa0e1b18cabb2))
* **remote:** strip cookie & nodeId from WS/HTTP proxy to remote nodes ([f115a48](https://github.com/AnsoCode/Sencho/commit/f115a48cfe995461db9a89ca5cb4c80d692a8f3c))
* **remote:** strip cookie header and nodeId from WS/HTTP proxy to remote nodes ([774190c](https://github.com/AnsoCode/Sencho/commit/774190cbb8363948b0a738c2174bd7e7b09177aa))
* remove unused React import in TemplatesView ([9c66a4f](https://github.com/AnsoCode/Sencho/commit/9c66a4f783d2463cc929080f8d8c3f98de61207c))
* replace naive log level detection with robust 3-tier regex class… ([c324d98](https://github.com/AnsoCode/Sencho/commit/c324d987ead2474ca5629a6fa75a3db0871b48e2))
* replace naive log level detection with robust 3-tier regex classification engine ([b7e6b5a](https://github.com/AnsoCode/Sencho/commit/b7e6b5a21c39c30995e5b3c22ce5fdb2950a7570))
* resolve a SQL syntax error in the database layer and add concrete file adapter implementations ([69e86a0](https://github.com/AnsoCode/Sencho/commit/69e86a0a37da11573bb4f5a72bbba16b4299452c))
* **scheduled-ops:** audit log text, run attribution, prune targets, and pagination ([#234](https://github.com/AnsoCode/Sencho/issues/234)) ([330eec4](https://github.com/AnsoCode/Sencho/commit/330eec4bff6f194aafdcbe499ab893bef06254b6))
* **security:** disable COOP header and Vite module-preload polyfill ([c36ee93](https://github.com/AnsoCode/Sencho/commit/c36ee9341630b3170c17a03d60bab90d387d09be))
* **security:** enforce stack name validation on all routes ([#314](https://github.com/AnsoCode/Sencho/issues/314)) ([1ab04be](https://github.com/AnsoCode/Sencho/commit/1ab04be235cc0d3020d17dfb3028e4679206b886))
* **security:** explicitly disable upgrade-insecure-requests via Helmet 8 API ([50df5b3](https://github.com/AnsoCode/Sencho/commit/50df5b3c028cc7dea75f93b994a6feb908988849))
* **security:** harden encryption key permissions, increase password minimum, remove sensitive logs ([#323](https://github.com/AnsoCode/Sencho/issues/323)) ([f317a83](https://github.com/AnsoCode/Sencho/commit/f317a83814fda3a98eb009c1a05a955bfadd6f0d))
* **security:** pre-launch security hardening audit & remediation ([#320](https://github.com/AnsoCode/Sencho/issues/320)) ([2d6b4c2](https://github.com/AnsoCode/Sencho/commit/2d6b4c233daa178de485dfeb198fc90376949ca4))
* **security:** prevent path traversal via env_file resolution ([#311](https://github.com/AnsoCode/Sencho/issues/311)) ([dc545dd](https://github.com/AnsoCode/Sencho/commit/dc545dd61337904e26e18e5e5bed190675432406))
* **security:** remove CSP upgrade-insecure-requests and HSTS for HTTP deployments ([25012a0](https://github.com/AnsoCode/Sencho/commit/25012a07caa7b545cbdbbdb033778cccc42a618c))
* **security:** remove CSP upgrade-insecure-requests and HSTS over HTTP ([cf2946c](https://github.com/AnsoCode/Sencho/commit/cf2946cfa67157db716e15544fdd547945ec0c3e))
* separate Docker API port from SSH port, add SSH credential UI, fix compose_dir routing ([26b8f62](https://github.com/AnsoCode/Sencho/commit/26b8f629685867b3c1ff98d6c02b1a089087b3b6))
* **settings:** prevent X button overlap and add tooltip to Always Local badge ([ed0817b](https://github.com/AnsoCode/Sencho/commit/ed0817b2c59187b3a1ac9dc52a9ce6ec6e3427bd))
* skip remote nodes in the local monitoring loop ([880919f](https://github.com/AnsoCode/Sencho/commit/880919fb7835ad37c79949e8c923cd3cf351d7b3))
* skip remote nodes in the local monitoring loop to prevent direct Docker access errors ([b48cf62](https://github.com/AnsoCode/Sencho/commit/b48cf62e5b1c3eef35c01da381f2c0528e0cf2fa))
* **stacks:** avoid resource busy error in Docker fallback deletion ([#271](https://github.com/AnsoCode/Sencho/issues/271)) ([10d1636](https://github.com/AnsoCode/Sencho/commit/10d16361fae2869367a9f757bfc0ab4c3e04ca2c))
* **stacks:** resolve permission denied error on stack deletion ([#261](https://github.com/AnsoCode/Sencho/issues/261)) ([116f15d](https://github.com/AnsoCode/Sencho/commit/116f15dae9c3b530145316ea8b2954ed478fed76))
* **stats:** classify managed containers by working_dir instead of project name ([16e978b](https://github.com/AnsoCode/Sencho/commit/16e978bf4e360f59b3f79b7a38194509fcaddda2))
* **stats:** throttle container stat WebSocket updates via ref buffer ([74964b0](https://github.com/AnsoCode/Sencho/commit/74964b0e264f856bb3f8204496a57f48bfbbbe7e))
* stop infinite page reload caused by premature NodeProvider mount and 401 hard-redirect ([67c7078](https://github.com/AnsoCode/Sencho/commit/67c7078128560a7823c6a190ce90ea5b3278a455))
* strip browser cookie from proxy requests; fix node context self-heal loop ([39e63be](https://github.com/AnsoCode/Sencho/commit/39e63bea8e66e404bae4a8420bc2f04d6602e09f))
* trigger docs sync on develop instead of main ([7d1b996](https://github.com/AnsoCode/Sencho/commit/7d1b996bb7c10d33330ed645c8cfd1fc302a93e0))
* **ts:** remove unused motion import from alert-dialog ([0dd72b3](https://github.com/AnsoCode/Sencho/commit/0dd72b3eb467598452938133f563042df15c8596))
* **ts:** use type-only import for Node to satisfy verbatimModuleSyntax ([94d6c8f](https://github.com/AnsoCode/Sencho/commit/94d6c8fc0f8f3afce0e95d80f6a75a3884cca2af))
* tty parsing, timezone mapping, and floating action bar for global logs ([8203dd6](https://github.com/AnsoCode/Sencho/commit/8203dd6a1464553c451cb93bd4725128616d3f80))
* **ui:** resolve 9 animated design system bugs including Monaco tab height accumulation ([22e6462](https://github.com/AnsoCode/Sencho/commit/22e646286e9321e66101f9aedc89a99edce1d3c4))
* **ui:** settings modal sidebar nav clipped on smaller viewports ([#280](https://github.com/AnsoCode/Sencho/issues/280)) ([9e14ce9](https://github.com/AnsoCode/Sencho/commit/9e14ce999f89052b218d2e3f974644f41355955c))
* update lsio template registry url to valid endpoint ([e45915f](https://github.com/AnsoCode/Sencho/commit/e45915f014668bcc97550b2eb3043f5ac6dbd392))
* **ws:** fix remote node console: delegate console session tokens ([6c518ce](https://github.com/AnsoCode/Sencho/commit/6c518cee5a8735dea3f06cc662706b900c8d93f1))
* **ws:** fix remote node console by delegating console session tokens ([30fe77c](https://github.com/AnsoCode/Sencho/commit/30fe77cd5d57b1dbae6a8b40aebf4f14453d571c))

### Security

* harden terminal WebSocket endpoints against three attack vectors ([2e0f3e2](https://github.com/AnsoCode/Sencho/commit/2e0f3e2711e02c2350342e1fdb56878a81658e38))
* pre-release hardening, automated testing, and production readiness ([ce50db0](https://github.com/AnsoCode/Sencho/commit/ce50db0fdee160e20b658f98b5d8fee86215afc3))

## [0.38.6](https://github.com/AnsoCode/Sencho/compare/v0.38.5...v0.38.6) (2026-04-06)

### Fixed

* **fleet:** resolve getSenchoVersion crash in Docker containers ([#391](https://github.com/AnsoCode/Sencho/issues/391)) ([d437a19](https://github.com/AnsoCode/Sencho/commit/d437a195b695f6cb60411db8dbf1f23f22e298db))

## [0.38.5](https://github.com/AnsoCode/Sencho/compare/v0.38.4...v0.38.5) (2026-04-06)

### Fixed

* **fleet:** resolve remote node capability detection failures ([#388](https://github.com/AnsoCode/Sencho/issues/388)) ([dee7c66](https://github.com/AnsoCode/Sencho/commit/dee7c6685b22b3daf9e57363564133f6d7f0639f))

## [0.38.4](https://github.com/AnsoCode/Sencho/compare/v0.38.3...v0.38.4) (2026-04-06)

### Fixed

* **licensing:** backward-compatible tier/variant enforcement and self-healing variant detection ([#385](https://github.com/AnsoCode/Sencho/issues/385)) ([9e0c9d3](https://github.com/AnsoCode/Sencho/commit/9e0c9d3f2d59f3330becc2153e2b638823c96b10))

## [0.38.3](https://github.com/AnsoCode/Sencho/compare/v0.38.2...v0.38.3) (2026-04-05)

### Fixed

* **licensing:** resolve variant from product_name when variant_name lacks tier info ([#382](https://github.com/AnsoCode/Sencho/issues/382)) ([b08f698](https://github.com/AnsoCode/Sencho/commit/b08f698e8f1a2578bdecd274e923f63818239dd1))

## [0.38.2](https://github.com/AnsoCode/Sencho/compare/v0.38.1...v0.38.2) (2026-04-05)

### Fixed

* **licensing:** rename variant values to skipper/admiral and store resolved type ([#379](https://github.com/AnsoCode/Sencho/issues/379)) ([797623e](https://github.com/AnsoCode/Sencho/commit/797623e56fb97e6233f27fb9cc5be12613672707))

## [0.38.1](https://github.com/AnsoCode/Sencho/compare/v0.38.0...v0.38.1) (2026-04-05)

### Fixed

* **licensing:** resolve Admiral variant detection and lifetime license handling ([#376](https://github.com/AnsoCode/Sencho/issues/376)) ([f841c40](https://github.com/AnsoCode/Sencho/commit/f841c402b2e75874b066400adadcd8dcdfa9ac5f))

## [0.38.0](https://github.com/AnsoCode/Sencho/compare/v0.37.0...v0.38.0) (2026-04-04)

### Added

* **dashboard:** redesign as DevOps command center ([#371](https://github.com/AnsoCode/Sencho/issues/371)) ([2ee959e](https://github.com/AnsoCode/Sencho/commit/2ee959ec3b696c5beba7b8b62bec2221ca65d525))

## [0.37.0](https://github.com/AnsoCode/Sencho/compare/v0.36.0...v0.37.0) (2026-04-04)

### Added

* **stacks:** state-aware sidebar context menu and Open App action ([#368](https://github.com/AnsoCode/Sencho/issues/368)) ([55d3b8c](https://github.com/AnsoCode/Sencho/commit/55d3b8ca1dea6958cecf9d1672a6d891751f7ae3))

## [0.36.0](https://github.com/AnsoCode/Sencho/compare/v0.35.0...v0.36.0) (2026-04-04)

### Added

* UI polish sprint: 7 items + logs toolbar redesign ([#365](https://github.com/AnsoCode/Sencho/issues/365)) ([f9ebd1d](https://github.com/AnsoCode/Sencho/commit/f9ebd1d77c74434e641e2fc41f4f6d3de8cbeeee))

## [0.35.0](https://github.com/AnsoCode/Sencho/compare/v0.34.0...v0.35.0) (2026-04-03)

### Added

* **stacks:** per-stack action tracking, optimistic status, and bulk status endpoint ([#362](https://github.com/AnsoCode/Sencho/issues/362)) ([dfd4d28](https://github.com/AnsoCode/Sencho/commit/dfd4d2858a023ed013afbe93c077a3152a0773c5))

## [0.34.0](https://github.com/AnsoCode/Sencho/compare/v0.33.1...v0.34.0) (2026-04-03)

### Added

* **license:** distributed license enforcement across multi-node setups ([#359](https://github.com/AnsoCode/Sencho/issues/359)) ([6c26ae3](https://github.com/AnsoCode/Sencho/commit/6c26ae3f501d438dcde5331bae588ee6e26c2c3e))

## [0.33.1](https://github.com/AnsoCode/Sencho/compare/v0.33.0...v0.33.1) (2026-04-03)

### Fixed

* **db:** recreate stack_update_status table with composite primary key ([#356](https://github.com/AnsoCode/Sencho/issues/356)) ([4fe4ac5](https://github.com/AnsoCode/Sencho/commit/4fe4ac5d19cddc7db3d05563e8977d0c70d963f2))

## [0.33.0](https://github.com/AnsoCode/Sencho/compare/v0.32.0...v0.33.0) (2026-04-03)

### Added

* **fleet:** add remote node update management ([#353](https://github.com/AnsoCode/Sencho/issues/353)) ([87b5908](https://github.com/AnsoCode/Sencho/commit/87b59082887902af24ad2bf88ae3d4d4c941411e))

## [0.32.0](https://github.com/AnsoCode/Sencho/compare/v0.31.0...v0.32.0) (2026-04-03)

### Added

* **nodes:** add capability-based node compatibility negotiation ([#350](https://github.com/AnsoCode/Sencho/issues/350)) ([ee75811](https://github.com/AnsoCode/Sencho/commit/ee75811e255e8d5f9ae87117d12c2902185d98f1))

## [0.31.0](https://github.com/AnsoCode/Sencho/compare/v0.30.0...v0.31.0) (2026-04-03)

### Added

* **notifications:** add shared notification routing rules (Admiral tier) ([#347](https://github.com/AnsoCode/Sencho/issues/347)) ([1b573f5](https://github.com/AnsoCode/Sencho/commit/1b573f542a36cde3e94c05f285d34330df96edb1))

## [0.30.0](https://github.com/AnsoCode/Sencho/compare/v0.29.0...v0.30.0) (2026-04-03)

### Added

* **nodes:** add per-node scheduling and update visibility ([#344](https://github.com/AnsoCode/Sencho/issues/344)) ([efbd20f](https://github.com/AnsoCode/Sencho/commit/efbd20fed57299acae43ecaee3b1d9ff52da5aae))

## [0.29.0](https://github.com/AnsoCode/Sencho/compare/v0.28.0...v0.29.0) (2026-04-02)

### Added

* **labels:** add stack labels for organizing, filtering, and bulk actions ([#341](https://github.com/AnsoCode/Sencho/issues/341)) ([28e7be6](https://github.com/AnsoCode/Sencho/commit/28e7be652cb18abdd51ca6df8eda2104d213dc30))

## [0.28.0](https://github.com/AnsoCode/Sencho/compare/v0.27.0...v0.28.0) (2026-04-02)

### Added

* **resources:** add network management with create, inspect, and topology ([#338](https://github.com/AnsoCode/Sencho/issues/338)) ([24299a0](https://github.com/AnsoCode/Sencho/commit/24299a0115ce0371f44608f8d64248e6474df8ce))

## [0.27.0](https://github.com/AnsoCode/Sencho/compare/v0.26.0...v0.27.0) (2026-04-02)

### Added

* **resources:** add network management with create, inspect, and topology visualization ([#335](https://github.com/AnsoCode/Sencho/issues/335)) ([4488637](https://github.com/AnsoCode/Sencho/commit/4488637656b8a19f8df2fcea7ffafff023786068))

## [0.26.0](https://github.com/AnsoCode/Sencho/compare/v0.25.3...v0.26.0) (2026-04-02)

### Added

* **stack-management:** add scan stacks folder button ([#332](https://github.com/AnsoCode/Sencho/issues/332)) ([6f74153](https://github.com/AnsoCode/Sencho/commit/6f7415351f648120ab4039f1fcc9a1226cfa52f4))

## [0.25.3](https://github.com/AnsoCode/Sencho/compare/v0.25.2...v0.25.3) (2026-04-02)

### Fixed

* **error-handling:** surface silent errors across the codebase ([#326](https://github.com/AnsoCode/Sencho/issues/326)) ([10597d2](https://github.com/AnsoCode/Sencho/commit/10597d213a5dfdc47dddd53998336fb09889962b))

## [0.25.2](https://github.com/AnsoCode/Sencho/compare/v0.25.1...v0.25.2) (2026-04-02)

### Fixed

* **security:** harden encryption key permissions, increase password minimum, remove sensitive logs ([#323](https://github.com/AnsoCode/Sencho/issues/323)) ([f317a83](https://github.com/AnsoCode/Sencho/commit/f317a83814fda3a98eb009c1a05a955bfadd6f0d))

## [0.25.1](https://github.com/AnsoCode/Sencho/compare/v0.25.0...v0.25.1) (2026-04-02)

### Fixed

* **security:** pre-launch security hardening audit & remediation ([#320](https://github.com/AnsoCode/Sencho/issues/320)) ([2d6b4c2](https://github.com/AnsoCode/Sencho/commit/2d6b4c233daa178de485dfeb198fc90376949ca4))

## [0.25.0](https://github.com/AnsoCode/Sencho/compare/v0.24.2...v0.25.0) (2026-04-02)

### Added

* **api:** add global rate limiter for all API endpoints ([#317](https://github.com/AnsoCode/Sencho/issues/317)) ([b28ebfa](https://github.com/AnsoCode/Sencho/commit/b28ebfa6ffff7fa76657c67e5fdb3494a76bd8a1))

## [0.24.2](https://github.com/AnsoCode/Sencho/compare/v0.24.1...v0.24.2) (2026-04-01)

### Fixed

* **security:** enforce stack name validation on all routes ([#314](https://github.com/AnsoCode/Sencho/issues/314)) ([1ab04be](https://github.com/AnsoCode/Sencho/commit/1ab04be235cc0d3020d17dfb3028e4679206b886))

## [0.24.1](https://github.com/AnsoCode/Sencho/compare/v0.24.0...v0.24.1) (2026-04-01)

### Fixed

* **security:** prevent path traversal via env_file resolution ([#311](https://github.com/AnsoCode/Sencho/issues/311)) ([dc545dd](https://github.com/AnsoCode/Sencho/commit/dc545dd61337904e26e18e5e5bed190675432406))

## [0.24.0](https://github.com/AnsoCode/Sencho/compare/v0.23.0...v0.24.0) (2026-04-01)

### Added

* **auto-update:** add auto-update policies and fix image update detection ([#297](https://github.com/AnsoCode/Sencho/issues/297)) ([28c7a8f](https://github.com/AnsoCode/Sencho/commit/28c7a8fd544f33ea0fbe90f19ed96154743eb527))

## [0.23.0](https://github.com/AnsoCode/Sencho/compare/v0.22.1...v0.23.0) (2026-03-31)

### Added

* **multi-node:** warn when configuring remote node with plain HTTP URL ([#292](https://github.com/AnsoCode/Sencho/issues/292)) ([e587256](https://github.com/AnsoCode/Sencho/commit/e587256086997a784007a69d8a7fd56881d0a9b1))

## [0.22.1](https://github.com/AnsoCode/Sencho/compare/v0.22.0...v0.22.1) (2026-03-31)

### Fixed

* **fleet:** navigate to editor instead of dashboard on "Open in Editor" click ([#289](https://github.com/AnsoCode/Sencho/issues/289)) ([71ce6b3](https://github.com/AnsoCode/Sencho/commit/71ce6b3e1b6cb974d44279e503f9a158d027555a))

## [0.22.0](https://github.com/AnsoCode/Sencho/compare/v0.21.2...v0.22.0) (2026-03-31)

### Added

* **scheduled-ops:** add failure notifications, granular targeting, and history export ([#286](https://github.com/AnsoCode/Sencho/issues/286)) ([eccdd1b](https://github.com/AnsoCode/Sencho/commit/eccdd1b87903c17af822edb0cdb4236812929bd2))

## [0.21.2](https://github.com/AnsoCode/Sencho/compare/v0.21.1...v0.21.2) (2026-03-30)

### Fixed

* **docker:** upgrade Compose v2.40.3 → v5.1.1 to remediate dependency CVEs ([#283](https://github.com/AnsoCode/Sencho/issues/283)) ([36ebd5a](https://github.com/AnsoCode/Sencho/commit/36ebd5a9c1c82b5d7631d32831ac8ac420b0c782))

## [0.21.1](https://github.com/AnsoCode/Sencho/compare/v0.21.0...v0.21.1) (2026-03-30)

### Fixed

* **ui:** settings modal sidebar nav clipped on smaller viewports ([#280](https://github.com/AnsoCode/Sencho/issues/280)) ([9e14ce9](https://github.com/AnsoCode/Sencho/commit/9e14ce999f89052b218d2e3f974644f41355955c))

## [0.21.0](https://github.com/AnsoCode/Sencho/compare/v0.20.0...v0.21.0) (2026-03-30)

### Added

* **host-console:** gate Host Console behind Admiral tier ([#277](https://github.com/AnsoCode/Sencho/issues/277)) ([b5d3f49](https://github.com/AnsoCode/Sencho/commit/b5d3f497cb1a09fdc2107f4ef720ebb7f07cbd87))

## [0.20.0](https://github.com/AnsoCode/Sencho/compare/v0.19.4...v0.20.0) (2026-03-30)

### Added

* **ui:** glassmorphism redesign with settings decomposition ([#274](https://github.com/AnsoCode/Sencho/issues/274)) ([7637091](https://github.com/AnsoCode/Sencho/commit/7637091e84838047c462e3dbce38122d4c24d007))

## [0.19.4](https://github.com/AnsoCode/Sencho/compare/v0.19.3...v0.19.4) (2026-03-30)

### Fixed

* **stacks:** avoid resource busy error in Docker fallback deletion ([#271](https://github.com/AnsoCode/Sencho/issues/271)) ([10d1636](https://github.com/AnsoCode/Sencho/commit/10d16361fae2869367a9f757bfc0ab4c3e04ca2c))

## [0.19.3](https://github.com/AnsoCode/Sencho/compare/v0.19.2...v0.19.3) (2026-03-30)

### Fixed

* **docker:** install Docker CLI v29.3.1 from static binaries to resolve CVEs ([#268](https://github.com/AnsoCode/Sencho/issues/268)) ([f9b86e6](https://github.com/AnsoCode/Sencho/commit/f9b86e6f53e83ea0b5e8de7c1c916196d3345aee))

## [0.19.2](https://github.com/AnsoCode/Sencho/compare/v0.19.1...v0.19.2) (2026-03-30)

### Fixed

* remediate Dependabot and Docker Scout security vulnerabilities ([#265](https://github.com/AnsoCode/Sencho/issues/265)) ([59fd528](https://github.com/AnsoCode/Sencho/commit/59fd5285351c14f6e9cde073bd983de073fa3a75))

## [0.19.1](https://github.com/AnsoCode/Sencho/compare/v0.19.0...v0.19.1) (2026-03-30)

### Fixed

* **stacks:** resolve permission denied error on stack deletion ([#261](https://github.com/AnsoCode/Sencho/issues/261)) ([116f15d](https://github.com/AnsoCode/Sencho/commit/116f15dae9c3b530145316ea8b2954ed478fed76))

## [0.19.0](https://github.com/AnsoCode/Sencho/compare/v0.18.0...v0.19.0) (2026-03-30)

### Added

* **audit-log:** add configurable retention, export, Auditor role, and enhanced filtering ([#258](https://github.com/AnsoCode/Sencho/issues/258)) ([d586ce3](https://github.com/AnsoCode/Sencho/commit/d586ce393af34c8cc34cd046d2d90a70e0d79964))

## [0.18.0](https://github.com/AnsoCode/Sencho/compare/v0.17.0...v0.18.0) (2026-03-29)

### Added

* **rbac:** add Deployer & Node Admin roles with scoped permissions (Admiral) ([#253](https://github.com/AnsoCode/Sencho/issues/253)) ([8380fba](https://github.com/AnsoCode/Sencho/commit/8380fbad4b617b004e2d2f19595d1490eaa1e005))

## [0.17.0](https://github.com/AnsoCode/Sencho/compare/v0.16.0...v0.17.0) (2026-03-29)

### Added

* **registries:** add private registry credential management (Admiral) ([#240](https://github.com/AnsoCode/Sencho/issues/240)) ([244c83a](https://github.com/AnsoCode/Sencho/commit/244c83a0c3102a797658d35d087bf47366f6df75))

## [0.16.0](https://github.com/AnsoCode/Sencho/compare/v0.15.1...v0.16.0) (2026-03-29)

### Added

* **ui:** redesign top bar with three-zone navigation layout ([#237](https://github.com/AnsoCode/Sencho/issues/237)) ([b7e7ee8](https://github.com/AnsoCode/Sencho/commit/b7e7ee8f55ec6bf89acc7bb54d47eab12ac940c5))

## [0.15.1](https://github.com/AnsoCode/Sencho/compare/v0.15.0...v0.15.1) (2026-03-29)

### Fixed

* **scheduled-ops:** audit log text, run attribution, prune targets, and pagination ([#234](https://github.com/AnsoCode/Sencho/issues/234)) ([330eec4](https://github.com/AnsoCode/Sencho/commit/330eec4bff6f194aafdcbe499ab893bef06254b6))

## [0.15.0](https://github.com/AnsoCode/Sencho/compare/v0.14.2...v0.15.0) (2026-03-29)

### Added

* **scheduled-ops:** add scheduled operations for Admiral users ([#231](https://github.com/AnsoCode/Sencho/issues/231)) ([31e1795](https://github.com/AnsoCode/Sencho/commit/31e1795af06beaa68ec6e2240d83b7656ab549f7))

## [0.14.2](https://github.com/AnsoCode/Sencho/compare/v0.14.1...v0.14.2) (2026-03-29)

### Fixed

* **api-tokens:** harden scope enforcement and block sensitive endpoints ([#228](https://github.com/AnsoCode/Sencho/issues/228)) ([5b607de](https://github.com/AnsoCode/Sencho/commit/5b607de227eecf4000208b347d8157f2d5d94651))

## [0.14.1](https://github.com/AnsoCode/Sencho/compare/v0.14.0...v0.14.1) (2026-03-28)

### Fixed

* **api-tokens:** harden scope enforcement and add expiration support ([#224](https://github.com/AnsoCode/Sencho/issues/224)) ([954994c](https://github.com/AnsoCode/Sencho/commit/954994cdc01e5cee3e65153c2a302afed2da2b44))

## [0.14.0](https://github.com/AnsoCode/Sencho/compare/v0.13.2...v0.14.0) (2026-03-28)

### Added

* **api-tokens:** add scoped API tokens for CI/CD automation (Admiral) ([#220](https://github.com/AnsoCode/Sencho/issues/220)) ([8d8118c](https://github.com/AnsoCode/Sencho/commit/8d8118c963a1c3b10872041ea0f645d8f0a65196))

## [0.13.2](https://github.com/AnsoCode/Sencho/compare/v0.13.1...v0.13.2) (2026-03-28)

### Fixed

* **license:** default 14-day trial to Skipper instead of Admiral ([#216](https://github.com/AnsoCode/Sencho/issues/216)) ([f99abe9](https://github.com/AnsoCode/Sencho/commit/f99abe907d5a39f4f32fb08bf25eda9b00dae88b))

## [0.13.1](https://github.com/AnsoCode/Sencho/compare/v0.13.0...v0.13.1) (2026-03-28)

### Fixed

* gate SSO and Audit behind Admiral license tier ([#213](https://github.com/AnsoCode/Sencho/issues/213)) ([8d48b0a](https://github.com/AnsoCode/Sencho/commit/8d48b0abff08195a436f98bf8d42c45de51930df))

## [0.13.0](https://github.com/AnsoCode/Sencho/compare/v0.12.0...v0.13.0) (2026-03-28)

### Added

* SSO & LDAP authentication for Admiral ([#209](https://github.com/AnsoCode/Sencho/issues/209)) ([bd4008f](https://github.com/AnsoCode/Sencho/commit/bd4008f5091122f74967b4debdd4c4f046693f46))

## [0.12.0](https://github.com/AnsoCode/Sencho/compare/v0.11.0...v0.12.0) (2026-03-28)

### Added

* audit logging, secrets at rest, and legacy cleanup ([#205](https://github.com/AnsoCode/Sencho/issues/205)) ([1799030](https://github.com/AnsoCode/Sencho/commit/179903006035280d5c1655daaf3dbe3384588bf0))

## [0.11.0](https://github.com/AnsoCode/Sencho/compare/v0.10.0...v0.11.0) (2026-03-28)

### Added

* **settings:** replace static license CTA with dynamic upgrade cards ([#201](https://github.com/AnsoCode/Sencho/issues/201)) ([d3828e8](https://github.com/AnsoCode/Sencho/commit/d3828e885d78b23902a3a82186dcd009e3f2c0d9))

## [0.10.0](https://github.com/AnsoCode/Sencho/compare/v0.9.0...v0.10.0) (2026-03-27)

### Added

* stack context menu, tier icons, centered logo & support ([#194](https://github.com/AnsoCode/Sencho/issues/194)) ([dda1671](https://github.com/AnsoCode/Sencho/commit/dda1671e5a4c6788ba5ad97b00cbac98910f3ef0))

## [0.9.0](https://github.com/AnsoCode/Sencho/compare/v0.8.0...v0.9.0) (2026-03-27)

### Added

* RBAC, atomic deployments, fleet backups, and licensing (Skipper and Admiral) ([#185](https://github.com/AnsoCode/Sencho/issues/185)) ([32a7d53](https://github.com/AnsoCode/Sencho/commit/32a7d53b2b1b9b3d2a067433c9e77709ade96697))

## [0.8.0](https://github.com/AnsoCode/Sencho/compare/v0.7.0...v0.8.0) (2026-03-26)

### Added

* RBAC, atomic deployments, and fleet-wide backups (Skipper and Admiral) ([#181](https://github.com/AnsoCode/Sencho/issues/181)) ([db73d76](https://github.com/AnsoCode/Sencho/commit/db73d7671a22b72756a16594004d9767970d4190))

## [0.7.0](https://github.com/AnsoCode/Sencho/compare/v0.6.0...v0.7.0) (2026-03-26)

### Added

* **webhooks:** add CI/CD webhook integration for triggering stack actions (Skipper and Admiral) ([#177](https://github.com/AnsoCode/Sencho/issues/177)) ([4fc3633](https://github.com/AnsoCode/Sencho/commit/4fc363301a1aaa442adbed83aebd21ca0e71c9c5))

## [0.6.0](https://github.com/AnsoCode/Sencho/compare/v0.5.0...v0.6.0) (2026-03-26)

### Added

* **fleet:** add Pro fleet management features and container drill-down ([#174](https://github.com/AnsoCode/Sencho/issues/174)) ([0630f57](https://github.com/AnsoCode/Sencho/commit/0630f57ca87451352e7c50d511522ac621771458))

## [0.5.0](https://github.com/AnsoCode/Sencho/compare/v0.4.0...v0.5.0) (2026-03-25)

### Added

* **auth:** redesign Login and Setup pages with split-panel branding layout ([#168](https://github.com/AnsoCode/Sencho/issues/168)) ([f80190d](https://github.com/AnsoCode/Sencho/commit/f80190d926c1d768ee1282861dffc7d272f06e21))

## [0.4.0](https://github.com/AnsoCode/Sencho/compare/v0.3.1...v0.4.0) (2026-03-25)

### Added

* **auth:** redesign Login and Setup pages with split-panel branding layout ([#153](https://github.com/AnsoCode/Sencho/issues/153)) ([e0319b5](https://github.com/AnsoCode/Sencho/commit/e0319b5daebbae88b942ba55f6891ce0e2ecaf29))

## [0.3.1](https://github.com/AnsoCode/Sencho/compare/v0.3.0...v0.3.1) (2026-03-25)

### Fixed

* **e2e:** wait for sidebar stacks to finish loading before assertions ([#149](https://github.com/AnsoCode/Sencho/issues/149)) ([9ba9a3a](https://github.com/AnsoCode/Sencho/commit/9ba9a3a4565702135f22736a6b2310fc0da1d2f1))

## [0.3.0](https://github.com/AnsoCode/Sencho/compare/v0.2.5...v0.3.0) (2026-03-25)

### Added

* add Community/Pro licensing, fleet view, and UI reorganization ([#145](https://github.com/AnsoCode/Sencho/issues/145)) ([4f26f22](https://github.com/AnsoCode/Sencho/commit/4f26f22ccef89441be032a266723cf6fca0a488a))

## [0.2.5](https://github.com/AnsoCode/Sencho/compare/v0.2.4...v0.2.5) (2026-03-25)

### Fixed

* **charts:** suppress Recharts dimension warnings on initial render ([#141](https://github.com/AnsoCode/Sencho/issues/141)) ([c6633b0](https://github.com/AnsoCode/Sencho/commit/c6633b0245d10671aac78fedac875be63c62a1e1))

## [0.2.4](https://github.com/AnsoCode/Sencho/compare/v0.2.3...v0.2.4) (2026-03-25)

### Fixed

* **csp:** allow external images in App Store and suppress console warnings ([#138](https://github.com/AnsoCode/Sencho/issues/138)) ([c5217cd](https://github.com/AnsoCode/Sencho/commit/c5217cd96de3dd8d2971668373b6eabd2c1654a4))

## [0.2.3](https://github.com/AnsoCode/Sencho/compare/v0.2.2...v0.2.3) (2026-03-25)

### Fixed

* **env:** resolve 404 when loading env files and CSP inline script violation ([#134](https://github.com/AnsoCode/Sencho/issues/134)) ([1e6367a](https://github.com/AnsoCode/Sencho/commit/1e6367a147dddb323799a3cd1947507c595d21db))

## [0.2.2](https://github.com/AnsoCode/Sencho/compare/v0.2.1...v0.2.2) (2026-03-25)

### Fixed

* **editor:** ESLint unused params fix ([dd5b698](https://github.com/AnsoCode/Sencho/commit/dd5b698b3f96e643af608a36128f05874a3b1f3c))
* **editor:** remove unused params from getWorker to satisfy ESLint ([34172a9](https://github.com/AnsoCode/Sencho/commit/34172a99226a4810465968ff9d238b85b1430829))

## [0.2.1](https://github.com/AnsoCode/Sencho/compare/v0.2.0...v0.2.1) (2026-03-24)

### Fixed

* **editor:** bundle Monaco locally to fix stuck Loading state ([0eaa45b](https://github.com/AnsoCode/Sencho/commit/0eaa45bd7f5a4b5db9d51a577d25175bbcb4ff77))
* **editor:** bundle Monaco locally to fix stuck Loading state and CSP block ([79fde6e](https://github.com/AnsoCode/Sencho/commit/79fde6e2bd598085abfc7c702f5745bdfd692aec))
* **editor:** Monaco CSP fix + release pipeline fixes ([36a9bf3](https://github.com/AnsoCode/Sencho/commit/36a9bf3109c096ddd5d8095089a6ffb7bd6dee8d))
* **editor:** Monaco CSP fix + release pipeline fixes - v0.2.1 ([36a9bf3](https://github.com/AnsoCode/Sencho/commit/36a9bf3109c096ddd5d8095089a6ffb7bd6dee8d))

## [0.2.0](https://github.com/AnsoCode/Sencho/compare/v0.1.0...v0.2.0) (2026-03-24)

### Added

* **ci:** add release-please automated versioning workflow ([c2d5d37](https://github.com/AnsoCode/Sencho/commit/c2d5d37be41267e71bb8515010b049fcd31f5d6b))
* **ci:** automated versioning with release-please ([c991b81](https://github.com/AnsoCode/Sencho/commit/c991b8121edcd30bd6806e959d0dcd14711f439f))

### Fixed

* **ci:** correct release-please changelog section names and tag format ([ea57cbe](https://github.com/AnsoCode/Sencho/commit/ea57cbe97f7f4166c747f3e3710f85e57ab476a1))
* **ci:** release-please config corrections ([b6391b9](https://github.com/AnsoCode/Sencho/commit/b6391b96ffd4edf7a303350f7416ab1945136e1b))

## [0.1.0] - 2026-03-24

First public release of Sencho.

### Security

- Closed an authentication gap on several notification and console endpoints that were missing session checks.
- Added strict validation for remote node URLs to block pointing a node at loopback or internal services (prevents server-side request forgery from node configuration).
- Prevented path traversal through env_file entries in compose files: all resolved env file paths are now confined to the stack's own directory.
- Extended stack name validation to every route so traversal-style names are rejected consistently.
- Hardened the Host Console working-directory parameter to reject paths outside the configured compose base directory.
- Host Console now launches shells with a sanitized environment so Sencho's own secrets (signing key, stored credentials, database URL) are not inherited by the terminal.
- Host Console and container exec WebSockets now reject node-to-node proxy tokens, which are only valid for API forwarding.
- Settings responses no longer expose auth credential fields, and settings writes reject any attempt to modify auth keys.
- Added login and setup rate limiting to slow down brute-force attempts.
- Added standard security response headers (frame, content-type, referrer, etc.).
- CORS is now restricted to the configured frontend origin in production.

### Added

#### Infrastructure

- linux/arm64 images published alongside linux/amd64, so Sencho runs natively on Raspberry Pi 4/5 and ARM cloud VMs.
- Automated Docker Hub publishing pipeline for dev and latest images.
- Automated documentation and screenshot refresh pipeline.
- Container health check so Docker can auto-restart an unhealthy Sencho instance.
- Public /api/health endpoint for uptime monitoring and load balancer probes.
- Graceful shutdown: Sencho drains in-flight requests, stops background workers, and closes its database before exiting.
- Initial backend unit test suite and end-to-end test suite covering auth, stacks, and node management.

#### Multi-Node & Distributed API

- Distributed API proxy architecture: manage remote Sencho instances over HTTP/WebSocket using a long-lived API token. This replaces the previous SSH/SFTP remote node model entirely.
- Node-to-node authentication tokens generated from the Nodes settings tab.
- Node management UI: add, edit, delete, and test remote nodes.
- Top-bar context pill that always shows which node is currently active (green for local, blue pulse for remote).
- Cross-node notifications: the notification bell aggregates alerts from every connected node in real time.
- Host Console and container exec are now available on remote nodes via a short-lived proxied session.
- Settings panel automatically scopes its tabs to the active node type so global-only settings are hidden when a remote node is selected.

#### Application Features

- **App Store** powered by the LinuxServer.io template registry: browse templates with rich metadata, deploy in one click, edit ports/volumes/env vars before deploy, and auto-rollback on failure. Custom Portainer v2 registry URLs are also supported.
- **Resources Hub** with Images, Volumes, and Networks tabs, Managed/External/Unused classification, a Docker disk footprint widget, and scoped prune operations (Sencho-only vs. all Docker).
- **Global Observability** dashboard with historical CPU/RAM charts and a centralized tail-logs view across every container, including multi-stack filtering, search, and live SSE streaming.
- **Background image update checker** that quietly polls your registries and badges stacks whose images have a newer version available.
- **Real-time WebSocket notifications** replacing the old polling model: alerts arrive the moment they fire.
- **Live container logs** viewer with real-time streaming.
- Animated design system overhaul with new brand color, spring-based motion on dialogs and tooltips, reduced-motion support, and the Geist font family.
- Theme-aware sidebar logo with dark/light variants and an Auto theme that follows the system preference.
- Bulk settings save endpoint with atomic persistence (either every setting saves or none do).
- Active/external container split in the dashboard Active Containers card.
- Two-Stage Teardown on stack deletion so ghost networks are always cleaned up before the files are removed.
- Custom environment variable injection in the deploy flow.
- Root-level error boundary so an unexpected crash lands on a friendly screen instead of a blank page.

### Fixed

#### Authentication & Proxy

- Remote node auth failures no longer trigger a full logout of the local session.
- JSON request bodies are now forwarded correctly to remote nodes (previously the body could be dropped under certain timing conditions).
- Browser session cookies are stripped from remote-node requests so the remote instance uses the proxy Bearer token exclusively.
- Deleted-node recovery: the frontend can now re-sync to a valid node after its active node has been removed, instead of getting stuck on an unreachable ID.
- Fixed a backend memory leak where the remote proxy was being re-instantiated on every API call.

#### WebSockets & Streaming

- Container stats streams no longer flood the UI with hundreds of updates per second; updates are now batched and flushed on a steady cadence.
- Docker stats streams and exec sessions are now cleanly torn down when the client disconnects, so they no longer leak file descriptors.
- Reliable reconnect strategy for notification WebSockets, with exponential backoff.
- Terminal logs, host console, and container stats now work correctly through the remote node proxy.

#### UI & Frontend

- Sencho now loads correctly over plain HTTP without the browser silently upgrading requests or complaining about security headers.
- Monaco editor workers and WebSocket connections are no longer blocked by the default content security policy.
- Several edge cases in the Docker socket permission detection logic now handled correctly.
- Managed vs. external container counts are now accurate when stacks are launched from the compose base directory itself.
- Fixed a browser out-of-memory crash in the global logs view when streaming high-volume containers.
- Many small UI polish items: tooltip crashes, dialog animations, button spacing, menu toggles, tab height accumulation, scrollbar styling in dark mode, and more.
- Remote-node "Open App" button now resolves the hostname from the remote node's API URL instead of assuming localhost.
- Dashboard cards and stack lists now update immediately when switching between nodes.
- Active node state is now hydrated from local storage on first paint so there is no visible flash of the wrong node.
- Historical metrics polling and log buffers are now capped to avoid long-session memory creep.

### Changed

- **Architecture:** replaced the SSH/SFTP remote node model with the Distributed API proxy. Adding a remote node now only requires its URL and an API token, no SSH keys.
- **Docs:** bootstrapped the full user-facing documentation (configuration, stack management, editor, multi-node, alerts, dashboard, resources, app store, observability, settings reference, troubleshooting, backup & restore).
- **Design system:** new brand accent color, refreshed dark-mode shadows, and a consistent animation language across dialogs, tooltips, switches, and tabs.
- Notification delivery moved from polling to real-time push.
- Rebranded a few areas for clarity: "Templates" is now "App Store", "Ghost Containers" is now "Unmanaged Containers", and the standalone "Observability" section is now "Logs".
- Global logs display chronologically (newest at the bottom) with smooth auto-scroll, and timestamps are shown in your local browser timezone.

### Removed

- The entire SSH/SFTP remote node adapter layer, superseded by the Distributed API proxy.

[0.1.0]: https://github.com/AnsoCode/Sencho/releases/tag/v0.1.0
