feat(server,contracts,web): dashboard library counts and engine runs triggeredBy/multi-status filters
- GET /dashboard: automation.library {entities, movies, series, seasons,
episodes, assets} and automation.slotSatisfiedRate; home media overview
shows the counts instead of placeholders.
- GET /engine/runs: `status` accepts comma-separated values; new
`triggeredBy` filter (comma-separated) evaluated server-side by scanning
batches and paging with the last inspected row's cursor (scan cap 2000).
- Task stream: source filter and the "active" tab (running,pending) are now
one paginated server query.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
615917bb45
commit
363f85b1a1
13 files changed
+165
-250
No files matched your search
@@ -298,6 +298,9 @@ describe.skipIf(!hasPg)("W2-A 管理 API(真实 PG)", () => {
|
||||
expect(p2.data.items.map((r: { id: string }) => r.id)).toEqual(["r1"]);
|
||||
expect(p2.data.nextCursor).toBeNull();
|
||||
expect((await admin("GET", "/engine/runs?status=bogus")).status).toBe(422);
|
||||
const multi = await json(await admin("GET", "/engine/runs?status=running,pending"));
|
||||
expect(multi.data.items.map((r: { id: string }) => r.id)).toEqual(["r4", "r3"]);
|
||||
expect((await admin("GET", "/engine/runs?status=running,bogus")).status).toBe(422);
|
||||
});
|
||||
|
||||
it("run 详情:step attempts + signals;敏感字段脱敏,不返回 config/context", async () => {
|
||||
|
||||
Reference in new issue
Block a user