Skip to content

fix(website): reframe streaming claims as capability-anchored after S5 cross-validation#129

Merged
blove merged 1 commit into
mainfrom
b2-followup-7-streaming-reframe
May 11, 2026
Merged

fix(website): reframe streaming claims as capability-anchored after S5 cross-validation#129
blove merged 1 commit into
mainfrom
b2-followup-7-streaming-reframe

Conversation

@blove
Copy link
Copy Markdown
Contributor

@blove blove commented May 9, 2026

Summary

PR #128's S5/S7 cross-validation matrix found that AG Grid Community matches pretable on every measured streaming numeric (frame p95 9.2 ms each, 25k/sec envelope each, AG Grid drift 0 vs pretable drift 1). The homepage's stub-era streaming claims — including the "25k/s · max sustained update rate" hero receipt and the vague "purpose-built streaming pipeline" comparison row — are no longer supportable as comparative numerics. This PR moves the streaming wedge to package surface: pretable ships the SSE → partial-JSON → batcher → applyTransaction pipeline as a single import; AG Grid expects you to wire that yourself.

No auto-merge. Editorial / prose changes — please review the wording before merging.

What changed

  • `ComparisonTable.tsx` — streaming row renamed from `purpose-built streaming pipeline` to `streaming pipeline (SSE → partial JSON → batcher → applyTransaction)`. Header docblock updated to cite the S5/S7 cross-validation milestone.
  • `ReceiptsBand.tsx` — replaced `25k/s · max sustained update rate` with `OpenAI · Anthropic · SSE · streaming sources, one import`. Added a `compact: true` flag to the `Stat` interface so the longer label renders at 20–24 px instead of 44–56 px (preserves the four-cell grid).
  • `FeatureGrid.tsx` — Stream-aware card: dropped `sustained from 100 to 25,000 updates/sec` tail; rewrote around the pipeline-as-one-import claim.
  • Test added: `ReceiptsBand.test.tsx` regression-guards the new capability anchor (`streaming sources` + `openai`).
  • Repo-memory entry: B2 follow-up feat(ui): add @pretable/ui shared design system package #7. Project memory: only item feat: S4 off-screen autosize columns #5 left open.

Prose draft for review

ComparisonTable streaming row

`streaming pipeline (SSE → partial JSON → batcher → applyTransaction)`: `yes` / `n/a` / `n/a` / `n/a`

ReceiptsBand fourth stat

`OpenAI · Anthropic · SSE` (small font, compact rendering) — caption `streaming sources, one import`.

FeatureGrid Stream-aware card

Token-by-token rendering for OpenAI, Anthropic, and your own SSE. The full pipeline — partial-JSON parser, frame-budget batcher, `applyTransaction` wiring — ships as one import.

(Trail-marker label `Advanced — bring your own SSE` retained — pretable ships the post-SSE pipeline; the SSE source itself is consumer-supplied.)

What's NOT in this PR

  • A `/bench` page streaming section. Page still surfaces only H1 (n=20 corrected). Adding a streaming section is a future PR if/when comparative streaming evidence justifies one.
  • Higher-rate streaming runs to find AG Grid's actual ceiling. Deferred until anyone needs it.
  • Comparative interaction scripts (sort, filter-text, filter-metadata, cell-renderer). Still pretable-only per the supportedScripts gate; tracked as B2 follow-up feat: S4 off-screen autosize columns #5 (the only remaining open item).

Test plan

  • `pnpm -w typecheck` passes
  • `pnpm -w test` passes (191 website tests, +1 new)
  • `pnpm -w lint` 0 errors
  • `pnpm format` clean

🤖 Generated with Claude Code

@vercel
Copy link
Copy Markdown

vercel Bot commented May 9, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
pretable Ready Ready Preview, Comment May 11, 2026 9:04pm

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 9, 2026

Vercel preview ready

Preview: https://pretable-16bz2io4z-cacheplane.vercel.app
Commit: 964e2afe50c5a17114ec6c361399b7d86bc64819

Updated automatically by the deploy-preview job.

@blove blove enabled auto-merge (squash) May 11, 2026 20:10
blove added a commit that referenced this pull request May 11, 2026
* docs(plans): B2 follow-up — homepage interaction wedge refresh plan

Six-task plan: aggregator script + milestone summary, ComparisonTable
rows + labels, tests, /bench Interactions section, repo-memory, gates +
PR (no auto-merge).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* chore(bench): aggregator for sort/filter milestone summary

* fix(website): ComparisonTable adds 3 interaction rows + trail-marker label refresh

* test(website): update ComparisonTable trail-marker regex assertions

Three labels changed in the prior commit (AG Grid + TanStack + MUI X)
to reflect the interaction wedge from PR #131. Regex assertions
updated to match the new label phrasings:

- AG Grid: "1.7× slower scroll, 3× slower interaction; row-height drift"
- TanStack: "Headless; ~2× slower interaction (filter-metadata ties pretable)"
- MUI X: "Scroll-p95 parity; 2× slower interaction"

The pretable "Recommended path" assertion is unchanged.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* feat(website): /bench page Interactions section with sort + filter comparator data

Replaces the placeholder paragraph that said "comparative interaction
evidence is on the roadmap" with a real section paralleling the H1
scroll layout. Driven by the new aggregated milestone summary at
status/milestones/2026-05-10-b2-sort-filter-summary.json (built from
PR #131's per-run summaries).

New loader (loadInteractionSummary) + verdict helper
(interactionVerdictFor) mirror the existing scroll-side patterns. The
verdict helper computes per-script ratios against the fastest adapter
and annotates the TanStack filter-metadata tie inline ("2.1–2.6×
slower (filter-metadata ties pretable)").

Per-adapter latency table + two prose paragraphs match the H1 section's
structure for visual consistency.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* docs(research): repo-memory entry for homepage interaction wedge refresh

Documents the three editorial surfaces touched (ComparisonTable rows +
trail-markers, /bench Interactions section, aggregated summary file),
the deliberate non-goals (ReceiptsBand owned by PR #129, n=20 follow-up
deferred), and the remaining open threads from B2.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* chore: prettier-format milestone JSON + plan/spec docs

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
…5 cross-validation

PR #128's S5/S7 cross-validation matrix surfaced a finding: AG Grid
Community matches pretable on every measured streaming numeric (frame
p95, 25k/sec envelope, visible-row drift). The homepage's stub-era
"purpose-built streaming pipeline" framing — and the implication that
pretable is uniquely fast at streaming — is no longer supportable on
hypothesis-scale numerics. The honest wedge is package surface:
pretable ships the SSE → partial-JSON → batcher → applyTransaction
pipeline as a single import; AG Grid expects you to wire it yourself.

Three editorial edits:

- ComparisonTable.tsx: streaming row renamed from "purpose-built
  streaming pipeline" to "streaming pipeline (SSE → partial JSON →
  batcher → applyTransaction)" — same yes/n/a/n/a/n/a shape, sharper
  capability claim. Header docblock updated to cite the S5/S7
  cross-validation milestone alongside the existing B2 sources.

- ReceiptsBand.tsx: replaced the "25k/s · max sustained update rate"
  hero stat (no longer pretable-unique) with "OpenAI · Anthropic · SSE
  · streaming sources, one import". Added a `compact: true` flag to
  the Stat interface so the longer label renders at 20–24 px instead
  of 44–56 px, preserving the four-cell grid without overflowing the
  hero font scale.

- FeatureGrid.tsx: Stream-aware card — dropped "sustained from 100 to
  25,000 updates/sec" tail; rewrote the description around the pipeline
  that ships as one import.

Test added: ReceiptsBand.test.tsx regression-guards the new capability
anchor (`streaming sources` + `openai`).

Repo-memory entry appended (B2 follow-up #7); MEMORY.md index updated;
project_b2_followups.md regenerated to reflect everything resolved
except item #5 (open comparator interaction scripts).

No source/package changes outside apps/website + the docs entry; all
190+ website tests pass.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@blove blove force-pushed the b2-followup-7-streaming-reframe branch from 999679a to 964e2af Compare May 11, 2026 21:03
@blove blove merged commit 9ae2bbe into main May 11, 2026
13 checks passed
@blove blove deleted the b2-followup-7-streaming-reframe branch May 11, 2026 21:05
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