Repository navigation
sci v2026.08.29
·
7 commits
to main
since this release
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