Releases: higgscli/higgs
Release list
v1.2.1
What's Changed
- deps: bump actions/stale from 10.3.0 to 10.4.0 by @dependabot[bot] in #15
- deps: bump golang.org/x/crypto from 0.53.0 to 0.54.0 by @dependabot[bot] in #14
- deps: bump github/codeql-action from 4.36.3 to 4.37.0 by @dependabot[bot] in #16
Full Changelog: v1.2.0...v1.2.1
Verifying a release
- Download
checksums.txtandchecksums.txt.sig. - Verify the signature:
cosign verify-blob \ --bundle checksums.txt.sig \ --certificate-identity-regexp 'https://github.com/higgscli/higgs' \ --certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \ checksums.txt
- Verify the archive:
sha256sum -c checksums.txt.
v1.2.0
Full Changelog: v1.1.1...v1.2.0
Verifying a release
- Download
checksums.txtandchecksums.txt.sig. - Verify the signature:
cosign verify-blob \ --bundle checksums.txt.sig \ --certificate-identity-regexp 'https://github.com/higgscli/higgs' \ --certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \ checksums.txt
- Verify the archive:
sha256sum -c checksums.txt.
v1.1.1
What's Changed
- fix: false verify-move failure when a move empties the source mailbox by @akeemjenkins in #11
Full Changelog: v1.1.0...v1.1.1
Verifying a release
- Download
checksums.txtandchecksums.txt.sig. - Verify the signature:
cosign verify-blob \ --bundle checksums.txt.sig \ --certificate-identity-regexp 'https://github.com/higgscli/higgs' \ --certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \ checksums.txt
- Verify the archive:
sha256sum -c checksums.txt.
v1.1.0
What's Changed
- feat: queryable classify results, stdin UID piping, verify command, extract --apply-as-label by @akeemjenkins in #10
- deps: bump actions/checkout from 6.0.3 to 7.0.0 by @dependabot[bot] in #1
- deps: bump github.com/spf13/pflag from 1.0.9 to 1.0.10 by @dependabot[bot] in #2
- deps: bump modernc.org/sqlite from 1.52.0 to 1.53.0 by @dependabot[bot] in #3
- deps: bump actions/setup-go from 6.4.0 to 6.5.0 by @dependabot[bot] in #4
- deps: bump goreleaser/goreleaser-action from 7.2.2 to 7.2.3 by @dependabot[bot] in #6
- deps: bump github/codeql-action/analyze from 4.36.2 to 4.36.3 by @dependabot[bot] in #7
- deps: bump docker/login-action from 4.2.0 to 4.4.0 by @dependabot[bot] in #8
- deps: bump github/codeql-action/init from 4.36.2 to 4.36.3 by @dependabot[bot] in #9
- deps: bump golangci/golangci-lint-action from 9.2.1 to 9.3.0 by @dependabot[bot] in #5
New Contributors
- @akeemjenkins made their first contribution in #10
- @dependabot[bot] made their first contribution in #1
Full Changelog: v1.0.7...v1.1.0
Verifying a release
- Download
checksums.txtandchecksums.txt.sig. - Verify the signature:
cosign verify-blob \ --bundle checksums.txt.sig \ --certificate-identity-regexp 'https://github.com/higgscli/higgs' \ --certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \ checksums.txt
- Verify the archive:
sha256sum -c checksums.txt.
v1.0.7
macOS signing restored; tap formula path fixed
- macOS binaries are signed and notarized again. The signing secrets were lost in a repo transfer, so v1.0.5 and v1.0.6 shipped unsigned darwin binaries (Homebrew installs were unaffected; direct downloads hit Gatekeeper warnings). Both darwin builds in this release are signed with a Developer ID Application certificate under the hardened runtime and accepted by Apple's notary service.
- Homebrew tap updates now land in
Formula/. goreleaser's default wrote the formula to the tap root, which brew ignores when aFormula/directory exists — v1.0.6's automated tap update had to be reconciled by hand. This is the first release published end-to-end with no manual steps.
No functional changes to the CLI itself since v1.0.6.
Full Changelog: v1.0.6...v1.0.7
v1.0.6
Silent-error audit: verified writes and honest reporting everywhere
v1.0.5 fixed archive/trash/move reporting success for messages that were never moved. This release is the result of auditing the whole CLI for that same class of bug — success reported without verifying the effect, and errors discarded on the way up. Every fix below landed test-first against a test server injected with the exact misbehavior (writes acknowledged but not applied, FETCH failing mid-stream, unstable SEARCH answers).
Fetch results are no longer trusted blindly
- A FETCH that fails mid-stream now surfaces as an error. Previously the error was swallowed and the partial message list was returned as if complete, so
extract,classify,summarize,digest,attachments,fetch-and-parse,unsubscribe, and reply composition could all silently operate on a truncated read. - Requested UIDs the server doesn't return no longer vanish.
extract,unsubscribe,attachments, andsummarizewith--uidnow emit a"type":"error"row for each UID that wasn't found (typo'd, already deleted, wrong mailbox) and count it in the summary'sfailed. Before, those UIDs simply produced no output at all.
Flag writes are verified like moves
mark-readandflagnow verify every STORE. Work happens in chunks of 250 UIDs; each chunk is confirmed withUID SEARCHto be in the requested flag state, stragglers are retried once, and anything still wrong gets a"type":"error"row, afailedcount in the summary, and a non-zero exit. Previously a single unverifiedUID STOREOK produced a success row for every input UID — including UIDs that don't exist.
Honest status reporting
cleanup-labelsno longer reports"status":"ok"for labels it failed to delete. A rejected DELETE now emits"status":"failed"with the full error envelope (including how many messages had already been moved) and is counted infailed. Before, the failure was only a stderr warning while the NDJSON stream claimed success.watchno longer emits phantom events. Each poll'sUID SEARCHis re-run until two consecutive answers agree, so one flaky answer (seen with Proton Bridge's virtual All Mail) can no longer diff into a burst of fakeexpunge/newevents.apply-labelssurfaces state-DB write failures instead of discarding them (a lostappliedrecord silently re-applies labels on the next run), andimport's APPEND error message now correctly labels the message index instead of calling it a UID.
Test infrastructure
imaptestgainedWithMailboxWrapperandWithUserWrapper, letting tests decorate the in-memory server's backend with real-world misbehavior (acknowledged-but-ignored writes, mid-stream FETCH failures, unstable SEARCH results, rejected DELETEs). All of the above fixes are locked in by regression tests built on them.
Full Changelog: v1.0.5...v1.0.6
v1.0.5
Full Changelog: v1.0.4...v1.0.5
Verifying a release
- Download
checksums.txtandchecksums.txt.sig. - Verify the signature:
cosign verify-blob \ --bundle checksums.txt.sig \ --certificate-identity-regexp 'https://github.com/higgscli/higgs' \ --certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \ checksums.txt
- Verify the archive:
sha256sum -c checksums.txt.
v1.0.4
Full Changelog: v1.0.3...v1.0.4
Verifying a release
- Download
checksums.txtandchecksums.txt.sig. - Verify the signature:
cosign verify-blob \ --bundle checksums.txt.sig \ --certificate-identity-regexp 'https://github.com/higgscli/higgs' \ --certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \ checksums.txt
- Verify the archive:
sha256sum -c checksums.txt.
v1.0.3
Full Changelog: v1.0.2...v1.0.3
Verifying a release
- Download
checksums.txtandchecksums.txt.sig. - Verify the signature:
cosign verify-blob \ --bundle checksums.txt.sig \ --certificate-identity-regexp 'https://github.com/higgscli/higgs' \ --certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \ checksums.txt
- Verify the archive:
sha256sum -c checksums.txt.