Some checks failed
CI / lint (push) Successful in 35s
CI / notebooks-smoke (push) Successful in 1m34s
Deploy / notebooks (push) Has been skipped
Deploy / zotero (push) Has been skipped
Deploy / docs (push) Has been skipped
Deploy / api (push) Successful in 54s
Deploy / mc (push) Has been skipped
Infra CI / notebooks (push) Successful in 58s
Infra CI / zotero (push) Successful in 14s
Infra CI / docs (push) Successful in 1m38s
Infra CI / api (push) Successful in 13s
Infra CI / mc (push) Successful in 14s
Deploy / report (push) Successful in 12s
CI / test (push) Has been cancelled
The api container had been unhealthy for ~12h with ~1500 leaked healthcheck zombies. Root cause: /health -> _check_bib -> list_items()[:1] hydrates the ENTIRE bib store via one get() per row (~140s at the 181k items the zotero sync reached) and never closes the connection — every hit pinned a threadpool thread until the pool (40) was exhausted and the event loop had nothing left to respond with. - bib.Store.list_items: SQL-level limit= param; count() is now a single COUNT query (was len(list_items()) — O(n) get() calls); shared _filter_clause builder - api _check_bib: bounded probe (limit=1) + explicit close; /bib/items pushes its limit into SQL instead of slicing after a full scan - api.Dockerfile healthcheck: curl --max-time 4 — docker's timeout only stops waiting; the probe process previously lived on forever - conf.connect.zotero(): mode=ro&immutable=1 — the running Zotero app holds the db lock nearly permanently, so plain ro opens fail with 'database is locked' (nb issue #557) - notebooks: unwrap mo.ui.altair_chart in skin_subs/acodb explorers — marimo 0.23.13 _get_binned_fields crashes on list-valued tooltip encodings ('list' object has no attribute 'get', nb issue #548) - ci test job: preinstall duckdb sqlite extension before pytest — xdist workers raced INSTALL in ~/.duckdb (#515, 3 flaked runs)
23 KiB
23 KiB