5d4a2c8fe1
- Explorer: every non-hidden file is listed with its own icon and tab kind (image, video, audio, pdf, code, text, other); settings show_all_types, hidden_extensions and show_annotation_files; kinds without a viewer open a placeholder card, never the text editor - crates/annotate: non-destructive image annotations (strokes, lines, rectangles, ellipses, text) with strict sidecar JSON validation, hit testing, zoom/pan transforms and undo - engine: file.info, file.hash, file.neighbours, image.annotations.load and save (a corrupt sidecar is kept as .bad, the image is never modified), header-only image sizing for PNG, JPEG, GIF, WebP, BMP and SVG - sync server: publish notes or folders as static HTML (raw HTML escaped, strict CSP, publish: false honoured, no attachments) and expiring revocable share links, with per-route rate limits and audit rows - ui-egui: "Last edit - name, time ago" in the status bar from server.file_meta - specs and designs: file viewers spec, 20 PaperCraft exports rated 8.2 of 10 (design/files/RATING.md), annotate and viewer briefs Verified with cargo xtask ci (fmt, clippy -D warnings, workspace tests, layers, tree, i18n). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
40 lines
991 B
TOML
40 lines
991 B
TOML
[package]
|
|
name = "notescraft-sync-server"
|
|
description = "NotesCraft vault sync service: pairing, change log and file blobs over HTTP"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
rust-version.workspace = true
|
|
publish = false
|
|
|
|
[lib]
|
|
path = "src/lib.rs"
|
|
|
|
[[bin]]
|
|
name = "notescraft-sync-server"
|
|
path = "src/main.rs"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
axum = { workspace = true }
|
|
craft-atomic = { workspace = true }
|
|
futures-core = "0.3"
|
|
notescraft-collab = { workspace = true }
|
|
notescraft-markdown = { workspace = true }
|
|
notescraft-sync = { workspace = true }
|
|
pulldown-cmark = { workspace = true, features = ["html"] }
|
|
rusqlite = { workspace = true }
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
sha2 = { workspace = true }
|
|
tokio = { workspace = true }
|
|
|
|
[dev-dependencies]
|
|
notescraft-engine = { workspace = true }
|
|
notescraft-vault = { workspace = true }
|
|
axum = { workspace = true }
|
|
tokio = { workspace = true }
|
|
ureq = { workspace = true }
|