@williambeto/ai-workflow 2.9.0 → 2.9.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/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,36 @@
|
|
|
1
1
|
## [unreleased]
|
|
2
2
|
|
|
3
|
+
## [2.9.2] - 2026-07-16
|
|
4
|
+
|
|
5
|
+
### 🐛 Bug Fixes
|
|
6
|
+
|
|
7
|
+
- Stop injecting agent-level `deny` and `ask` permissions into consumer
|
|
8
|
+
`opencode.jsonc` files, preserving the consumer's OpenCode permission defaults
|
|
9
|
+
- Keep agent ownership and routing boundaries in AIWK instructions without
|
|
10
|
+
causing repeated per-project approval prompts
|
|
11
|
+
|
|
12
|
+
### 🧪 Testing
|
|
13
|
+
|
|
14
|
+
- Add regression coverage that rejects generated AIWK agent permission
|
|
15
|
+
overrides while preserving the managed agent registry
|
|
16
|
+
|
|
17
|
+
## [2.9.1] - 2026-07-15
|
|
18
|
+
|
|
19
|
+
### 🐛 Bug Fixes
|
|
20
|
+
|
|
21
|
+
- Accept persisted Playwright snapshots from the scoped delivery as valid UI
|
|
22
|
+
evidence, regardless of their test-directory location
|
|
23
|
+
- Recognize screenshots generated under `.evidence/visual/` and evaluate them
|
|
24
|
+
in the same `collect-evidence` execution that captured them
|
|
25
|
+
- Avoid repeating `NOT_DELIVERED` as a second blocking diagnostic when an
|
|
26
|
+
earlier validation or quality gate already explains the failure
|
|
27
|
+
|
|
28
|
+
### 🧪 Testing
|
|
29
|
+
|
|
30
|
+
- Add regression coverage for Playwright snapshot discovery, generated visual
|
|
31
|
+
evidence ordering, missing required screenshots, and non-duplicated finalizer
|
|
32
|
+
diagnostics
|
|
33
|
+
|
|
3
34
|
## [2.9.0] - 2026-07-15
|
|
4
35
|
|
|
5
36
|
### 🚀 Features
|
package/bin/ai-workflow.js
CHANGED
|
@@ -34,7 +34,7 @@ import {
|
|
|
34
34
|
QualityGuard,
|
|
35
35
|
ValidationPlanner,
|
|
36
36
|
parseDeliveryOutcomeClaim
|
|
37
|
-
} from "../chunk-
|
|
37
|
+
} from "../chunk-PP42PB7M.js";
|
|
38
38
|
import {
|
|
39
39
|
DeliveryDecisionEngine
|
|
40
40
|
} from "../chunk-H7GIKXFO.js";
|
|
@@ -779,36 +779,18 @@ var COMMANDS = {
|
|
|
779
779
|
};
|
|
780
780
|
function buildManagedConfig() {
|
|
781
781
|
const agent = {};
|
|
782
|
-
const coreTaskPermissions = Object.fromEntries([
|
|
783
|
-
["*", "deny"],
|
|
784
|
-
...Object.keys(AGENTS).filter((name) => name !== "Atlas").map((name) => [name, "allow"])
|
|
785
|
-
]);
|
|
786
|
-
const capabilityTaskPermissions = Object.fromEntries([
|
|
787
|
-
["*", "deny"],
|
|
788
|
-
...Object.keys(SUBAGENTS).map((name) => [name, "allow"])
|
|
789
|
-
]);
|
|
790
782
|
for (const [name, def] of Object.entries(AGENTS)) {
|
|
791
783
|
agent[name] = {
|
|
792
784
|
mode: def.mode,
|
|
793
785
|
description: def.description,
|
|
794
|
-
prompt: `{file:./.ai-workflow/opencode/agents/${name.toLowerCase()}.md}
|
|
795
|
-
permission: {
|
|
796
|
-
...name === "Atlas" ? { edit: "deny", bash: "ask" } : {},
|
|
797
|
-
...name === "Astra" ? { edit: "allow" } : {},
|
|
798
|
-
task: name === "Atlas" ? coreTaskPermissions : capabilityTaskPermissions
|
|
799
|
-
}
|
|
786
|
+
prompt: `{file:./.ai-workflow/opencode/agents/${name.toLowerCase()}.md}`
|
|
800
787
|
};
|
|
801
788
|
}
|
|
802
789
|
for (const [name, def] of Object.entries(SUBAGENTS)) {
|
|
803
790
|
agent[name] = {
|
|
804
791
|
mode: "subagent",
|
|
805
792
|
description: def.description,
|
|
806
|
-
prompt: `{file:./.ai-workflow/opencode/skills/${def.skill}/SKILL.md}
|
|
807
|
-
permission: {
|
|
808
|
-
edit: "deny",
|
|
809
|
-
bash: "ask",
|
|
810
|
-
task: { "*": "deny" }
|
|
811
|
-
}
|
|
793
|
+
prompt: `{file:./.ai-workflow/opencode/skills/${def.skill}/SKILL.md}`
|
|
812
794
|
};
|
|
813
795
|
}
|
|
814
796
|
const command = {};
|
|
@@ -3697,7 +3679,7 @@ var commandMap = {
|
|
|
3697
3679
|
});
|
|
3698
3680
|
},
|
|
3699
3681
|
validate: async (_, flags) => {
|
|
3700
|
-
const { runValidate } = await import("../validate-
|
|
3682
|
+
const { runValidate } = await import("../validate-7G3HBE2K.js");
|
|
3701
3683
|
await runValidate({
|
|
3702
3684
|
cwd: process.cwd(),
|
|
3703
3685
|
taskSlug: flags.taskSlug,
|