@wrongstack/webui-server 0.308.5 → 0.308.7

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/dist/index.js CHANGED
@@ -7809,9 +7809,9 @@ Run npx tsc --noEmit to verify the fix. Output the fixed file paths.`;
7809
7809
  this.orchestrator = new PhaseOrchestrator({
7810
7810
  graph,
7811
7811
  ctx: {
7812
- executeTask: async (task, phaseId, env) => {
7812
+ executeTask: async (task, phaseId, env, signal) => {
7813
7813
  this.logger.info(`[Goal] [${phaseId}] Executing: ${task.title}`);
7814
- const result = await this.executeTaskWithAgent(task, phaseId, env);
7814
+ const result = await this.executeTaskWithAgent(task, phaseId, env, signal);
7815
7815
  this.logger.info(`[Goal] [${phaseId}] Completed: ${task.title}`);
7816
7816
  if (chimeraReview) {
7817
7817
  void this.runChimeraReview(task, phaseId, result, env?.cwd);
@@ -7981,7 +7981,7 @@ Run npx tsc --noEmit to verify the fix. Output the fixed file paths.`;
7981
7981
  }
7982
7982
  return this.defaultPhases();
7983
7983
  }
7984
- async executeTaskWithAgent(task, phaseId, env) {
7984
+ async executeTaskWithAgent(task, phaseId, env, signal) {
7985
7985
  if (!task.assignee) {
7986
7986
  const nick = assignNickname("executor", this.usedNicknames);
7987
7987
  this.usedNicknames.add(nick.key);
@@ -7995,11 +7995,11 @@ Description: ${task.description}
7995
7995
  Phase: ${phaseId}
7996
7996
  Priority: ${task.priority}
7997
7997
  Type: ${task.type}`;
7998
- const signal = this.abort?.signal ?? new AbortController().signal;
7998
+ const runSignal = signal && this.abort?.signal ? AbortSignal.any([this.abort.signal, signal]) : signal ?? this.abort?.signal ?? new AbortController().signal;
7999
7999
  const prevCwd = this.context.cwd;
8000
8000
  if (env?.cwd) this.context.cwd = env.cwd;
8001
8001
  try {
8002
- return await this.agent.run(prompt, { signal });
8002
+ return await this.agent.run(prompt, { signal: runSignal });
8003
8003
  } finally {
8004
8004
  this.context.cwd = prevCwd;
8005
8005
  }
@@ -11971,7 +11971,7 @@ function buildKanbanAgentPrompt(board, task, assignment, leaseId) {
11971
11971
  const dependencies = (task.dependsOn ?? []).map((dependencyId) => board.tasks.find((candidate) => candidate.id === dependencyId)).filter((dependency) => Boolean(dependency)).map((dependency) => `- ${dependency.title} [${dependency.status}] (${dependency.id})`);
11972
11972
  const checks = task.successCriteria?.map((check) => `- ${check.description}`).join("\n");
11973
11973
  const metrics = task.goalMetrics?.map(
11974
- (metric) => `- ${metric.name}: ${metric.current ?? "n/a"}${metric.target !== void 0 ? ` / ${metric.target}` : ""}${metric.unit ? ` ${metric.unit}` : ""} [${metric.status}]`
11974
+ (metric) => `- ${metric.name}: ${metric.current ?? "n/a"}${metric.target !== void 0 ? ` / ${metric.direction === "at_most" ? "\u2264" : "\u2265"} ${metric.target}` : ""}${metric.unit ? ` ${metric.unit}` : ""} [${metric.status}]`
11975
11975
  ).join("\n");
11976
11976
  const chain = task.chain ? [
11977
11977
  `chainId: ${task.chain.chainId}`,
@@ -7723,9 +7723,9 @@ Run npx tsc --noEmit to verify the fix. Output the fixed file paths.`;
7723
7723
  this.orchestrator = new PhaseOrchestrator({
7724
7724
  graph,
7725
7725
  ctx: {
7726
- executeTask: async (task, phaseId, env) => {
7726
+ executeTask: async (task, phaseId, env, signal) => {
7727
7727
  this.logger.info(`[Goal] [${phaseId}] Executing: ${task.title}`);
7728
- const result = await this.executeTaskWithAgent(task, phaseId, env);
7728
+ const result = await this.executeTaskWithAgent(task, phaseId, env, signal);
7729
7729
  this.logger.info(`[Goal] [${phaseId}] Completed: ${task.title}`);
7730
7730
  if (chimeraReview) {
7731
7731
  void this.runChimeraReview(task, phaseId, result, env?.cwd);
@@ -7895,7 +7895,7 @@ Run npx tsc --noEmit to verify the fix. Output the fixed file paths.`;
7895
7895
  }
7896
7896
  return this.defaultPhases();
7897
7897
  }
7898
- async executeTaskWithAgent(task, phaseId, env) {
7898
+ async executeTaskWithAgent(task, phaseId, env, signal) {
7899
7899
  if (!task.assignee) {
7900
7900
  const nick = assignNickname("executor", this.usedNicknames);
7901
7901
  this.usedNicknames.add(nick.key);
@@ -7909,11 +7909,11 @@ Description: ${task.description}
7909
7909
  Phase: ${phaseId}
7910
7910
  Priority: ${task.priority}
7911
7911
  Type: ${task.type}`;
7912
- const signal = this.abort?.signal ?? new AbortController().signal;
7912
+ const runSignal = signal && this.abort?.signal ? AbortSignal.any([this.abort.signal, signal]) : signal ?? this.abort?.signal ?? new AbortController().signal;
7913
7913
  const prevCwd = this.context.cwd;
7914
7914
  if (env?.cwd) this.context.cwd = env.cwd;
7915
7915
  try {
7916
- return await this.agent.run(prompt, { signal });
7916
+ return await this.agent.run(prompt, { signal: runSignal });
7917
7917
  } finally {
7918
7918
  this.context.cwd = prevCwd;
7919
7919
  }
@@ -11788,7 +11788,7 @@ function buildKanbanAgentPrompt(board, task, assignment, leaseId) {
11788
11788
  const dependencies = (task.dependsOn ?? []).map((dependencyId) => board.tasks.find((candidate) => candidate.id === dependencyId)).filter((dependency) => Boolean(dependency)).map((dependency) => `- ${dependency.title} [${dependency.status}] (${dependency.id})`);
11789
11789
  const checks = task.successCriteria?.map((check) => `- ${check.description}`).join("\n");
11790
11790
  const metrics = task.goalMetrics?.map(
11791
- (metric) => `- ${metric.name}: ${metric.current ?? "n/a"}${metric.target !== void 0 ? ` / ${metric.target}` : ""}${metric.unit ? ` ${metric.unit}` : ""} [${metric.status}]`
11791
+ (metric) => `- ${metric.name}: ${metric.current ?? "n/a"}${metric.target !== void 0 ? ` / ${metric.direction === "at_most" ? "\u2264" : "\u2265"} ${metric.target}` : ""}${metric.unit ? ` ${metric.unit}` : ""} [${metric.status}]`
11792
11792
  ).join("\n");
11793
11793
  const chain = task.chain ? [
11794
11794
  `chainId: ${task.chain.chainId}`,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wrongstack/webui-server",
3
- "version": "0.308.5",
3
+ "version": "0.308.7",
4
4
  "license": "MIT",
5
5
  "description": "WrongStack WebUI HTTP/WebSocket server module — extracted from @wrongstack/webui in PR #243/244 to remove the CLI -> @wrongstack/webui/server cross-package edge (audit §3.1.1). Pure backend: HTTP routes, WebSocket handlers, MCP tool wrappers, HTML serving. The web frontend lives in @wrongstack/webui; this package is the standalone server it can run on.",
6
6
  "keywords": [
@@ -40,17 +40,17 @@
40
40
  ],
41
41
  "dependencies": {
42
42
  "ws": "^8.21.3",
43
- "@wrongstack/mcp": "0.308.5",
44
- "@wrongstack/core": "0.308.5",
45
- "@wrongstack/providers": "0.308.5",
46
- "@wrongstack/runtime": "0.308.5",
47
- "@wrongstack/requirement-intake": "0.308.5",
48
- "@wrongstack/sdd": "0.308.5",
49
- "@wrongstack/kanban": "0.308.5",
50
- "@wrongstack/sage": "0.308.5",
51
- "@wrongstack/techstack": "0.308.5",
52
- "@wrongstack/tools": "0.308.5",
53
- "@wrongstack/vector-memory": "0.308.5"
43
+ "@wrongstack/mcp": "0.308.7",
44
+ "@wrongstack/providers": "0.308.7",
45
+ "@wrongstack/core": "0.308.7",
46
+ "@wrongstack/kanban": "0.308.7",
47
+ "@wrongstack/requirement-intake": "0.308.7",
48
+ "@wrongstack/sage": "0.308.7",
49
+ "@wrongstack/sdd": "0.308.7",
50
+ "@wrongstack/runtime": "0.308.7",
51
+ "@wrongstack/tools": "0.308.7",
52
+ "@wrongstack/techstack": "0.308.7",
53
+ "@wrongstack/vector-memory": "0.308.7"
54
54
  },
55
55
  "devDependencies": {
56
56
  "@types/node": "^26.2.0",