Security: - Add path traversal protection (safe_vault_path) for all file operations - Sanitize markdown preview with DOMPurify to prevent XSS - Fix encryption: decrypted content no longer written back to disk - Harden CSP for Tauri v2 production mode Code quality: - Remove dead code (cache.rs, NoteView, unused tabs/activeTab state) - Fix stale closure in debounced save using refs - Fix image paste to use domToMarkdown instead of innerText - Single-pass widget rendering (was 3 sequential innerHTML clobbers) - Move snapshot logic into save callback - Remove no-op updateWikilinks in drag-and-drop - Wire CSS editor to Cmd+U shortcut - Replace hardcoded vault path with portable fallback Performance: - LazyLock static regexes for WIKILINK_RE and TAG_RE - Fix duplicate dirs_config_path, update CSS commands Release: - Bump version to 1.0.0 - Rewrite README with project documentation - Update CHANGELOG with 1.0.0 entry - Update .gitignore for build artifacts and vault data - Update canvas dependency path - Fix canvas API compatibility (onSelectionChange, removed props)
44 lines
No EOL
1.3 KiB
JSON
44 lines
No EOL
1.3 KiB
JSON
{
|
|
"$schema": "https://schema.tauri.app/config/2",
|
|
"productName": "Graph Notes",
|
|
"version": "1.0.0",
|
|
"identifier": "com.graphnotes.app",
|
|
"build": {
|
|
"beforeDevCommand": "npm run dev",
|
|
"devUrl": "http://localhost:1420",
|
|
"beforeBuildCommand": "npm run build",
|
|
"frontendDist": "../dist"
|
|
},
|
|
"app": {
|
|
"windows": [
|
|
{
|
|
"title": "Graph Notes",
|
|
"width": 1400,
|
|
"height": 900,
|
|
"minWidth": 900,
|
|
"minHeight": 600,
|
|
"decorations": true,
|
|
"resizable": true
|
|
}
|
|
],
|
|
"security": {
|
|
"csp": "default-src 'self' tauri: https://tauri.localhost; script-src 'self' 'unsafe-eval' 'unsafe-inline'; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com data:; img-src 'self' asset: https://asset.localhost http://asset.localhost blob: data: tauri: https://tauri.localhost; connect-src 'self' ipc: http://ipc.localhost tauri: https://tauri.localhost"
|
|
}
|
|
},
|
|
"plugins": {
|
|
"fs": {
|
|
"requireLiteralLeadingDot": false
|
|
}
|
|
},
|
|
"bundle": {
|
|
"active": true,
|
|
"targets": "all",
|
|
"icon": [
|
|
"icons/32x32.png",
|
|
"icons/128x128.png",
|
|
"icons/128x128@2x.png",
|
|
"icons/icon.icns",
|
|
"icons/icon.ico"
|
|
]
|
|
}
|
|
} |