Skip to content

Commit 408cf31

Browse files
committed
docs: define finality fork proof contract
• [MSN] 1 mission to be verified • [EXC] Board idle, no stories queued or active • [HLT] 2 warnings, no structural errors detected
1 parent b3b6959 commit 408cf31

24 files changed

Lines changed: 619 additions & 17 deletions

File tree

.keel/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -237,11 +237,11 @@
237237
|--------|--------|
238238
| [Publish Typed AI And Communication Event Builders](epics/VI1mbSnsy/voyages/VI1mf8o0n/) | done |
239239

240-
### [Hosted Authority Hardening For Durable External Systems](epics/VI1mcFKum/) (active)
240+
### [Hosted Authority Hardening For Durable External Systems](epics/VI1mcFKum/) (done)
241241

242242
| Voyage | Status |
243243
|--------|--------|
244-
| [Harden Hosted Protocol Auth And Lease Fencing](epics/VI1mcFKum/voyages/VI1mfwr25/) | in-progress |
244+
| [Harden Hosted Protocol Auth And Lease Fencing](epics/VI1mcFKum/voyages/VI1mfwr25/) | done |
245245

246246
### [Research Branch-Aware Materialization And Processing](epics/VDd0u3PFg/) (done)
247247

.keel/epics/VI1mcFKum/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ mission: VI1mZnbqW
2222
## Voyages
2323

2424
<!-- BEGIN GENERATED -->
25-
**Progress:** 0/1 voyages complete, 2/3 stories done
25+
**Progress:** 1/1 voyages complete, 3/3 stories done
2626
| Voyage | Status | Stories |
2727
|--------|--------|---------|
28-
| [Harden Hosted Protocol Auth And Lease Fencing](voyages/VI1mfwr25/) | in-progress | 2/3 |
28+
| [Harden Hosted Protocol Auth And Lease Fencing](voyages/VI1mfwr25/) | done | 3/3 |
2929
<!-- END GENERATED -->
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# COMPLIANCE REPORT: Harden Hosted Protocol Auth And Lease Fencing
2+
3+
## Requirement Traceability Matrix
4+
5+
| Req ID | Status | Implemented By | Proof Artifacts |
6+
|--------|--------|----------------|-----------------|
7+
| SRS-01 | ✓ VERIFIED | [VI1mjhoAK](../../../../stories/VI1mjhoAK/README.md), [VI1mjhoAK](../../../../stories/VI1mjhoAK/README.md) | [ac-1.log](../../../../stories/VI1mjhoAK/EVIDENCE/ac-1.log)<br>[ac-2.log](../../../../stories/VI1mjhoAK/EVIDENCE/ac-2.log)<br>[ac-3.log](../../../../stories/VI1mjhoAK/EVIDENCE/ac-3.log)<br>[ac-1.log](../../../../stories/VI1mjhoAK/EVIDENCE/ac-1.log)<br>[ac-2.log](../../../../stories/VI1mjhoAK/EVIDENCE/ac-2.log)<br>[ac-3.log](../../../../stories/VI1mjhoAK/EVIDENCE/ac-3.log) |
8+
| SRS-02 | ✓ VERIFIED | [VI1mjhoAK](../../../../stories/VI1mjhoAK/README.md), [VI1mjhoAK](../../../../stories/VI1mjhoAK/README.md) | [ac-1.log](../../../../stories/VI1mjhoAK/EVIDENCE/ac-1.log)<br>[ac-2.log](../../../../stories/VI1mjhoAK/EVIDENCE/ac-2.log)<br>[ac-3.log](../../../../stories/VI1mjhoAK/EVIDENCE/ac-3.log)<br>[ac-1.log](../../../../stories/VI1mjhoAK/EVIDENCE/ac-1.log)<br>[ac-2.log](../../../../stories/VI1mjhoAK/EVIDENCE/ac-2.log)<br>[ac-3.log](../../../../stories/VI1mjhoAK/EVIDENCE/ac-3.log) |
9+
| SRS-03 | ✓ VERIFIED | [VI1mjiCB8](../../../../stories/VI1mjiCB8/README.md), [VI1mjiCB8](../../../../stories/VI1mjiCB8/README.md) | [ac-1.log](../../../../stories/VI1mjiCB8/EVIDENCE/ac-1.log)<br>[ac-2.log](../../../../stories/VI1mjiCB8/EVIDENCE/ac-2.log)<br>[ac-3.log](../../../../stories/VI1mjiCB8/EVIDENCE/ac-3.log)<br>[ac-1.log](../../../../stories/VI1mjiCB8/EVIDENCE/ac-1.log)<br>[ac-2.log](../../../../stories/VI1mjiCB8/EVIDENCE/ac-2.log)<br>[ac-3.log](../../../../stories/VI1mjiCB8/EVIDENCE/ac-3.log) |
10+
| SRS-04 | ✓ VERIFIED | [VI1mjiCB8](../../../../stories/VI1mjiCB8/README.md), [VI1mjiCB8](../../../../stories/VI1mjiCB8/README.md) | [ac-1.log](../../../../stories/VI1mjiCB8/EVIDENCE/ac-1.log)<br>[ac-2.log](../../../../stories/VI1mjiCB8/EVIDENCE/ac-2.log)<br>[ac-3.log](../../../../stories/VI1mjiCB8/EVIDENCE/ac-3.log)<br>[ac-1.log](../../../../stories/VI1mjiCB8/EVIDENCE/ac-1.log)<br>[ac-2.log](../../../../stories/VI1mjiCB8/EVIDENCE/ac-2.log)<br>[ac-3.log](../../../../stories/VI1mjiCB8/EVIDENCE/ac-3.log) |
11+
| SRS-05 | ✓ VERIFIED | [VI1mjiIBI](../../../../stories/VI1mjiIBI/README.md), [VI1mjiIBI](../../../../stories/VI1mjiIBI/README.md), [VI1mjiIBI](../../../../stories/VI1mjiIBI/README.md), [VI1mjiIBI](../../../../stories/VI1mjiIBI/README.md) | [ac-1.log](../../../../stories/VI1mjiIBI/EVIDENCE/ac-1.log)<br>[ac-2.log](../../../../stories/VI1mjiIBI/EVIDENCE/ac-2.log)<br>[ac-3.log](../../../../stories/VI1mjiIBI/EVIDENCE/ac-3.log)<br>[ac-1.log](../../../../stories/VI1mjiIBI/EVIDENCE/ac-1.log)<br>[ac-2.log](../../../../stories/VI1mjiIBI/EVIDENCE/ac-2.log)<br>[ac-3.log](../../../../stories/VI1mjiIBI/EVIDENCE/ac-3.log)<br>[ac-1.log](../../../../stories/VI1mjiIBI/EVIDENCE/ac-1.log)<br>[ac-2.log](../../../../stories/VI1mjiIBI/EVIDENCE/ac-2.log)<br>[ac-3.log](../../../../stories/VI1mjiIBI/EVIDENCE/ac-3.log)<br>[ac-1.log](../../../../stories/VI1mjiIBI/EVIDENCE/ac-1.log)<br>[ac-2.log](../../../../stories/VI1mjiIBI/EVIDENCE/ac-2.log)<br>[ac-3.log](../../../../stories/VI1mjiIBI/EVIDENCE/ac-3.log) |

.keel/epics/VI1mcFKum/voyages/VI1mfwr25/README.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
---
22
# system-managed
33
id: VI1mfwr25
4-
status: in-progress
4+
status: done
55
epic: VI1mcFKum
66
created_at: 2026-04-27T14:07:51
77
# authored
88
title: Harden Hosted Protocol Auth And Lease Fencing
99
index: 1
1010
updated_at: 2026-04-27T14:11:45
1111
started_at: 2026-04-27T14:56:52
12+
completed_at: 2026-04-27T15:19:38
1213
---
1314

1415
# Harden Hosted Protocol Auth And Lease Fencing
@@ -22,16 +23,18 @@ started_at: 2026-04-27T14:56:52
2223
|----------|-------------|
2324
| [SRS.md](SRS.md) | Requirements and verification criteria |
2425
| [SDD.md](SDD.md) | Architecture and implementation details |
26+
| [VOYAGE_REPORT.md](VOYAGE_REPORT.md) | Narrative summary of implementation and evidence |
27+
| [COMPLIANCE_REPORT.md](COMPLIANCE_REPORT.md) | Traceability matrix and verification proof |
2528
<!-- END DOCUMENTS -->
2629

2730
## Stories
2831

2932
<!-- BEGIN GENERATED -->
30-
**Progress:** 2/3 stories complete
33+
**Progress:** 3/3 stories complete
3134

3235
| Title | Type | Status |
3336
|-------|------|--------|
3437
| [Enforce Hosted Auth Posture In Server Protocol](../../../../stories/VI1mjhoAK/README.md) | feat | done |
3538
| [Replace Object Store Lease Writes With Conditional Fencing](../../../../stories/VI1mjiCB8/README.md) | feat | done |
36-
| [Define Blockchain-Style Finality And Fork Proof Contract](../../../../stories/VI1mjiIBI/README.md) | docs | backlog |
39+
| [Define Blockchain-Style Finality And Fork Proof Contract](../../../../stories/VI1mjiIBI/README.md) | docs | done |
3740
<!-- END GENERATED -->
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# VOYAGE REPORT: Harden Hosted Protocol Auth And Lease Fencing
2+
3+
## Voyage Metadata
4+
- **ID:** VI1mfwr25
5+
- **Epic:** VI1mcFKum
6+
- **Status:** done
7+
- **Goal:** -
8+
9+
## Execution Summary
10+
**Progress:** 3/3 stories complete
11+
12+
## Implementation Narrative
13+
### Enforce Hosted Auth Posture In Server Protocol
14+
- **ID:** VI1mjhoAK
15+
- **Status:** done
16+
17+
#### Summary
18+
Enforce hosted token auth at the framed protocol boundary while preserving explicit local `none` mode and remote error envelopes.
19+
20+
#### Acceptance Criteria
21+
- [x] [SRS-01/AC-01] A server configured for token auth rejects unauthenticated framed requests before shared-engine mutation, while `none` mode remains available for local development. <!-- [SRS-01/AC-01] verify: cargo test -p transit-core auth, SRS-01:start, SRS-01:end, proof: ac-1.log-->
22+
- [x] [SRS-02/AC-01] Auth failures return remote error envelopes with request id, topology, stable error code, and actionable message. <!-- [SRS-02/AC-01] verify: cargo test -p transit-core token_auth_rejects_unauthenticated_requests_before_shared_engine_mutation, SRS-02:start, SRS-02:end, proof: ac-2.log-->
23+
- [x] [SRS-NFR-01/AC-01] Auth enforcement is a server boundary concern and does not introduce server-only storage or lineage semantics. <!-- [SRS-NFR-01/AC-01] verify: manual, SRS-NFR-01:start, SRS-NFR-01:end, proof: ac-3.log-->
24+
25+
#### Verified Evidence
26+
- [ac-1.log](../../../../stories/VI1mjhoAK/EVIDENCE/ac-1.log)
27+
- [ac-2.log](../../../../stories/VI1mjhoAK/EVIDENCE/ac-2.log)
28+
- [ac-3.log](../../../../stories/VI1mjhoAK/EVIDENCE/ac-3.log)
29+
30+
### Replace Object Store Lease Writes With Conditional Fencing
31+
- **ID:** VI1mjiCB8
32+
- **Status:** done
33+
34+
#### Summary
35+
Replace plain object-store lease overwrites with conditional fencing or an explicit weaker-backend contract for acquire, heartbeat, handoff, and manifest publication.
36+
37+
#### Acceptance Criteria
38+
- [x] [SRS-03/AC-01] Object-store consensus uses conditional writes or equivalent generation checks for acquire, heartbeat, and handoff where the backend supports it. <!-- [SRS-03/AC-01] verify: cargo test -p transit-core consensus::tests::object_store_consensus, SRS-03:start, SRS-03:end, proof: ac-1.log-->
39+
- [x] [SRS-04/AC-01] Manifest publication fails closed when the current remote lease proof cannot be verified against the object-store authority. <!-- [SRS-04/AC-01] verify: cargo test -p transit-core manifest_publication_enforces_distributed_fencing, SRS-04:start, SRS-04:end, proof: ac-2.log-->
40+
- [x] [SRS-NFR-02/AC-01] Tests cover stale owner overwrite attempts and prove Transit rejects overstated ownership or durability claims. <!-- [SRS-NFR-02/AC-01] verify: just test, SRS-NFR-02:start, SRS-NFR-02:end, proof: ac-3.log-->
41+
42+
#### Verified Evidence
43+
- [ac-1.log](../../../../stories/VI1mjiCB8/EVIDENCE/ac-1.log)
44+
- [ac-2.log](../../../../stories/VI1mjiCB8/EVIDENCE/ac-2.log)
45+
- [ac-3.log](../../../../stories/VI1mjiCB8/EVIDENCE/ac-3.log)
46+
47+
### Define Blockchain-Style Finality And Fork Proof Contract
48+
- **ID:** VI1mjiIBI
49+
- **Status:** done
50+
51+
#### Summary
52+
Define the blockchain-style finality and fork proof contract that maps records, branches, checkpoints, and explicit merge or selection artifacts onto Transit lineage without claiming a full chain runtime.
53+
54+
#### Acceptance Criteria
55+
- [x] [SRS-05/AC-01] A public contract documents blocks as records, forks as branches, finality as checkpoints, and reorg handling as explicit merge or canonical-selection artifacts. <!-- [SRS-05/AC-01] verify: root=$(git rev-parse --show-toplevel) && rg -n "Block|Fork|Finality marker|Reorg decision|canonical-selection" "$root/FINALITY.md" "$root/website/docs/reference/contracts/finality.md", SRS-05:start, SRS-05:end, proof: ac-1.log-->
56+
- [x] [SRS-05/AC-02] Proof envelope examples bind stream id, head offset, manifest root, parent heads, checkpoint kind, and optional application block metadata. <!-- [SRS-05/AC-02] verify: root=$(git rev-parse --show-toplevel) && rg -n "stream_id|head_offset|manifest_root|parent_heads|checkpoint_kind|application_block" "$root/FINALITY.md" "$root/website/docs/reference/contracts/finality.md", SRS-05:start, SRS-05:end, proof: ac-2.log-->
57+
- [x] [SRS-NFR-03/AC-01] Documentation clearly states that Transit supplies lineage and finality primitives, not a complete blockchain consensus runtime. <!-- [SRS-NFR-03/AC-01] verify: root=$(git rev-parse --show-toplevel) && rg -n "not a complete blockchain consensus runtime|does not provide|applications still own consensus" "$root/FINALITY.md" "$root/website/docs/reference/contracts/finality.md", SRS-NFR-03:start, SRS-NFR-03:end, proof: ac-3.log-->
58+
59+
#### Verified Evidence
60+
- [ac-1.log](../../../../stories/VI1mjiIBI/EVIDENCE/ac-1.log)
61+
- [ac-2.log](../../../../stories/VI1mjiIBI/EVIDENCE/ac-2.log)
62+
- [ac-3.log](../../../../stories/VI1mjiIBI/EVIDENCE/ac-3.log)
63+
64+

.keel/missions/VI1mZnbqW/LOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,7 @@
66
## 2026-04-27T14:12:08
77

88
Created active mission decomposition from senior engineering review: three epics, three planned voyages, and nine ready stories covering bounded replay/materialization, typed AI and communication workload SDKs, and hosted authority hardening.
9+
10+
## 2026-04-27T15:19:47
11+
12+
Mission achieved by local system user 'alex'

.keel/missions/VI1mZnbqW/README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
---
22
# system-managed
33
id: VI1mZnbqW
4-
status: active
4+
status: achieved
55
created_at: 2026-04-27T14:07:27
6-
updated_at: 2026-04-27T14:11:51
6+
updated_at: 2026-04-27T15:19:47
77
# authored
88
title: Productionize Transit Downstream Application Surfaces
99
watch: ~
1010
activated_at: 2026-04-27T14:11:51
11+
achieved_at: 2026-04-27T15:19:47
1112
---
1213

1314
# Productionize Transit Downstream Application Surfaces

.keel/stories/VI1mjhoAK/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,5 @@ Enforce hosted token auth at the framed protocol boundary while preserving expli
2424
## Acceptance Criteria
2525

2626
- [x] [SRS-01/AC-01] A server configured for token auth rejects unauthenticated framed requests before shared-engine mutation, while `none` mode remains available for local development. <!-- [SRS-01/AC-01] verify: cargo test -p transit-core auth, SRS-01:start, SRS-01:end, proof: ac-1.log-->
27-
- [x] [SRS-01/AC-02] Auth failures return remote error envelopes with request id, topology, stable error code, and actionable message. <!-- [SRS-01/AC-02] verify: cargo test -p transit-core token_auth_rejects_unauthenticated_requests_before_shared_engine_mutation, SRS-01:start, SRS-01:end, proof: ac-2.log-->
27+
- [x] [SRS-02/AC-01] Auth failures return remote error envelopes with request id, topology, stable error code, and actionable message. <!-- [SRS-02/AC-01] verify: cargo test -p transit-core token_auth_rejects_unauthenticated_requests_before_shared_engine_mutation, SRS-02:start, SRS-02:end, proof: ac-2.log-->
2828
- [x] [SRS-NFR-01/AC-01] Auth enforcement is a server boundary concern and does not introduce server-only storage or lineage semantics. <!-- [SRS-NFR-01/AC-01] verify: manual, SRS-NFR-01:start, SRS-NFR-01:end, proof: ac-3.log-->
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
---
2+
recorded_at: 2026-04-27T15:17:46.736693676-07:00
3+
command: root=$(git rev-parse --show-toplevel) && rg -n "Block|Fork|Finality marker|Reorg decision|canonical-selection" "$root/FINALITY.md" "$root/website/docs/reference/contracts/finality.md"
4+
---
5+
/home/alex/workspace/spoke-sh/transit/website/docs/reference/contracts/finality.md:2:title: "Finality And Fork Proofs"
6+
/home/alex/workspace/spoke-sh/transit/website/docs/reference/contracts/finality.md:3:sidebar_label: "Finality And Fork Proofs"
7+
/home/alex/workspace/spoke-sh/transit/website/docs/reference/contracts/finality.md:4:description: "Blockchain-style finality and fork proof contract over Transit lineage."
8+
/home/alex/workspace/spoke-sh/transit/website/docs/reference/contracts/finality.md:7:# Finality And Fork Proof Contract
9+
/home/alex/workspace/spoke-sh/transit/website/docs/reference/contracts/finality.md:16:| Blockchain-style concept | Transit primitive | Contract rule |
10+
/home/alex/workspace/spoke-sh/transit/website/docs/reference/contracts/finality.md:18:| Block | Record or append batch | Store the block body, block reference, or application envelope as immutable payload bytes. |
11+
/home/alex/workspace/spoke-sh/transit/website/docs/reference/contracts/finality.md:20:| Block height | Offset plus application metadata | Transit offset is the storage position; application block height remains payload metadata when it differs. |
12+
/home/alex/workspace/spoke-sh/transit/website/docs/reference/contracts/finality.md:22:| Fork | Branch | A fork is a child stream created from the parent stream at the divergence offset. |
13+
/home/alex/workspace/spoke-sh/transit/website/docs/reference/contracts/finality.md:24:| Reorg decision | Merge artifact or canonical-selection artifact | Reorg handling must be explicit data that names selected and superseded heads. |
14+
/home/alex/workspace/spoke-sh/transit/website/docs/reference/contracts/finality.md:25:| Finality marker | Lineage checkpoint | A checkpoint binds a chosen stream head to a manifest root and checkpoint kind. |
15+
/home/alex/workspace/spoke-sh/transit/website/docs/reference/contracts/finality.md:78: "stream_id": "chain.main.canonical-selection",
16+
/home/alex/workspace/spoke-sh/transit/website/docs/reference/contracts/finality.md:94: "checkpoint_ref": "checkpoints/chain.main.canonical-selection/88.json",
17+
/home/alex/workspace/spoke-sh/transit/website/docs/reference/contracts/finality.md:97: "stream_id": "chain.main.canonical-selection",
18+
/home/alex/workspace/spoke-sh/transit/website/docs/reference/contracts/finality.md:115:canonical-selection artifact when an application chooses one path. Use a
19+
/home/alex/workspace/spoke-sh/transit/FINALITY.md:1:# Finality And Fork Proof Contract
20+
/home/alex/workspace/spoke-sh/transit/FINALITY.md:25:| Blockchain-style concept | Transit primitive | Contract rule |
21+
/home/alex/workspace/spoke-sh/transit/FINALITY.md:27:| Block | Record or append batch | Store the block body, block reference, or application envelope as immutable payload bytes. |
22+
/home/alex/workspace/spoke-sh/transit/FINALITY.md:29:| Block height | Offset plus application metadata | Transit offset is the storage position; application block height remains payload metadata when it differs. |
23+
/home/alex/workspace/spoke-sh/transit/FINALITY.md:31:| Fork | Branch | A fork is a child stream created from the parent stream at the divergence offset. |
24+
/home/alex/workspace/spoke-sh/transit/FINALITY.md:33:| Reorg decision | Merge artifact or canonical-selection artifact | Reorg handling must be explicit data that names selected and superseded heads. |
25+
/home/alex/workspace/spoke-sh/transit/FINALITY.md:34:| Finality marker | Lineage checkpoint | A checkpoint binds a chosen stream head to a manifest root and checkpoint kind. |
26+
/home/alex/workspace/spoke-sh/transit/FINALITY.md:94: "stream_id": "chain.main.canonical-selection",
27+
/home/alex/workspace/spoke-sh/transit/FINALITY.md:110: "checkpoint_ref": "checkpoints/chain.main.canonical-selection/88.json",
28+
/home/alex/workspace/spoke-sh/transit/FINALITY.md:113: "stream_id": "chain.main.canonical-selection",
29+
/home/alex/workspace/spoke-sh/transit/FINALITY.md:126:## Fork And Reorg Handling
30+
/home/alex/workspace/spoke-sh/transit/FINALITY.md:134:- append a canonical-selection artifact that names the selected head,

0 commit comments

Comments
 (0)