Releases: sciminds/sci
Release list
sci v2026.09.02
Breaking
- zot: collections are managed from the CLI — create, rename, re-parent, delete, and file items
Features
- zot: the Web API client returns — credentialed, hand-written, write-only
- zot: the libraries behind
item add— attachment upload, doi.org lookup, CSL mapping, PDF identifier sniffing - zot: items and tags are managed from the CLI — add by DOI, arXiv id, PDF or folder; update, trash, attach, tag
Fixes
- zot: item add catches a duplicate the local mirror has not seen yet
Documentation
- zot: the README, help and boundary notes describe the read/write surface
- zot: doctor and link stop calling the whole surface read-only
Commit: a903388
SHA256(sci-darwin-amd64): dc5ea2fcda79485c9ee1b2f5d081dab6131718cf0a267e887fc327fa5c36e921
SHA256(sci-darwin-arm64): 05ee5cf8e80798bc313f5a71f52a60228162c43bd5c82811c81f3b64804ff039
SHA256(sci-linux-amd64): 54d7d5084f7317780912a4b8b0a5130157826967b44d24aa263880720b6d161b
SHA256(sci-linux-arm64): bc569c278be2115673f74f839247bc99427372281e73533bcf662ab4be98526b
Install: curl -fsSL https://raw.githubusercontent.com/sciminds/sci/main/install.sh | sh
sci latest (transition alias)
Transitional alias for pre-CalVer binaries — releases are now CalVer-tagged (this build: v2026.09.02).
Commit: a903388
SHA256(sci-darwin-amd64): dc5ea2fcda79485c9ee1b2f5d081dab6131718cf0a267e887fc327fa5c36e921
SHA256(sci-darwin-arm64): 05ee5cf8e80798bc313f5a71f52a60228162c43bd5c82811c81f3b64804ff039
SHA256(sci-linux-amd64): 54d7d5084f7317780912a4b8b0a5130157826967b44d24aa263880720b6d161b
SHA256(sci-linux-arm64): bc569c278be2115673f74f839247bc99427372281e73533bcf662ab4be98526b
Install: curl -fsSL https://raw.githubusercontent.com/sciminds/sci/main/install.sh | sh
sci v2026.08.29
Breaking
- the module says where it lives — sciminds/sci, and the sqlite reader joins the shared surface
- zot: doctor becomes read-only reporting, and bib's answer is the unresolved list
- zot: Phase 3 — sci shrinks to the public local read surface
- a flag's value belongs to the invocation, not to the package
- zot: help text stops pointing at verbs that refuse
- zot: the Zotero surface is local, read-only, and needs no credential
- the reader stops carrying what the shrink stranded
- pkg/ keeps only what sci itself imports
- pkg/ becomes internal/, because sci publishes nothing
- local: the search API drops the hook nothing supplied
- uikit: the progress runner goes with the work it reported on
- uikit: the toast overlay goes; its severity vocabulary stays
- uikit: the unadopted layout primitives go
- uikit: the generic async command wrapper goes
- uikit: the uncalled layout and router helpers go
- cli: every failure path speaks the --json envelope
- zot: a redirected bibliography is a bibliography
- db: a command that reads stops rewriting the file
- doctor: --json diagnoses instead of silently upgrading the machine
- cli: --json stops answering "yes" on your behalf
- zot: setup --json stops rewriting a config nobody consented to
Features
- zot: produce the reference title pool from the works just fetched
- zot: drive the paper pipeline unattended, gated on a mirror that can see the paper
- zot: fetch the paper that arrived, not the library again
- zot-pipeline: let the metered stage spend, inside a bound it prices first
- zot: repair an item's type and creators, and say what the type change cost
- proj: scaffold, detect, and render pure-Typst manuscript projects
- zot-pipeline: let the slow cadence start and stop GROBID, and stop only what it started
- zot: doctor pdfs --missing — compute the PDF-less predicate locally, don't outsource it
- zot: crossref works — fetch each DOI-holding item's own record into staging
- help: the help TUI shows how to call a command, and every demo is reachable
- cloud: retry the Hub's transient failures, never its refusals
Fixes
- zot: recognize eLife, PeerJ and OUP subobject DOIs, and Wiley article sections
- zot: project every field a remote read returns, not two of them
- zot-pipeline: ship with flags openrsync accepts, because mbp has no GNU rsync
- zot-pipeline: test a journal's header, not its size, and let a gate hold be an answer
- zot-pipeline: guard BASHPID, because mbp's bash is 3.2 and set -u makes a bare reference fatal in the EXIT trap
- zot-pipeline: make preflight check that sci CAN do the job, not that it exists
- proj: track the typst refs.bib the gitignore was swallowing
- zot: noChildren means top-level-only, not childless — delete the numChildren post-filter
- cli: the explanation reaches whoever asked for it
- local: a merged handle refuses a single-library query instead of answering it
- zot: --library all info answers instead of quoting Go at the user
- cli: help refuses politely instead of crashing, and stops painting pipes
- scripts: doc-coverage stops checking a glob that matches nothing
- proj: route post-step warnings to stderr
- uikit: advance md search scan by lowered-needle length
- zot: share one DOI-prefix list; add dx.doi.org to bib resolution
- cmdutil,doctor: drain the pipe in stdout-capture test helpers
- local,store,cass: match sentinel errors with errors.Is
- cass,doctor,zot: make map-driven output deterministic
- zot,local: rune-safe truncation for previews and labels
- selfupdate: stop background update checks in dev builds
- cloud: keep the Hugging Face token on the Hub's own origin
- cloud: stop reporting every token-read failure as "not logged in"
- lab: stop reporting a truncated rsync stream as a clean transfer
- doctor: explain a failed install, and let the scenario runners update brew first
Improvements
- zot: the link writes retire, and rule 18 learns to read the client's verbs
- local: symbols exported only for the departed consumer go unexported
- uikit: one severity vocabulary instead of three
- dbtui: the blank rows say what they are
- delete 20 unreachable symbols, justify the 14 that stay
- cloud: read identity and bucket listings from the Hub API
- dbtui: unshadow lo, dedupe the read-only-tab predicate
- uikit: constrain Router's model type to tea.Model
- cass: delete the github client's inert semaphore
- lab: move SSHBackend out of the TUI package
- db: extract openStore from RunTUI
Documentation
- the prose catches up with the shrink
- the demos stop teaching commands that fail
- the documentation describes a standalone local reader
- zot: sci's reasons stop citing a project sci no longer knows
- the guides stop naming symbols sci no longer has
- the guidance describes the rules that actually run
- the prompt rules record that --json is not consent
- readme: normalize headings and tables, drop the retired Cloudflare note
Commit: 4a3b540
SHA256(sci-darwin-amd64): 5b6201cd59f386b74ceeb8546e01bce37005a42e863bf5972c1ccf97f023b6b0
SHA256(sci-darwin-arm64): 4215ccf9c445955eee9e72711fa23ce74677d5d7f7d322a4bdc4cc496798a152
SHA256(sci-linux-amd64): 212544bb9fbf33774f44308b616a8c8b43a7bb65c8a7b8b60410e853e64e0c17
SHA256(sci-linux-arm64): 0b30b0d03d505ee9625a62b3ab96f3b407f08cf0653520ddfae21356f8e60de5
Install: curl -fsSL https://raw.githubusercontent.com/sciminds/sci/main/install.sh | sh
sci v2026.08.09
Features
- zot: add
openalex sync, the work cache zot reads - sweep Crossref as a second opinion on inferred DOIs
- apply a zot DOI backfill plan, one patch per item
- ask OpenAlex for biblio and ids
- apply a zot field plan, not just a DOI one
- zot: reach the whole Zotero schema with --field and --creator
Fixes
- ask OpenAlex for every field the Work struct decodes
- stop counting PDF annotations as papers
- keep parentless attachments and notes in the NDJSON mirror
- is_oa is not selectable, and the type now says so
- fall back to a title lookup when OpenAlex lacks a DOI
- make exported .bib compile, and catch a DOI hiding inside a DOI
- accept the SICI check character in a DOI
- let an explicit empty value clear a field
- zot: keep non-bibliographic items out of the exported bibliography
- zot: route --publication to the venue field the item type actually takes
- zot: stop slice flags from silently dropping and splitting values
Commit: 103c318
SHA256(sci-darwin-amd64): 20109a01ec72956e088c15cfe4e828663115e169d001219311f95a156c443881
SHA256(sci-darwin-arm64): 8e83ecad32fde639a92d48a941091347e7695b9bd3e830375aaaca1325f5bf05
SHA256(sci-linux-amd64): a8cca7ee398df747ce591bd1a57e2d28121ee408a4092af4b5e2b8960de962c1
SHA256(sci-linux-arm64): 63bf33cc4084cba98b466b6da50b4df2321f2c0679db8cb059f74c25306485b6
Install: curl -fsSL https://raw.githubusercontent.com/sciminds/sci/main/install.sh | sh
sci v2026.08.08
Breaking
- pkg: promote openalex, citekey, doi, doiorg out of internal/
Features
- zot: add
export --format ndjson, the item-plane mirror - zot: item children --remote, and an idempotent item attach
Fixes
- zot: collection add no longer erases memberships added on the server
Commit: ba72586
SHA256(sci-darwin-amd64): be0dac98696b8c657af732e866304777009087817f4e712931ec273ba20cc20c
SHA256(sci-darwin-arm64): d7e458a52a7ac17d9f432392d8ebedfc37176d33811c5b4119f2edecf11c8c76
SHA256(sci-linux-amd64): 4a2b867de485852fe6178b7b141851e47c9cc4e12d3d2b3d695e7610aaf37ba8
SHA256(sci-linux-arm64): a6e5e41f4f635cc42d4310855b9c3eabfa757c20c98d4baa441d1d7af6baa3dc
Install: curl -fsSL https://raw.githubusercontent.com/sciminds/sci/main/install.sh | sh
sci v2026.08.07
Fixes
- zot: notes rejected for length are recorded and never retried
Commit: b2ed820
SHA256(sci-darwin-amd64): 63cca79a0319175f0d7193daae767f3ce3a1b685921c42549aa40fc57b39ec83
SHA256(sci-darwin-arm64): c5109a7a7aa94300b1f906155143fa734a8bc7baf6d7c6ad86870c3569049c18
SHA256(sci-linux-amd64): e7055d5d9623fc69d9d4d2582aaa2dada805b8b698923f706f863e7641f23f0e
SHA256(sci-linux-arm64): f40a25c869b82d7ba6b13856edc1f32ebd5b09f76b246c8a5f1860ebcd887cc5
Install: curl -fsSL https://raw.githubusercontent.com/sciminds/sci/main/install.sh | sh
sci v2026.08.04.3
Features
- release: conventional-commit convention + git-cliff release notes
Commit: ab1a481
SHA256(sci-darwin-amd64): 74517941ba88c3254b1810b31089bd21628fbf3da84c70b41c9b70d8506a71fc
SHA256(sci-darwin-arm64): 43fc9a0dd6772340ca37c8a084a3c9d5fda4de0274cefea5926b7cf352fa5801
SHA256(sci-linux-amd64): 9714300a8c7333ac7980ac2201f70eaff0c585e0d484ac6af6e6dcb4d8585960
SHA256(sci-linux-arm64): ca4157ef6082e2e73fb738d1ba7495ad7d6fd3004c68fec160ba89522fc9107d
Install: curl -fsSL https://raw.githubusercontent.com/sciminds/sci/main/install.sh | sh
sci v2026.08.04.2
sci v2026.08.04.2 — automated release from main.
Commit: 8250345
SHA256(sci-darwin-amd64): 20e3869e7f8070d500357a7bbaf9040b9f5a28275588ce0d40228e16d5af6e1f
SHA256(sci-darwin-arm64): f9f23f1125cee77263861ffa379768c9ef90360fd2cd060587c8fc5cbe128001
SHA256(sci-linux-amd64): e6d27951491ee4fd0a23ea856da0e1162ba9ae20917d71637392d2d9a9d0655a
SHA256(sci-linux-arm64): b974c9e4dffe90b584c1cf841076cd4ea8507311fa9f3c4978a490a5234ccb21
Install: curl -fsSL https://raw.githubusercontent.com/sciminds/sci/main/install.sh | sh
sci v2026.08.04.1
sci v2026.08.04.1 — automated release from main.
Commit: 8592711
SHA256(sci-darwin-amd64): 2cfc77cd10f4eccc7c18ead206b12f0101c2ed66a14dc9334098c3d965a15fa1
SHA256(sci-darwin-arm64): 773883f96643d638950294b2ca2e716ba501d3d9c1e983dd91691d26e46d3a77
SHA256(sci-linux-amd64): e98d690debb4c2a8f98afb28492e4d243f3c5a341959046d6538b2396a1ecf45
SHA256(sci-linux-arm64): c196e0b1f7500c3720d217127217f175f3adba43ccbca84db08e30ec126b588b
Install: curl -fsSL https://raw.githubusercontent.com/sciminds/sci/main/install.sh | sh
sci v2026.08.04
sci v2026.08.04 — automated release from main.
Commit: 6f6d1ed
SHA256(sci-darwin-amd64): b1e8d751f54a7ec50931ba6a887e5e8069d3ef613855b65cb8e6371f41f438f1
SHA256(sci-darwin-arm64): 5d9ba6da2de1d41fc23b6cb485e7c88ea358cb2112e8d79e7718294b63e9aef9
SHA256(sci-linux-amd64): 72ff34709ba62bfd8bb8e1583959f79f9bdae461225b43beee0b995f522e6f4c
SHA256(sci-linux-arm64): 49d53e00bec4f3951fb1151a66faa73781a1574e25d66de06c054745c21c44c5
Install: curl -fsSL https://raw.githubusercontent.com/sciminds/sci/main/install.sh | sh