Skip to content

Commit 7540d32

Browse files
ecoPrimalsecoPrimals
authored andcommitted
session 14: structured IPC errors, tarpc 0.37, capability domains, NDJSON streaming
Deep debt execution — 7 absorption candidates from cross-ecosystem review: - IpcErrorPhase enum (healthSpring V28 SendError pattern) replaces opaque strings - tarpc 0.34→0.37 resolving RUSTSEC-2024-0387, deny.toml cleaned - CapabilityDomain/CapabilityMethod with external/local flags (ludoSpring V20) - DI config reader from_env_reader() (sweetGrass v0.7.15) - NDJSON StreamItem types for pipeline coordination (biomeOS v2.43) - Constant provenance documentation on all key constants - Debris: Edition 2024 version string, K8s env var names, smart file refactors 1244 tests, 0 clippy warnings, all files under 1000 LOC. Made-with: Cursor
1 parent 78d00a2 commit 7540d32

25 files changed

Lines changed: 2266 additions & 1378 deletions

CHANGELOG.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,64 @@ All notable changes to rhizoCrypt will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [0.13.0-dev] - 2026-03-16 (session 14)
9+
10+
### Changed
11+
12+
#### Deep Debt Execution — Structured IPC, tarpc 0.37, Capability Domains, NDJSON Streaming
13+
14+
**1. Structured IPC Error Types** (absorbed from healthSpring V28 `SendError` pattern)
15+
- Added `IpcErrorPhase` enum (7 variants: Connect, Write, Read, InvalidJson, HttpStatus, NoResult, JsonRpcError)
16+
- Evolved `unix_socket.rs` from opaque `Integration(String)` to structured `Ipc { phase, message }`
17+
- Each IPC lifecycle phase now emits typed errors for targeted retry and observability
18+
19+
**2. tarpc 0.34 → 0.37**
20+
- Bumped workspace tarpc dependency; resolved `RUSTSEC-2024-0387` (opentelemetry_api)
21+
- Updated `deny.toml` to remove resolved advisory ignore
22+
- opentelemetry, tokio-serde, tarpc-plugins all upgraded
23+
24+
**3. Capability Domain Introspection** (absorbed from ludoSpring V20 `capability_domains.rs`)
25+
- Added `CapabilityDomain`, `CapabilityMethod` structs with `external: bool` flag to `niche.rs`
26+
- `capability_list()` now includes `domains`, `locality` (local/external counts), per-method `external` flag
27+
- All 23 rhizoCrypt methods classified as local (CPU-only infrastructure)
28+
29+
**4. DI Config Reader Pattern** (absorbed from sweetGrass v0.7.15)
30+
- Added `RpcConfig::from_env_reader(F)` — dependency-injected environment reader
31+
- Tests can supply mock readers without `temp-env` or `unsafe` env mutation
32+
33+
**5. NDJSON Streaming Support** (absorbed from biomeOS v2.43 Pipeline coordination)
34+
- New `streaming` module: `StreamItem` enum (Data, Progress, End, Error)
35+
- `StreamingAppendResult` for streaming `event.append_batch` responses
36+
- `parse_ndjson_line()` for pipeline consumption
37+
- biomeOS Pipeline coordination graphs can now wire bounded channels
38+
39+
**6. Constant Provenance Documentation**
40+
- All key constants in `constants.rs` now include `Derivation:` / `Source:` / `Chosen:` provenance
41+
- Explains origin, validation context, and rationale for each constant
42+
43+
**7. Debris Cleanup**
44+
- Fixed `Edition: 2021``Edition: 2024` in `rhizocrypt version` output
45+
- Fixed K8s ConfigMap env vars: `RHIZOCRYPT_HOST``RHIZOCRYPT_RPC_HOST`, `RHIZOCRYPT_PORT``RHIZOCRYPT_RPC_PORT`
46+
- Updated README: 1222→1244 tests, 110→118 SPDX files, tarpc 0.37, NDJSON streaming
47+
48+
### Quality Gates
49+
50+
| Gate | Status |
51+
|------|--------|
52+
| `cargo fmt --check` | Clean |
53+
| `cargo clippy` (pedantic + nursery + cargo, all features) | Clean (0 warnings) |
54+
| `cargo doc --workspace --all-features --no-deps` | Clean |
55+
| `cargo test --workspace --all-features` | 1244 pass, 0 fail |
56+
| `cargo deny check` | Clean |
57+
| `unsafe_code = "deny"` | Workspace-wide |
58+
| `unwrap_used`/`expect_used` | `"deny"` workspace-wide |
59+
| Coverage gate | 92.32% lines (`--fail-under-lines 90` CI enforced) |
60+
| SPDX headers | All 118 `.rs` files |
61+
| Max file size | All under 1000 lines |
62+
| Production unwrap/expect | Zero |
63+
64+
---
65+
866
## [0.13.0-dev] - 2026-03-16 (session 13)
967

1068
### Added
@@ -747,6 +805,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
747805

748806
## Version History Summary
749807

808+
- **0.13.0-dev** (2026-03-16 s14): Deep debt — structured IPC errors, tarpc 0.37, capability domain introspection, NDJSON streaming, DI config, constant provenance, debris cleanup
750809
- **0.13.0-dev** (2026-03-16 s12): Deep audit — `#[expect]` migration (42 files), safe `TryFrom` casts, zero-copy signing, file refactoring, rustfmt edition sync
751810
- **0.13.0-dev** (2026-03-16 s11): Cross-ecosystem absorption — niche.rs, enhanced capability.list, temp-env, deploy fallback, CI coverage gate, deny unwrap/expect
752811
- **0.13.0-dev** (2026-03-15 s10): Edition 2024, deploy graph, capability registry, `#[expect]` lint migration

0 commit comments

Comments
 (0)