Hi Lewis — Unbrowse's design where new submissions sit in a shadow state until corroborated, with EMA reliability scoring that factors in schema drift, is genuinely thoughtful. The spot I keep thinking about is the route cache's 24h TTL: a corroborated route can quietly drift or 4xx mid-window, and an agent may fire before the next corroboration cycle notices.
I'm building Kaval, a hosted freshness gate for exactly that moment. It's a verify(belief) primitive — hand it a cached route and it re-derives that fact against the live endpoint right before the call, returning a typed verdict (current / stale / contradicted / unsupported / insufficient) with evidence. It sits under Unbrowse's cache, replacing none of your scoring — just turning the fixed TTL into a per-call check.
Unsolicited idea, so no worries if it's out of scope — happy to close this. I'd value your read on whether it composes the way I think. Demo and docs at usekaval.com.
Hi Lewis — Unbrowse's design where new submissions sit in a shadow state until corroborated, with EMA reliability scoring that factors in schema drift, is genuinely thoughtful. The spot I keep thinking about is the route cache's 24h TTL: a corroborated route can quietly drift or 4xx mid-window, and an agent may fire before the next corroboration cycle notices.
I'm building Kaval, a hosted freshness gate for exactly that moment. It's a verify(belief) primitive — hand it a cached route and it re-derives that fact against the live endpoint right before the call, returning a typed verdict (current / stale / contradicted / unsupported / insufficient) with evidence. It sits under Unbrowse's cache, replacing none of your scoring — just turning the fixed TTL into a per-call check.
Unsolicited idea, so no worries if it's out of scope — happy to close this. I'd value your read on whether it composes the way I think. Demo and docs at usekaval.com.