fix: retain PSL in compact catalogs
Some checks failed
Standalone registry checks / check (push) Has been cancelled

This commit is contained in:
Nic Weyand 2026-09-22 09:09:41 -04:00
commit 3c89a540d9
Signed by: nicweyand
SSH key fingerprint: SHA256:2te+ycJIQON/Wo/dH6+ZkFSQ4HnHWpetV2azx9E65dQ
7 changed files with 16 additions and 5 deletions

View file

@ -1,5 +1,10 @@
# Changelog # Changelog
## 0.6.2 - 2026-09-22
- Retain the PSL normalization fact in compact catalogs and exercise the review
queue against the compact runtime rather than only the full writer projection.
## 0.6.1 - 2026-09-22 ## 0.6.1 - 2026-09-22
- Accept complete Common Crawl domain-rank releases containing provider rows - Accept complete Common Crawl domain-rank releases containing provider rows

4
Cargo.lock generated
View file

@ -78,14 +78,14 @@ checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470"
[[package]] [[package]]
name = "argand-atomic" name = "argand-atomic"
version = "0.6.1" version = "0.6.2"
dependencies = [ dependencies = [
"tempfile", "tempfile",
] ]
[[package]] [[package]]
name = "argand-site-registry" name = "argand-site-registry"
version = "0.6.1" version = "0.6.2"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"argand-atomic", "argand-atomic",

View file

@ -4,7 +4,7 @@ resolver = "3"
members = ["crates/argand-atomic", "crates/argand-site-registry"] members = ["crates/argand-atomic", "crates/argand-site-registry"]
[workspace.package] [workspace.package]
version = "0.6.1" version = "0.6.2"
authors = ["Nic Weyand"] authors = ["Nic Weyand"]
edition = "2024" edition = "2024"
license = "AGPL-3.0-or-later" license = "AGPL-3.0-or-later"

View file

@ -616,7 +616,8 @@ pub(crate) fn compact_runtime(db: &Connection) -> anyhow::Result<()> {
INSERT OR IGNORE INTO runtime_facts SELECT fact FROM names; INSERT OR IGNORE INTO runtime_facts SELECT fact FROM names;
INSERT OR IGNORE INTO runtime_facts SELECT fact FROM popularity; INSERT OR IGNORE INTO runtime_facts SELECT fact FROM popularity;
INSERT OR IGNORE INTO runtime_facts SELECT fact FROM rejected; INSERT OR IGNORE INTO runtime_facts SELECT fact FROM rejected;
INSERT OR IGNORE INTO runtime_facts SELECT item.value FROM edges,json_each(edges.facts) item;", INSERT OR IGNORE INTO runtime_facts SELECT item.value FROM edges,json_each(edges.facts) item;
INSERT OR IGNORE INTO runtime_facts SELECT id FROM facts WHERE predicate='psl';",
)?; )?;
db.execute( db.execute(
"DELETE FROM facts WHERE NOT EXISTS(SELECT 1 FROM runtime_facts r WHERE r.id=facts.id)", "DELETE FROM facts WHERE NOT EXISTS(SELECT 1 FROM runtime_facts r WHERE r.id=facts.id)",

View file

@ -267,6 +267,9 @@ fn compact_generation_keeps_runtime_results_and_authenticates_cold_history() ->
serde_json::to_value(full.lookup("Facebook", 20)?.candidates)?, serde_json::to_value(full.lookup("Facebook", 20)?.candidates)?,
serde_json::to_value(compact.lookup("Facebook", 20)?.candidates)? serde_json::to_value(compact.lookup("Facebook", 20)?.candidates)?
); );
let compact_queue =
argand_site_registry::queue::review_queue(&compact, common::timestamp()?, 100, 1_000)?;
assert!(!compact_queue.items.is_empty());
assert!( assert!(
std::fs::metadata(compact_path.join("registry.sqlite"))?.len() std::fs::metadata(compact_path.join("registry.sqlite"))?.len()
< std::fs::metadata(root.path().join("full/registry.sqlite"))?.len() < std::fs::metadata(root.path().join("full/registry.sqlite"))?.len()

View file

@ -34,7 +34,7 @@ source attribution and application-specific malware/content policy.
## Current contracts ## Current contracts
Code version 0.6.1 uses writer schema 5 and `argand.site-rules/v4`. Code version 0.6.2 uses writer schema 5 and `argand.site-rules/v4`.
New compact `COMPLETE.json` files use `argand.site-registry/v3` and bind: New compact `COMPLETE.json` files use `argand.site-registry/v3` and bind:
- authenticated `registry.sqlite` bytes; - authenticated `registry.sqlite` bytes;

View file

@ -7,6 +7,8 @@ Patch release 0.6.1 additionally replays the real provider-shaped
accounting but is not retained as a DNS target. The following valid accounting but is not retained as a DNS target. The following valid
`com.facebook` row is retained at its original `row:2` coordinate. Schema and `com.facebook` row is retained at its original `row:2` coordinate. Schema and
numeric corruption continue to fail closed. numeric corruption continue to fail closed.
The compact-generation lifecycle now also executes the review queue, proving its
PSL normalization input remains in the runtime catalog.
The evaluation contract was written before implementation. The new Common Crawl The evaluation contract was written before implementation. The new Common Crawl
domain-rank integration passed five default integration tests; its sixth test is domain-rank integration passed five default integration tests; its sixth test is