Skip to content

feat(experiments): indexOnly Phase 1 battery + results on moutai devnet - #322

Closed
PastaPastaPasta wants to merge 1 commit into
stagingfrom
feat/like-overhaul-phase1
Closed

PastaPastaPasta wants to merge 1 commit into
stagingfrom
feat/like-overhaul-phase1

Conversation

@PastaPastaPasta

Copy link
Copy Markdown
Owner

What

Phase 1 of the like-overhaul design sprint (PLAN_LIKE_OVERHAUL.md §5.1): a 41-check live experiment battery for protocol v14 indexOnly document types, plus the measured results that resolve the sprint's open design questions. Two new files, no app code touched:

  • scripts/experiment-indexonly.mjs — registers a throwaway 5-doctype contract on moutai (final run: Bk3kWM5b…) and runs strict-assertion experiments: propertyAgreement ''-sentinel, $createdAt tuple recovery + delete-by-values, structural-uniqueness traps, batched in-on-terminal membership, the first ranked/having queries this codebase has ever issued, and a balance-delta fee battery.
  • docs/INDEXONLY_PHASE1_RESULTS.md — verdicts, fee table, working query shapes, grammar surprises.

Headline findings (full detail in the doc)

  • D1 resolved: '' hashtag sentinel is viable (agreement enforces it exactly; ranked pins on '' work).
  • D2 resolved: full unlike-tuple recovery incl. consensus $createdAt works end-to-end (93% refund) — but needs the 3-property [postAuthor, $createdAt, postId] index; the 2-property variant collides for same-block likes. Also: js documents.create() does not return the confirmed Document for indexOnly types (upstream issue to file).
  • byAuthor [postAuthor] → $ownerId is structurally broken (one like per author per liker, ever — reproduced); [postAuthor, postId] is the working shape. Global creator leaderboards are impossible server-side.
  • Fees: steady-state indexOnly like 57.8–58.7M credits vs 67.1M stored baseline; the mandatory countable→rangeCountable→rankedCountable chain makes ranked indexes the dominant cost; preallocation transfers ~52M/post to the poster. Feature-parity-only like ≈ 40–45% cheaper; the index set is the real fee lever (drives decisions D6/D7).

Validation

41/41 checks passed live on moutai (dev.5, protocol 14). Independent code review: approved with suggestions — both one-liners applied here (fee-table label, empty-table guard). Rebased onto current staging; the evo-sdk dev.5 pin collapsed into #319's. Note the results doc's honest footnote: a few of the 41 checks are deliberately permissive either-outcome probes (the doc records which branch fired).

🤖 Generated with Claude Code

Adds scripts/experiment-indexonly.mjs (throwaway-contract battery, 41 strict checks, all passing live) and docs/INDEXONLY_PHASE1_RESULTS.md with the fee table and experiment verdicts for the like-overhaul design sprint. Bumps @dashevo/evo-sdk to 4.2.0-dev.5 for the indexOnly + propertyAgreement grammar.

Verdicts: D1 '' sentinel viable; D2a query recovery of the $createdAt delete tuple works end-to-end; byAuthor [postAuthor] terminal $ownerId is structurally broken (one like per author+liker) and byAuthorPost [postAuthor, postId] is the working replacement; proved counts require exact index-property match; steady-state indexOnly like ~58M credits with uniform preallocated pricing.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 29, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 811dcd12-3d0e-4f3e-94c4-6218812976ee

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@thepastaclaw

thepastaclaw commented Aug 29, 2026 •

Copy link
Copy Markdown
Collaborator

🕓 Ready for review — 2 ahead in queue (commit 1f0d97c)
Queue position: 3/5
ETA: start ~13:27 UTC · complete ~13:44 UTC (median 17m across 30 recent reviews; 2 slots)
Queued 1h 15m ago · Last checked: 2026-08-29 13:10 UTC

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying yappr with  Cloudflare Pages  Cloudflare Pages

Latest commit: 1f0d97c
Status: ✅  Deploy successful!
Preview URL: https://f5e18ce5.yappr.pages.dev
Branch Preview URL: https://feat-like-overhaul-phase1.yappr.pages.dev

View logs

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying yappr-v2 with  Cloudflare Pages  Cloudflare Pages

Latest commit: 1f0d97c
Status: ✅  Deploy successful!
Preview URL: https://103ecb3c.yappr-v2.pages.dev
Branch Preview URL: https://feat-like-overhaul-phase1.yappr-v2.pages.dev

View logs

PastaPastaPasta added a commit that referenced this pull request Aug 29, 2026
The Phase 1 experiment harness (PR #322) targeted throwaway contracts and is superseded by verify-v4.mjs; the results doc is the durable artifact (verbatim consensus errors, fee table, grammar findings) and belongs with the contract it shaped. #322 closes unmerged; branch feat/like-overhaul-phase1 stays on origin for reference.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@PastaPastaPasta

Copy link
Copy Markdown
Owner Author

Closing unmerged per review: the experiment harness targeted throwaway contracts and is superseded by the verify-v4 battery landing on #323. The durable artifact — docs/INDEXONLY_PHASE1_RESULTS.md — now rides #323 (commit c3294d0); the distilled findings live in PLAN_LIKE_OVERHAUL.md. Branch feat/like-overhaul-phase1 stays on origin for reference.


🤖 Posted autonomously by Claude on behalf of pasta.

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.

2 participants