Commit 22400f8
release(v1.6.3): CIRISEdge#65 v1 FEATURE-COMPLETE — PyO3 init wiring shipped
Pin-only bump for the release tag. The substantive work landed in
#79 (commit e5cca14) and is already on main; this commit moves the
version string from 1.6.2 → 1.6.3 so the v1.6.3 release tag points
at the post-#79 main with the right declared version.
## #65 ladder — all 8 rungs landed
| Rung | PR / cut | Surface |
|------|------------------|--------------------------------------------------|
| 1 | #69 | Protocol state machine |
| 2 | #70 | ReplicationCoordinator |
| 3 | #71 | Directory adapters |
| 4 | #72 | Wire-frame prefix (CRPL magic) |
| 5 | #73 | Long-lived Session in coordinator |
| 6 | #75 / #76 | Scheduler + v1 wire-format lock |
| 7 | #78 (v1.6.0) | Layer (c-2) FederationDirectoryReplicationBridge |
| 8 | #79 (this cut) | ReplicationRegistry + Runtime + PyO3 init |
After v1.6.3, #65 closes as v1 feature complete.
## What v1.6.3 ships (the #79 surfaces)
- `replication::registry::ReplicationRegistry` — application-side
dispatch table indexed by (peer_key_id, kind). `route_inbound_bytes`
hot-path call returns a RouteOutcome trichotomy (Routed /
NotAReplicationFrame / NoCoordinatorRegistered) + BackPressure error
for channel-full conditions.
- `replication::runtime::ReplicationRuntime::start(directory, transport,
peers, config)` (async) — bundles bridge + registry + scheduler task
+ shutdown handle into one managed runtime.
- `PyEdge::start_replication(peers, cadence_seconds=None)` — Python
surface that lifts the operator's peer list + cadence into a
ReplicationRuntime via persist's executor capsule. Returns a
`PyReplicationHandle` with `registered_count` / `register_peer` /
`stop` methods.
## Substrate pins unchanged
- ciris-persist v4.15.0 (CEG 1.0 §0.9 JCS canonicalization flip)
- ciris-verify v5.0.0 (CEG 1.0 / Agent 3.0 substrate)
- v1 wire taxonomy locked at 10 variants (WIRE_PROTOCOL_VERSION = 0x01)
## v1.7+ follow-ups (deferred; non-blocking)
- `Edge::install_replication_routing(runtime)` opt-in helper that
wires `registry.route_inbound_bytes` into the existing
`Transport::listen` loop (currently operator-wired)
- ReadEngine bulk optimization for Key/Attestation/Revocation
- persist-side `lookup_*_by_content_hash` admit surfaces
- Scheduler dynamic-add API for hot-added Initiator coordinators
## Path to CIRIS 2.0 (FSD §5) — unchanged
- v2 cut gated on CIRISRegistry#58 Phase 2 (operational-data envelopes)
- v2 will be the natural moment to switch envelope_hash to a
CEG-§0.9-conformant basis (per §3.2.1's deferred interop path)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>1 parent e5cca14 commit 22400f8
1 file changed
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
0 commit comments