feat: self-authoring ingest, relevance gate, and the Ranch Oath
The roster writes itself. The scores do not.
- db/ingest/sources.mjs: GitHub and Flathub adapters. GitHub is ranked by
stars (usage); Flathub is a curated store of end-user Linux apps, so
relevance is free there and has to be earned on GitHub.
- db/ingest/run.mjs: discovers into the roster as unassessed products, never
as scores. Every discovery leaves a receipt (source, url, usage metric,
timestamp) so a reader can see where a product came from and why it ranks.
- LooksLikeUserSoftware gate: topic:messaging sorts RabbitMQ to the top
because brokers are highly starred and are not things people install.
- build.mjs no longer wipes the database. The DB authors itself, so a rebuild
would have thrown the roster away. --fresh is now explicit.
- v_backlog view: what to assess next, ordered by measured usage.
- packages/web/public/oath.html: the Ranch Oath, with an ASCII Bible crest,
bound to a SHA-256 of catalog.json. The page recomputes the digest in the
browser and reports VERIFIED or BROKEN. An oath you cannot break is decoration.
Roster now 122 products, 1 assessed. All instrument checks pass.
2026-10-29 13:23:57 -05:00
|
|
|
{
|
fix(signal): the uninstall does not uninstall
Observed on the operator's machine 2026-10-30 while reinstalling to put the app
to use. Four months after the package was purged, a fresh install found
~/.config/Signal/sql/db.sqlite (54,214,656 bytes, mtime 2026-06-21), tried to
open it, and aborted before the linking screen:
MainSQL: sqlite(SQLITE_NOTADB): file is not a database in PRAGMA journal_mode = WAL
MainSQL: migrateDatabase: Migration without cipher change failed
sql.initialize was unsuccessful; returning early
The SQLCipher key in config.json no longer resolved. The UI named nothing and
offered only 'Delete data and restart', which discards the history. Moving the
config directory aside fixes it; nothing in the product says so.
Recorded as a medium finding, status open. The score does not move: 76.4 / B.
local_data_exposure was already 5 for exactly this behaviour, and a finding is
evidence, not a point. What changes is that the number now has a receipt instead
of a rationale.
Artifact: Servetus/00-Artifacts/2026/10-Oct/30/clu-signal-startup-failure/
main.log.excerpt - the failing run, verbatim
00-provenance.txt - package version, file sizes, sha256 of the retained db
Retained state moved to ~/Signal-backup-2026-10-30-0026, not deleted.
2026-10-30 00:31:21 -05:00
|
|
|
"digest": "e557e117f60a43f5023ebb2ebe51978c9a20aa1bcffca920623f79c92f0343d3",
|
feat: self-authoring ingest, relevance gate, and the Ranch Oath
The roster writes itself. The scores do not.
- db/ingest/sources.mjs: GitHub and Flathub adapters. GitHub is ranked by
stars (usage); Flathub is a curated store of end-user Linux apps, so
relevance is free there and has to be earned on GitHub.
- db/ingest/run.mjs: discovers into the roster as unassessed products, never
as scores. Every discovery leaves a receipt (source, url, usage metric,
timestamp) so a reader can see where a product came from and why it ranks.
- LooksLikeUserSoftware gate: topic:messaging sorts RabbitMQ to the top
because brokers are highly starred and are not things people install.
- build.mjs no longer wipes the database. The DB authors itself, so a rebuild
would have thrown the roster away. --fresh is now explicit.
- v_backlog view: what to assess next, ordered by measured usage.
- packages/web/public/oath.html: the Ranch Oath, with an ASCII Bible crest,
bound to a SHA-256 of catalog.json. The page recomputes the digest in the
browser and reports VERIFIED or BROKEN. An oath you cannot break is decoration.
Roster now 122 products, 1 assessed. All instrument checks pass.
2026-10-29 13:23:57 -05:00
|
|
|
"algorithm": "sha256",
|
|
|
|
|
"file": "catalog.json",
|
fix(signal): the uninstall does not uninstall
Observed on the operator's machine 2026-10-30 while reinstalling to put the app
to use. Four months after the package was purged, a fresh install found
~/.config/Signal/sql/db.sqlite (54,214,656 bytes, mtime 2026-06-21), tried to
open it, and aborted before the linking screen:
MainSQL: sqlite(SQLITE_NOTADB): file is not a database in PRAGMA journal_mode = WAL
MainSQL: migrateDatabase: Migration without cipher change failed
sql.initialize was unsuccessful; returning early
The SQLCipher key in config.json no longer resolved. The UI named nothing and
offered only 'Delete data and restart', which discards the history. Moving the
config directory aside fixes it; nothing in the product says so.
Recorded as a medium finding, status open. The score does not move: 76.4 / B.
local_data_exposure was already 5 for exactly this behaviour, and a finding is
evidence, not a point. What changes is that the number now has a receipt instead
of a rationale.
Artifact: Servetus/00-Artifacts/2026/10-Oct/30/clu-signal-startup-failure/
main.log.excerpt - the failing run, verbatim
00-provenance.txt - package version, file sizes, sha256 of the retained db
Retained state moved to ~/Signal-backup-2026-10-30-0026, not deleted.
2026-10-30 00:31:21 -05:00
|
|
|
"byte_length": 92427,
|
|
|
|
|
"rebuilt_at": "2026-10-30T05:31:05.573Z",
|
feat: self-authoring ingest, relevance gate, and the Ranch Oath
The roster writes itself. The scores do not.
- db/ingest/sources.mjs: GitHub and Flathub adapters. GitHub is ranked by
stars (usage); Flathub is a curated store of end-user Linux apps, so
relevance is free there and has to be earned on GitHub.
- db/ingest/run.mjs: discovers into the roster as unassessed products, never
as scores. Every discovery leaves a receipt (source, url, usage metric,
timestamp) so a reader can see where a product came from and why it ranks.
- LooksLikeUserSoftware gate: topic:messaging sorts RabbitMQ to the top
because brokers are highly starred and are not things people install.
- build.mjs no longer wipes the database. The DB authors itself, so a rebuild
would have thrown the roster away. --fresh is now explicit.
- v_backlog view: what to assess next, ordered by measured usage.
- packages/web/public/oath.html: the Ranch Oath, with an ASCII Bible crest,
bound to a SHA-256 of catalog.json. The page recomputes the digest in the
browser and reports VERIFIED or BROKEN. An oath you cannot break is decoration.
Roster now 122 products, 1 assessed. All instrument checks pass.
2026-10-29 13:23:57 -05:00
|
|
|
"method_version": "btr-0.1",
|
feat: the Nextcloud stack on the board, above everything else
Christian: 'Let's have every NextCloud thing come back as well-rated as it
should be. It's deserving of the same level of scrutiny everybody else is.'
Priority 20, above Slack and Kino, because this is the replacement we recommend
to clients. If we will not grade our own recommendation, nothing else we publish
is worth reading.
14 products: Server, Files, Talk, Mail, Calendar, Contacts, Photos, Notes, Deck,
Office, Passwords, the spreed signaling stack, and both migration bridges
(Dropbox, Google Drive). The migration apps matter most, because a migration
tool that does not work makes the off-ramp a slogan.
Nextcloud Server is the one to grade first. Every app score is conditioned on the
platform underneath it, so grading the apps before the server would be measuring
the second thing.
None of these has a score yet, and none will get one until it has evidence. The
recently-added attestation ladder and the reproducible-build cap both apply:
Nextcloud is open source but has no reproducible build practice yet, so
verifiability cannot exceed 3 on any of these today no matter how good the code
is.
2026-10-29 17:19:01 -05:00
|
|
|
"products": 137,
|
feat: self-authoring ingest, relevance gate, and the Ranch Oath
The roster writes itself. The scores do not.
- db/ingest/sources.mjs: GitHub and Flathub adapters. GitHub is ranked by
stars (usage); Flathub is a curated store of end-user Linux apps, so
relevance is free there and has to be earned on GitHub.
- db/ingest/run.mjs: discovers into the roster as unassessed products, never
as scores. Every discovery leaves a receipt (source, url, usage metric,
timestamp) so a reader can see where a product came from and why it ranks.
- LooksLikeUserSoftware gate: topic:messaging sorts RabbitMQ to the top
because brokers are highly starred and are not things people install.
- build.mjs no longer wipes the database. The DB authors itself, so a rebuild
would have thrown the roster away. --fresh is now explicit.
- v_backlog view: what to assess next, ordered by measured usage.
- packages/web/public/oath.html: the Ranch Oath, with an ASCII Bible crest,
bound to a SHA-256 of catalog.json. The page recomputes the digest in the
browser and reports VERIFIED or BROKEN. An oath you cannot break is decoration.
Roster now 122 products, 1 assessed. All instrument checks pass.
2026-10-29 13:23:57 -05:00
|
|
|
"assessed": 1
|
|
|
|
|
}
|