@quolu/lattice 0.61.1 → 0.61.2
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.
- package/README.md +9 -0
- package/package.json +1 -1
- package/src/runtime-pull-intake.mjs +2 -2
- package/src/runtime-windows-process.mjs +10 -0
package/README.md
CHANGED
|
@@ -189,6 +189,15 @@ lattice todo seam-proposal apply --plan <key> # isolated worktre
|
|
|
189
189
|
lattice todo seam-proposal land --plan <key> --names names.json
|
|
190
190
|
```
|
|
191
191
|
|
|
192
|
+
`lattice todo status --json` exposes `dispatch_frontier`: every ready task is the default
|
|
193
|
+
parallel set. Starting one of them does not require `--parallel-frontier` or
|
|
194
|
+
`--override-reason`. Those flags record intent; they are not gates.
|
|
195
|
+
`--serial-confirmed` and `--serialization-reviewed` are accepted only for compatibility.
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
lattice todo start --plan <key> --task <id>
|
|
199
|
+
```
|
|
200
|
+
|
|
192
201
|
Full CLI surface: `lattice --help`, then
|
|
193
202
|
`lattice <plan|run|event|todo|sensor|factory-diagnostics|runtime-errors|bridge|hooks> --help`.
|
|
194
203
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quolu/lattice",
|
|
3
|
-
"version": "0.61.
|
|
3
|
+
"version": "0.61.2",
|
|
4
4
|
"description": "Schedulability compiler for multi-agent development: observe real code boundaries, refactor the conflicting seam, recompile the plan for parallel execution",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Quo / クオ at kitepon.dev",
|
|
@@ -13,7 +13,7 @@ import { classifyObservedDiff } from './runtime-decision-verifier.mjs';
|
|
|
13
13
|
import { captureWorktreeDiff, detectCheckpointFindings } from './runtime-diff-observer.mjs';
|
|
14
14
|
import { acquireRuntimeLifecycleLock } from './runtime-lifecycle-lock.mjs';
|
|
15
15
|
import { observeManagedProcessStartIdentity } from './runtime-managed-supervisor.mjs';
|
|
16
|
-
import { observeWindowsWorkerProcess } from './runtime-windows-process.mjs';
|
|
16
|
+
import { deliverWorkerSignal, observeWindowsWorkerProcess } from './runtime-windows-process.mjs';
|
|
17
17
|
import { ensureScriptedWorktree } from './runtime-scripted-worktree.mjs';
|
|
18
18
|
import {
|
|
19
19
|
BOUNDARY_MANIFEST_SCHEMA, selfDigest, validateRuntimeBoundaryManifest, validateRuntimePlan,
|
|
@@ -948,7 +948,7 @@ async function signalAttachedWorker(intake, signal) {
|
|
|
948
948
|
|| observed.process_group_id !== intake.worker.process_group_id) {
|
|
949
949
|
fail('WORKER_IDENTITY_MISMATCH', 'signal前のlstart/argv/pgidがattach bindingと一致しない');
|
|
950
950
|
}
|
|
951
|
-
try {
|
|
951
|
+
try { deliverWorkerSignal(intake.worker.pid, signal); }
|
|
952
952
|
catch { fail('WORKER_SIGNAL_FAILED', `workerへ${signal}を送れない`); }
|
|
953
953
|
return true;
|
|
954
954
|
}
|
|
@@ -21,6 +21,16 @@ export function parseWindowsCreationDate(value) {
|
|
|
21
21
|
return parsed.toISOString();
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
export function deliverWorkerSignal(pid, signal) {
|
|
25
|
+
if (!Number.isSafeInteger(pid) || pid < 1) throw new Error('pidが正整数でない');
|
|
26
|
+
const jobControl = signal === 'SIGSTOP' || signal === 'SIGCONT';
|
|
27
|
+
if (process.platform === 'win32' && jobControl) {
|
|
28
|
+
return { delivered: false, recorded: true };
|
|
29
|
+
}
|
|
30
|
+
process.kill(pid, signal);
|
|
31
|
+
return { delivered: true, recorded: true };
|
|
32
|
+
}
|
|
33
|
+
|
|
24
34
|
export async function observeWindowsWorkerProcess(pid) {
|
|
25
35
|
if (!Number.isSafeInteger(pid) || pid < 1) {
|
|
26
36
|
throw new Error('pidが正整数でない');
|