bbb6d2f4a4
PUT /api/policies/{id} changed the rule every title under every root
pointing at the policy is judged by, and re-derived nothing, so §9.3's
deck and the daemon's grab gate kept reading verdicts computed under
rules that no longer existed.
Drives #241's walker from a policy id: root by root through
reclassify::root, so the skip rules and the leave-unchanged-rows-alone
rule stay in one place. A rename touches no rule and walks nothing.
Inline still holds at this width. Measured on a release build over 2000
titles and 10 000 stored releases across two roots sharing one policy:
0.36 s when no verdict moves, 2.7 s when all 10 000 do. DESIGN.md §5.1
now names four actions and carries those numbers.
just ci passed through the gate.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
99 lines
2.4 KiB
JSON
99 lines
2.4 KiB
JSON
{
|
|
"db_name": "SQLite",
|
|
"query": "SELECT required_audio AS \"required_audio!: String\",\n dub_blacklist AS \"dub_blacklist!: String\",\n hdr_rules AS \"hdr_rules!: String\",\n size_bands AS \"size_bands!: String\",\n resolution_pref AS \"resolution_pref!: String\",\n source_weights AS \"source_weights!: String\",\n score_weights AS \"score_weights!: String\"\n FROM policies WHERE id = ?",
|
|
"describe": {
|
|
"columns": [
|
|
{
|
|
"name": "required_audio!: String",
|
|
"ordinal": 0,
|
|
"type_info": "Text",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "policies",
|
|
"name": "required_audio"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "dub_blacklist!: String",
|
|
"ordinal": 1,
|
|
"type_info": "Text",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "policies",
|
|
"name": "dub_blacklist"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "hdr_rules!: String",
|
|
"ordinal": 2,
|
|
"type_info": "Text",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "policies",
|
|
"name": "hdr_rules"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "size_bands!: String",
|
|
"ordinal": 3,
|
|
"type_info": "Text",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "policies",
|
|
"name": "size_bands"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "resolution_pref!: String",
|
|
"ordinal": 4,
|
|
"type_info": "Text",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "policies",
|
|
"name": "resolution_pref"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "source_weights!: String",
|
|
"ordinal": 5,
|
|
"type_info": "Text",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "policies",
|
|
"name": "source_weights"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "score_weights!: String",
|
|
"ordinal": 6,
|
|
"type_info": "Text",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "policies",
|
|
"name": "score_weights"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"parameters": {
|
|
"Right": 1
|
|
},
|
|
"nullable": [
|
|
false,
|
|
false,
|
|
false,
|
|
false,
|
|
false,
|
|
false,
|
|
false
|
|
]
|
|
},
|
|
"hash": "100e5e9297a9a917eb107c673ac492efe0df0123d9def212d84b88e57aaa0484"
|
|
}
|