id: 08da6a1e63e34c7386cf258da6323f59
parent_id: c9e1754a9ba94f2cadfbce9e1605148f
item_type: 1
item_id: 088737f31c514f1da21cc42c0ab6acc1
item_updated_time: 1785670139491
title_diff: "[]"
body_diff: "[{\"diffs\":[[0,\"us: \"],[-1,\"Concept \"],[1,\"Implementation Started (\"],[0,\"Phase\"],[1,\" 1)\"],[0,\"\\\n\\\n##\"]],\"start1\":36,\"start2\":36,\"length1\":21,\"length2\":40},{\"diffs\":[[0,\"ns log**\"],[1,\", **workspace status**\"],[0,\" |\\\n\\\n---\\\n\"]],\"start1\":5995,\"start2\":5995,\"length1\":16,\"length2\":38},{\"diffs\":[[0,\"root\"],[-1,\" follows the cross-project convention\"],[1,\":\"],[0,\" `~/\"]],\"start1\":12264,\"start2\":12264,\"length1\":45,\"length2\":9},{\"diffs\":[[0,\"oject>/`\"],[-1,\" (s\"],[1,\". S\"],[0,\"ee [Deve\"]],\"start1\":12288,\"start2\":12288,\"length1\":19,\"length2\":19},{\"diffs\":[[0,\"bf5014e)\"],[-1,\")\"],[0,\". Legacy\"]],\"start1\":12412,\"start2\":12412,\"length1\":17,\"length2\":16},{\"diffs\":[[0,\"jects`) \"],[-1,\"get\"],[1,\"are\"],[0,\" symlink\"]],\"start1\":12518,\"start2\":12518,\"length1\":19,\"length2\":19},{\"diffs\":[[0,\"ked \"],[1,\"f\"],[0,\"or \"],[-1,\"migrated on touch\"],[1,\"IDE discoverability\"],[0,\".\\\n\\\n`\"]],\"start1\":12536,\"start2\":12536,\"length1\":28,\"length2\":31},{\"diffs\":[[0,\"nd it.\\\n\\\n\"],[1,\"### Cross-language dependency path workaround\\\n\\\nCargo workspaces cannot resolve dependency paths above the workspace root. The `sb-common = { path = \\\"../skara-brae-common/rust\\\" }` syntax fails at the workspace level. Current workaround: use an **absolute path** in each crate's `Cargo.toml`:\\\n\\\n```toml\\\n# In crates/sb-api/Cargo.toml and crates/sb-core/Cargo.toml:\\\nsb-common = { path = \\\"/home/jan/Development/skara-brae/skara-brae-common/rust\\\" }\\\n```\\\n\\\n**This needs a portable solution before CI/CD** — the plan is to switch to **git submodules** (`server/common/`, `client/common/`) when self-contained CI is needed. For local solo work, the absolute path is functional.\\\n\\\n\"],[0,\"---\\\n\\\n## \"]],\"start1\":14919,\"start2\":14919,\"length1\":16,\"length2\":683},{\"diffs\":[[0,\"nits.\\\n\\\n---\\\n\\\n\"],[1,\"## Workspace Status (2026-08-02)\\\n\\\nAll three repos are initialized locally, committed, and symlinks to IDE dirs created:\\\n\\\n| Repo | Path | Git status | IDE symlink |\\\n|---|---|---|---|\\\n| skara-brae-server | `~/Development/skara-brae/skara-brae-server/` | Committed (5 crates, `cargo check` passes, health endpoint) | `~/RustroverProjects/skara-brae-server` |\\\n| skara-brae-client | `~/Development/skara-brae/skara-brae-client/` | Committed (Vue 3 + Vite + Pinia scaffolded via create-vite) | `~/WebstormProjects/skara-brae-client` |\\\n| skara-brae-common | `~/Development/skara-brae/skara-brae-common/` | Committed (data/items/weapons.json, rust crate sb-common, ts package @skara-brae/common) | — |\\\n\\\n**Remote:** No remote configured yet. Next step: create bare repos on the basement server (192.168.1.2) and/or push to Codeberg as temporary remote. When Hetzner Forgejo is stood up, migrate there.\\\n\\\n---\\\n\\\n\"],[0,\"## MVP Scope\"]],\"start1\":16545,\"start2\":16545,\"length1\":24,\"length2\":923},{\"diffs\":[[0,\"vices |\\\n\"],[-1,\"\"],[0,\"| Infra \"]],\"start1\":21733,\"start2\":21733,\"length1\":16,\"length2\":16},{\"diffs\":[[0,\"Forgejo)** |\"],[1,\"\\\n| Cargo sibling dep path | **Absolute path** (`/home/jan/Development/...`) as local workaround; git submodule for CI |\"],[0,\"\\\n\\\n---\\\n\\\n## Re\"]],\"start1\":21816,\"start2\":21816,\"length1\":24,\"length2\":143}]"
metadata_diff: {"new":{},"deleted":[]}
encryption_cipher_text: 
encryption_applied: 0
updated_time: 2026-08-02T11:29:55.919Z
created_time: 2026-08-02T11:29:55.919Z
is_locked: 0
type_: 13