@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
|
@@ -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
|
|
243
|
-
|
|
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
|
|
260
|
-
//
|
|
261
|
-
|
|
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, {
|
package/dist/commands/init.js
CHANGED
|
@@ -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
|
|
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",
|