Files
colcaroliandClaude Opus 5 0e58a07af4 Pin notes to a chat, and import notes from files
Two additions to the shared notes, both about getting content in and out of
the prompt.

Per-chat pinning. Notes normally reach the model as a title list only, and
the body arrives just if the model decides to call read_note. A 📌 on the tab
now puts a page's full body in the system prompt for the chat that is open,
every turn, no tool round trip. The selection is per session (new table
session_note_pages, unique on session_id + page_id), so different
conversations carry different pages. The title list marks pinned pages so the
model does not read them twice, and bodies are capped per page by
SESSION_NOTES_CONTENT_LIMIT.

A new chat has no session row until its first message, so the front end
cannot PUT the selection yet. POST /chat/stream therefore accepts
note_page_ids and applies it before building the context, which makes the
pins count from the very first turn.

File import. Dropping .md/.txt on the editor - or picking them with the new
⬆ button - creates pages, and a .zip is unpacked into one page per text
entry with the first path component as the section. That is exactly the
shape the export writes, so a downloaded zip round-trips back in. Titles that
collide get a " (2)" suffix rather than overwriting, since restoring a backup
into a live workspace should not destroy anything. UploadFile needs
python-multipart, added to the lockfile.

Toasts grew a kind: the import success message was rendering in the red error
toast, as was the existing session-import message. Both are green now.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-23 16:04:41 +09:00

7.8 KiB
Raw Permalink Blame History

共有ノートの使い方

ユーザーとAIが同じノートを一緒に編集できる機能。ページをタブで切り替え、関連するページ同士は セクションでグループ化できる。実装の詳細は docs/architecture.md の「共有ノート」節、 API 仕様は docs/api.md の「共有ノート」節を参照。

開き方

画面右上ヘッダーの 「ノート」 ボタンをクリックすると、右側にノートパネルが開く。 もう一度クリックすると閉じる。

ページの操作

操作 方法
ページを開く タブをクリック
ページを新規作成 タブ列右端の + をクリック(末尾に「新しいページ」が追加される)
タイトルを変更 タブをダブルクリックすると入力欄になるので書き換えて Enter(または欄外をクリック)
ページを削除 タブ内の × をクリック(確認ダイアログあり)
本文を編集 ページを開いた状態で下の編集エリアに直接入力
ファイルを取り込む 本文エリアにファイルをドロップ、またはパネル下部の ⬆ 取り込み から選択
チャットに紐付ける タブ内の 📌 をクリック(もう一度押すと解除)
ページを1つ保存 パネル下部の ⬇ このページ (.md) をクリック
全ページを保存 パネル下部の ⬇ すべて (.zip) をクリック

本文は入力を止めてから少し待つと自動保存される。保存待ちの間はタブに ●(未保存マーク)が付く。 ページが1つも無い場合は「+ 最初のページを作成」から始められる。

ファイルを取り込む

手元のファイルをページとして取り込める。本文エリアにドラッグ&ドロップするか、 パネル下部の ⬆ 取り込み からファイルを選ぶ(複数まとめて可)。

ファイル どうなるか
.md / .txt 1 ファイルが 1 ページになる。ファイル名がタイトル
.zip 中のテキストファイルが 1 つずつページになる。フォルダ名がセクションになる

⬇ すべて (.zip) で出した ZIP をそのまま戻せるので、バックアップや別環境への引っ越しに使える。 ファイル名の 01_ のような通し番号は取り込み時に落とされる。

既存のページと同じタイトルだった場合は上書きせず、設計メモ (2) のように連番を足して別ページを作る。 要らない方はタブの × で消せばよい。

取り込めない拡張子(PDF や画像など)や大きすぎるファイル(1 ファイル 2MB 超)は飛ばされる。 1 つも取り込めなかったときだけエラーが表示される。

チャットに紐付けて必ず読ませる

普段、AIに渡っているのはページのタイトル一覧だけで、本文はAIが必要だと判断したときに read_note で読みに行く。つまり「読みに行ってくれないと参照されない」。

タブの 📌 を押すと、そのページの本文が今開いているチャットのプロンプトに毎回そのまま載る。 AIの判断を待たずに確実に参照させたい資料(仕様書、設定、前提条件など)に使う。

📌 が付いたタブは上端に黄色い線が入る。もう一度押すと解除。

チャットごとの設定であることに注意。

チャット 📌 を付けたページ
「新機能の相談」 設計メモ / APIメモ
「夕飯どうする」 買い物リスト

チャットを切り替えると 📌 の状態もそのチャットのものに切り替わる。新規チャットでは 📌 を付けてから最初のメッセージを送れば、その1通目からちゃんと反映される。

長いページは 1 ページ 8000 文字(SESSION_NOTES_CONTENT_LIMIT)で打ち切られ、 残りが必要ならAIが read_note で読み足せる。あれもこれも 📌 すると毎回のリクエストが その分重くなるので、本当に読ませたいページだけに絞るのがよい。

手元にダウンロードする

パネル下部の ⬇ ボタンでノートをファイルとして保存できる。未保存の編集があっても、 保存してから書き出すので取りこぼしはない。

ボタン 出てくるもの
⬇ このページ (.md) 開いているページの本文そのままの Markdown ファイル。ファイル名はページのタイトル
⬇ すべて (.zip) 全ページをまとめた ZIP。1 ページ 1 Markdown で、セクションはフォルダになる

ZIP の中のファイル名には 01_, 02_ … と通し番号が付く。タブの並び順を残すためで、 展開したときも画面と同じ順番で並ぶ。ファイル名に使えない文字(/ や : など)は _ に置き換わる。

複数ページを 1 つのファイルに連結せず ZIP にしているのは、ページ内の見出し(#)が ページ間の見出しと混ざって階層が壊れるのを避けるため。

セクションでまとめる

複数のページを1つのグループとしてタブ上にまとめられる。

操作 方法
ページをセクションに入れる タブにマウスを乗せると出てくる 🏷 をクリックし、セクション名を入力
セクション名を変更する セクションのラベル(タブ群の左上に表示される名前)をクリックし、新しい名前を入力
セクションを解除する 🏷 またはセクションラベルをクリックした際、名前を空欄にして確定

同じセクションに入れたページは、タブ列上で必ず隣り合って表示される (新しくセクションに追加したページは、そのセクションの末尾に自動的に移動する)。 セクション名を変更すると、そのグループに属する全ページのラベルが一括で変わる。

タブをドラッグで動かす

タブはドラッグ&ドロップでも操作できる(🏷 やセクションラベルのクリックと同等の結果になる)。

操作 方法
同じグループ内で順番を変える タブを掴んで、移動先のタブの左半分/右半分にドロップ(左=そのタブの前、右=後ろに入る)
別のセクションへ移動する 移動先のセクション内のタブにドロップ(そのタブと同じセクションに入る)
セクションから外す 未分類のタブにドロップ、またはタブ列の一番右(+ボタンの手前の細い枠)にドロップ

ドラッグ中はドロップ位置に青い線が表示される。タイトル編集中(ダブルクリックで入力欄になっている間)のタブはドラッグできない。

AIとの連携

  • 全ページのタイトル一覧は、会話のたびに自動でAIに渡される(セクションがあれば見出し付きで)。 ただし本文はここには含まれない(📌 を付けたページを除く)。
  • AIは read_note ツールでページ本文を読み、write_note ツールで追記・置き換え・新規ページ作成ができる。 「ノートに書いておいて」「〇〇について記録して」のように頼むと、AIが該当ページを判断して書き込む。
  • AIがノートを書き換えると、開いているノートパネルは自動的に最新の内容へ更新される。
  • 自分が編集中(未保存)のページは、AIの更新で上書きされない。