Skip to content

Release v0.6.2#79

Merged
ApiliumDevTeam merged 4 commits intomainfrom
dev
Mar 14, 2026
Merged

Release v0.6.2#79
ApiliumDevTeam merged 4 commits intomainfrom
dev

Conversation

@ApiliumDevTeam
Copy link
Contributor

Summary

  • Version bump: All 12 product crates bumped to v0.6.2
  • Crash fixes: Eliminate 5 potential panic scenarios in production code
    • Raft peer fallback: nested unwrap() replaced with infallible SocketAddr::from
    • Rate limiter: 3x HeaderValue::from_str().unwrap() replaced with infallible From<u64/u32>
    • DAG export: to_json()/export() now return Result instead of expect()
    • AppState init: GraphDB::memory() errors propagated via Result
    • DAG export: safe short_id() helper prevents string slice out-of-bounds
  • Port standardization: Migrate all components to 19xxx range
    • Cortex REST: 19090, P2P: 19091
    • Minimal REST: 19080, QUIC: 19081
    • Updated OpenAPI spec, docker-compose, tutorials, and examples
  • Proof verification: Reconstruct ZkProof envelope from stored data (fix 422)
  • DAG integration: Triple writes with custom actions support
  • Security: All 30 Dependabot alerts resolved (dependencies already patched)

Test plan

  • cargo check --workspace passes
  • cargo test -p aingle_raft — 4/4 passed
  • cargo test -p aingle_cortex --lib middleware::rate_limit — 7/7 passed
  • cargo test -p aingle_graph --features dag — 151/151 passed
  • cargo test -p aingle_minimal — 65/65 passed
  • cargo audit — 0 vulnerabilities
  • Dependabot alerts — 0 open

Triple mutations (create/delete) now automatically generate DagActions
in both cluster and non-cluster mode, enabling complete audit trails.

- Add Custom variant to DagPayload for explicit user actions
- Add subjects field to TripleDelete for subject-based indexing
- Add subject_index to DagStore with full lifecycle (put/ingest/rebuild/prune)
- Add history_by_subject() for subject-scoped DAG queries
- Add POST /api/v1/dag/actions endpoint for custom DagActions
- Fix GET /api/v1/dag/history?subject=X to use dedicated subject index
- Non-cluster triple writes now record DagActions via dag_store.put()
- Handle Custom payload in Raft state machine and export/timetravel
…d data

ProofStore.submit() persists only request.proof_data (the raw proof
bytes) but ProofVerifier.verify() was deserializing as a full ZkProof
which requires proof_type, proof_data, timestamp, and metadata fields.
This caused 422 "missing field proof_type" on GET /api/v1/proofs/{id}/verify.

Fix: when direct ZkProof deserialization fails, reconstruct the envelope
from StoredProof.proof_type metadata + the stored raw proof data. Also
injects the ProofData serde type tag when the client omitted it.
… 19xxx ports

Eliminate 5 potential crash scenarios:
- Replace nested unwrap in Raft peer fallback with infallible SocketAddr::from
- Replace HeaderValue::from_str().unwrap() with infallible From<u64/u32> in rate limiter
- Change DagGraph::to_json/export to return Result instead of expect/panic
- Propagate errors from GraphDB::memory() in AppState::new/with_audit_path
- Add safe short_id() helper to prevent string slice out-of-bounds in DAG export

Standardize all components to 19xxx port range:
- Cortex REST: 19090, P2P: 19091 (already correct)
- Minimal REST/WebRTC: 8080 → 19080, QUIC: 8443 → 19081
- Fix OpenAPI spec, docker-compose, tutorials, and examples
@ApiliumDevTeam ApiliumDevTeam merged commit fc85ccd into main Mar 14, 2026
21 of 22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant