Tyapkin
Runtime

CAP kernel: evidence и эффекты

Исполняемый opt-in срез составных Guards, нескольких Output и локального outbox; границы до полного Capkin kernel.

CAP kernel: evidence и эффекты

Опциональный reference срез от 2026-10-06. Старый CAP IR v1, decide/verify_trace, commitments v2 и опубликованные aggregation packages продолжают работать прежним путём. Новый cap-kernel-proof-v1 — envelope над CAP commitments v2 с отдельным policy digest. Это ещё не CapIrV2 и не новый формат самого commitment; старые доказательства не перекодируются. Граница с Allium сохраняется: Allium владеет приложениями и адаптерами, Tyapkin — протокольной формой.

ВозможностьРеализовано в opt-in срезеСледующий предел
GuardsGuardSetSpec: All, Any, AtLeast; PASS/DENY/INDETERMINATE; привязка evidence к Machine/policy/Input/State/head/time, query/result/snapshot digestВерсионированные схемы значений и реальные trust roots/provider adapters
OutputsНесколько Output intentions одного Transition, порядок и causal CAP commitmentПодключение широкого Capkin package profile и внешних исполнителей
ЭффектыДекларации ExecutionBinding, generic ExecutionReceipt verifier; локальный SQLite outbox и отдельные ObservationsВнешняя доставка, retry policy, compensation QA
ГрафыПорт EvidenceProvider, два независимых in-memory provider в тесте, сохранённые snapshotsРеальные graph/context adapters и разрешённый большой corpus
ПакетОтдельный kernel-compile из декларативного .feature, IR и policy digests; статический kernel-auditПолный type IR, schema validator и исполнение QA cases без ручной передачи coverage

В opt-in API отрицательный или неопределённый Guard ведёт в новый State только по явно объявленному outcome route. Если route нет, KernelDecision не содержит Transition и Output. Изменённый route меняет policy digest; instance хранит закреплённые package, Machine и policy digests. KernelHost::open получает package digest от вызывающего registry/host; сам reference host пока не публикует и не аутентифицирует package.

EvidenceProvider возвращает версионированный ответ с hash запроса, результата и снимка, временем, сроком действия и attestation. Core проверяет привязку и вызывает предоставленный host EvidenceAuthenticator. Настоящий trust root в библиотеку не встроен: тестовый authenticator использует небезопасную учебную подпись SHA-256. All отдаёт приоритет DENY, Any — PASS, пороговая политика считает доступные PASS; неизвестный исход нельзя автоматически сделать PASS, если policy этого не допускает.

Input → graph/evidence providers → GuardSet → CAP decide
                                      ↓
                            Output intentions[] → outbox → executors
                                                        ↓
                                      Observations / ExecutionReceipts

OutputCommitted доказывает намерение. KernelHost атомарно сохраняет checkpoint, CAP records, evidence snapshots и outbox entries. Локальный dispatch_local сверяет binding с закреплённым за instance набором, вызывается после commit и сохраняет Observation и receipt отдельно; SUCCEEDED означает ответ локального handler, а не доставку внешнему адресату. При crash после claim незавершённый attempt становится UNKNOWN после явного recover_abandoned_attempts при остановленном предыдущем single-writer процессе. Повтор использует тот же intent ID как idempotency key; внешний адаптер обязан соблюдать эту идемпотентность. Отдельный generic Input/Transition/Output для компенсационного намерения проверен локальным тестом после частичного успеха; реального обратного действия во внешней системе этот тест не доказывает.

cargo run -p cap-cli --bin capkin -- kernel-compile --file tests/bdd/features/protocol/kernel-evidence-effects.feature
cargo run -p cap-cli --bin capkin -- kernel-audit --file tests/bdd/features/protocol/kernel-evidence-effects.feature
pnpm test:kernel:conformance

kernel-audit считает coverage только по переданным --executed-route ключам; само наличие Scenario не засчитывается как выполненный тест. Golden vector policy и binding digests проверяют независимо Rust и Node. verify_history перечитывает CAP commitment chain из SQLite; verify_evidence_snapshots проверяет hash и attestation через host trust policy; verify_local_receipts сверяет локальные Observations с receipts и закреплённым binding. Полный replay семантики evidence после перезапуска, реальные графовые адаптеры и внешний effect lifecycle требуют следующего среза.

Подробная протокольная граница описывает нынешний API. Полный gap analysis и критерии следующего этапа находятся в docs/architecture/cap-kernel-vnext.md. Active OpenSpec change: cap-kernel-evidence-effects-graph-ports; его незакрытые задачи отражают отсутствующий большой corpus, реальные providers и перенос продуктовых маршрутов. Отдельный Allium checkout вызывает kernel через tyapkin-kernel-bridge-v1.

On this page