Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/table-selection-dom-patch.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@platejs/table': patch
---

- Reduce large-table selection latency by deriving reactive table selection from editor selectors, keeping selected-cell DOM sync at the table root, and avoiding plugin-store writes on every `set_selection`.
184 changes: 0 additions & 184 deletions .claude/docs/table/block-selection-core-migration-design-2026-03-12.md

This file was deleted.

50 changes: 0 additions & 50 deletions .claude/docs/table/dev-table-perf-performance-2026-03-10.md

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
- Browser: Playwright + Chromium `138.0.7204.15`
- Page accessibility check: confirmed `/dev/table-perf` loads via `agent-browser`

## Sampling Method
## Sampling

- Read `apps/www/src/app/dev/table-perf/page.tsx`, confirmed the page has two built-in tests:
- Benchmark: `5` warmup + `20` measured remount iterations
Expand Down Expand Up @@ -45,15 +45,3 @@
| Input Latency | P95 | 52.70 ms |
| Input Latency | Min | 28.00 ms |
| Input Latency | Max | 61.60 ms |

## Conclusion

- The `40 x 40` remount benchmark is still in the high-cost range, with a mean of ~`841 ms`.
- The `40 x 40` input latency mean is ~`41 ms`, median ~`39 ms`, well below the `100+ ms` threshold where noticeable lag occurs.
- This snapshot is better suited for tracking large-table input performance; if the focus shifts to resize/hover interactions, a separate drag/hover profiling session is recommended.

## Interpretation Notes

- `Initial render`, `Re-render count`, `Last render`, and `Avg render / Median / P95` come from the left-side Metrics panel.
- `Benchmark Results` are the remount benchmark statistics.
- `Input Latency` results do not auto-clear when switching presets or clicking `Generate Table`; re-run after changing configuration.
44 changes: 44 additions & 0 deletions .claude/docs/table/table-selection-latency-snapshot.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# dev/table-perf Performance Snapshot

## Environment

- Page route: `/dev/table-perf`
- App: `apps/www`
- Metric group: `Table Selection Latency`
- Table size: `40 x 40` (`1600` cells)
- Selected cells: `9`
- Injected delay: `0 ms`

## Results

### Baseline

| Category | Metric | Value |
| --- | --- | ---: |
| Table Selection Latency | Selected cells | 9 |
| Table Selection Latency | Injected delay | 0.00 ms |
| Table Selection Latency | Mean | 425.00 ms |
| Table Selection Latency | Median | 424.60 ms |
| Table Selection Latency | P95 | 477.90 ms |
| Table Selection Latency | Min | 368.90 ms |
| Table Selection Latency | Max | 489.50 ms |

### Current

| Category | Metric | Value |
| --- | --- | ---: |
| Table Selection Latency | Selected cells | 9 |
| Table Selection Latency | Injected delay | 0.00 ms |
| Table Selection Latency | Mean | 174.62 ms |
| Table Selection Latency | Median | 174.00 ms |
| Table Selection Latency | P95 | 187.10 ms |
| Table Selection Latency | Min | 140.20 ms |
| Table Selection Latency | Max | 214.10 ms |

## Comparison

- Mean: `425.00 -> 174.62 ms` (`-250.38 ms`, `-58.9%`)
- Median: `424.60 -> 174.00 ms` (`-250.60 ms`, `-59.0%`)
- P95: `477.90 -> 187.10 ms` (`-290.80 ms`, `-60.8%`)
- Min: `368.90 -> 140.20 ms` (`-228.70 ms`, `-62.0%`)
- Max: `489.50 -> 214.10 ms` (`-275.40 ms`, `-56.3%`)
10 changes: 10 additions & 0 deletions .github/workflows/registry.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ jobs:
steps:
- name: 📥 Checkout Repo
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: ♻️ Setup Node.js
uses: actions/setup-node@v4
Expand Down Expand Up @@ -67,6 +69,14 @@ jobs:
TEMPLATE_SKIP_VERIFY: 'true'
run: pnpm templates:update --local

- name: 📦 Override templates with local workspace packages
env:
TEMPLATE_LOCAL_PACKAGE_BASE_REF: origin/${{ github.base_ref }}
run: |
node tooling/scripts/prepare-local-template-packages.mjs \
templates/plate-template \
templates/plate-playground-template

- name: ✅ Run template CI
run: |
cd templates/plate-template
Expand Down
2 changes: 1 addition & 1 deletion apps/www/public/r/table-node.json

Large diffs are not rendered by default.

Loading
Loading