feat(agentctl): Phase 691 digest CSV and compliance journeys (v0.8.666)
Add runHookFailureDigestCsvJourney and runComplianceSnapshotExportJourney for automated regression of mesh push and compliance snapshot export. Co-authored-by: Cursor <[email protected]>
This commit is contained in:
@@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
Agent control plane for Pearcord — send the same IPC messages the UI sends, read `view` snapshots, and run scripted journeys against a **live worker** or an in-process **headless** session.
|
Agent control plane for Pearcord — send the same IPC messages the UI sends, read `view` snapshots, and run scripted journeys against a **live worker** or an in-process **headless** session.
|
||||||
|
|
||||||
|
**Phase 691 (v0.8.666):** `runHookFailureDigestCsvJourney`, `runComplianceSnapshotExportJourney`; bundle `test:agentctl-phase691-digest`.
|
||||||
|
|
||||||
**Phase 690 (v0.8.665):** `runAuditCsvMeshPushJourney`, `runModDigestNotifyJourney`; bundle `test:agentctl-phase690-audit`.
|
**Phase 690 (v0.8.665):** `runAuditCsvMeshPushJourney`, `runModDigestNotifyJourney`; bundle `test:agentctl-phase690-audit`.
|
||||||
|
|
||||||
**Phase 689 (v0.8.664):** `runAutomationHealthDashboardJourney`, `runDigestRelayHandoffJourney`; bundle `test:agentctl-phase689-health`.
|
**Phase 689 (v0.8.664):** `runAutomationHealthDashboardJourney`, `runDigestRelayHandoffJourney`; bundle `test:agentctl-phase689-health`.
|
||||||
|
|||||||
+31
@@ -3472,6 +3472,37 @@ class HeadlessSession {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async runHookFailureDigestCsvJourney () {
|
||||||
|
if (!this.platform) throw new Error('headless not started')
|
||||||
|
await this.registerUser({ username: 'dc691', displayName: 'Digest CSV 691' })
|
||||||
|
await this.createGuild({ name: 'Digest CSV 691', publicListing: false })
|
||||||
|
await this.wait({ mode: 'guild' }, 45000)
|
||||||
|
const pushed = await this.platform.pushHookFailureDigestCsvToMesh()
|
||||||
|
const v = await this.refreshView()
|
||||||
|
if (!pushed?.signature && !v.hookFailureDigestCsvMeta?.signature) {
|
||||||
|
throw new Error('expected signed digest CSV after mesh push')
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
guildDigestCsvCount: (v.hookFailureDigestCsvRows || []).length,
|
||||||
|
hasMeta: v.hookFailureDigestCsvMeta != null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async runComplianceSnapshotExportJourney () {
|
||||||
|
if (!this.platform) throw new Error('headless not started')
|
||||||
|
await this.registerUser({ username: 'cs691', displayName: 'Compliance 691' })
|
||||||
|
await this.createGuild({ name: 'Compliance 691', publicListing: false })
|
||||||
|
await this.wait({ mode: 'guild' }, 45000)
|
||||||
|
await this.platform.exportComplianceSnapshot({ limit: 50, filter: 'all' })
|
||||||
|
const snap = await this.platform.getLastComplianceSnapshot()
|
||||||
|
const v = await this.refreshView()
|
||||||
|
return {
|
||||||
|
hasSnapshot: snap != null || v.lastComplianceSnapshot != null,
|
||||||
|
entryCount: snap?.count ?? v.lastComplianceSnapshot?.count ?? 0,
|
||||||
|
guildDigestCsvCount: (v.hookFailureDigestCsvRows || []).length
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async runForumPostSearchJourney () {
|
async runForumPostSearchJourney () {
|
||||||
if (!this.platform) throw new Error('headless not started')
|
if (!this.platform) throw new Error('headless not started')
|
||||||
await this.registerUser({ username: 'fm672', displayName: 'Forum 672' })
|
await this.registerUser({ username: 'fm672', displayName: 'Forum 672' })
|
||||||
|
|||||||
Reference in New Issue
Block a user