@atolis-hq/wake 0.1.18 → 0.1.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -37,7 +37,8 @@ export const indexHtml = `<!DOCTYPE html>
|
|
|
37
37
|
.statusbar .meta { color: rgba(255, 255, 255, 0.72); }
|
|
38
38
|
.pill { padding: 0.15rem 0.5rem; border-radius: 999px; font-size: 0.75rem; font-weight: 600; }
|
|
39
39
|
.pill-idle { background: #1f3d2c; color: #7fe3a3; }
|
|
40
|
-
.pill-
|
|
40
|
+
.pill-polling { background: #1f3350; color: #7fb3ff; }
|
|
41
|
+
.pill-working { background: #2d1f50; color: #c79bff; }
|
|
41
42
|
.pill-paused { background: #4a3510; color: #ffcf7f; }
|
|
42
43
|
nav { display: flex; gap: 0.25rem; padding: 0.4rem 1rem 0 0.3rem; background: var(--brand-darker); border-bottom: 1px solid #2c313a; }
|
|
43
44
|
nav button { background: none; border: none; border-bottom: 2px solid transparent; color: rgba(255, 255, 255, 0.65); padding: 0.4rem 0.7rem 0.45rem; margin-bottom: -1px; cursor: pointer; font-size: 0.85rem; transition: color 0.12s ease; }
|
|
@@ -112,16 +112,26 @@ export async function buildStatus(input) {
|
|
|
112
112
|
input.stateStore.listRecentRunRecords(1),
|
|
113
113
|
buildBoard(input),
|
|
114
114
|
]);
|
|
115
|
-
const
|
|
116
|
-
|
|
115
|
+
const [tickLock, runnerLock] = await Promise.all([
|
|
116
|
+
readLockInfo(input.stateStore.paths.tickLockFile, input.now),
|
|
117
|
+
readLockInfo(input.stateStore.paths.runnerLockFile, input.now),
|
|
118
|
+
]);
|
|
119
|
+
const tickLockLive = tickLock.present && tickLock.pidAlive === true;
|
|
120
|
+
const runnerLockLive = runnerLock.present && runnerLock.pidAlive === true;
|
|
117
121
|
// A quota-paused runner (#67) no longer stops the loop - routing falls
|
|
118
122
|
// sideways to another candidate in the tier, so only the manual pause file
|
|
119
123
|
// is a hard stop here. Per-runner health is surfaced separately below.
|
|
124
|
+
//
|
|
125
|
+
// Intake (tick.lock) and agent execution (runner.lock) are separate locks -
|
|
126
|
+
// an in-flight agent run holds only runner.lock, so both must be checked or
|
|
127
|
+
// the pill reads "idle" for the entire duration of a run.
|
|
120
128
|
const loopState = paused
|
|
121
129
|
? 'paused'
|
|
122
|
-
:
|
|
123
|
-
? '
|
|
124
|
-
:
|
|
130
|
+
: runnerLockLive
|
|
131
|
+
? 'working'
|
|
132
|
+
: tickLockLive
|
|
133
|
+
? 'polling'
|
|
134
|
+
: 'idle';
|
|
125
135
|
const runnerHealth = ledger?.runners ?? {};
|
|
126
136
|
const lastEvent = recentEvents[0];
|
|
127
137
|
const lastRun = recentRuns[0];
|
|
@@ -155,7 +165,8 @@ export async function buildStatus(input) {
|
|
|
155
165
|
loopState,
|
|
156
166
|
paused,
|
|
157
167
|
runnerHealth,
|
|
158
|
-
lock,
|
|
168
|
+
lock: tickLock,
|
|
169
|
+
runnerLock,
|
|
159
170
|
lastEvent: lastEvent === undefined
|
|
160
171
|
? undefined
|
|
161
172
|
: {
|
package/dist/src/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const wakeVersion = "0.1.
|
|
1
|
+
export const wakeVersion = "0.1.19+ga9612b2";
|