Repository navigation
Nija 0.4.0
Unsigned builds: see docs/release.md for Gatekeeper / SmartScreen steps.
Verify downloads with SHA256SUMS.txt, and their origin with
gh attestation verify <file> --repo appfide/nija.
An SPDX bill of materials ships with the release.
What changed in 0.4.0
Changed
- The app is now called Nija. निज (nija) is Sanskrit for "one's own" — the name says what the product is: your clipboard, on your database, under your keys. The About page and the README explain it. Nothing about how syncing, encryption or pairing works has changed.
- Bundle identifiers are now
com.appfide.nijaon every platform (fromcom.appfide.clipboardSync/com.appfide.clipboard_sync). The operating system treats a new identifier as a different app, so 0.3.0 will not upgrade in place: install Nija, pair it as you would a new device, and remove the old app afterwards. Local history kept by the old install stays in its own sandbox and is not carried over; anything already in your database syncs back down on first run. - Pairing codes now start with
NIJA1.instead ofCSYNC1., and derive from a matching label. A device still running 0.3.0 cannot pair with one running this build — upgrade both. - The repository, the Flutter app and the core package are now
appfide/nija,apps/nijaandpackages/nija_core. Live-backend tests readNIJA_TEST_<BACKEND>_*environment variables instead ofCLIPSYNC_TEST_*. - Noto Sans Devanagari (SIL OFL 1.1) ships with the app so the name renders in its own script on every platform, not only where the OS happens to have a Devanagari face.
Added
- Every release is now verified before it is published.
scripts/verify_artifacts.shopens each installer and checks it is the app it claims to be — bundle identifiercom.appfide.nija, the version being released, a plausible binary size, and the signing state the release promises (Developer ID plus a notarization staple on macOS, a verified upload-key signature on Android). A build carrying the wrong identifier or last version's number now fails the release rather than reaching users. - Build provenance. Every published file carries a GitHub-signed attestation naming the workflow, commit and runner that produced it:
gh attestation verify <file> --repo appfide/nija. A checksum only proves a file is intact; provenance proves where it came from, which matters because whoever can replace the file can replace the checksum beside it. - An SPDX software bill of materials ships with each release and is covered by
SHA256SUMS.txt. - Release notes now lead with the CHANGELOG section for that version instead of only a list of commit subjects.
- Releases are serialised: a second version bump queues behind the one in flight instead of racing it for the tag.
Unchanged (deliberately)
- The passphrase-to-key derivation, the keyed content fingerprint and the key-envelope labels still carry their original
clipsync-*v1 names. They are wire constants baked into data already sitting in users' databases: renaming them would make existing clips undecryptable and break de-duplication. The app's name is not part of its key schedule.
What's Changed
- rename: Clipboard Sync is now Nija (0.4.0) by @dhipin in #25
- ci(release): build the SBOM without a third-party action by @dhipin in #30
- fix(release): compare version cores, not packager spellings by @dhipin in #31
- fix(release): stop grep -q from failing the checks it passes by @dhipin in #32
Full Changelog: v0.3.0...v0.4.0