Overview
| Comment: | Landed phase 2: identity becomes a rule, the child enforces it. |
|---|---|
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
8c6e2b5b592b223269520bbc2137677d |
| User & Date: | ai-local on 2026-08-26 23:51:51.019 |
| Other Links: | manifest | tags |
Context
|
2026-08-26
| ||
| 23:51 | Landed phase 3: the merge is the fact, the reply is the claim, accept asks MayJoin. check-in: 2d30e99800 user: ai-local tags: trunk | |
| 23:51 | Landed phase 2: identity becomes a rule, the child enforces it. check-in: 8c6e2b5b59 user: ai-local tags: trunk | |
| 23:51 | Landed phase 1: the policy table and the decision function. check-in: 4742a00a65 user: ai-local tags: trunk | |
| 22:59 |
RFC 0007 phase 2: the gate turns identity into a rule
The verified login — never the U card — becomes the per-request X-Zit-Protect the --fronted child enforces: the globs this pusher does not own, comma-separated as zit's glob lists are. Sent on EVERY request, empty when nothing is refused. zit#151 reads an absent header as no rule, so absence is exactly what a forgotten code path would produce; here it cannot happen, and a test proves it against a fake child. The proxy builds a fresh request, so a client's header with that name never reaches the child. A rule source that cannot answer fails the push closed. End to end with a real zit: a non-owner's push to trunk is refused with the branch named; the owner's identical push lands. closed check-in: daa9fc84b5 user: dmestas tags: protect-2 | |
Changes
Modified cmd/quarry/main.go
from [55e726095b]
to [de5073dff2].
[diff]
Modified internal/xfer/xfer.go
from [a4375ba898]
to [214b2bb2a3].
[diff]
Modified internal/xfer/xfer_test.go
from [e0553e3981]
to [9b32818778].
[diff]