27. Limitations
What isn't done yet, or is deliberately out of scope:
- Signatures are shown as first written.
ucm viewandfindshow a definition's signature text from when it was added, so afterucm mvof a type it can show the old name. (Type search matches by hash and isn't affected.) - The VS Code extension is a thin client for
ucm lsp. The server is tested end to end; the extension's sidebar and commands are tested by hand. There's no Zed extension yet. - Definitions open read-only (
ucm:documents); editing goes through a scratch file. - Cached watch and test results can go stale when they depend on the outside world (files, the clock,
randomness);
--freshre-runs them. import.metais location-dependent: it's evaluated inside.ucm/cache, so ucm warns about it.ucm importskips test files (importing) and refusesdeclare module/declare global,import x = require(), decorators and top-level statements.- Adding the same code at two paths creates two definitions (lineage salts, see
hashing). To share one definition under two names, use
ucm alias. - TypeScript 7 (the Go compiler) has a different API and isn't supported; ucm uses
typescript@6. - Transitive npm dependencies aren't part of a hash; only the direct
name@versionis. - Server-only npm packages are found by a heuristic: no browser build, and an entry that imports Node builtins.
- Transactions lock per process (data).
built from 5890e54f