Finish RPF-WP-0059: independent Qonto readback captured; collector silent since 2026-10-15 20:36Z.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: opus Assistant-Process: 236506@bnt-lap001 Assistant-Session: 09087018-91e1-48c5-ab2f-acfbb62c92e4
This commit is contained in:
parent
22cfdb72e4
commit
3a68eaca8a
3 changed files with 125 additions and 5 deletions
|
|
@ -39,7 +39,7 @@
|
|||
| workplan | RPF-WP-0056 | blocked | — | workplans/RPF-WP-0056-playwright-consumer-admission.md |
|
||||
| workplan | RPF-WP-0057 | finished | — | workplans/RPF-WP-0057-sign-in-diagnosis-caller-proof.md |
|
||||
| workplan | RPF-WP-0058 | finished | — | workplans/RPF-WP-0058-reuse-private-source-reader.md |
|
||||
| workplan | RPF-WP-0059 | active | — | workplans/RPF-WP-0059-hourly-cadence-receiver-custody.md |
|
||||
| workplan | RPF-WP-0059 | finished | — | workplans/RPF-WP-0059-hourly-cadence-receiver-custody.md |
|
||||
| workplan | RPF-WP-0060 | blocked | — | workplans/RPF-WP-0060-browser-case-platform-bindings.md |
|
||||
| workplan | RPF-WP-0061 | active | — | workplans/RPF-WP-0061-self-service-ccr-intake.md |
|
||||
| workplan | RPF-WP-0062 | finished | — | workplans/RPF-WP-0062-custodian-agent-observer-identity.md |
|
||||
|
|
@ -191,7 +191,7 @@
|
|||
| task | RPF-WP-0059-T01 | done | — | workplans/RPF-WP-0059-hourly-cadence-receiver-custody.md |
|
||||
| task | RPF-WP-0059-T02 | done | — | workplans/RPF-WP-0059-hourly-cadence-receiver-custody.md |
|
||||
| task | RPF-WP-0059-T03 | done | — | workplans/RPF-WP-0059-hourly-cadence-receiver-custody.md |
|
||||
| task | RPF-WP-0059-T04 | wait | — | workplans/RPF-WP-0059-hourly-cadence-receiver-custody.md |
|
||||
| task | RPF-WP-0059-T04 | done | — | workplans/RPF-WP-0059-hourly-cadence-receiver-custody.md |
|
||||
| task | RPF-WP-0060-T01 | wait | — | workplans/RPF-WP-0060-browser-case-platform-bindings.md |
|
||||
| task | RPF-WP-0060-T02 | done | — | workplans/RPF-WP-0060-browser-case-platform-bindings.md |
|
||||
| task | RPF-WP-0060-T03 | wait | — | workplans/RPF-WP-0060-browser-case-platform-bindings.md |
|
||||
|
|
|
|||
|
|
@ -0,0 +1,91 @@
|
|||
{
|
||||
"schema_version": "platform.independent-cadence-readback/v1",
|
||||
"status": "independent_custody_readback_complete",
|
||||
"credential_values_emitted": false,
|
||||
"observed_at": "2026-11-03T21:00:14.822896+00:00",
|
||||
"receiver": {
|
||||
"image": "forgejo.coulomb.social/coulomb/audit-core@sha256:304cfb83daa873e5790a2f262f6c4ccd56498b6e9e1a390368dcf0d407256300",
|
||||
"deployment_uid": "b85fe3d0-75c9-4e0d-8c34-c6f1df0881bb",
|
||||
"deployment_resource_version": "84752659",
|
||||
"pod_uid": "61709182-dfd1-455f-9049-f3a2d49a8211",
|
||||
"capabilities": {
|
||||
"load_bearing": true,
|
||||
"redact": true,
|
||||
"write_only": true,
|
||||
"source_exact": true,
|
||||
"tenant_exact": true
|
||||
},
|
||||
"synthetic_probe_only": true,
|
||||
"credential_reads": 0,
|
||||
"cadence_instance_capabilities": {
|
||||
"cadence_registration": true,
|
||||
"sqlite_instance_filter": true,
|
||||
"postgres_instance_filter": true,
|
||||
"synthetic_cadence_parse": true,
|
||||
"synthetic_heartbeat_parse": true,
|
||||
"synthetic_exact_scope": true
|
||||
}
|
||||
},
|
||||
"reader_name": "operator",
|
||||
"registry_version": 18,
|
||||
"reconciliation": {
|
||||
"source": "qonto-assistant",
|
||||
"tenant": "tenant:friendly:binky",
|
||||
"since": "2026-10-15T19:36:00+00:00",
|
||||
"until": "2026-11-03T21:00:04+00:00",
|
||||
"counts": [
|
||||
{
|
||||
"class": "audit-core.heartbeat",
|
||||
"count": 2
|
||||
},
|
||||
{
|
||||
"class": "audit.deny",
|
||||
"count": 1
|
||||
}
|
||||
],
|
||||
"stream_instance_id": "b351fa6b-e0d6-4f88-b7c9-6bacb1a112b7",
|
||||
"basis": "independent_reader",
|
||||
"means": "the count of events audit-core accepted and stored in this window. Divergence from the source's own count is a finding for the source; agreement proves neither completeness nor that any event occurred."
|
||||
},
|
||||
"stream_findings": [
|
||||
{
|
||||
"kind": "missing_heartbeat",
|
||||
"sender": "rapp-qonto-collector",
|
||||
"source": "qonto-assistant",
|
||||
"class": "audit.deny",
|
||||
"expected_within_seconds": 7200,
|
||||
"last_seen": "2026-10-15T20:36:30+00:00",
|
||||
"overdue_seconds": 1632236
|
||||
}
|
||||
],
|
||||
"events": [
|
||||
{
|
||||
"event_id": "28dad6de11fb25fe6e0e145351f047360d6898afb53afd4cd677e560ec69132a",
|
||||
"source": "qonto-assistant",
|
||||
"tenant": "tenant:friendly:binky",
|
||||
"stream_instance_id": "b351fa6b-e0d6-4f88-b7c9-6bacb1a112b7",
|
||||
"stream_sequence": 1,
|
||||
"type": "audit-core.heartbeat",
|
||||
"accepted_at": "2026-10-15T19:36:30+00:00",
|
||||
"observed_at": "2026-10-15T19:36:17+00:00",
|
||||
"covered_event_classes": [
|
||||
"audit.deny"
|
||||
],
|
||||
"independent_custody_readback": true
|
||||
},
|
||||
{
|
||||
"event_id": "6a9f34445e13062e38ab309a6fc800dc9a2fa24cb8a46ecd919ae18fe9409874",
|
||||
"source": "qonto-assistant",
|
||||
"tenant": "tenant:friendly:binky",
|
||||
"stream_instance_id": "b351fa6b-e0d6-4f88-b7c9-6bacb1a112b7",
|
||||
"stream_sequence": 2,
|
||||
"type": "audit.deny",
|
||||
"accepted_at": "2026-10-15T19:36:30+00:00",
|
||||
"observed_at": "2026-10-15T19:36:17+00:00",
|
||||
"covered_event_classes": [],
|
||||
"independent_custody_readback": true
|
||||
}
|
||||
],
|
||||
"scope": "bounded same-instance accepted custody; source-global findings require active-instance interpretation",
|
||||
"helper_sha256": "9c25e901ffb34df87227ad074c7f73e9cd2e9fecf18ab49f886151b8d11d992f"
|
||||
}
|
||||
|
|
@ -4,7 +4,7 @@ type: workplan
|
|||
title: "Admit hourly receiver cadence and exact Qonto collector custody"
|
||||
domain: financials
|
||||
repo: railiance-platform
|
||||
status: active
|
||||
status: finished
|
||||
owner: codex
|
||||
topic_slug: railiance-platform
|
||||
created: "2026-10-15"
|
||||
|
|
@ -64,9 +64,8 @@ resume on interruption. No live effect or secret read occurred in preparation.
|
|||
|
||||
```task
|
||||
id: RPF-WP-0059-T04
|
||||
status: wait
|
||||
status: done
|
||||
priority: high
|
||||
blocking_reason: "Independent reconciliation needs an audit-core release containing d46e89e (AUDIT-WP-0013-T06); the deployed b479801b refuses independent readers with source_not_allowed. Founder-run release: AUDIT-WP-0013-T07."
|
||||
state_hub_task_id: "7d8e5315-9470-5596-a865-d451284f6f50"
|
||||
```
|
||||
|
||||
|
|
@ -119,3 +118,33 @@ Git in `~/cadence-readback/`. Rerun the same command after AUDIT-WP-0013-T07.
|
|||
A new receiver release will also move the reviewed image pin in
|
||||
`scripts/audit-core-recovery-preflight.py` (RAILIANCE-WP-0024 owner contract)
|
||||
again, so the next attended recovery window needs a fresh owner round.
|
||||
|
||||
### Independent readback captured; collector silent — 2026-11-03
|
||||
|
||||
After AUDIT-WP-0013-T07 released receiver `sha256:304cfb83…` (built from
|
||||
audit-core `8185893`, which contains `d46e89e`), the founder reran the
|
||||
readback, and it completed (`independent_custody_readback_complete`; reader
|
||||
`operator`, basis `independent_reader`, no credential emitted).
|
||||
|
||||
Results for instance `b351fa6b…`, window 2026-10-15T19:36Z to
|
||||
2026-11-03T21:00Z:
|
||||
- Reconciliation counts only 2 `audit-core.heartbeat` and 1 `audit.deny`.
|
||||
- The source-global stream finding is `missing_heartbeat` for sender
|
||||
`rapp-qonto-collector`, class `audit.deny`, last seen
|
||||
2026-10-15T20:36:30Z, overdue by 1,632,236 s (about 18.9 days).
|
||||
- The exact-id reads of sequence 1 and 2 match source, tenant, instance and
|
||||
sequence.
|
||||
|
||||
The collector heartbeated once after the first hour and then stopped. No
|
||||
collector instance has emitted for this source since. This is the observer
|
||||
finding the evidence exists to produce, and it belongs to the Qonto runtime
|
||||
owner. Platform custody, the receiver and the finding surface worked. Receipt:
|
||||
`docs/evidence/2026-11-03-qonto-independent-readback/qonto-independent-readback.json`
|
||||
(sha256 `959a1112…555a`).
|
||||
|
||||
By founder decision, Platform's T04 part (coordination and the independent
|
||||
capture) is done and RPF-WP-0059 is finished. Operational acceptance and the
|
||||
silence finding are handed to King's Guard (KG-WP-0005-T03), Qonto
|
||||
(QONTO-WP-0006-T03) and the runtime owner (rapp-qonto). Profile acceptance is
|
||||
not claimed: the evidence is negative until the collector is restored and
|
||||
re-observed.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue