Repository navigation
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ネイティブの <select> は開いた瞬間の選択肢を出すので、2 秒ポーリングの間に 挿したデバイスが一覧に出なかった。mousedown(と F4 / Alt+↓)で既定の展開を止め、 ポートを列挙し直してから showPicker() で開く。showPicker の無い WebView では 従来どおり開きつつ一覧を更新する。リロードボタンは付けない(オーナー判断)。 Closes #5 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ASCII ビューは行の高さを 20 px 固定とみなす仮想スクロールで、Line Wrap で 1 行が複数段になると描画ブロックがモデルの下端からはみ出し、Auto Scroll の 位置では最新行が画面外に残っていた(巨大な取り込みで高さが縮小される時も同様)。 - get_ascii_lines は末尾を超える開始行を「最後の line_count 行」に丸め、実際の 開始行と、データの末尾まで届いたか(reaches_end)を返す。末尾が LF のとき行索引に 空の最終行があるので、行数からは判定できない - 末尾まで取得したブロックは下端揃え(min-height + flex-end)で描き、Auto Scroll は実際の DOM の下端までスクロールする。判定はスクロール位置でなくデータで行うので モードの出入りで振動しない(Fable レビュー済み) - 行のタイムスタンプ表記(HH:MM:SS.d)を共通関数にまとめた(#4 でも使う) Closes #3 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
スクロール領域の高さは 1,000 万 px で頭打ちにして縮小しているが、表示行を scrollTop / scrollHeight の比で求めていたため、最下部(scrollHeight − ビューポート) でも最後の数十〜数百行に届かなかった(約 8 MB 超)。スクロール範囲全体を行範囲全体 (先頭行〜最後の 1 ページ)に写す rowAtScrollTop に置き換えた。縮小なしの場合は 従来と同じ scrollTop / ROW_HEIGHT になる。#3 と同じ種類の不具合(オーナー判断で修正)。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ASCII 表示で Timestamp が ON のとき、Save と Copy は各行の先頭に時刻(画面と同じ HH:MM:SS.d)と選んだ区切り(Space / Comma / Tab)を付けたテキストを出す。データ本体は 受信したバイトのまま(CR/LF も無加工)。OFF または Hex 表示では従来どおり、Save は 受信バイトそのもの、Copy は平文 / Hex。 - DataStore::write_timestamped: データを 1 MiB ずつ、行頭を数千行ずつ索引から取って 書き出すので、巨大な取り込みでもメモリは一定 - 新コマンド export_text_with_timestamps、get_clipboard_text に timestamp_separator - 時刻は約 100 ms ごとにしか記録しないので、ms 表記は偽の精度になる(Fable の指摘) Closes #4 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
localStorage に "sme.<key>" で JSON 保存する usePersistentState を追加し、 シリアル設定(ボーレート・データビット・パリティ・ストップビット・フロー制御・ DTR/RTS)、最後に選んだポート、Send(改行・Send with Enter・Send Binary・入力モード)、 Receive(Hex/ASCII・Line Wrap・Timestamp・区切り・Auto Scroll)、プロッタの時間窓と ダウンサンプル方式を保持する。不正・欠落した値は既定値に戻す(起動を壊さない)。 - 最後のポートはユーザーの選択と Connect のときだけ保存し、起動時に無ければ従来どおり 先頭を選ぶ(自動の選び直しで好みを消さない) - プロッタは開くたびに保存済みのダウンサンプル方式をバックエンドへ送る(再オープン時に 表示が Peak のまま裏が Average だった不整合も解消) - 送信履歴(パスワード等を打つことがある)とウィンドウ位置・サイズは保存しない (Fable レビュー済み) - テストは毎回 localStorage を空にしてから始める Closes #7 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
これまでアプリはダーク固定の配色なのに、:root の color-scheme: light dark で ネイティブ部品(select の一覧・チェックボックス・スクロールバー)だけが OS の 設定に従い、見た目が混ざっていた。 - Settings パネルに Theme(Dark / Light / System)。既定は Dark(従来の見た目) - CSS の約 150 色を意味トークン(背景・枠・文字・強調・状態色など)に置き換え、 <html data-theme> ごとにダーク / ライトのパレットを定義。color-scheme も揃える - メイン・プロッタ・AI ガイドの 3 ウィンドウが storage イベントで追従。 チャートの軸・格子と State Timeline のキャンバス描画もテーマ色を使う - タイトルバーも各ウィンドウが set_window_theme で合わせる(オーナー許可) - テーマは layout effect で適用し、子のチャートが古い色を読まないようにする Closes #6 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
実機ファームウェアの `[Mon t=2916094] V=30.58 Vdc=12.37 I=0.825/0.797 … age=11ms` が、どのトークンも列位置の状態値(ch3 = "V=30.58" 等)になり、約 20 本の状態行だけが 並んで数値グラフが 1 本も出なかった(#3 のデータで発見、オーナー要求)。 - 結合子 `=` / `:`(前後の空白可)。スペース区切りの行では「単語 数値」もペアにする。 ただしヘッダー採用後は使わず、行内の裸の数値がすべて直前に単語を持つときだけ (`RUNNING 25.5 60` は従来どおり列位置) - 区切りは従来どおりカンマ > タブ > スペース(依頼の「コロン」はカンマと解釈) - 名前は文字(日本語可)か `_` で始まること(`12:34:56` を名前にしない) - 値: 有限の数値 / 数値+短い単位(`11ms`、`3.3V`)は数値、文字始まりは状態、 それ以外(`0.825/0.797`、`1/1`)と空の値(`key=`)はチャンネルにしない - `=` を含む行はヘッダーにしない - SYS-F-715、docs/07 のパースルール、プロッタの「No data」ヒントを更新 - テスト 12 件と、任意の結合子・区切り・単位で名前と値が戻るプロパティテスト (Fable レビュー済み) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
プロッタの時刻の原点が「プロッタがストアに接続した時点」で、溜まっていた行を すべて経過 0 ms として読み、1 ms ずつ過去へ広げる処理が 0 で止まるため、何秒分の データも時刻 0 の 1 点になっていた。並列テストで test_batch_timestamps_are_spread が まれに落ちていたのも同じ原因(スレッドがストアを見つける前にデータが届くと潰れる)。 - 原点をストア(=セッション)の作成時刻にする - 1 回の読み出しを、ストアが約 100 ms ごとに記録する「何バイトまで届いたか」で切り、 各区間をその時刻に置く。区間内の行は区間の幅に均等に並べる。読み出しの末尾は次の 記録の時刻を使う(1 MiB の読み出し上限をまたぐ溜まり分も「今」に潰さない) - 記録が時計と合わないとき(壁時計の補正)は今の時刻に戻し、同じ時刻になった区間は まとめて広げる(Fable レビュー済み) - 再現テスト 2 件(修正前は決定的に失敗)、読み出しをまたぐ場合・時計ずれ・ 再開境界・区間内の均等配置・slice_timestamp の境界値・索引検索の境界のテスト - SYS-F-808 と docs/27(PF-8)を更新 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
前提条件(Node.js / Rust / OS ごとの Tauri の前提、Ubuntu の apt パッケージと dialout)、clone から `npm run tauri dev` までの手順、初回ビルドの時間と変更時の 再読み込み、インストーラのビルド、CI と同じ検査を、番号付きの手順に分けた。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
<select> の幅が最長の選択肢(機器名)で決まっていたため、機器の抜き差しで一覧が 更新されるたびに 1 行目のレイアウトが動いていた(オーナー指摘)。 - 右側の部品(ボーレート・Connect・Auto Reconnect)は固定幅で右寄せし、ポート一覧は その残りの幅いっぱいにする(flex: 1、width: 0、最小 120 px) - Connect ボタンは Connect / Disconnect / Cancel で幅が変わらないよう固定幅 - 自動再接続の状態表示(機器パスを含む)は MCP Server の行の Theme の左へ移した Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Second beta, 0.1.0-beta.2 (pre-release): fixes for the first beta reports and problems found while fixing them. One commit per issue:
name=value/name:value/name valuerecognition (from the data in オートスクロールが一番下でスクロールされてない #3)test_batch_timestamps_are_spreadfailure)Closes #3, closes #4, closes #5, closes #6, closes #7
Verification
🤖 Generated with Claude Code