@frankzhang2026/opencode-android-orchestrator 1.0.4 → 1.1.0

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.
Files changed (107) hide show
  1. package/CHANGELOG.md +78 -0
  2. package/README.md +79 -18
  3. package/dist/config/queue-policy.d.ts.map +1 -1
  4. package/dist/config/queue-policy.js +1 -2
  5. package/dist/config/queue-policy.js.map +1 -1
  6. package/dist/doctor/index.d.ts.map +1 -1
  7. package/dist/doctor/index.js +14 -3
  8. package/dist/doctor/index.js.map +1 -1
  9. package/dist/doctor/installation.d.ts +1 -1
  10. package/dist/doctor/installation.d.ts.map +1 -1
  11. package/dist/doctor/installation.js +10 -1
  12. package/dist/doctor/installation.js.map +1 -1
  13. package/dist/index.d.ts +1 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +1 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/installer/adaptive-templates.d.ts +4 -1
  18. package/dist/installer/adaptive-templates.d.ts.map +1 -1
  19. package/dist/installer/adaptive-templates.js +49 -13
  20. package/dist/installer/adaptive-templates.js.map +1 -1
  21. package/dist/installer/android-project.d.ts +3 -1
  22. package/dist/installer/android-project.d.ts.map +1 -1
  23. package/dist/installer/android-project.js.map +1 -1
  24. package/dist/installer/capabilities-script.d.ts +2 -0
  25. package/dist/installer/capabilities-script.d.ts.map +1 -0
  26. package/dist/installer/capabilities-script.js +77 -0
  27. package/dist/installer/capabilities-script.js.map +1 -0
  28. package/dist/installer/gradle-verification.d.ts.map +1 -1
  29. package/dist/installer/gradle-verification.js +13 -6
  30. package/dist/installer/gradle-verification.js.map +1 -1
  31. package/dist/installer/init.d.ts.map +1 -1
  32. package/dist/installer/init.js +2 -1
  33. package/dist/installer/init.js.map +1 -1
  34. package/dist/installer/opencode-config.d.ts +3 -3
  35. package/dist/installer/opencode-config.js +1 -1
  36. package/dist/installer/project-capabilities.d.ts +35 -0
  37. package/dist/installer/project-capabilities.d.ts.map +1 -0
  38. package/dist/installer/project-capabilities.js +82 -0
  39. package/dist/installer/project-capabilities.js.map +1 -0
  40. package/dist/installer/upgrade.d.ts.map +1 -1
  41. package/dist/installer/upgrade.js +9 -1
  42. package/dist/installer/upgrade.js.map +1 -1
  43. package/dist/queue/cli.d.ts.map +1 -1
  44. package/dist/queue/cli.js +32 -5
  45. package/dist/queue/cli.js.map +1 -1
  46. package/dist/queue/executor.d.ts +1 -0
  47. package/dist/queue/executor.d.ts.map +1 -1
  48. package/dist/queue/executor.js +155 -11
  49. package/dist/queue/executor.js.map +1 -1
  50. package/dist/queue/process-ownership.d.ts +12 -0
  51. package/dist/queue/process-ownership.d.ts.map +1 -0
  52. package/dist/queue/process-ownership.js +58 -0
  53. package/dist/queue/process-ownership.js.map +1 -0
  54. package/dist/queue/queue.d.ts +25 -1
  55. package/dist/queue/queue.d.ts.map +1 -1
  56. package/dist/queue/queue.js +152 -11
  57. package/dist/queue/queue.js.map +1 -1
  58. package/dist/queue/service.d.ts.map +1 -1
  59. package/dist/queue/service.js +19 -2
  60. package/dist/queue/service.js.map +1 -1
  61. package/dist/queue/storage.d.ts +3 -1
  62. package/dist/queue/storage.d.ts.map +1 -1
  63. package/dist/queue/storage.js +25 -15
  64. package/dist/queue/storage.js.map +1 -1
  65. package/dist/queue/supervision.d.ts +38 -0
  66. package/dist/queue/supervision.d.ts.map +1 -0
  67. package/dist/queue/supervision.js +247 -0
  68. package/dist/queue/supervision.js.map +1 -0
  69. package/dist/queue/tools.d.ts.map +1 -1
  70. package/dist/queue/tools.js +4 -2
  71. package/dist/queue/tools.js.map +1 -1
  72. package/docs/MIGRATION.md +110 -9
  73. package/docs/QUEUE.md +360 -6
  74. package/docs/SECURITY.md +5 -2
  75. package/docs/TROUBLESHOOTING.md +82 -8
  76. package/package.json +1 -1
  77. package/templates/.opencode/agents/scheduled-coder.md +22 -0
  78. package/templates/.opencode/agents/scheduled-planner.md +73 -2
  79. package/templates/.opencode/skills/scheduled-quality-coder/SKILL.md +34 -2
  80. package/templates/.opencode/skills/scheduled-quality-orchestrator/SKILL.md +65 -4
  81. package/templates/.opencode/skills/scheduled-quality-reviewer/SKILL.md +22 -0
  82. package/templates/AGENTS.md.fragment +10 -4
  83. package/templates/README.md +3 -1
  84. package/templates/automation/config.schema.json +212 -22
  85. package/templates/automation/task-contract.schema.json +617 -21
  86. package/templates/automation/tasks/TASK-TEMPLATE.json.example +31 -3
  87. package/templates/automation/verification/collect.init.gradle +98 -0
  88. package/templates/automation/verification/contract.cjs +93 -0
  89. package/templates/automation/verification/inventory.cjs +433 -0
  90. package/templates/automation/verification/project.cjs +172 -0
  91. package/templates/automation/verification/recovery.cjs +426 -0
  92. package/templates/scripts/automation/acceptance-report.sh +29 -0
  93. package/templates/scripts/automation/claim-task.sh +35 -2
  94. package/templates/scripts/automation/integration-scope-gate.sh +3 -3
  95. package/templates/scripts/automation/lib.sh +167 -17
  96. package/templates/scripts/automation/orchestrate-task.sh +7 -1
  97. package/templates/scripts/automation/preflight.sh +1 -2
  98. package/templates/scripts/automation/quality-gate.sh +10 -1
  99. package/templates/scripts/automation/record-red.sh +182 -32
  100. package/templates/scripts/automation/resume-task.sh +3 -0
  101. package/templates/scripts/automation/scope-gate.sh +4 -4
  102. package/templates/scripts/automation/show-acceptance-review.sh +8 -0
  103. package/templates/scripts/automation/status.sh +38 -0
  104. package/templates/scripts/automation/submit-review.sh +10 -1
  105. package/templates/scripts/automation/validate-contract.sh +56 -3
  106. package/templates/scripts/automation/verify-integration.sh +3 -0
  107. package/templates/scripts/automation/verify-task.sh +17 -0
@@ -0,0 +1,247 @@
1
+ import { spawn } from "node:child_process";
2
+ import { randomBytes } from "node:crypto";
3
+ import { existsSync } from "node:fs";
4
+ import { join } from "node:path";
5
+ import { fileURLToPath } from "node:url";
6
+ import { atomicJson, git, invariant, isAlive, processIdentity, readJson, recoverLock, sha256 } from "./storage.js";
7
+ import { ownedTree, processSnapshot, signalOwned } from "./process-ownership.js";
8
+ import { helper } from "./executor.js";
9
+ const entry = fileURLToPath(new URL("./cli.js", import.meta.url));
10
+ const wait = (ms) => new Promise(resolve => setTimeout(resolve, ms));
11
+ export function initialSupervision(policy, now) {
12
+ return { owner: null, token: randomBytes(32).toString("hex"), startedAt: now, deadline: now + policy.maxRunMs,
13
+ stage: "preparation", stageStartedAt: now, stageDeadline: now + policy.maxStageMs,
14
+ state: "RUNNING", stopReason: null, termAt: null, killAt: null, known: [], events: [] };
15
+ }
16
+ export function supervisionEvidence(record) {
17
+ const { token, ...evidence } = record;
18
+ return { ...evidence, ownershipDigest: sha256(token) };
19
+ }
20
+ export function deadlineReason(record, now) {
21
+ if (now < record.startedAt || now < record.stageStartedAt)
22
+ return "Clock moved backwards; ownership review required";
23
+ if (now >= record.deadline)
24
+ return "Approved Worker execution deadline exceeded";
25
+ if (now >= record.stageDeadline)
26
+ return `Approved ${record.stage} stage deadline exceeded`;
27
+ return null;
28
+ }
29
+ function stageFor(queue, run) {
30
+ if (["integrate", "recover", "revalidate"].includes(run.kind))
31
+ return "integration";
32
+ if (run.kind === "abort")
33
+ return "abort";
34
+ const item = queue.item(run.key), file = join(queue.storage.runtime, "state", `${item.taskId}.json`);
35
+ const state = existsSync(file) ? readJson(file).state : item.state;
36
+ if (["READY_TO_COMMIT", "INTEGRATING", "COMPLETED"].includes(state))
37
+ return "integration";
38
+ if (["READY_FOR_REVIEW", "REVIEWING", "CHANGES_REQUESTED"].includes(state))
39
+ return "review";
40
+ if (["PENDING", "CODING"].includes(state))
41
+ return existsSync(join(queue.storage.runtime, "evidence", item.taskId, "baseline.json")) ? "coding" : "baseline";
42
+ return run.supervision.stage;
43
+ }
44
+ function update(queue, runId, owner, action) {
45
+ queue.storage.transaction(document => {
46
+ invariant(document.active?.id === runId, "Supervisor lost its execution reservation");
47
+ invariant(document.active.supervision?.owner?.pid === owner.pid && document.active.supervision.owner.started === owner.started, "Supervisor identity changed");
48
+ action(document.active);
49
+ });
50
+ }
51
+ export function recoverOwnedTransaction(queue, record, worker) {
52
+ if (!existsSync(queue.storage.lockPath))
53
+ return;
54
+ let owner;
55
+ try {
56
+ owner = readJson(queue.storage.lockPath);
57
+ }
58
+ catch (error) {
59
+ // A live transaction creates its lock exclusively before writing its owner
60
+ // and may release it between exists/read. Leave ambiguous bytes untouched;
61
+ // normal transaction acquisition still waits and refuses an occupied lock.
62
+ if (error instanceof SyntaxError || error.code === "ENOENT")
63
+ return;
64
+ throw error;
65
+ }
66
+ if (isAlive(owner))
67
+ return;
68
+ // The process probe runs outside the file read. A short-lived transaction
69
+ // can release its lock and exit before ps answers. Recheck the exact owner
70
+ // before rejecting it, and bind any recovery to this same lock generation.
71
+ try {
72
+ const current = readJson(queue.storage.lockPath);
73
+ if (current.pid !== owner.pid || current.started !== owner.started || current.token !== owner.token)
74
+ return;
75
+ }
76
+ catch (error) {
77
+ if (error instanceof SyntaxError || error.code === "ENOENT")
78
+ return;
79
+ throw error;
80
+ }
81
+ invariant([...(worker ? [worker] : []), ...(record.owner ? [record.owner] : []), ...record.known].some(p => p.pid === owner.pid && p.started === owner.started), "Dead queue lock does not belong to the supervised execution; explicit recovery required");
82
+ recoverLock(queue.storage.lockPath, owner);
83
+ }
84
+ function finishStopped(queue, run) {
85
+ const item = queue.item(run.key), evidence = join(queue.storage.runtime, "evidence", item.taskId);
86
+ // A commit may already be visible. Preserve its transaction for the existing
87
+ // idempotent recovery route; never start integration again here.
88
+ const commit = existsSync(join(evidence, "commit-transaction.json"));
89
+ const state = commit ? "INTEGRATION_BLOCKED" : "BLOCKED";
90
+ const note = `${run.supervision.stopReason}; all owned processes exited; candidate retained`;
91
+ const statePath = join(queue.storage.runtime, "state", `${item.taskId}.json`);
92
+ const previous = existsSync(statePath) ? readJson(statePath) : { revision: 0 };
93
+ atomicJson(statePath, { taskId: item.taskId, state, revision: previous.revision + 1,
94
+ updatedAt: new Date().toISOString(), updatedBy: "worker-supervisor", note });
95
+ let diff = null, head = "";
96
+ const workspacePath = join(queue.storage.runtime, "workspaces", `${item.taskId}.json`);
97
+ if (!commit && existsSync(workspacePath)) {
98
+ const workspace = readJson(workspacePath);
99
+ invariant(git(workspace.taskRoot, ["symbolic-ref", "--short", "HEAD"]) === workspace.taskBranch, "Stopped workspace branch changed");
100
+ head = git(workspace.taskRoot, ["rev-parse", "HEAD"]);
101
+ invariant(head === workspace.baselineHead, "Stopped workspace HEAD changed; preserve lease for explicit recovery");
102
+ diff = helper(workspace.taskRoot, "automation_worktree_diff_sha", [workspace.taskRoot]);
103
+ const patch = helper(workspace.taskRoot, "automation_worktree_patch_at", [workspace.taskRoot]);
104
+ atomicJson(join(evidence, "queue-seal.json"), { runId: run.id, queueKey: item.key, taskRoot: workspace.taskRoot,
105
+ taskBranch: workspace.taskBranch, head, diffSha256: diff, patch, state, sealedAt: new Date().toISOString(), stoppedBySupervisor: true });
106
+ }
107
+ queue.storage.transaction(document => {
108
+ invariant(document.active?.id === run.id && document.active.supervision?.owner?.pid === run.supervision.owner.pid, "Stopped execution changed before sealing");
109
+ document.active.outcome = { state, error: note };
110
+ document.active.supervision.state = "EXITED";
111
+ document.active.supervision.events.push({ at: Date.now(), kind: "exit-confirmed" });
112
+ const current = document.items.find(candidate => candidate.key === item.key);
113
+ current.state = state;
114
+ if (current.baselineRecovery)
115
+ current.baselineRecovery.nextRunAt = null;
116
+ current.sealedDiff = diff;
117
+ current.sealedRunId = diff ? run.id : null;
118
+ current.candidateId = diff ? sha256(`${item.digest}:${head}:${diff}`) : null;
119
+ });
120
+ }
121
+ /** Independent of both Worker event-loop progress and the scheduler lifetime. */
122
+ export async function supervise(queue, runId) {
123
+ const owner = processIdentity(process.pid);
124
+ invariant(owner, "Cannot identify Worker supervisor");
125
+ let run = queue.storage.read().active;
126
+ invariant(run?.id === runId && run.supervision, "Missing approved supervision reservation");
127
+ const previous = run.supervision.owner;
128
+ if (previous && isAlive(previous))
129
+ return;
130
+ recoverOwnedTransaction(queue, run.supervision, run.worker);
131
+ queue.storage.transaction(document => {
132
+ invariant(document.active?.id === runId && document.active.supervision, "Supervision reservation changed");
133
+ const current = document.active.supervision.owner;
134
+ invariant(!current || !isAlive(current), "Supervisor already alive");
135
+ document.active.supervision.owner = owner;
136
+ document.active.supervision.events.push({ at: Date.now(), kind: previous ? "supervisor-restarted" : "supervisor-started" });
137
+ });
138
+ const policy = queue.item(run.key).contract.execution;
139
+ let launched = false;
140
+ try {
141
+ if (!run.worker && !previous) {
142
+ const env = { ...process.env, AUTOMATION_WORKER_TOKEN: run.supervision.token };
143
+ const child = spawn(process.execPath, [entry, "_worker", runId, queue.storage.root], { cwd: queue.storage.root, env, detached: true, stdio: "inherit" });
144
+ child.on("error", () => { });
145
+ child.unref();
146
+ launched = true;
147
+ }
148
+ let previousClock = Date.now(), emptySnapshots = 0;
149
+ for (;;) {
150
+ run = queue.storage.read().active;
151
+ invariant(run?.id === runId && run.supervision, "Supervisor reservation disappeared");
152
+ const record = run.supervision, now = Date.now();
153
+ invariant(now >= previousClock, "Clock moved backwards; retain execution slot");
154
+ previousClock = now;
155
+ if (record.state === "EXITED" || record.state === "OWNERSHIP_BLOCKED")
156
+ return;
157
+ if (!run.worker) {
158
+ invariant(launched && now < record.startedAt + Math.min(policy.maxRunMs, 30000), "Worker launch has no registered ownership; explicit recovery required");
159
+ await wait(250);
160
+ continue;
161
+ }
162
+ const tree = ownedTree(processSnapshot(record.token), run.worker, record.known);
163
+ recoverOwnedTransaction(queue, record, run.worker);
164
+ if (!tree.length) {
165
+ emptySnapshots++;
166
+ if (emptySnapshots < 2) {
167
+ await wait(250);
168
+ continue;
169
+ }
170
+ if (!run.outcome && !record.stopReason)
171
+ update(queue, runId, owner, current => {
172
+ current.supervision.stopReason = "Worker exited without a durable outcome";
173
+ });
174
+ run = queue.storage.read().active;
175
+ if (run.supervision.stopReason)
176
+ finishStopped(queue, run);
177
+ else
178
+ update(queue, runId, owner, current => {
179
+ current.supervision.state = "EXITED";
180
+ current.supervision.events.push({ at: Date.now(), kind: "exit-confirmed" });
181
+ });
182
+ const document = queue.storage.read();
183
+ const final = document.active?.id === runId ? document.active : document.runs.find(candidate => candidate.id === runId);
184
+ invariant(final, "Completed supervision evidence is missing");
185
+ atomicJson(join(queue.storage.runtime, "evidence", queue.item(final.key).taskId, `worker-stop-${runId}.json`), supervisionEvidence(final.supervision));
186
+ return;
187
+ }
188
+ emptySnapshots = 0;
189
+ const stage = stageFor(queue, run);
190
+ const reason = record.stopReason ?? deadlineReason(record, now);
191
+ if (stage !== record.stage && !reason)
192
+ update(queue, runId, owner, current => {
193
+ const s = current.supervision;
194
+ s.stage = stage;
195
+ s.stageStartedAt = now;
196
+ s.stageDeadline = Math.min(s.deadline, now + policy.maxStageMs);
197
+ s.events.push({ at: now, kind: `stage:${stage}` });
198
+ });
199
+ const fresh = tree.filter(p => !record.known.some(k => k.pid === p.pid && k.started === p.started));
200
+ if (fresh.length)
201
+ update(queue, runId, owner, current => {
202
+ const live = new Set(tree.map(p => `${p.pid}:${p.started}`));
203
+ current.supervision.known = [...current.supervision.known.filter(p => !live.has(`${p.pid}:${p.started}`)).slice(-(512 - tree.length)), ...tree];
204
+ });
205
+ if (reason) {
206
+ const signal = record.termAt !== null && now >= record.termAt + policy.terminationGraceMs ? "SIGKILL" : "SIGTERM";
207
+ invariant(record.killAt === null || now < record.killAt + 10000, "Owned processes did not exit after KILL; preserve execution slot");
208
+ update(queue, runId, owner, current => {
209
+ const s = current.supervision;
210
+ s.stopReason = reason;
211
+ if (s.termAt === null)
212
+ s.termAt = now;
213
+ if (signal === "SIGKILL" && s.killAt === null)
214
+ s.killAt = now;
215
+ s.state = signal === "SIGKILL" ? "KILL_SENT" : "TERM_SENT";
216
+ });
217
+ // Stop the Worker first so it cannot start a fresh stage while children
218
+ // handle TERM. Never signal a process group or a name-matched daemon.
219
+ tree.sort((a, b) => Number(b.pid === run.worker.pid) - Number(a.pid === run.worker.pid));
220
+ for (const process of tree) {
221
+ if (record.events.some(e => (e.kind === `${signal}:sent` || e.kind === `${signal}:gone`) && e.pid === process.pid && e.started === process.started))
222
+ continue;
223
+ update(queue, runId, owner, current => current.supervision.events.push({ at: Date.now(), kind: signal, pid: process.pid, started: process.started }));
224
+ const sent = signalOwned(record.token, process, signal, [...record.known, ...fresh]);
225
+ update(queue, runId, owner, current => current.supervision.events.push({ at: Date.now(), kind: `${signal}:${sent ? "sent" : "gone"}`, pid: process.pid, started: process.started }));
226
+ }
227
+ }
228
+ await wait(250);
229
+ }
230
+ }
231
+ catch (error) {
232
+ const message = error instanceof Error ? error.message : String(error);
233
+ // No timeout ever authorizes taking an unknown lock or killing an unknown process.
234
+ try {
235
+ update(queue, runId, owner, current => {
236
+ current.supervision.state = "OWNERSHIP_BLOCKED";
237
+ current.supervision.stopReason = message;
238
+ current.supervision.events.push({ at: Date.now(), kind: "ownership-blocked" });
239
+ });
240
+ queue.storage.transaction(document => { document.fault = `Worker termination requires ownership recovery: ${message}`; });
241
+ }
242
+ finally {
243
+ atomicJson(join(queue.storage.runtime, "evidence", queue.item(run.key).taskId, `worker-stop-${runId}-blocked.json`), { runId, reason: message, at: Date.now() });
244
+ }
245
+ }
246
+ }
247
+ //# sourceMappingURL=supervision.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supervision.js","sourceRoot":"","sources":["../../src/queue/supervision.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/queue/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAIlF,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAIhD,eAAO,MAAM,gBAAgB,yGAA0G,CAAC;AAExI,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,iBAAuB,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CA4GnH;AAED;6DAC6D;AAC7D,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,MAAM,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAmBjH"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/queue/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAKlF,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAIhD,eAAO,MAAM,gBAAgB,yGAA0G,CAAC;AAExI,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,iBAAuB,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CA4GnH;AAED;6DAC6D;AAC7D,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,MAAM,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAqBjH"}
@@ -1,9 +1,10 @@
1
1
  import { tool } from "@opencode-ai/plugin";
2
2
  import { resolve } from "node:path";
3
+ import { gradleBuildRoot } from "../installer/project-capabilities.js";
3
4
  import { installationDoctorChecks } from "../doctor/index.js";
4
5
  import { invariant } from "./storage.js";
5
6
  import { ApprovalLedger } from "./approvals.js";
6
- import { TaskQueue } from "./queue.js";
7
+ import { TaskQueue, publicRun } from "./queue.js";
7
8
  import { serviceStatus, startService, stopService, wakeService } from "./service.js";
8
9
  export const QUEUE_TOOL_NAMES = ["android_orchestrator_snapshot", "android_orchestrator_intake", "android_orchestrator_queue"];
9
10
  export function createQueueTools(worktree, approvals = new ApprovalLedger()) {
@@ -85,7 +86,7 @@ export function createQueueTools(worktree, approvals = new ApprovalLedger()) {
85
86
  if (args.key)
86
87
  return JSON.stringify(queue.details(args.key));
87
88
  const document = queue.storage.read();
88
- return JSON.stringify({ service: serviceStatus(queue), paused: document.paused, fault: document.fault, active: document.active,
89
+ return JSON.stringify({ service: serviceStatus(queue), paused: document.paused, fault: document.fault, active: publicRun(document.active),
89
90
  items: document.items.map(({ key, taskId, state, waitingReason, workspaceStrategy, commitPolicy, targetBranch, taskRoot, dependsOn, sealedDiff, candidateId, completedCommit }) => ({ key, taskId, state, waitingReason, workspaceStrategy, commitPolicy, targetBranch, taskRoot, dependsOn, sealedDiff, candidateId, completedCommit, pushed: false })),
90
91
  notifications: document.notifications.filter(notification => !notification.acknowledged) });
91
92
  }
@@ -141,6 +142,7 @@ export function guardExecutorCommand(input, output, directory) {
141
142
  if (gradle.test(command)) {
142
143
  invariant(directory, "Gradle execution requires the recorded project configuration");
143
144
  const config = new TaskQueue(directory).config();
145
+ invariant(gradleBuildRoot(config, directory) === resolve(directory), "Nested builds must use the managed verification scripts, which select the recorded Gradle root");
144
146
  const allowed = Object.values(config.gradleVerification).flat();
145
147
  const arguments_ = command.slice("./gradlew ".length).split(" ");
146
148
  for (let index = 0; index < arguments_.length; index += 1) {
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/queue/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/queue/tools.ts"],"names":[],"mappings":"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"}
package/docs/MIGRATION.md CHANGED
@@ -1,18 +1,19 @@
1
1
  # Migration guide
2
2
 
3
3
  This guide covers migration to
4
- `@frankzhang2026/opencode-android-orchestrator@1.0.4`. Pin the exact version and
4
+ `@frankzhang2026/opencode-android-orchestrator@1.1.0`. Pin the exact version and
5
5
  prove the migration in a disposable clone before changing a long-lived
6
- repository.
6
+ repository. npm publication of 1.1.0 is pending; use the pinned Registry
7
+ commands below only after publication.
7
8
 
8
9
  ## Choose the migration path
9
10
 
10
11
  | Current state | Correct command after release | Important distinction |
11
12
  | --- | --- | --- |
12
- | No orchestrator files or manifest | `npx @frankzhang2026/opencode-android-orchestrator@1.0.4 init .` | Normal new installation; all runtime-detected Android modules and registered debug verification tasks are discovered automatically. |
13
+ | No orchestrator files or manifest | `npx @frankzhang2026/opencode-android-orchestrator@1.1.0 init .` | Normal new installation; all runtime-detected Android modules and registered debug verification tasks are discovered automatically. |
13
14
  | Published `0.1.0` scaffold only | Remove any project-local `@0.1.0` plugin reference after review, then run `init`. | `0.1.0` did not create a usable managed installation and cannot be upgraded. |
14
- | `0.2.0` through `0.10.0` manifest-managed installation with intact managed/backup content | Run the `1.0.0` `upgrade`; add `--refresh-gradle-discovery` when generated module/task lists are incomplete. | Refresh replaces all derived module metadata, source paths, protected build files, and task allowlists from one Gradle runtime snapshot. Module scope, operator policies, user-owned AGENTS content, and an existing commit-prefix sidecar remain preserved. |
15
- | Healthy `1.0.0` through `1.0.3` installation | Stop the queue service, finish or abort retained workspaces, then run the fixed `1.0.4` `upgrade`. | Pending inbox contracts remain durable. Version 1.0.4 resumes the queue and starts or wakes its service after a newly approved contract is enqueued, while preserving existing scheduling and failure state. |
15
+ | `0.2.0` through `0.10.0` manifest-managed installation with intact managed/backup content | Run the `1.1.0` `upgrade`; add `--refresh-gradle-discovery` when generated module/task lists are incomplete. | Refresh replaces all derived module metadata, source paths, protected build files, and task allowlists from one Gradle runtime snapshot. Module scope, operator policies, user-owned AGENTS content, and an existing commit-prefix sidecar remain preserved. |
16
+ | Healthy `1.0.0` through `1.0.5` installation | Stop the queue service, finish or abort retained workspaces, then run the fixed `1.1.0` `upgrade`. | Pending inbox contracts remain durable. Version 1.1.0 adds V4 test inventories, opt-in V5-V8 recovery/continuity and Android build capabilities; older approved contracts retain their authority. |
16
17
  | Manually copied V3 files, no `.automation-plugin/manifest.json` | Finish active tasks, preserve historical evidence separately, then run `init`. | Exact files can be reused; differing managed files fail as conflicts. |
17
18
  | Healthy older manifest-managed installation | Run `doctor`, then the fixed target version's `upgrade`. | `upgrade` requires a valid installed manifest and intact original backups. |
18
19
  | Healthy current-version manifest | Run `doctor`; repeated `init` or same-version `upgrade` is verification-only and byte-idempotent. | Do not reinstall or delete the manifest. |
@@ -58,7 +59,7 @@ installation of `0.1.0` alone does not require project-file cleanup.
58
59
  After release, initialize with the fixed version:
59
60
 
60
61
  ```sh
61
- npx @frankzhang2026/opencode-android-orchestrator@1.0.4 init .
62
+ npx @frankzhang2026/opencode-android-orchestrator@1.1.0 init .
62
63
  ```
63
64
 
64
65
  New installations default to all-module scope, so multiple application modules
@@ -106,7 +107,7 @@ Use the lifecycle command selected by the active manifest:
106
107
 
107
108
  ```sh
108
109
  npx --yes --registry=https://registry.npmjs.org/ \
109
- @frankzhang2026/opencode-android-orchestrator@1.0.4 upgrade . --json
110
+ @frankzhang2026/opencode-android-orchestrator@1.1.0 upgrade . --json
110
111
  ```
111
112
 
112
113
  The command-level Registry option is useful when a company-wide npm Registry
@@ -136,7 +137,7 @@ computed includes dynamically or a company convention plugin applied
136
137
 
137
138
  ```sh
138
139
  npx --yes --registry=https://registry.npmjs.org/ \
139
- @frankzhang2026/opencode-android-orchestrator@1.0.4 upgrade . \
140
+ @frankzhang2026/opencode-android-orchestrator@1.1.0 upgrade . \
140
141
  --refresh-gradle-discovery --json
141
142
  ```
142
143
 
@@ -220,7 +221,7 @@ use the queue rather than the old direct Shell commands. See [Queue operation](Q
220
221
  Run all checks from the detected Git root:
221
222
 
222
223
  ```sh
223
- npx @frankzhang2026/opencode-android-orchestrator@1.0.4 doctor .
224
+ npx @frankzhang2026/opencode-android-orchestrator@1.1.0 doctor .
224
225
  opencode debug config
225
226
  opencode debug skill
226
227
  opencode debug agent scheduled-planner
@@ -248,6 +249,19 @@ Verify all of the following before switching normal work to the plugin:
248
249
  Complete one small task in a disposable project before accepting the migration
249
250
  for a long-lived repository.
250
251
 
252
+ ## 1.1.0 continuity fixes
253
+
254
+ Upgrade managed scripts and the packaged executor together after resolving
255
+ active/retained tasks through the existing lifecycle checks. Review recovery
256
+ keeps the existing approval, RED/GREEN and sealed-diff protocol. No contract
257
+ or approval schema changes and no automatic retries are introduced.
258
+
259
+ Existing verification matrices remain valid. Rediscovery may record absent
260
+ lint/device capabilities as empty arrays; existing required checks are not
261
+ disabled automatically. Enabling missing lint or requiring missing device
262
+ tasks is an explicit validation failure. Old managed AGENTS blocks are
263
+ replaced through the normal manifest-checked upgrade workflow.
264
+
251
265
  ## Rollback
252
266
 
253
267
  - A failed `init` automatically restores pre-install files before reporting
@@ -268,3 +282,90 @@ for a long-lived repository.
268
282
 
269
283
  See [Troubleshooting](TROUBLESHOOTING.md) for failure-specific diagnostics and
270
284
  [Security](SECURITY.md) before sharing recovery evidence.
285
+
286
+ ## 1.1.0 V5 baseline recovery
287
+
288
+ Version 1.1.0 adds a task-contract protocol, not an automatic
289
+ migration of existing approvals. V3 and V4 contracts retain their existing
290
+ verification and recovery behavior; V4 still cannot resume inventory capture
291
+ once its `baseline.json` exists. New V5 tasks require a newly reviewed contract
292
+ with explicit baseline-only retry counts, backoff and elapsed window. Do not
293
+ edit queued contracts or translate old baseline evidence into checkpoints.
294
+
295
+ The package includes `automation/verification/recovery.cjs`, the shared V4/V5
296
+ validator/schema, queue scheduling and matching agent instructions. Upgrade
297
+ only with stopped service and no retained active workspace using a newly
298
+ versioned development/release package; the existing same-version installer is
299
+ verification-only. The published 1.0.5 package does not acquire these changes
300
+ from this documentation. Preserve pending approvals and historical evidence;
301
+ any scope or recovery-policy change requires a new draft and approval.
302
+
303
+ Validate installation, doctor, upgrade and packaging with the entire managed
304
+ file inventory. Never copy a new recovery script alone into an existing
305
+ installation or alter manifest hashes. No remote publication is part of this
306
+ change. See QUEUE.md for policy fields and the process-interruption limitation.
307
+
308
+ ## 1.1.0 V6 Worker termination
309
+
310
+ Only new V6 approvals with an `execution` policy enable automatic TERM/KILL.
311
+ Existing V5 contracts keep baseline recovery without Worker termination;
312
+ V1..V4 also retain their original behavior. There is no in-place rewriting of
313
+ queued approvals. Stop the service and finish or archive retained workspaces
314
+ before upgrading using a newly versioned package; same-version verification
315
+ still does not apply development templates. The supervisor ships in compiled
316
+ queue code and uses the existing managed validator/schema and Shell resources.
317
+ No separate system service or extra managed resource is installed. Validate
318
+ contract schema, installer, doctor, queue, recovery and package contents together.
319
+
320
+
321
+ ## 1.1.0 V7 stage verification recovery
322
+
323
+ V7 requires new approval of `stageRecovery` plus the V5 baseline and V6 Worker
324
+ policies. Existing contracts and the V4 example remain unchanged. RED/GREEN/
325
+ Reviewer verification commands can retry identified environment failures within
326
+ separate persisted budgets; model/provider calls and integration are unchanged.
327
+ Recovery logic extends the existing managed recovery.cjs. Version 1.1.0 has
328
+ 52 managed resources, including the Android project capability validator.
329
+ Upgrade with 1.1.0 after publication; same-version upgrade does not refresh
330
+ managed templates. See the V7 policy and retained-evidence workflow in QUEUE.md.
331
+
332
+
333
+ ## Android project capability snapshot (1.1.0)
334
+
335
+ Nested builds are selected explicitly by initializing from their Gradle settings
336
+ directory, such as `init /path/to/repo/android`. Discovery records
337
+ `buildRoot: "android"`; installation files and the queue remain at the Git root. Run doctor,
338
+ upgrade and managed scripts from that Git root. Upgrade reuses this selection,
339
+ including `--refresh-gradle-discovery`; it does not search sibling builds.
340
+ An existing root installation is not silently retargeted to a nested build.
341
+ This behavior is included in 1.1.0 source; a same-version upgrade does not
342
+ install changed templates.
343
+
344
+ Fresh runtime discovery records `androidProject.capabilities` version 1 with
345
+ portable module/build-file paths, source sets, direct project-dependency edges
346
+ and verification tasks. Android-reachable JVM libraries are selected transitively.
347
+ All local Test tasks and production assemble variants remain required, so changing
348
+ a dependency also verifies its Android consumers. There is no minimal affected-set
349
+ scheduler. Taskless/disabled variants are not a coverage claim.
350
+
351
+ The new protected `automation/verification/project.cjs` resource brings the
352
+ managed inventory to 52. Installation, doctor and Shell use this same validator.
353
+ An upgrade preserves an existing snapshot without rerunning Gradle; a legacy
354
+ installation retains its legacy source/matrix semantics. Build-layout changes
355
+ require fresh discovery and reviewed configuration regeneration, not manual
356
+ snapshot edits during an approved task. Nested roots without a snapshot, composite builds,
357
+ generated/external/symlink sources and production/test overlaps fail closed.
358
+
359
+ npm publication of 1.1.0 is pending. A same-version upgrade remains
360
+ verification-only and is not a template delivery mechanism.
361
+
362
+
363
+ ## 1.1.0 V8 isolated automatic integration
364
+
365
+ Upgrade executable and managed templates together with a newly versioned package.
366
+ Version 1.1.0 includes these resources; same-version upgrade is verification-only.
367
+ Repository defaults may combine isolatedWorktree and autoCommit, but execution
368
+ still requires a newly approved V8 contract with explicit continuity authority.
369
+ Old queued tasks never inherit that permission. V8 planning snapshots are sealed
370
+ with the draft; existing drafts cannot acquire them through in-place edits.
371
+ See QUEUE.md for planning inputs, completed-queue refresh and recovery boundaries.