guard: restore the fanout law and step the kernel to 0.7.0 #49

Merged
PerishFire merged 1 commit from chore/drop-satisfied-fanout-exemptions into main 2026-07-21 10:52:12 +00:00
Owner

The paths = ["crates"] boundary stanza was not a per-directory exemption. Under the 0.6.0 kernel, boundary paths matched by prefix (path.starts_with(head)), so "crates" matched every scanned path in the repository and allow = ["fanout"] disabled the fanout law wholesale. That is why the guard reported 0 faults while santi-core/src/service, santi-core/src/store and santi-adaptor/src/db all sat over the limit. Dropping the stanza is what puts the law back on.

Also drops the santi-api/src/server and santi-core/tests/service exemptions: both directories are now at the limit of 10, which the stanza's own note anticipated.

Steps the kernel pin to v0.7.0, whose #51 replaces prefix matching with one glob dialect where a bare directory names that directory alone and a subtree is spelled dir/**. The three surviving exemptions bind to their own directory under the new semantics, verified by canary: removing the store exemption yields crates/santi-core/src/store fanout 17 over limit 10, so the law is live rather than silently absent.

Normalizes the service module convention while here. flow.rs, text.rs and tools.rs each paired with a same-named directory, spending two fanout slots per module where the store layer already uses the directory-with-mod.rs form. Folding the three pairs takes the directory from 20 to 17 with no code movement and no debt change (2081 rows before and after).

Guard is green under v0.7.0 and word debt holds at core = 0.

The `paths = ["crates"]` boundary stanza was not a per-directory exemption. Under the 0.6.0 kernel, boundary paths matched by prefix (`path.starts_with(head)`), so `"crates"` matched every scanned path in the repository and `allow = ["fanout"]` disabled the fanout law wholesale. That is why the guard reported `0 faults` while `santi-core/src/service`, `santi-core/src/store` and `santi-adaptor/src/db` all sat over the limit. Dropping the stanza is what puts the law back on. Also drops the `santi-api/src/server` and `santi-core/tests/service` exemptions: both directories are now at the limit of 10, which the stanza's own note anticipated. Steps the kernel pin to v0.7.0, whose #51 replaces prefix matching with one glob dialect where a bare directory names that directory alone and a subtree is spelled `dir/**`. The three surviving exemptions bind to their own directory under the new semantics, verified by canary: removing the store exemption yields `crates/santi-core/src/store fanout 17 over limit 10`, so the law is live rather than silently absent. Normalizes the service module convention while here. `flow.rs`, `text.rs` and `tools.rs` each paired with a same-named directory, spending two fanout slots per module where the store layer already uses the directory-with-mod.rs form. Folding the three pairs takes the directory from 20 to 17 with no code movement and no debt change (2081 rows before and after). Guard is green under v0.7.0 and word debt holds at core = 0.
guard: restore the fanout law and step the kernel to 0.7.0
All checks were successful
guard / guard (pull_request) Successful in 3m26s
6400a23da3
The `paths = ["crates"]` boundary stanza was not a per-directory
exemption. Under the 0.6.0 kernel, boundary paths matched by prefix
(`path.starts_with(head)`), so `"crates"` matched every scanned path in
the repository and `allow = ["fanout"]` disabled the fanout law
wholesale. That is why the guard reported `0 faults` while
`santi-core/src/service`, `santi-core/src/store` and
`santi-adaptor/src/db` all sat over the limit. Dropping the stanza is
what puts the law back on.

Also drop the `santi-api/src/server` and `santi-core/tests/service`
exemptions: both directories are now at the limit of 10, which the
stanza's own note anticipated ("dropped per-dir as each is fixed").

Step the kernel pin to v0.7.0, whose #51 replaces prefix matching with
one glob dialect where a bare directory names that directory alone and a
subtree is spelled `dir/**`. The three surviving exemptions bind to their
own directory under the new semantics, verified by canary: removing the
store exemption yields `crates/santi-core/src/store fanout 17 over limit
10`, so the law is live rather than silently absent.

Normalize the service module convention while here. `flow.rs`, `text.rs`
and `tools.rs` each paired with a same-named directory, spending two
fanout slots per module where the store layer already uses the
directory-with-mod.rs form; `text.rs` was a single `pub(super) mod
delta;`. Folding the three pairs takes the directory from 20 to 17 with
no code movement and no debt change (2081 rows before and after).

Guard is green under v0.7.0 and word debt holds at core = 0.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
PerishFire deleted branch chore/drop-satisfied-fanout-exemptions 2026-07-21 10:52:12 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
PerishFire/santi!49
No description provided.