Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
7f543ca
feat(settings): ファイル名 slug 化サービスを追加 (#913)
hitalin Aug 11, 2026
de3d1bf
feat(settings): ID 凍結の最小変換サービスを追加 (#913)
hitalin Aug 11, 2026
1924809
feat(settings): sidecar コレクションを ID→ファイル名対応表化 (#913)
hitalin Aug 11, 2026
e7a7920
feat(stores): widget/plugin/クエリを対応表参照 + copy-adopt 移行に配線 (#913)
hitalin Aug 11, 2026
2260df2
feat(settings): 単一ファイル型コレクションの対応表サービスを追加 (#913)
hitalin Aug 11, 2026
a4cd5df
feat(stores): テーマを対応表参照 + copy-adopt 移行に配線 (#913)
hitalin Aug 11, 2026
0da14c1
feat(stores): スキルを対応表参照 + copy-adopt 移行に配線 (#913)
hitalin Aug 11, 2026
8b89a07
feat(settings): 新規割当に preferredBase フックを追加 (#913)
hitalin Aug 11, 2026
ba49d59
feat(deck-profile): プロファイル ID をファイル名から分離 (#913)
hitalin Aug 11, 2026
6b90440
test(deck-profile): ID 分離・凍結・移行の配線テスト (#913)
hitalin Aug 11, 2026
872320c
fix(settings): custom.css の編集履歴を ALLOWED_ROOT_FILES に追加 (#913)
hitalin Aug 11, 2026
5d83330
feat(settings): バックアップ復元の atomic 化とキー検証・casefold 衝突検査 (#913)
hitalin Aug 11, 2026
8777d2d
feat(stores): storeSha512 記録と applyStoreUpdate・storeId ファイル名の基盤 (#913)
hitalin Aug 11, 2026
6ab584d
feat(misstore): インストール経路の同一性を storeId 照合に統一 (#913)
hitalin Aug 11, 2026
6f1a466
feat(misstore): 新規インストールのローカル ID を storeId に統一 (#913)
hitalin Aug 11, 2026
6602796
chore: 設定ファイル名と表示名の分離を develop にマージ (#913)
hitalin Aug 11, 2026
dbc1786
feat(settings): 重複 ID の読込スキップをトーストで可視化 (#913)
hitalin Aug 11, 2026
13c6444
chore: 重複 ID 警告のトースト配線を develop にマージ (#913)
hitalin Aug 11, 2026
7d21094
feat(common): CodeDiffView 共通 diff コンポーネントを追加 (#981)
hitalin Aug 11, 2026
b5749c7
feat(confirm): ConfirmOptions.diff で適用前の全文 diff を表示 (#981)
hitalin Aug 11, 2026
5fb9a25
feat(misstore): 配布アイテムの更新検知と baseline 無通知記録 (#1040)
hitalin Aug 12, 2026
a00013b
feat(misstore): 更新適用の diff 付き確認とハッシュ不一致の 1 回リトライ (#1040)
hitalin Aug 12, 2026
cf104c2
feat(store): ストアカードに更新導線を配線 (#1040)
hitalin Aug 12, 2026
322837e
chore: ストア配布アイテムの更新導線を develop にマージ (#1040)
hitalin Aug 12, 2026
ffcbec8
chore: bump version to 1.47.0
hitalin Aug 12, 2026
544e0e8
fix(deps): lru を 0.18 に更新して RUSTSEC-2026-0253 を解消
hitalin Aug 12, 2026
30f35f3
fix(id-freeze): CRLF の frontmatter で id 注入がずれるのを直す
hitalin Aug 12, 2026
7bd07b1
fix(misstore): 追加インストール経路の権限拡大を無確認で通さない
hitalin Aug 12, 2026
9d894b3
fix(settings-files): 失敗経路で対応表と実ファイルがずれないようにする
hitalin Aug 12, 2026
15ee279
fix(store-cards): 更新ボタンのガード漏れと diff 色の直書きを直す
hitalin Aug 12, 2026
abd79c3
fix(widgets): サイドバーの「外す」で本体が消えないようにする (#1048)
hitalin Aug 12, 2026
ba7f42a
fix(store-cards): 「外す」と「本体削除」をアイコンで見分けられるようにする (#1048)
hitalin Aug 12, 2026
bdacec5
chore(settings): 未使用の deck.activeProfileId 宣言を削除 (#1042)
hitalin Aug 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion DESIGN.md
Original file line number Diff line number Diff line change
Expand Up @@ -247,7 +247,7 @@ NoteDeck のスカラー設定 (選択・トグル・ユーザー preferences)
|---|---|---|
| テーマ選択状態 | `theme.manual`, `theme.selectedDarkThemeId` | テーマ **定義** は `themes/*.ndtheme.json5` に別置き |
| モード | `modes.realtime`, `modes.offline` | |
| デック | `deck.activeProfileId`, `deck.wallpaper` | プロファイル **定義** は `profiles/*.ndprofile.json5` に別置き |
| デック | `deck.wallpaper` | プロファイル **定義** は `profiles/*.ndprofile.json5` に別置き。アクティブプロファイルはウィンドウごとに切り替わるためファイルに持たない |
| ミュート | `mute.emojis` 等 | ワード / インスタンスミュートはサーバー側設定 |
| 投稿フォームの挙動 | `postForm.preview`, `postForm.rememberVisibility` 等 | ボタン構成そのものは `postform.json5` |
| キャッシュ | `cache.evictionPreset`, `chat.cacheEnabled` 等 | |
Expand Down
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "notedeck",
"description": "Misskey Pro — integrated deck environment (IDE) for Misskey power users",
"private": true,
"version": "1.46.2",
"version": "1.47.0",
"type": "module",
"packageManager": "pnpm@11.18.0",
"engines": {
Expand Down Expand Up @@ -53,6 +53,7 @@
"@codemirror/language-data": "^6.5.2",
"@codemirror/lint": "^6.9.7",
"@codemirror/lsp-client": "^6.2.5",
"@codemirror/merge": "^6.12.2",
"@codemirror/state": "^6.6.0",
"@codemirror/view": "^6.43.1",
"@lezer/highlight": "^1.2.3",
Expand Down
14 changes: 14 additions & 0 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 6 additions & 12 deletions src-tauri/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "notedeck"
version = "1.46.2"
version = "1.47.0"
description = "Misskey Pro — integrated deck environment (IDE) for Misskey power users"
edition = "2021"
license = "AGPL-3.0-only"
Expand Down Expand Up @@ -37,7 +37,7 @@ tower-http = { version = "0.6", features = ["cors"] }
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls-native-roots", "stream", "json"] }
url = "2"
sha2 = "0.10"
lru = "0.16"
lru = "0.18"
regex = "1"
async-trait = "0.1"
mime_guess = "2"
Expand Down
2 changes: 1 addition & 1 deletion src-tauri/openapi.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"license": {
"name": "MIT"
},
"version": "1.46.2"
"version": "1.47.0"
},
"paths": {
"/api": {
Expand Down
25 changes: 21 additions & 4 deletions src-tauri/src/commands/settings.rs
Original file line number Diff line number Diff line change
Expand Up @@ -221,10 +221,20 @@ pub async fn export_settings_json(app: tauri::AppHandle) -> Result<bool> {
Ok(true)
}

/// import_settings_json の結果。`imported: false` はダイアログのキャンセル。
/// `warnings` はスキップ / 別名退避したエントリの説明 (#913 付随修正 — フロントは
/// 復元完了メッセージに件数 + 内容を表示する)。
#[derive(serde::Serialize, specta::Type)]
#[serde(rename_all = "camelCase")]
pub struct ImportSettingsResult {
pub imported: bool,
pub warnings: Vec<String>,
}

/// Import settings from a JSON bundle via open dialog.
#[tauri::command]
#[specta::specta]
pub async fn import_settings_json(app: tauri::AppHandle) -> Result<bool> {
pub async fn import_settings_json(app: tauri::AppHandle) -> Result<ImportSettingsResult> {
use std::collections::BTreeMap;
use tauri_plugin_dialog::DialogExt;

Expand All @@ -237,7 +247,11 @@ pub async fn import_settings_json(app: tauri::AppHandle) -> Result<bool> {
.blocking_pick_file();

let Some(src) = src else {
return Ok(false); // user cancelled
// user cancelled
return Ok(ImportSettingsResult {
imported: false,
warnings: vec![],
});
};

let src_path = src
Expand All @@ -249,7 +263,10 @@ pub async fn import_settings_json(app: tauri::AppHandle) -> Result<bool> {
let bundle: BTreeMap<String, String> = serde_json::from_str(&raw)
.map_err(|e| NoteDeckError::InvalidInput(format!("Invalid JSON: {e}")))?;

store::import_bundle(&base_dir, &bundle)?;
let warnings = store::import_bundle(&base_dir, &bundle)?;

Ok(true)
Ok(ImportSettingsResult {
imported: true,
warnings,
})
}
Loading
Loading