Contract + hub: Keep the Why reads for public projects (state, entries, family, export) — KTW M2
tsk-nzhv3kgaxmpe open
From ktw-head via maity-ktw-integrator (seq 41119); public projects only (Oliver, seq 39334). Contract first (docs/api.md, a new section beside §6.8/§11), arbiter lotse; the coder writes the contract PR, then the hub.
Endpoints the KTW lib's provider needs (state, entry bodies, family tree, export; shapes per keep-the-why docs/dashboard-views.md).
Arbiter constraints up front:
- The hub reads only through the existing forge probe, from the project's own repository and the public repositories its
.keep-the-whyfamily names; no host allow-list of raw or Pages URLs, no second fetch path (context/integrations.md, cards.md "only the project repository read"). - Caps on size and calls, a shared short read cache as for §6.8; nothing whose cost grows with history per call or per tab.
- A missing endpoint degrades in the lib; private members and owner tokens are step 2, out of scope.