Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 3 additions & 6 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -233,15 +233,12 @@ jobs:

signer-image:
needs: validate
if: startsWith(github.ref, 'refs/tags/v')
if: startsWith(github.ref, 'refs/tags/v') || github.event_name == 'workflow_dispatch'
name: signer image matches its recorded hashes
runs-on: ubuntu-24.04
runs-on: ubuntu-24.04-arm
timeout-minutes: 180
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Allow the arm64 canonical image to run here
uses: docker/setup-qemu-action@99012661954931238ded8c8b007157a8430204e1 # v4.4.0
with:
platforms: arm64
- name: Fetch the crate sources named by Cargo.lock
working-directory: signing-core
run: cargo fetch --locked
Expand Down
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,13 @@ Security fixes say what an affected version does wrong, not just that something
was fixed. A release note that says "various improvements" is a release note
that keeps people on a broken version.

## v0.1.6 — 2026-10-26

- Carries forward the v0.1.5 evaluation candidate, which was not published
after its emulated ARM signer-image check reached GitHub's six-hour limit.
- Runs the unchanged two-build signer-image reproducibility gate on a native
ARM64 runner and exercises that gate during manual branch rehearsals.

## v0.1.5 — 2026-10-26

### Added
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ choosing a version.

The desktop reviewer does not need keys and does not sign transactions. It is a second opinion, not a trusted display: a compromised computer can alter what you see. Compare the recomputed hash with the signing device and follow your existing approval procedure. A successful decode is not a safety assessment of the destination contract.

The dedicated signer and seL4 platform are experimental and have been tested in emulation, not on production hardware. The v0.1.5 release is configured as an unsigned evaluation prerelease. A tag fails unless the repository explicitly selects either a signed stable release or an unsigned evaluation prerelease; signed mode requires macOS and Windows signing checks to pass. The [release-signing record](docs/15-release-signing.md) names the modes, credentials and platform guarantees. The [verification record](docs/03-verification-status.md) distinguishes the reported human review from later AI-assisted checks and records the outstanding review and hardware work.
The dedicated signer and seL4 platform are experimental and have been tested in emulation, not on production hardware. The v0.1.6 release is configured as an unsigned evaluation prerelease. A tag fails unless the repository explicitly selects either a signed stable release or an unsigned evaluation prerelease; signed mode requires macOS and Windows signing checks to pass. The [release-signing record](docs/15-release-signing.md) names the modes, credentials and platform guarantees. The [verification record](docs/03-verification-status.md) distinguishes the reported human review from later AI-assisted checks and records the outstanding review and hardware work.

The repository also contains an iOS and Android client backed by the same Rust review API. It is source for an evaluation build, not a published App Store or Play Store release; clean native CI and device testing remain release gates.

Expand Down
2 changes: 1 addition & 1 deletion desktop/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ signs.

## Signing and notarisation

The v0.1.5 application is not publisher-signed or notarized, so macOS and
The v0.1.6 application is not publisher-signed or notarized, so macOS and
Windows warn that it comes from an unidentified developer. The macOS linker may
add an identity-free ad-hoc signature; that is not a Developer ID signature.
Until a signed release replaces it, the honest check is the hash of what you
Expand Down
4 changes: 2 additions & 2 deletions desktop/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion desktop/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "clearsign-desktop",
"private": true,
"version": "0.1.5",
"version": "0.1.6",
"description": "ClearSign — see what a transaction really does before you approve it.",
"scripts": {
"dev": "tauri dev",
Expand Down
8 changes: 4 additions & 4 deletions desktop/src-tauri/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion desktop/src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]
name = "clearsign-desktop"
description = "ClearSign — see what a transaction really does before you approve it."
version = "0.1.5"
version = "0.1.6"
edition = "2024"
rust-version = "1.87"
license = "MIT OR Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion desktop/src-tauri/tauri.conf.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://schema.tauri.app/config/2",
"productName": "ClearSign",
"version": "0.1.5",
"version": "0.1.6",
"identifier": "com.anticsdecoded.clearsign",
"build": {
"frontendDist": "../src"
Expand Down
2 changes: 1 addition & 1 deletion docs/07-timeline.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ from what comparable projects actually took, not from optimism.
|---|---|
| The reviewer | Works. 314 tests, nine fuzz targets, reproducible builds, one external audit with all ten findings fixed |
| The command-line tool | Works. Reads Safe's own JSON, catches the Bybit transaction, and agreed with Safe's service and alloy on 10,851 of 10,851 sampled Safe transaction hashes across 27 chains |
| The desktop application | Builds, installs and runs on macOS, Windows and Linux in CI. v0.1.5 is configured as an unsigned evaluation prerelease; stable signing credentials are not provisioned |
| The desktop application | Builds, installs and runs on macOS, Windows and Linux in CI. v0.1.6 is configured as an unsigned evaluation prerelease; stable signing credentials are not provisioned |
| The compartment prototype | Runs on seL4 in an emulator: untrusted Linux, no shell, signer owns the console |
| Users | **None.** This is the number that matters |

Expand Down
2 changes: 1 addition & 1 deletion docs/15-release-signing.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This document describes the repository's release controls. It does not claim
that already-published downloads were retroactively signed. ClearSign v0.1.2 is
unsigned. The protected v0.1.3 tag produced no release because its macOS
evaluation gate rejected an identity-free ad-hoc linker signature. v0.1.4 was
published as an unsigned evaluation release, and v0.1.5 is configured the same
published as an unsigned evaluation release, and v0.1.6 is configured the same
way. Every future release tag requires an explicit mode; an unset or unknown
mode fails before packaging begins.

Expand Down
2 changes: 1 addition & 1 deletion mobile/app.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"expo": {
"name": "ClearSign",
"slug": "clearsign",
"version": "0.1.5",
"version": "0.1.6",
"scheme": "clearsign",
"icon": "./assets/icon.png",
"userInterfaceStyle": "automatic",
Expand Down
4 changes: 2 additions & 2 deletions mobile/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion mobile/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "clearsign-mobile",
"version": "0.1.5",
"version": "0.1.6",
"main": "expo-router/entry",
"dependencies": {
"@expo/vector-icons": "^15.0.2",
Expand Down
2 changes: 1 addition & 1 deletion mobile/src/app/scope.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ export default function ScopeScreen() {
))}
</View>

<Text style={[styles.version, { color: colors.inkFaint }]}>Mobile evaluation build 0.1.5 · Review API v1</Text>
<Text style={[styles.version, { color: colors.inkFaint }]}>Mobile evaluation build 0.1.6 · Review API v1</Text>
</View>
</ScrollView>
</SafeAreaView>
Expand Down
2 changes: 1 addition & 1 deletion platform/signer-image/EXPECTED-HASHES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@
# binary recorded in signing-core/EXPECTED-HASHES.txt, and the build refuses to
# package any other.
2aa6a4b8a0bedd695c4d331f7c824c96433290598869ec9a91720dd065c11a13 Image
f336e6b17063e5bcc6bae752d25ec09454594cc78db8aa0a6b4ca89077ac9b1f initramfs.cpio.gz
2318f9e70a113b06c03e0c6b96578b6e4d8208ffc00ead718acee4e0142212d0 initramfs.cpio.gz
4 changes: 2 additions & 2 deletions platform/signer-image/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,8 @@ cat > "$SRC/build-signer-image.sh" <<'IN'
#!/usr/bin/env bash
set -euo pipefail
export DEBIAN_FRONTEND=noninteractive
apt-get update -qq >/dev/null
apt-get install -y -qq --no-install-recommends build-essential bc bison flex libssl-dev \
apt-get -o Acquire::Retries=5 update -qq >/dev/null
apt-get -o Acquire::Retries=5 install -y -qq --no-install-recommends build-essential bc bison flex libssl-dev \
libelf-dev xz-utils cpio python3 binutils >/dev/null
KV="$1"
export KBUILD_BUILD_TIMESTAMP="1970-01-01" KBUILD_BUILD_USER="builder" KBUILD_BUILD_HOST="osproject"
Expand Down
26 changes: 13 additions & 13 deletions signing-core/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion signing-core/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ members = [
]

[workspace.package]
version = "0.1.5"
version = "0.1.6"
edition = "2024"
rust-version = "1.87"
license = "MIT OR Apache-2.0"
Expand Down
4 changes: 2 additions & 2 deletions signing-core/EXPECTED-HASHES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@
# reproducible in practice rather than sealed.
# Anything built elsewhere, including on the maintainer's own machine, may
# differ: rustc does not promise identical output across compiler hosts.
6565e34e1863dd284ed70b96ded1ab1423532c3c74fd8771f83717b8da58b7b7 clearsign
20737e7b6d07879212a019f39f39238c6d9d139ba624ca1c3e2ce7bd095781af clearsign-device
8e0f7727b90f45ddf82fbcf5c04f80706a18e7c4949966123a7404525bcd5bdb clearsign
9f00f56f9e67fa27733c71493b9525fcfa33ffe438608cc4a024bf9c2a08d124 clearsign-device
4 changes: 2 additions & 2 deletions signing-core/bench/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions signing-core/fuzz/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading