Crafter.Debug/interfaces
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jorijn van der Graaf 37e0d9b9ae
feat(discovery): find live instances across sandboxes; build info
Each app writes $HOME/.cache/crafter-debug/instances/<id>.json (0600,
in a 0700 directory) and holds an flock on <id>.lock while it lives.
Every `flatpak run` is its own pid namespace, so pids collide and can
neither name an instance nor tell whether it lives; a random id names
it and the lock says it lives, since flock works across sandboxes on
the shared filesystem. An app killed without its destructor leaves its
files with the lock free, and the next listing removes them. The lock
is created under a temporary name, locked, then renamed, as in
Crafter.Review's LifetimeLock, so it is never seen unlocked while its
app lives. Inside a Flatpak the record also carries the sandbox's
instance id (for `flatpak enter`) and the host pid of its init (to end
the whole sandbox from the host).

project.cpp now generates :BuildInfo per core variant: a hash of the
library's sources and the path of the client built with it. App and
client share the core, so they report the same id exactly when built
from the same sources; this is the safety net under building the
client in the same pass as the app.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 01:56:31 +01:00
..
Crafter.Debug-Condition.cppm feat(registry): commands, watches, samples, the timeline and conditions 2026-11-01 01:40:59 +01:00
Crafter.Debug-Registry.cppm feat(session): serve requests without blocking a thread, pause and step 2026-11-01 01:53:15 +01:00
Crafter.Debug-Session.cppm feat(session): serve requests without blocking a thread, pause and step 2026-11-01 01:53:15 +01:00
Crafter.Debug-Timeline.cppm feat(session): serve requests without blocking a thread, pause and step 2026-11-01 01:53:15 +01:00
Crafter.Debug.Core-BuildInfo.cppm feat(discovery): find live instances across sandboxes; build info 2026-11-01 01:56:31 +01:00
Crafter.Debug.Core-Codec.cppm feat(core): Value, reflection, codecs and results, shared by app and client 2026-11-01 01:31:58 +01:00
Crafter.Debug.Core-Discovery.cppm feat(discovery): find live instances across sandboxes; build info 2026-11-01 01:56:31 +01:00
Crafter.Debug.Core-Protocol.cppm feat(session): serve requests without blocking a thread, pause and step 2026-11-01 01:53:15 +01:00
Crafter.Debug.Core-Reflect.cppm feat(core): Value, reflection, codecs and results, shared by app and client 2026-11-01 01:31:58 +01:00
Crafter.Debug.Core-Result.cppm feat(core): Value, reflection, codecs and results, shared by app and client 2026-11-01 01:31:58 +01:00
Crafter.Debug.Core-Value.cppm feat(core): Value, reflection, codecs and results, shared by app and client 2026-11-01 01:31:58 +01:00
Crafter.Debug.Core.cppm feat(discovery): find live instances across sandboxes; build info 2026-11-01 01:56:31 +01:00
Crafter.Debug.cppm feat(session): serve requests without blocking a thread, pause and step 2026-11-01 01:53:15 +01:00