@tea-agent/loop-agent 0.24.2 → 0.24.3-beta.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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ### 改进
6
+
7
+ - 发布工作流改为发布已通过完整门禁并经 SHA-256 校验的 npm tarball,避免 `npm publish` 再次触发全量测试、类型检查与构建。
8
+
5
9
  ## [0.24.2] - 2026-07-28
6
10
 
7
11
  ### 重点更新
@@ -239,10 +239,8 @@ export async function generateTaskDagUseCase(input) {
239
239
  reasons: ["dag run-task validate did not report governanceProfile"],
240
240
  });
241
241
  const hasExplicitSpecializedTaskKind = candidateResult.templateSelection.source === "taskKind";
242
- const hasSafeAutomaticTaskSourceRoute = candidateResult.templateSelection.source === "task-source" &&
243
- profileRouting.selectedByProfile !== "supervised" &&
244
- profileRouting.selectedTemplate !== "supervised-implementation";
245
- if (hasExplicitSpecializedTaskKind || hasSafeAutomaticTaskSourceRoute) {
242
+ const hasAutomaticTaskSourceRoute = candidateResult.templateSelection.source === "task-source";
243
+ if (hasExplicitSpecializedTaskKind || hasAutomaticTaskSourceRoute) {
246
244
  profileRouting.selectedTemplate = candidateResult.template;
247
245
  profileRouting.source = hasExplicitSpecializedTaskKind
248
246
  ? "taskKind"
@@ -256,10 +254,9 @@ export async function generateTaskDagUseCase(input) {
256
254
  profileRouting.selectedByProfile = parsed.profile;
257
255
  }
258
256
  }
259
- // Persist only a safe automatic route. Explicit supervised/profile policy
260
- // must remain authoritative and must not be weakened by this convenience
261
- // marker. Keep taskId stable; frontend-implementation is the taskKind.
262
- if (hasSafeAutomaticTaskSourceRoute && candidateResult.template === "frontend-implementation") {
257
+ // Persist the automatic business workflow route while preserving the
258
+ // governance profile as a separate routing dimension.
259
+ if (hasAutomaticTaskSourceRoute && candidateResult.template === "frontend-implementation") {
263
260
  const taskConfig = await loadTaskConfig(repoRoot, parsed.taskId);
264
261
  if (!taskConfig.taskKind || taskConfig.taskKind === "standard") {
265
262
  await writeTaskConfig(repoRoot, parsed.taskId, {
@@ -2053,7 +2053,7 @@ function buildTargetFeatureWorkflow(input) {
2053
2053
  "- An implicit frontend demand selects the frontend DAG only when project or frontend-path evidence is paired with product-delivery semantics; framework evidence alone is insufficient. Backend, mixed, negated, documentation/test maintenance, and unknown demands keep the template selected by the normal governance profile.",
2054
2054
  "- `frontend-mock-assess-pi` reads Mock/API/schema evidence and selects `native|browser-intercept|request-adapter|not-needed|blocked` before frontend planning; its deterministic gate rejects blocked or malformed output, while the existing frontend implementer remains the only writer.",
2055
2055
  "- Mock-backed verification never proves real API integration. When the backend was not exercised, closeout must retain the gap and name `<task-id>-real-api-integration-verify`; that follow-up is explicitly created/run after backend readiness, never automatic.",
2056
- "- Automatic frontend classification never replaces a supervised template selected by an explicit profile, workflowPolicy, or the supervised quality gate.",
2056
+ "- Automatic frontend classification selects the frontend implementation workflow and persists taskKind; explicit profiles, workflowPolicy, and supervised quality gates record governance strength without switching the business workflow back to a generic DAG.",
2057
2057
  "- A backend implementation does not select the backend test DAG. `backend-test` remains an explicit test-engineering workflow.",
2058
2058
  "- Explicit specialized `taskKind` values remain compatible and take precedence over task-source classification.",
2059
2059
  "",
@@ -402,13 +402,6 @@ export function resolveTaskDagTemplateSelection(input) {
402
402
  reasons: [],
403
403
  };
404
404
  }
405
- if (requestedTemplate !== "standard-dag") {
406
- return {
407
- template: requestedTemplate,
408
- source: "requested-template",
409
- reasons: [],
410
- };
411
- }
412
405
  const classification = classifyTaskDemand(input);
413
406
  if (classification.kind === "frontend") {
414
407
  const frontendSignals = classification.signals
@@ -423,6 +416,14 @@ export function resolveTaskDagTemplateSelection(input) {
423
416
  classification,
424
417
  };
425
418
  }
419
+ if (requestedTemplate !== "standard-dag") {
420
+ return {
421
+ template: requestedTemplate,
422
+ source: "requested-template",
423
+ reasons: [],
424
+ classification,
425
+ };
426
+ }
426
427
  return {
427
428
  template: requestedTemplate,
428
429
  source: "requested-template",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tea-agent/loop-agent",
3
- "version": "0.24.2",
3
+ "version": "0.24.3-beta.0",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "loop-agent": "bin/loop-agent.js",