feat(v0.8.670): slash registry CSV and invoke audit mesh parity
Implement Phase 695 signed slash command registry CSV and slash invoke audit export across delivery-receipts, platform gossip (RPC 108/109), slash-csv-ui modal, agentctl journeys, and test:ci-phase695 regression. Also backfill relay/worker CSV styles missing from pearcord.css and bump phase687 boot gate to 0.8.670 for RELEASE_CI continuity.
This commit is contained in:
+39
@@ -3608,6 +3608,45 @@ class HeadlessSession {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async runSlashRegistryCsvJourney () {
|
||||||
|
if (!this.platform) throw new Error('headless not started')
|
||||||
|
await this.registerUser({ username: 'sr695', displayName: 'Slash CSV 695' })
|
||||||
|
await this.createGuild({ name: 'Slash CSV 695', publicListing: false })
|
||||||
|
await this.wait({ mode: 'guild' }, 45000)
|
||||||
|
await this.platform.registerSlashCommands([
|
||||||
|
{ name: 'phase695_ping', description: 'Phase 695 slash CSV journey' }
|
||||||
|
])
|
||||||
|
const pushed = await this.platform.pushSlashRegistryCsvToMesh()
|
||||||
|
const v = await this.refreshView()
|
||||||
|
if (!pushed?.signature && !v.slashRegistryCsvMeta?.signature) {
|
||||||
|
throw new Error('expected signed slash registry CSV after mesh push')
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
guildSlashRegistryCount: (v.slashRegistryCsvRows || []).length,
|
||||||
|
hasMeta: v.slashRegistryCsvMeta != null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async runSlashInvokeAuditExportJourney () {
|
||||||
|
if (!this.platform) throw new Error('headless not started')
|
||||||
|
await this.registerUser({ username: 'si695', displayName: 'Slash Invoke 695' })
|
||||||
|
await this.createGuild({ name: 'Slash Invoke 695', publicListing: false })
|
||||||
|
await this.wait({ mode: 'guild' }, 45000)
|
||||||
|
await this.platform.registerSlashCommands([
|
||||||
|
{ name: 'phase695_audit', description: 'Phase 695 invoke audit export' }
|
||||||
|
])
|
||||||
|
const pushed = await this.platform.pushSlashInvokeAuditExportToMesh()
|
||||||
|
const v = await this.refreshView()
|
||||||
|
if (!pushed?.signature) {
|
||||||
|
throw new Error('expected signed slash invoke audit CSV export')
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
guildSlashRegistryCount: (v.slashInvokeAuditExportCsvRows || []).length,
|
||||||
|
hasInvokeExport:
|
||||||
|
v.lastSlashInvokeAuditExport != null || (v.slashInvokeAuditExportCsvRows || []).length > 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
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