Measure re-anchor reports that carry their changes

オープン
#593 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
25/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
活発
技術スタック
typescript
領域
performance

調査の方向性

This is a measurement task tied to re-anchor reports carrying passChanges after #589, so start by reading the code that builds and sends the report on onAnalysisChanged. Measure the largest report for a linked book the text lacks and for a Scripture edit to the most heavily linked book, recording bytes and view apply time. Done when the sizes are recorded here and either no cap is needed or a cap with a test is in place.

索引モデルが issue の本文から書いたものです。

説明

Follows #589. Blocks 5d (#459), which lets drafts over 100 MiB open.

Why

Since #589, a re-anchor report on onAnalysisChanged carries passChanges, the change sets the passes applied, so the view can update its copy without a whole fetch. Two cases can make a report large:

  • A pass for a book the text lacks marks every link into that book stale, so its change set carries all of that book's links.
  • A report after a Scripture edit bundles every pass the edit caused.

The report is a network event, which every subscriber receives. Until 5d, a draft that opens on the host path already fits under core's 100 MiB message cap, because getFullAnalysis sends it whole, so a report can't exceed the cap. Once 5d removes getFullAnalysis, larger drafts open, and a report over the cap closes the extension host's socket and reloads every extension.

Scope

  • At the large-loadable tier, measure the largest report for:
    • a linked book the text lacks;
    • a Scripture edit to the most heavily linked book.
  • Record its size in bytes and how long the view takes to apply it.
  • If a report is large enough to matter, cap passChanges. Above the cap the report leaves them out, and the view fetches the whole draft, as it already does for any report it hears without them.

Done when

  • The sizes are recorded here.
  • Either they're small enough to leave as they are, or a cap is in place with a test.

Drafted by Claude Opus 5.5 (Claude Code).

主要言語
TypeScript
スター
2
フォーク
0
平均マージ
1日 1時間
マージ済み PR(30日)
105

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

sillsdev/interlinearizer-extension のほかの issue

sillsdev/interlinearizer-extension の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。