74248dfbc1
---ci--- project: oy phase: 5 milestone: v0.2 status: complete phase_role: final requirements: covered: [REQ-009, REQ-011, REQ-015, REQ-016, REQ-017, REQ-018, REQ-020, REQ-021, REQ-012] partial: [] ---/ci--- Milestone v0.2 (The Mesh) complete. Skeleton+tests layer for 9 new modules + 1 extension: x/window (REQ-015, fullest), x/stand (REQ-016, 9 types), x/guild (REQ-017, HandPass 0%), x/pact (REQ-020, 6 types + Mission Lock), x/partner (REQ-018, 4-tier), x/council (REQ-011, 3 councils + Mission Lock const), x/forex (Forex v1, Bread/Asset pairs), x/bond (REQ-021, 8% cap Clamp), x/satellite (REQ-009, 5-chain L2 + ICS-20 v1), x/bearers EXTENDED (OY-LR/Beacon). 303 tests total (53 v0.1 baseline + 250 new). Coverage >=95.9% on all new/extended packages (8 at 100%). Lexicon firewall (REQ-012) project-wide + per-module. G-003 by-ID-string import invariant. 5 phases: P0 (v0.1.0) + P1-P4 (v0.1.1..v0.1.4) + P5 final (v0.1.5 = this milestone release). Per run.md patch-line model: no separate minor tag. 14 clarification decisions (D-020..D-033), 15 research assumptions (A-201..A-215), 31 tasks across 5 phases, 10 grill binding decisions (G-001..G-010) all applied. Next milestone: v0.3 (The Bearers) per ROADMAP Phase 3.
Component 1: OY Chain & Mirror — Phase 1 Skeleton
Status
v0.0.1 — skeleton with type definitions and locked-constant tests
Vision References
- §7: Architecture — Three Layers and the Mirror
- §3: Still/Stir (pause/resume)
Modules
x/watcher — Watcher Bond & Attestation Quorum
types.Watcher— bonded Watcher (§7: 100,000 Bread minimum bond)types.Attestation— daily reserve snapshot signed by a Watchertypes.ReserveSnapshot— off-chain reserve state (off-chain total, on-chain Bread, basket breakdown)types.QuorumStatus— QuorumMet / QuorumLost / StaleEpochtypes.SlashReason— InsufficientBond / StaleAttestation / GeographicCollusion / Forgery
Locked constants (§7):
MinBond = 100000(100,000 Bread)Quorum = 6(6-of-9)MaxWatchers = 9AttestationEpochHours = 24(daily)
x/mirror — Reserve Ratio Publication
types.NavPerBread— Net Asset Value per Bread (§4.2)types.ReserveRatio— real-time published ratio with quorum flag
x/still — Pause/Resume (Still/Stir)
types.StillState— StirActive / StillPaused (§3)types.StillReason— CouncilVote / QuorumLost / SecurityAlerttypes.StillRecord— tracks pause events- Auto-still on quorum lost (§4.2: Forge/Fold blocked until quorum restored)
Tests
12 tests, all passing:
- Watcher: MinBond, Quorum, MaxWatchers, AttestationEpoch, DefaultParams (5)
- Still: DefaultStillState, AutoStillOnQuorumLost, StillStates (3)
- Mirror: DefaultPublishInterval, ModuleName, NavPerBreadStruct, ReserveRatioQuorum (4)
What's NOT in this skeleton (deferred to P1 completion)
- Cosmos SDK app.go full integration (requires SDK v0.50+ dependency resolution)
- Keeper implementations (BondWatcher, SubmitAttestation, VerifyQuorum, SlashWatcher)
- CLI commands (oyd tx watcher bond, oyd query watcher quorum)
- Proto definitions (Buf-generated types)
- CometBFT consensus setup
- Genesis import/export
Next Steps (P1 continuation)
- Resolve Cosmos SDK v0.50 dependency tree
- Implement keeper logic with store operations
- Add proto definitions and code generation
- Wire modules into app.go
- Build oyd daemon
- Integration test: 9 Watchers bond, submit attestations, verify quorum