feat(audit-csv): Phase 690 audit CSV mesh and mod digest journeys

Add runAuditCsvMeshPushJourney and runModDigestNotifyJourney for
test:agentctl-phase690-audit regression.

Co-authored-by: Cursor <[email protected]>
This commit is contained in:
Raven Scott
2026-06-03 01:06:23 -04:00
co-authored by Cursor
parent 89509931a9
commit 41a76eb9a8
2 changed files with 32 additions and 0 deletions
+2
View File
@@ -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.
**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 688 (v0.8.663):** `runHookDeliveryReceiptJourney`, `runHookFailureDigestJourney`; bundle `test:agentctl-phase688-delivery`.
+30
View File
@@ -3442,6 +3442,36 @@ class HeadlessSession {
}
}
async runAuditCsvMeshPushJourney () {
if (!this.platform) throw new Error('headless not started')
await this.registerUser({ username: 'ac690', displayName: 'Audit CSV 690' })
await this.createGuild({ name: 'Audit CSV 690', publicListing: false })
await this.wait({ mode: 'guild' }, 45000)
const pushed = await this.platform.pushAuditExportCsvToMesh({ filter: 'all', limit: 50 })
const v = await this.refreshView()
if (!pushed?.signature && !v.auditExportCsvMeta?.signature) {
throw new Error('expected signed audit CSV after mesh push')
}
return {
guildCsvExportCount: (v.auditExportCsvRows || []).length,
hasMeta: v.auditExportCsvMeta != null
}
}
async runModDigestNotifyJourney () {
if (!this.platform) throw new Error('headless not started')
await this.registerUser({ username: 'md690', displayName: 'Mod Digest 690' })
await this.createGuild({ name: 'Mod Digest 690', publicListing: false })
await this.wait({ mode: 'guild' }, 45000)
const prefs = await this.platform.getHookFailureDigestNotifyPrefs()
const v = await this.refreshView()
return {
hasPrefsField: v.hookFailureDigestNotifyPrefs != null,
modDigestEnabled: !!prefs.modDigestGroupDmEnabled,
guildCsvExportCount: (v.auditExportCsvRows || []).length
}
}
async runForumPostSearchJourney () {
if (!this.platform) throw new Error('headless not started')
await this.registerUser({ username: 'fm672', displayName: 'Forum 672' })