Skip to content

docs: sweep stale Kamino-harvest-stub framing across registry#320

Merged
alrimarleskovar merged 2 commits into
mainfrom
docs/post-233-harvest-sweep
May 15, 2026
Merged

docs: sweep stale Kamino-harvest-stub framing across registry#320
alrimarleskovar merged 2 commits into
mainfrom
docs/post-233-harvest-sweep

Conversation

@alrimarleskovar
Copy link
Copy Markdown
Owner

Summary

Doc-debt sweep: aligns the public-facing registry (MAINNET_READINESS.md, README.md, audit + MEV + canary docs) with the codebase after the Kamino harvest path landed and closed #233.

The harvest implementation has been live for a while (real redeem_reserve_collateral CPI as a redeem-all + redeposit-principal round-trip in programs/roundfi-yield-kamino/src/lib.rs:272), but several places in the doc set still framed it as "stub returning realized=0" or "staged behind audit". An auditor opening the repo today reads a register that doesn't match the code — bad signal during external review.

Changes

File Change
MAINNET_READINESS.md § 4.5 🟡⛔ → ✅ with real-implementation summary (redeem-all + redeposit-principal, PrincipalLoss guard, slippage guard inherited from PR #124)
MAINNET_READINESS.md § 4.1 Dropped #233 from canary gate list; annotated #230 with #319 blocked-upstream status
MAINNET_READINESS.md § 1.5 Updated "pitch-vs-shipped framing" tagline (dropped "Kamino deposit ≠ harvest", added /reputacao Demo Studio reflection)
MAINNET_READINESS.md § 7 critical path Reworked dependency-order list: surfaced Agave 2.x (#319) as the live blocker, removed harvest path as a TODO, noted TVL caps + harvest already done
docs/security/audit-readiness.md § Pitch vs shipped "Harvest is stub" row rewritten — both deposit + harvest paths shipped, in scope, swap mechanism unchanged
docs/security/mev-front-running.md § 2.4 Kamino-sandwich vector reframed: bounded today (slippage guard + PrincipalLoss revert); Jito bundling demoted to operator concern
docs/security/mev-front-running.md § 3 summary table harvest_yield + deposit_idle_to_yield rows updated from ❌ (stub)⚠️ Yes — bounded with the actual mitigations
docs/operations/mainnet-canary-plan.md § smoke flow Yield branch is unconditional (was: "if #233 lands before canary")
README.md Yield Waterfall paragraph Reflects both deposit and harvest paths shipped via real Kamino CPIs

What this PR is NOT

Test plan

  • grep -rn "harvest.*stub\|realized=0\|harvest.*post-audit\|deposit ≠ harvest" returns no remaining hits in tracked docs
  • Manual review by maintainer for tone/framing consistency
  • No code changes → no CI dependency beyond the markdown lint lane

Generated by Claude Code

@vercel
Copy link
Copy Markdown

vercel Bot commented May 15, 2026

Deployment failed with the following error:

Resource is limited - try again in 24 hours (more than 100, code: "api-deployments-free-per-day").

Learn More: https://vercel.com/alrimarleskovars-projects?upgradeToPro=build-rate-limit

alrimarleskovar pushed a commit that referenced this pull request May 15, 2026
Fix CI lint failure on PR #320 — cosmetic only (markdown table column
widths re-aligned to prettier's expected format). No semantic change.

https://claude.ai/code/session_01YapZy1Z5gzbV5EammBkSQm
claude added 2 commits May 15, 2026 10:44
The harvest path was shipped (real `redeem_reserve_collateral` CPI as
redeem-all + redeposit-principal round-trip) and #233 closed, but
several places in the doc set still framed it as "stub returning
realized=0" or "post-audit". This sweep aligns the docs with the
code:

- MAINNET_READINESS.md 4.5 — flipped from 🟡⛔ to ✅ with the real
  implementation summary; dropped #233 from the 4.1 canary gate list;
  rewrote § 7 critical-path summary to surface the Agave 2.x
  toolchain (#319) as the live blocker and remove harvest from the
  to-do list.
- docs/security/audit-readiness.md "pitch vs shipped" row — harvest
  is shipped, not staged.
- docs/security/mev-front-running.md § 2.4 + § 3 summary table —
  harvest is live; sandwich vector is bounded (slippage guard +
  `PrincipalLoss` revert), Jito bundling demoted to operator concern.
- docs/operations/mainnet-canary-plan.md — canary yield branch is
  unconditional (not gated on #233).
- README.md — Yield Waterfall paragraph reflects both deposit and
  harvest paths shipped.

No code changes. Pure doc-debt sweep so the auditor reads a register
that matches the codebase on day one.

https://claude.ai/code/session_01YapZy1Z5gzbV5EammBkSQm
Fix CI lint failure on PR #320 — cosmetic only (markdown table column
widths re-aligned to prettier's expected format). No semantic change.

https://claude.ai/code/session_01YapZy1Z5gzbV5EammBkSQm
@alrimarleskovar alrimarleskovar force-pushed the docs/post-233-harvest-sweep branch from 50d9c01 to 4a70bce Compare May 15, 2026 10:44
@alrimarleskovar alrimarleskovar merged commit 2eab4f6 into main May 15, 2026
4 of 5 checks passed
@alrimarleskovar alrimarleskovar deleted the docs/post-233-harvest-sweep branch May 17, 2026 09:12
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.

Complete harvest() path on roundfi-yield-kamino (real Kamino redemption CPI)

2 participants