the avatar draws: serve the rig over loopback, not the opaque scheme
This commit is contained in:
parent
a5f0fadba8
commit
3d3eb2cc8e
4 changed files with 144 additions and 42 deletions
|
|
@ -50,25 +50,18 @@ Singleton {
|
|||
+ "These are the postures the presence system already uses. "
|
||||
+ "Use them sparingly, where the shift is real."
|
||||
|
||||
// The rig is not in the repo and never will be — it is licensed assets on
|
||||
// Casey's own device (TASK-59). So its absence is the ordinary state of any
|
||||
// machine that has not staged it, and it must read as "not set up here"
|
||||
// rather than as a broken face.
|
||||
property bool rigPresent: rigProbe.exists
|
||||
FileView {
|
||||
id: rigProbe
|
||||
path: root.rigDir + "/index.html"
|
||||
preload: true
|
||||
}
|
||||
|
||||
// No pre-flight check on the rig.
|
||||
//
|
||||
// There was one, reading `FileView.exists`, and it reported false for a
|
||||
// directory that was plainly there — so the guard meant to explain a
|
||||
// missing rig became the thing preventing a present one from loading. The
|
||||
// host already fails loudly and specifically when the directory is wrong,
|
||||
// and `onExited` puts `joined` back, so the honest answer is to let it try
|
||||
// and report what actually happened. A guard that can be wrong about the
|
||||
// world is worse than no guard.
|
||||
function join() {
|
||||
if (root.joined)
|
||||
return;
|
||||
if (!root.rigPresent) {
|
||||
console.log("[face] no rig at " + root.rigDir
|
||||
+ " — stage it with tools/stage-face.sh; not joining");
|
||||
return;
|
||||
}
|
||||
host.running = true;
|
||||
root.joined = true;
|
||||
}
|
||||
|
|
@ -114,6 +107,33 @@ Singleton {
|
|||
|
||||
signal tapped(string area)
|
||||
|
||||
// Reachable by name, so the dial, a launcher and the agent all summon her
|
||||
// the same way rather than each growing a copy (TASK-30/31). `status`
|
||||
// answers rather than assumes — an agent that cannot ask whether she is up
|
||||
// has to guess, and guessing is what a verb table exists to stop.
|
||||
IpcHandler {
|
||||
target: "face"
|
||||
|
||||
function toggle(): void {
|
||||
root.toggle();
|
||||
}
|
||||
|
||||
function join(): void {
|
||||
root.join();
|
||||
}
|
||||
|
||||
function leave(): void {
|
||||
root.leave();
|
||||
}
|
||||
|
||||
function status(): string {
|
||||
return JSON.stringify({
|
||||
joined: root.joined,
|
||||
rig: root.rigDir
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Socket {
|
||||
id: sock
|
||||
path: root.socketPath
|
||||
|
|
|
|||
Loading…
Reference in a new issue