Skip to content

fix: ci automation - #13

Merged
mmacedoeu merged 2 commits into
mainfrom
next
Feb 24, 2026
Merged

mmacedoeu merged 2 commits into
mainfrom
next

Conversation

@mmacedoeu

Copy link
Copy Markdown
Contributor

Pull Request Checklist

  • All CI checks pass (green ✓)
  • Lint checks pass (no formatting issues)
  • Security scan passes
  • Tests added/updated for new functionality
  • Documentation updated (if applicable)
  • Commit messages follow Conventional Commits

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Refactoring (no functional changes)
  • AI-generated work (agent/* branch)

Branch Strategy

This PR follows the CipherOcto branch strategy:

From Branch To Branch Purpose
feat/* next New features
agent/* next AI-generated code
research/* next Experimental work
hotfix/* main Emergency fixes
next main Integration release

Current PR: <!-- source branch --><!-- target branch -->


Description


Related Issues

Closes #(issue)


Testing

  • Unit tests pass
  • Integration tests pass
  • Manual testing performed

Performance Impact

  • No performance impact
  • Performance improved (describe)
  • Performance degraded (describe, justify)

Security Considerations

  • No security implications
  • Security changes (describe)

Additional Notes

@mmacedoeu
mmacedoeu merged commit bfeae39 into main Feb 24, 2026
10 of 14 checks passed
mmacedoeu added a commit that referenced this pull request Aug 3, 2026
…liation

Landing 0968a2 implementation. Closes 7 of 17 ACs directly; the
remaining 10 are either pure verification (AC #1) or blocked by
external dependencies (AC #7-8 chain-substrate selection, AC #9-11
live anchor plumbing, AC #13 config crate path, AC #16 0855p-b
successor).

Direct closes:

- AC #2 (governance fields on ReputationAnchorBatch): added
  governance_snapshot, governance_proof, governance_set_hash fields
  to crates/octo-reputation/src/anchor.rs:140 with full digest
  folding. The 3 governance types live at auth.rs as
  AnchorGovernanceSnapshot / AnchorGovernanceSigner /
  AnchorGovernanceProof (path (a) mandated; preserves existing
  GovernanceSnapshot/GovernanceProof at auth.rs:21-25/113+).

- AC #3 (batch_size: u32): RFC-0955-R1 line 173 mandate. Added
  batch_size field; within_leaf_cap() now requires
  batch_size == leaves.len().

- AC #4 (chain_block_height: Option<u64>): RFC-0955-R1 line 170
  mandate. None at submission, Some(h) after MIN_FINALITY_BLOCKS
  finality. Digest uses Option tag encoding (0x00 None, 0x01 || 8
  bytes BE Some).

- AC #5 (AnchorLeaf::digest field order): per RFC-0955-R1 lines
  420-422, score_ewma_raw now at position 5 (between
  last_event_id and last_event_unix). The previous last-position
  was a cross-implementation interoperability bug.

- AC #6 (v012 migration): new
  crates/octo-reputation/migrations/v012__reputation_anchors_governance.sql
  extending reputation_anchors with governance_snapshot BLOB,
  governance_proof BLOB, governance_set_hash BLOB + lookup index
  on governance_set_hash. BUILTIN_MIGRATIONS bumped.

- AC #12 (anchor-specific verifier types): path (a) types defined
  in crates/octo-reputation/src/auth.rs. meets_quorum() enforces
  exactly GOVERNANCE_QUORUM (3) distinct signers.

- AC #17 (canonical test vector re-pinning): the 3 pinned vectors
  in tests/canonical_blobs.rs re-pinned to the new canonical
  serialisation. An independent Python implementation using
  hashlib.blake3 MUST reproduce these bytes byte-identically per
  RFC-0955-R1 line 422.

Verification: cargo fmt + clippy -D warnings clean; cargo test
--lib 197 passed; canonical_blobs 5/5 passed; stoolap_integration
47/48 passed (1 pre-existing flaky K=2 race test — fails before
this commit too, acknowledged in the test's R22 comment as
non-deterministic).

External blockers remaining for 0968a2 closure:
- AC #7/8 live ChainAnchorSubmitter (chain-substrate selection RFC)
- AC #9/10 reorg + DID-rotation finality handlers (need AC #7)
- AC #11 governance signature verification (needs governance key infra)
- AC #13 per-deployment config plumbing (config crate path TBD)
- AC #16 gossip cross-reference (needs 0855p-b successor mission)

Implementation pattern: anchor_job.rs::plan_batches returns batches
with placeholder governance fields (None chain height, zero
snapshot/proof/set_hash, leaves.len() batch_size). Runtime populates
them with active snapshot + 3-of-3 quorum proof before calling
ChainAnchorSubmitter::submit. Keeps plan_batches
chain-substrate-agnostic.
mmacedoeu added a commit that referenced this pull request Aug 7, 2026
… AC grounding

R7 review findings closed:

MAJOR (governance type collision): mandate path (a) — new anchor-specific types in same module — verified against current IMPL at crates/octo-reputation/src/{auth.rs:399-603, anchor.rs:174-208, anchor.rs:233+}; existing auth.rs::GovernanceSnapshot (L21-25) + GovernanceProof (L113+) preserved unchanged as RFC-0968 authorization envelopes (slash/suspension flows); new AnchorGovernanceSnapshot/AnchorGovernanceSigner/AnchorGovernanceProof/AnchorSignature types + 5 unit tests cover the anchor binding schema.

NIT (duplicate sentence): file no longer contains duplicate (prior edits removed it).

AC grounding updates — 7 ACs flipped to [x]:

- AC #2 governance fields (72bf19d + 48cf997 + b0660c3)
- AC #3 batch_size: u32 (same)
- AC #4 chain_block_height: Option<u64> (same)
- AC #5 AnchorLeaf::digest field order (b0660c3)
- AC #6 v012 migration (file shipped)
- AC #12 anchor-specific verifier types (72bf19d)
- AC #1 StakeBelowMinimum 0x2D verification (013a567)

10 ACs deferred per [[deferred-vs-unspecified]] named-owner rule to chain-substrate selection RFC + 0855p-b successor: #7/#8 live ChainAnchorSubmitter + rotation_receipt_id wire-through, #9/#10 reorg + DID-rotation finality handlers, #11 governance signature verification runtime hook (meets_quorum helper landed), #13 per-deployment config plumbing, #14/#15 idempotency + failure isolation tests, #16 gossip cross-reference, #17 canonical test vector re-pinning.

Version History v0.2 added; mission text no longer contradicts IMPL state.

63 insertions, 78 deletions.
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