* chore: enforce test directory conventions
Move package, app, and tool tests out of src and add guard enforcement so source directories stay source-only.
* ci: use guard and package-scoped tests
Run the new repository guard in CI and keep test execution aligned with package-scoped commands after removing root aliases.
* ci: align stable release guard check
Use the new repository guard in stable release verification after replacing the residual-JS-only script.
* chore: tighten test layout enforcement
Enforce sibling tests directories, typecheck moved test suites with dedicated configs, and refresh remaining guidance that pointed at src-based tests.
* chore: clarify no-emit test tsconfigs
Explicitly disable declaration-only emit in test tsconfigs so review tooling sees they are no-emit typecheck configs.
The IPC server in createJsonIpcServer attached only a 'data' handler to
incoming sockets. The server's response is sent via socket.end(payload),
which races with the client's own socket.end() in requestJsonIpc (called
immediately after reading the response). On Windows named pipes with
Node 24 this race produces an EPIPE write error on the server side. With
no 'error' listener, that error is unhandled and crashes the entire
daemon process, so tools-dev reports "daemon did not expose status in time".
Adding a no-op error listener on the connection socket absorbs benign
close-races without affecting normal operation. The client side
already has an error listener, so this matches the existing pattern.
Reproduced deterministically on Windows 11 + Node v24.14.0.
* feat(dev): add desktop tools-dev control plane
* refactor(sidecar): split Open Design contracts
Move Open Design-specific sidecar protocol definitions into @open-design/contracts so sidecar and platform can remain descriptor-driven primitives.
* refactor(daemon): organize package sources
Keep daemon app code, tests, and sidecar entrypoints in separate package directories so each layer can be built and verified independently.
* chore(repo): streamline maintenance entrypoints
Centralize agent guidance by directory and reduce root command chains while preserving the existing build scope.
* docs: translate agent guidance to English
* fix(sidecar): tolerate stale IPC sockets
Remove stale Unix socket files only after confirming no listener is active, so tools-dev can restart after unclean shutdowns.