Core open source VienDesu! backend
  • Rust 99.5%
  • Nix 0.5%
Find a file
2026-07-12 22:42:59 +03:00
auth split data layer into viendesu-protocol crate 2026-05-03 18:24:43 +03:00
captcha split data layer into viendesu-protocol crate 2026-05-03 18:24:43 +03:00
core add blogs: blog id derived from the owning entity, CommonMark articles; skeleton across protocol/core/http/mcp 2026-07-12 22:42:59 +03:00
email Initial commit 2026-03-03 14:45:57 +03:00
http add blogs: blog id derived from the owning entity, CommonMark articles; skeleton across protocol/core/http/mcp 2026-07-12 22:42:59 +03:00
mcp add blogs: blog id derived from the owning entity, CommonMark articles; skeleton across protocol/core/http/mcp 2026-07-12 22:42:59 +03:00
protocol add blogs: blog id derived from the owning entity, CommonMark articles; skeleton across protocol/core/http/mcp 2026-07-12 22:42:59 +03:00
viendesu mcp: add viendesu-mcp — MCP server as a mountable library 2026-07-12 20:42:43 +03:00
.envrc Initial commit 2026-03-03 14:45:57 +03:00
.gitignore Initial commit 2026-03-03 14:45:57 +03:00
Cargo.toml mcp: add viendesu-mcp — MCP server as a mountable library 2026-07-12 20:42:43 +03:00
flake.lock Initial commit 2026-03-03 14:45:57 +03:00
flake.nix Initial commit 2026-03-03 14:45:57 +03:00
README.md fix Patch field defaults: serde_with::apply must precede #[data] 2026-07-02 19:39:01 +03:00

viendesu core

Gotchas

Patch fields in requests

#[serde_with::apply(Patch => #[serde(default)])] must be written above #[data]. #[data] emits its serde derives above the re-emitted item, so an apply placed below it expands too late to add #[serde(default)] to the fields — omitting a Patch field then fails with missing field instead of meaning Keep. Guarded by protocol/tests/patch_defaults.rs.

TODO: fix in eva itself (make #[data] hoist remaining item attributes above its derives, or reject a late serde_with::apply), then drop this note.