[feat] Send from your phone into a folder, and align the material peek - #832
Merged
Conversation
The material side peek that opens from inside the editor showed only hand-set folders, while the gallery showed those plus the folders of the notes a material is used in. Same asset, two answers. The lookup is now threaded through to it, so both read the same. Static wiring only: the real vault has no note citing a document material, so this path was not exercised end to end. The derivation itself is unit-tested and was verified in the gallery. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Set a folder in the phone settings and what you send arrives already filed, instead of landing unsorted and waiting to be sorted on the desktop. The setting is remembered until you change it — a phone is for getting something down quickly, and picking a folder every time would spend exactly the speed it exists for. Photos, video and audio travel as raw files with no channel for metadata, so the folder rides in the filename and the desktop lifts it back out on import; URLs already travel as JSON, so it goes in the payload. A sidecar .meta.json was the alternative and was not taken: it puts a second file in the inbox, which then has to be filtered out of the listing, paired on import, and cleaned up — and leaves half a pair behind when anything goes wrong. Memos are left out for now: they land in the capture store, which has no folder of its own yet, unlike materials. Verified in the running app at phone width: the field saves, and the name round-trip is unit-tested including subfolders, broken encodings, and ordinary filenames a person dropped in by hand. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Contributor
Performance regressionClick to expand performance results |
Contributor
Bench delta比較できませんでした: main に bench/baseline.json がありません(この PR がベースラインを初めて追加する場合、マージ後の PR から delta が出ます) delta 表を出すには、tracked の |
Contributor
Migration fixturesClick to expand migration results |
Contributor
Adversarial probesClick to expand probe results |
Buried in the settings sheet, the folder was easy to miss: you could send a dozen photos before noticing the setting existed. Where things are going has to be visible where you send them, so the picker now sits at the top of the capture screen, above the search box. Candidates come from two places: the folders this device's library knows about, and the folders used before on this device. Publishing the list from the desktop is not an option — the phone's Drive scope is drive.file, so it can only see files the app itself created, and a list synced up by the desktop client would be invisible to it. Remembering what was typed covers the inbox-only setup instead. The picker renders whether or not there is any history, so it is there on the very first capture; the search box next to it only appears once there is something to search. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Merged
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.
フォルダ機能の残り 2 件。
1. スマホから送るときにフォルダを指定できる
スマホの画面最上部に 送り先 を置いた。ここで一度決めておけば、送ったものはそのフォルダに入った状態で届く。デスクトップで振り分け直す手間が消える。
最初は設定シートの中に作ったが、そこだと気づかないまま何枚も送ってしまう。これから送るものがどこへ届くのかは、送る場所のすぐ上に見えていないと意味がないので、捕獲画面の最上部(検索欄の上)へ移した。履歴ゼロの初回でも出るよう、検索欄(履歴がある時だけ描画される)とは別のブロックにしている。設定シート側の欄は撤去した — 同じものが 2 箇所にあると、どちらが効くのか分からなくなる。
候補の作り方
PC から一覧を送る案は採れなかった。 スマホの Drive スコープは
drive.fileで、アプリ自身が作ったファイルしか見えない(google-auth.ts:23)。PC が同期クライアント経由で上げた一覧は、スマホからは存在しないのと同じになる。スコープを広げれば通るが、「自分が作ったものしか触らない」という現在の約束(マニュアルにも明記)を捨てることになるので採らなかった。代わりに一度打ったフォルダを覚え、次からは選ぶだけで済むようにしている(+ 新しいフォルダ…でその場で作れる)。送信のたびに選ばせないのも要点。スマホは「素早く放り込む」道具で、毎回の選択はその速さを損なう。切り替えたいときだけ変える。
フォルダの運び方
サイドカー(
.meta.json)は採らなかった。 受信箱に 2 つ目のファイルが並ぶため、一覧から除外し、取り込み時に対にし、後片付けする処理が要る。しかも失敗すると片割れだけが残る。名前への埋め込みなら本体と必ず一緒に動き、既存のフラットな受信箱の仕組みをそのまま使える。メモは対象外
メモは capture-store に着地し、素材と違ってまだフォルダの欄を持たない。スキーマ追加が要るので今回は素材(写真・動画・音声・URL)に絞った。
2. エディタ内から開く素材サイドピークの導出フォルダ
同じ素材なのに、ギャラリーでは「自分で付けた + ノート由来」、サイドピークでは「自分で付けた」だけ、と食い違っていた。参照表を通して揃えた。
Test Plan
pnpm exec tsc --noEmit— エラーなしpnpm vitest run— 263 ファイル / 3277 テスト全パス(新規 15 件: 送信名の往復 10・送り先の履歴 5)pnpm build— 成功pnpm run lint:deps— 0 error(既存の warning のみ)pnpm manual:check— 問題なしgit diffにシークレット・API キーが含まれないことを確認+ 新しいフォルダ…で入力欄が出てフォーカスされる / Enter で確定し候補と履歴の先頭に載る🤖 Generated with Claude Code