feat: surface codex hook lifecycle progress

This commit is contained in:
AI Bot
2026-06-01 18:48:45 +08:00
parent 32a9c9a26a
commit b0a778ee68
9 changed files with 163 additions and 6 deletions

View File

@@ -1623,6 +1623,8 @@ public final class BossUi {
label = "图片 " + name;
} else if ("image_generation".equals(kind)) {
label = "图像生成 " + name;
} else if ("hook".equals(kind)) {
label = "钩子 " + name;
} else if ("review".equals(kind)) {
label = "Review " + name;
} else if ("command".equals(kind)) {

View File

@@ -1266,6 +1266,14 @@ public class ProjectDetailActivityUiTest {
.put("status", "completed")
.put("detail", "generated-secret-image.png")
.put("result", "data:image/png;base64,sk-secret-should-not-render"))
.put(new JSONObject()
.put("kind", "hook")
.put("name", "postToolUse/command")
.put("status", "completed")
.put("detail", "project · async · 42ms")
.put("sourcePath", "/Users/kris/code/boss/.codex/hooks/private-hook.toml")
.put("entries", new JSONArray()
.put(new JSONObject().put("text", "sk-secret-should-not-render"))))
.put(new JSONObject()
.put("kind", "command")
.put("name", "commandExecution")
@@ -1285,6 +1293,8 @@ public class ProjectDetailActivityUiTest {
assertTrue(viewTreeContainsText(messageView, "Codex App Server ThreadItem"));
assertTrue(viewTreeContainsText(messageView, "图像生成 imageGeneration · completed"));
assertTrue(viewTreeContainsText(messageView, "generated-secret-image.png"));
assertTrue(viewTreeContainsText(messageView, "钩子 postToolUse/command · completed"));
assertTrue(viewTreeContainsText(messageView, "project · async · 42ms"));
assertTrue(viewTreeContainsText(messageView, "命令 commandExecution · completed"));
assertTrue(viewTreeContainsText(messageView, "exit 0 · 2345ms"));
assertFalse(viewTreeContainsText(messageView, "sk-secret-should-not-render"));