Skip to content

Release v1.106.2 - #1383

Merged
hitalin merged 23 commits into
mainfrom
develop
Nov 12, 2026
Merged

hitalin merged 23 commits into
mainfrom
develop

Conversation

@hitalin

@hitalin hitalin commented Nov 12, 2026

Copy link
Copy Markdown
Collaborator

変更

機能の追加は無い。出荷済みの版 (v1.105.0 以降) で起きている問題の修正が中心。

修正

挙動が変わる点

ドキュメント

確認していないこと

実機での確認はどれもしていない (Android のバックアップと復元、手元の CLI を繋いでの動作、ルームの通知、別の機械への設定の持ち込み)。通っているのはテストと CI。

残り (閉じない)

閉じる issue

Closes #1351
Closes #1353
Closes #1354
Closes #1356
Closes #1374

🤖 Generated with Claude Code

hitalin and others added 23 commits November 11, 2026 23:27
#1123 の「元ノートが消えた純 Renote を隠す」は表示述語にあり、
アカウントごとのカラムにしか効いていなかった。束ねる面は述語を通らず
束の可視性で判定するので、再起動後のキャッシュ行と取り直した行が
空のノートとして出ていた。

束の可視性に同じ条件を足す。本体を持つ variant が残っていれば
それが主ビューになるので隠さない。引用 (本文か添付が残る) も隠さない。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
データディレクトリの再編 (#1334) で push の状態と通知の処理位置は
state/ の下に移ったが、除外規則の正本は旧配置の直下のパスを名指しした
ままで、v1.105.0 以降は端末外バックアップと端末間の移行に載っていた。
別の端末に戻すと、その端末の登録と対になっていない push の状態が
「登録済み」に見えて届かない。

規則 2 つ (Android 11 以下 / 12 以上) に state と cache を足す。旧配置の
行は移行前の端末のために残す。配置を変えたら規則も変わることを、
Layout と規則を突き合わせるテストで確かめる。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
backups/ は再編の移行前の退避で旧配置の写しなので、載せると state/ を
外した意味が退避経由で消える。logs/ はこの端末だけの記録。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
載せるのは設定だけにする。notecli.db はトークンを別に外してあるので
戻しても再ログインが要り、設定のアカウントは再ログインで結び直せる
(#1332)。他人の本文を含み、大きさでバックアップ全体を止めうる。

data/ (メモ / AI セッション / 人格と記憶) は他人の本文を含むので
クラウドには載せないが、機種変更で記録が消えないよう端末間の直接移行
には載せる。Android 11 以下の規則は 2 つを分けられないので外す。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
組 (sources) はアカウントを機械ごとの内部 ID で持ち、#1332 の再結合は
アカウントを 1 つ持つカラムしか見ていなかった。設定を別の機械に持って
いくと、取得側が手元に無いアカウントの組を黙って落とし、カラムが理由
なしに空になっていた。

組にも portable な account (user@host) を持たせ、カラムと同じ規則で
結び直す。ログインしていないアカウントの組があるときは、カラムに
アカウント名を出して知らせる。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
保護対象を「CLI の作業場所の親」として求めていた。データディレクトリの
再編 (#1334) で作業場所は state/notemaid/workspace に移り、人格と記憶の
ある data/notemaid/ は対象から外れて、書込要求が通常の確認に流れていた。

人格と記憶の場所を配置の正本 (Layout) から求めて渡す。作業場所の隣
(notemaid の状態) は今までどおり守る。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
読み終える前は全アカウントが「無い」に見え、ログイン済みのアカウントにも
通知が一瞬出る。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…enote-1353

fix: 全アカウントの面で、元ノートが消えた Renote を出さない (#1353)
…ayout-1356

fix(android): 再編後の state/ と cache/ を端末外バックアップから外す (#1356)
…-1374

fix(android): notecli.db と data/ を端末外バックアップから外す (#1374)
…yout-1351

fix(ai): 手元の CLI から人格と記憶への書込要求を、再編後も自動で拒否する (#1351)
…rebind-1354

fix(deck): 全アカウントカラムの組を、別の機械でも結び直す (#1354)
CLI の tool 呼び出しはデバイスの dispatcher が確認を出すが、宣言表の
alwaysConfirm を読んでおらず、soul.propose (常に確認) が「今後確認
しない」の記憶で省略できた。notemaid のターン実行器にある汚染の規則も
この経路には無かった。

- 宣言で「常に確認」の capability は、経路に関わらず記憶を見ない
- CLI が何を読んだかは追えないので、CLI 経由の記憶 / 人格への書込は
  他人の本文を読んだ後と同じに扱い、毎回確認する。tool 一覧から外す
  案は #1188 の袋小路に戻るので採らない
- AGENTS.md の本文を出所判定の trusted に数えない (仕様と文書に揃える)。
  AI が skills.append で書けるので、そこにしか無い宛先は untrusted

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
判定は保護された場所の字面の一致だけで、作業場所からの相対パス、
.. を挟んだパス、cd 先、~/、作業場所の中のシンボリックリンク越しの
書込要求は拾えなかった。

文字列をパスらしい一片に割り、作業場所を起点に解いて、リンクを解いた
実体の場所でも見る。コマンドが実行時に組み立てるパスまでは追えない
(その分は「外部で変更されました」の検知が受ける)。

CLI 経由の書込全般を毎回確認にする案は、使い勝手に見合わないので
採らないと文書に残す。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
fix(ai): 手元の CLI 経由でも、人格と記憶の書込の確認を省略させない (#1351)
環境を引き継いでいるのは実装の結果で、決定として書かれていなかった。
利用者が AI として選んだ本人なので、普段の記憶・設定・MCP・skill を
使わせる。CLI 自身が作業フォルダに溜める記憶が NoteDeck の確認と保護の
外にあることも書いておく。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
docs(ai): 手元の CLI は利用者の環境のまま動かす (隔離しない) と明記する
データディレクトリの再編 (#1334) の前のまま残っていた記述を直す。
古い場所を読んだ人や AI が、守る対象や置き場を取り違える
(#1351 の自動拒否が外れたのも同じ型)。

- DEVELOPMENT.md: 配置図、注入の順番の BOOTSTRAP、「実装中」の文言
- PRIVACY.md: ローカルに保存されるデータの表
- site の notemaid のページ (4 言語): 持ち物の置き場
- heartbeat.rs 冒頭: 状態ファイルの場所と、廃止した橋

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
「トークンは含まない」と書いていたが、キーチェーンが使えない環境では
notemaid-accounts.json にトークンも入る (所有者だけが読める)。
安全なファイルだと読まれないように条件を書く。

PRIVACY.md の更新履歴は、Android の段落を足した日 (#1375) と表を直した
日を分ける。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…-1352

docs(ai): 人格と記憶まわりの記述を、再編後の配置に合わせる (#1352)
- ルームの新着通知を押してもメッセージのカラムが開くだけだった。
  通知の deep link は正しく、受け側がルームの会話を開く口を持って
  いなかった。名前を引く API が無いので、タイトルは会話のメッセージ
  から埋める
- スクラッチパッドに貼るコードが「やり直す」を押すよう案内していたが、
  このボタンは窓の作り直しで無くなった。今の手順 (オフにしてからオン)
  に合わせる

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…rding-1357

fix(push): ルームの通知からそのルームを開き、登録コードの古い文言を直す (#1357)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Nov 12, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 5 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

Run configuration

Commits

Reviewing files that changed from the base of the PR and between 26d588d and 419ae61.

Files ignored due to path filters: 3

  • Cargo.lock is excluded by !**/*.lock
  • src-tauri/openapi.json is excluded by !src-tauri/openapi.json
  • src/i18n/locale.generated.ts is excluded by !**/*.generated.*
Files selected for processing: 38

  • DESIGN.md
  • DEVELOPMENT.md
  • PRIVACY.md
  • crates/notecore/locales/en-US.json
  • crates/notecore/locales/ja-JP.json
  • crates/notecore/tests/fixtures/push_register_code.is
  • crates/notemaid/Cargo.toml
  • crates/notemaid/src/acp/provider.rs
  • crates/notemaid/src/ai_turn/compose.rs
  • crates/notemaid/src/ai_turn/mod.rs
  • crates/notemaid/src/heartbeat.rs
  • locales/en-US.source.json
  • locales/en-US.yml
  • locales/ja-JP.yml
  • package.json
  • site/docs/notemaid.md
  • site/en/docs/notemaid.md
  • site/ko/docs/notemaid.md
  • site/zh/docs/notemaid.md
  • src-tauri/Cargo.toml
  • src-tauri/android/backup_rules.xml
  • src-tauri/android/data_extraction_rules.xml
  • src-tauri/src/push_store_file.rs
  • src-tauri/tauri.conf.json
  • src/capabilities/dispatcher.test.ts
  • src/capabilities/dispatcher.ts
  • src/components/deck/DeckChatColumn.vue
  • src/components/deck/DeckCrossSourcesColumn.vue
  • src/composables/useDeepLink.account.test.ts
  • src/composables/useDeepLink.ts
  • src/core/apiBridge.ts
  • src/services/accountRebind.test.ts
  • src/services/accountRebind.ts
  • src/services/columnSource.test.ts
  • src/services/columnSource.ts
  • src/services/noteGroup.test.ts
  • src/services/noteGroup.ts
  • src/stores/deck.ts
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@github-actions github-actions Bot added 📖Doc Documentation related issue/PR rust Pull requests that update rust code javascript Pull requests that update javascript code labels Nov 12, 2026
@github-actions

Copy link
Copy Markdown

API surface diff

外部アプリ向け API 面 (src-tauri/openapi.json / src/bindings.ts) が変更されています。
互換性への影響 (#709) をレビューしてください。

src-tauri/openapi.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Full diff
diff --git a/src-tauri/openapi.json b/src-tauri/openapi.json
index b73857d..3f897fa 100644
--- a/src-tauri/openapi.json
+++ b/src-tauri/openapi.json
@@ -6,7 +6,7 @@
     "license": {
       "name": "MIT"
     },
-    "version": "1.106.1"
+    "version": "1.106.2"
   },
   "paths": {
     "/api": {

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying notedeck with  Cloudflare Pages  Cloudflare Pages

Latest commit: 419ae61
Status: ✅  Deploy successful!
Preview URL: https://8ddc625d.notedeck-d3a.pages.dev
Branch Preview URL: https://develop.notedeck-d3a.pages.dev

View logs

@hitalin hitalin self-assigned this Nov 12, 2026
@claude

claude Bot commented Nov 12, 2026

Copy link
Copy Markdown

Code review

No issues found. Checked for bugs and CLAUDE.md compliance.

@hitalin
hitalin merged commit 1f6040d into main Nov 12, 2026
31 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment