From 148cfd63c76d6186fb63384d41975d9e4e83769c Mon Sep 17 00:00:00 2001 From: Sami Ahmed Date: Tue, 7 Jul 2026 21:10:41 -0700 Subject: [PATCH] release: v6.1.5 36 commits since v6.1.4 (2026-07-04). User-facing: - UI: olive-green for unconfirmed/immature stakes - Wallet: close-hang on Windows from detached Tor/I2P threads fixed - Consensus: live PoS checks during stale-tip IBD Maintainer-visible: - CHANGELOG.md added at the repo root - doc/release-process.md corrected to match the actual signing keys (RSA-4096 Krystie release key + Sami personal tag-signing key) --- CHANGELOG.md | 73 +++++++++++++++++++ Dockerfile | 2 +- doc/release-process.md | 28 ++++--- packaging/appimage/build-appimage.sh | 2 +- packaging/debian/build-deb.sh | 2 +- packaging/docker/Dockerfile | 6 +- packaging/docker/docker-compose.yml | 2 +- ...rg.cryptographic_triangles.TrianglesQt.yml | 4 +- packaging/rpm/build-rpm.sh | 2 +- packaging/rpm/triangles.spec | 2 +- packaging/scoop/triangles.json | 4 +- .../CryptographicTriangles.TrianglesQt.yaml | 4 +- snap/snapcraft.yaml | 10 +-- src/clientversion.h | 8 +- 14 files changed, 116 insertions(+), 33 deletions(-) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..20f9c5f --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,73 @@ +# Changelog + +All notable changes to Triangles (TRI) are documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [6.1.5] - 2026-07-08 + +### Added +- New `tweet@sami-ahmed.net` uid on the maintainer signing key, with + `hello@sami-ahmed.net` verified on the GitHub account — release tags now + show as "Verified" on github.com. +- `CHANGELOG.md` at the repo root (this file). + +### Changed +- Overview page UI: pending (`labelUnconfirmed`) and immature (`labelImmature`) + balance labels now render in **olive green** (`#A8B847`) instead of the + same light green as confirmed balances. The distinction reads as + "incoming but not yet confirmed" instead of "incoming and final". +- `doc/release-process.md`: corrected signing-key identity to match the + actual key in use (RSA-4096 `Krystie Triangles Release `, + not the Ed25519 `sami@cryptographic-triangles.org` the doc previously claimed). + +### Fixed +- Wallet close-hang on Windows: detached `std::thread` instances backing the + embedded Tor and I2P controllers now join cleanly on shutdown, removing + the ~30s exit delay. (`#20`) +- Consensus: live proof-of-stake checks run during stale-tip IBD instead of + being suppressed, fixing a divergence path where a node could accept a + stale chain tip while local PoS validity checks were off. (`#18`) +- CI: `simd.c:265` UBSan build-id drift resolved; reproducible-build + warnings now ignore untracked files. (`#17`) + +### Security +- Audit follow-ups merged: kernel coverage, keystore coverage, sigcache + fixes, wallet-DB test fixes. (`#14`, `#15`) + +## [6.1.4] - 2026-07-04 + +### Fixed +- CI: Tor bundle download resilience. +- `NeedsBootstrap` flag now correctly persists across `rocksdb/` restarts. + +## [6.1.3] - 2026-07-01 + +### Changed +- Chain-DB migration hardening. +- BIP39 passphrase support. +- HD-wallet indicator in the UI. +- Test isolation improvements. + +## [6.1.2] - 2026-06-30 [YANKED] + +Hotfix for v3 snapshot seek-offset corruption. Superseded by 6.1.3. +Do not use. + +## [6.1.1] - 2026-06-22 + +### Fixed +- Minor wallet bugs. + +## [6.1.0] - 2026-06-15 + +### Added +- Initial 6.x release line. C++20 modernization, embedded Tor/I2P support. + +[6.1.5]: https://github.com/SamiAhmed7777/triangles_v5/compare/v6.1.4...v6.1.5 +[6.1.4]: https://github.com/SamiAhmed7777/triangles_v5/compare/v6.1.3...v6.1.4 +[6.1.3]: https://github.com/SamiAhmed7777/triangles_v5/compare/v6.1.2...v6.1.3 +[6.1.2]: https://github.com/SamiAhmed7777/triangles_v5/compare/v6.1.1...v6.1.2 +[6.1.1]: https://github.com/SamiAhmed7777/triangles_v5/compare/v6.1.0...v6.1.1 +[6.1.0]: https://github.com/SamiAhmed7777/triangles_v5/releases/tag/v6.1.0 diff --git a/Dockerfile b/Dockerfile index dd5f921..57ed39e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ FROM ubuntu:22.04 LABEL maintainer="Cryptographic Triangles Team" LABEL description="Cryptographic Triangles (TRI) headless daemon" -LABEL version="6.1.0" +LABEL version="6.1.5" RUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates \ diff --git a/doc/release-process.md b/doc/release-process.md index f2483a6..5739a8a 100644 --- a/doc/release-process.md +++ b/doc/release-process.md @@ -83,17 +83,27 @@ Options: **One-time setup** (the maintainer's machine): ```bash -# Generate a fresh Ed25519 signing subkey under your existing PGP master. -# Ed25519 is preferred over RSA-4096: smaller signatures, faster, quantum-resistant -# at the security level we need for code-signing. -gpg --quick-generate-key 'Sami Ahmed ' ed25519 sign never +# The release-signing key currently in use is: +# +# uid: Krystie Triangles Release +# fp: 523A 8183 3EB7 2015 73E1 EFE1 DCF2 5799 6810 7984 +# sub: 6913 E136 10F6 9818 3429 CE20 C2DC 6061 8C85 A159 +# algo: RSA-4096, created 2026-04-29, expires 2028-04-28 +# +# This is an unattended signing key used by the release CI to sign +# release artifacts (daemon.tar.gz, qt.tar.gz, .deb, .dmg, .exe, .AppImage) +# without a human in the loop. It is stored as a GitHub Actions secret. +# +# Git tags are signed by the maintainer's personal key +# (uid `Sami `, fp `53AA 858E F0DD D528 EC2C 2ABD +# 0BF7 F887 2FE0 E859`) so the tag and the artifacts can be verified +# independently. -# Print the public key block to publish on the website / GitHub. -gpg --armor --export 'sami@cryptographic-triangles.org' > release-pubkey.asc +# To print the public key for the current release-signing key: +gpg --armor --export 0xDCF2579968107984 > release-pubkey.asc -# Export your secret key BACKUP. Store this on airgapped / offline media. -# Without this backup, lost local keyring = lost ability to sign new releases. -gpg --export-secret-keys 'sami@cryptographic-triangles.org' > release-seckey-BACKUP.asc +# To export the maintainer's tag-signing secret key (for backup): +gpg --export-secret-keys 0x0BF7F8872FE0E859 > release-seckey-BACKUP.asc chmod 600 release-seckey-BACKUP.asc ``` diff --git a/packaging/appimage/build-appimage.sh b/packaging/appimage/build-appimage.sh index 9d97da7..9f0e9bf 100644 --- a/packaging/appimage/build-appimage.sh +++ b/packaging/appimage/build-appimage.sh @@ -3,7 +3,7 @@ # Run on a Linux x64 system with appimagetool installed set -e -VERSION="6.1.0" +VERSION="6.1.5" APPDIR="Triangles-x86_64.AppDir" RELEASE_URL="https://github.com/SamiAhmed7777/triangles_v5/releases/download/v${VERSION}" diff --git a/packaging/debian/build-deb.sh b/packaging/debian/build-deb.sh index 8df3d1d..86ac5db 100644 --- a/packaging/debian/build-deb.sh +++ b/packaging/debian/build-deb.sh @@ -3,7 +3,7 @@ # Run from the packaging/debian directory set -e -VERSION="6.1.0" +VERSION="6.1.5" PKGDIR="triangles_${VERSION}-1_amd64" RELEASE_URL="https://github.com/SamiAhmed7777/triangles_v5/releases/download/v${VERSION}" diff --git a/packaging/docker/Dockerfile b/packaging/docker/Dockerfile index 3bd513b..17f06b2 100644 --- a/packaging/docker/Dockerfile +++ b/packaging/docker/Dockerfile @@ -1,6 +1,6 @@ FROM ubuntu:22.04 AS builder -ARG VERSION=6.1.0 +ARG VERSION=6.1.5 ARG DEB_URL=https://github.com/SamiAhmed7777/triangles_v5/releases/download/v${VERSION}/cryptographic-triangles-daemon_${VERSION}_amd64.deb RUN apt-get update && apt-get install -y --no-install-recommends \ @@ -13,11 +13,11 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ # ---------- Runtime ---------- FROM ubuntu:22.04 -ARG VERSION=6.1.0 +ARG VERSION=6.1.5 LABEL maintainer="Cryptographic Triangles Team" LABEL description="Cryptographic Triangles (TRI) headless daemon" -LABEL version="6.1.0" +LABEL version="6.1.5" RUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates \ diff --git a/packaging/docker/docker-compose.yml b/packaging/docker/docker-compose.yml index 2153b5c..b538036 100644 --- a/packaging/docker/docker-compose.yml +++ b/packaging/docker/docker-compose.yml @@ -3,7 +3,7 @@ version: "3.8" services: trianglesd: build: . - image: cryptographic-triangles/trianglesd:6.1.0 + image: cryptographic-triangles/trianglesd:6.1.5 container_name: trianglesd restart: unless-stopped ports: diff --git a/packaging/flatpak/org.cryptographic_triangles.TrianglesQt.yml b/packaging/flatpak/org.cryptographic_triangles.TrianglesQt.yml index b4aadf0..c8b1786 100644 --- a/packaging/flatpak/org.cryptographic_triangles.TrianglesQt.yml +++ b/packaging/flatpak/org.cryptographic_triangles.TrianglesQt.yml @@ -25,7 +25,7 @@ modules: - install -Dm644 org.cryptographic_triangles.TrianglesQt.metainfo.xml /app/share/metainfo/org.cryptographic_triangles.TrianglesQt.metainfo.xml sources: - type: file - url: https://github.com/SamiAhmed7777/triangles_v5/releases/download/v6.1.0/Cryptographic-Triangles-v6.1.0-linux-x64-qt + url: https://github.com/SamiAhmed7777/triangles_v5/releases/download/v6.1.5/Cryptographic-Triangles-v6.1.5-linux-x64-qt sha256: ed220eb8d0b403f62cdac28988541fd1a27864491e233216f9c00a4c2537b4a3 dest-filename: triangles-qt-linux - type: file @@ -55,6 +55,6 @@ modules: - install -Dm755 trianglesd-linux /app/bin/trianglesd sources: - type: file - url: https://github.com/SamiAhmed7777/triangles_v5/releases/download/v6.1.0/Cryptographic-Triangles-v6.1.0-linux-x64-daemon + url: https://github.com/SamiAhmed7777/triangles_v5/releases/download/v6.1.5/Cryptographic-Triangles-v6.1.5-linux-x64-daemon sha256: 4d2ab25d61127d6aff3e6f3069556d04f4b823f8849e97629c12871ad4779517 dest-filename: trianglesd-linux diff --git a/packaging/rpm/build-rpm.sh b/packaging/rpm/build-rpm.sh index 35e67a5..057a6c6 100644 --- a/packaging/rpm/build-rpm.sh +++ b/packaging/rpm/build-rpm.sh @@ -4,7 +4,7 @@ # Install build tools: sudo dnf install rpm-build rpmdevtools set -e -VERSION="6.1.0" +VERSION="6.1.5" RELEASE_URL="https://github.com/SamiAhmed7777/triangles_v5/releases/download/v${VERSION}" echo "Building RPM for Triangles v${VERSION}..." diff --git a/packaging/rpm/triangles.spec b/packaging/rpm/triangles.spec index bd1a4bc..87edefc 100644 --- a/packaging/rpm/triangles.spec +++ b/packaging/rpm/triangles.spec @@ -1,5 +1,5 @@ Name: triangles -Version: 6.1.0 +Version: 6.1.5 Release: 1%{?dist} Summary: Cryptographic Triangles (TRI) cryptocurrency wallet License: MIT diff --git a/packaging/scoop/triangles.json b/packaging/scoop/triangles.json index f3d595c..5899de9 100644 --- a/packaging/scoop/triangles.json +++ b/packaging/scoop/triangles.json @@ -1,11 +1,11 @@ { - "version": "6.1.0", + "version": "6.1.5", "description": "Cryptographic Triangles (TRI) cryptocurrency wallet with PoS staking and encrypted messaging", "homepage": "https://cryptographic-triangles.org", "license": "MIT", "architecture": { "64bit": { - "url": "https://github.com/SamiAhmed7777/triangles_v5/releases/download/v6.1.0/Cryptographic-Triangles-6.1.0-win-x64.zip", + "url": "https://github.com/SamiAhmed7777/triangles_v5/releases/download/v6.1.5/Cryptographic-Triangles-6.1.5-win-x64.zip", "hash": "6f002a669a7e92aaf3d8dd7b1ae80f06a086c99a15ca05cf107665009ffc06b7" } }, diff --git a/packaging/winget/CryptographicTriangles.TrianglesQt.yaml b/packaging/winget/CryptographicTriangles.TrianglesQt.yaml index 57c648b..ffe236d 100644 --- a/packaging/winget/CryptographicTriangles.TrianglesQt.yaml +++ b/packaging/winget/CryptographicTriangles.TrianglesQt.yaml @@ -1,5 +1,5 @@ PackageIdentifier: CryptographicTriangles.TrianglesQt -PackageVersion: 6.1.0 +PackageVersion: 6.1.5 PackageLocale: en-US Publisher: Cryptographic Triangles PublisherUrl: https://cryptographic-triangles.org @@ -27,7 +27,7 @@ Installers: - RelativeFilePath: triangles-qt.exe PortableCommandAlias: triangles-qt ArchiveBinariesDependOnPath: true - InstallerUrl: https://github.com/SamiAhmed7777/triangles_v5/releases/download/v6.1.0/Cryptographic-Triangles-6.1.0-win-x64.zip + InstallerUrl: https://github.com/SamiAhmed7777/triangles_v5/releases/download/v6.1.5/Cryptographic-Triangles-6.1.5-win-x64.zip InstallerSha256: 6F002A669A7E92AAF3D8DD7B1AE80F06A086C99A15CA05CF107665009FFC06B7 ManifestType: singleton ManifestVersion: 1.6.0 diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 41b7b0e..980ac30 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -1,6 +1,6 @@ name: triangles base: core22 -version: '6.1.0' +version: '6.1.5' summary: Cryptographic Triangles (TRI) cryptocurrency wallet description: | Privacy-focused cryptocurrency featuring Proof-of-Stake consensus, @@ -51,10 +51,10 @@ apps: parts: triangles: plugin: dump - source: https://github.com/SamiAhmed7777/triangles_v5/releases/download/v6.1.0/Cryptographic-Triangles-v6.1.0-linux-x64-qt + source: https://github.com/SamiAhmed7777/triangles_v5/releases/download/v6.1.5/Cryptographic-Triangles-v6.1.5-linux-x64-qt source-type: file organize: - Cryptographic-Triangles-v6.1.0-linux-x64-qt: bin/triangles-qt + Cryptographic-Triangles-v6.1.5-linux-x64-qt: bin/triangles-qt stage-packages: - libqt5widgets5 - libqt5gui5 @@ -73,10 +73,10 @@ parts: trianglesd: plugin: dump - source: https://github.com/SamiAhmed7777/triangles_v5/releases/download/v6.1.0/Cryptographic-Triangles-v6.1.0-linux-x64-daemon + source: https://github.com/SamiAhmed7777/triangles_v5/releases/download/v6.1.5/Cryptographic-Triangles-v6.1.5-linux-x64-daemon source-type: file organize: - Cryptographic-Triangles-v6.1.0-linux-x64-daemon: bin/trianglesd + Cryptographic-Triangles-v6.1.5-linux-x64-daemon: bin/trianglesd desktop-entry: plugin: dump diff --git a/src/clientversion.h b/src/clientversion.h index 169cb1e..6e078d2 100644 --- a/src/clientversion.h +++ b/src/clientversion.h @@ -6,10 +6,10 @@ // // These need to be macros, as version.cpp's and triangles-qt.rc's voodoo requires it -#define CLIENT_VERSION_MAJOR 6 -#define CLIENT_VERSION_MINOR 1 -#define CLIENT_VERSION_REVISION 4 -#define CLIENT_VERSION_BUILD 0 +#define CLIENT_VERSION_MAJOR 6 +#define CLIENT_VERSION_MINOR 1 +#define CLIENT_VERSION_REVISION 5 +#define CLIENT_VERSION_BUILD 0 // Converts the parameter X to a string after macro replacement on X has been performed. // Don't merge these into one macro!