id: f27b8bab5e3b4806974458841b20e6a0
parent_id: cbe709faa5a34fa3a8fc913794bdf36a
item_type: 1
item_id: 980c3eb587294e4383474b94988f2f88
item_updated_time: 1785670314287
title_diff: "[]"
body_diff: "[{\"diffs\":[[0,\"e — \"],[-1,\"Rust Backend\"],[1,\"Tech Stack &\"],[0,\" Arc\"]],\"start1\":11,\"start2\":11,\"length1\":20,\"length2\":20},{\"diffs\":[[0,\"nd it.\\\n\\\n\"],[1,\"### Cross-language dependency path workaround\\\n\\\nCargo workspaces **cannot** resolve dependency paths that point above the workspace root. When `sb-common` is declared in `[workspace.dependencies]` with `path = \\\"../skara-brae-common/rust\\\"`, Cargo resolves the path relative to the **consuming crate** (e.g., `crates/sb-api/`), not the workspace root — producing the error `failed to read .../skara-brae-server/skara-brae-common/rust/Cargo.toml`.\\\n\\\n**Current workaround (local solo dev):** use an **absolute path** in each crate's `[dependencies]`:\\\n\\\n```toml\\\n# In crates/sb-api/Cargo.toml and crates/sb-core/Cargo.toml:\\\n[dependencies]\\\nsb-common = { path = \\\"/home/jan/Development/skara-brae/skara-brae-common/rust\\\" }\\\n```\\\n\\\nDo **not** declare `sb-common` in `[workspace.dependencies]` — only in each consuming crate.\\\n\\\n**For CI / contributors:** switch to **git submodules** (`server/common/`, `client/common/`) so each repo is self-contained. This is the planned long-term solution. For local solo work, the absolute path is functional.\\\n\\\n\"],[0,\"---\\\n\\\n## \"]],\"start1\":7775,\"start2\":7775,\"length1\":16,\"length2\":1046},{\"diffs\":[[0,\"ace root\"],[1,\" (DO NOT put sb-common in [workspace.dependencies])\"],[0,\"\\\n├── cra\"]],\"start1\":8910,\"start2\":8910,\"length1\":16,\"length2\":67},{\"diffs\":[[0,\"  └── Cargo.toml\"],[1,\"         # sb-common via absolute path\"],[0,\"\\\n│   │\\\n│   ├── s\"]],\"start1\":9732,\"start2\":9732,\"length1\":32,\"length2\":70},{\"diffs\":[[0,\" │   ├── lib.rs\\\n\"],[1,\"│   │   │   ├── items.rs\\\n\"],[0,\"│   │   │   ├── \"]],\"start1\":9868,\"start2\":9868,\"length1\":32,\"length2\":57},{\"diffs\":[[0,\"  └── Cargo.toml\"],[1,\"         # sb-common via absolute path\"],[0,\"\\\n│   │\\\n│   ├── s\"]],\"start1\":11728,\"start2\":11728,\"length1\":32,\"length2\":70},{\"diffs\":[[0,\"mmon\"],[-1,\" = { path = \\\"../skara-brae-common/rust\\\" }`). See [Multi-Repo Structure](#multi-repo-structure\"],[1,\"` with an absolute path). See [Cross-language dependency path workaround](#cross-language-dependency-path-workaround\"],[0,\") ab\"]],\"start1\":13335,\"start2\":13335,\"length1\":101,\"length2\":124},{\"diffs\":[[0,\"mon = { path = \\\"\"],[-1,\"..\"],[1,\"/home/jan/Development/skara-brae\"],[0,\"/skara-brae-comm\"]],\"start1\":15415,\"start2\":15415,\"length1\":34,\"length2\":64},{\"diffs\":[[0,\"mon = { path = \\\"\"],[-1,\"..\"],[1,\"/home/jan/Development/skara-brae\"],[0,\"/skara-brae-comm\"]],\"start1\":15815,\"start2\":15815,\"length1\":34,\"length2\":64}]"
metadata_diff: {"new":{},"deleted":[]}
encryption_cipher_text: 
encryption_applied: 0
updated_time: 2026-08-02T11:39:56.018Z
created_time: 2026-08-02T11:39:56.018Z
is_locked: 0
type_: 13