feat(v0.8.689): rename all export CSV identifiers to JSON-only naming

Complete sweep of filenames, symbols, IPC channels, storage keys, CSS classes,
smoke scripts, and docs. Payloads remain signed JSON envelopes (Phase 713).
This commit is contained in:
Raven Scott
2026-06-03 05:54:25 -04:00
parent 24b3d5db2f
commit 32ab1c13b4
2 changed files with 280 additions and 243 deletions
+8 -8
View File
@@ -2,21 +2,21 @@
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 711 (v0.8.686):** `runActivityInviteCsvJourney`, `runProfileBannerExportJourney`; bundle `test:agentctl-phase711-activity`. **Phase 711 (v0.8.686):** `runActivityInviteJsonJourney`, `runProfileBannerExportJourney`; bundle `test:agentctl-phase711-activity`.
**Phase 710 (v0.8.685):** `runCustomStatusCsvJourney`, `runGuildWidgetExportJourney`; bundle `test:agentctl-phase710-status`. **Phase 710 (v0.8.685):** `runCustomStatusJsonJourney`, `runGuildWidgetExportJourney`; bundle `test:agentctl-phase710-status`.
**Phase 709 (v0.8.684):** `runNotificationOverrideCsvJourney`, `runChannelFollowExportJourney`; bundle `test:agentctl-phase709-notification`. **Phase 709 (v0.8.684):** `runNotificationOverrideJsonJourney`, `runChannelFollowExportJourney`; bundle `test:agentctl-phase709-notification`.
**Phase 708 (v0.8.683):** `runPresenceActivityCsvJourney`, `runReadStateExportJourney`; bundle `test:agentctl-phase708-presence`. **Phase 708 (v0.8.683):** `runPresenceActivityJsonJourney`, `runReadStateExportJourney`; bundle `test:agentctl-phase708-presence`.
**Phase 707 (v0.8.682):** `runScreenShareCsvJourney`, `runSoundboardRegistryExportJourney`; bundle `test:agentctl-phase707-screen`. **Phase 707 (v0.8.682):** `runScreenShareJsonJourney`, `runSoundboardRegistryExportJourney`; bundle `test:agentctl-phase707-screen`.
**Phase 692 (v0.8.667):** `runDigestRelayHandoffCsvJourney`, `runArchivePeerExportMeshJourney`; bundle `test:agentctl-phase692-relay`. **Phase 692 (v0.8.667):** `runDigestRelayHandoffJsonJourney`, `runArchivePeerExportMeshJourney`; bundle `test:agentctl-phase692-relay`.
**Phase 691 (v0.8.666):** `runHookFailureDigestCsvJourney`, `runComplianceSnapshotExportJourney`; bundle `test:agentctl-phase691-digest`. **Phase 691 (v0.8.666):** `runHookFailureDigestJsonJourney`, `runComplianceSnapshotExportJourney`; bundle `test:agentctl-phase691-digest`.
**Phase 690 (v0.8.665):** `runAuditCsvMeshPushJourney`, `runModDigestNotifyJourney`; bundle `test:agentctl-phase690-audit`. **Phase 690 (v0.8.665):** `runAuditJsonMeshPushJourney`, `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`.
+272 -235
View File
@@ -3442,19 +3442,19 @@ class HeadlessSession {
} }
} }
async runAuditCsvMeshPushJourney () { async runAuditJsonMeshPushJourney () {
if (!this.platform) throw new Error('headless not started') if (!this.platform) throw new Error('headless not started')
await this.registerUser({ username: 'ac690', displayName: 'Audit CSV 690' }) await this.registerUser({ username: 'ac690', displayName: 'Audit JSON 690' })
await this.createGuild({ name: 'Audit CSV 690', publicListing: false }) await this.createGuild({ name: 'Audit JSON 690', publicListing: false })
await this.wait({ mode: 'guild' }, 45000) await this.wait({ mode: 'guild' }, 45000)
const pushed = await this.platform.pushAuditExportCsvToMesh({ filter: 'all', limit: 50 }) const pushed = await this.platform.pushAuditExportJsonToMesh({ filter: 'all', limit: 50 })
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature && !v.auditExportCsvMeta?.signature) { if (!pushed?.signature && !v.auditExportJsonMeta?.signature) {
throw new Error('expected signed audit CSV after mesh push') throw new Error('expected signed audit JSON after mesh push')
} }
return { return {
guildCsvExportCount: (v.auditExportCsvRows || []).length, guildJsonExportCount: (v.auditExportJsonRows || []).length,
hasMeta: v.auditExportCsvMeta != null hasMeta: v.auditExportJsonMeta != null
} }
} }
@@ -3468,23 +3468,23 @@ class HeadlessSession {
return { return {
hasPrefsField: v.hookFailureDigestNotifyPrefs != null, hasPrefsField: v.hookFailureDigestNotifyPrefs != null,
modDigestEnabled: !!prefs.modDigestGroupDmEnabled, modDigestEnabled: !!prefs.modDigestGroupDmEnabled,
guildCsvExportCount: (v.auditExportCsvRows || []).length guildJsonExportCount: (v.auditExportJsonRows || []).length
} }
} }
async runHookFailureDigestCsvJourney () { async runHookFailureDigestJsonJourney () {
if (!this.platform) throw new Error('headless not started') if (!this.platform) throw new Error('headless not started')
await this.registerUser({ username: 'dc691', displayName: 'Digest CSV 691' }) await this.registerUser({ username: 'dc691', displayName: 'Digest JSON 691' })
await this.createGuild({ name: 'Digest CSV 691', publicListing: false }) await this.createGuild({ name: 'Digest JSON 691', publicListing: false })
await this.wait({ mode: 'guild' }, 45000) await this.wait({ mode: 'guild' }, 45000)
const pushed = await this.platform.pushHookFailureDigestCsvToMesh() const pushed = await this.platform.pushHookFailureDigestJsonToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature && !v.hookFailureDigestCsvMeta?.signature) { if (!pushed?.signature && !v.hookFailureDigestJsonMeta?.signature) {
throw new Error('expected signed digest CSV after mesh push') throw new Error('expected signed digest JSON after mesh push')
} }
return { return {
guildDigestCsvCount: (v.hookFailureDigestCsvRows || []).length, guildDigestJsonCount: (v.hookFailureDigestJsonRows || []).length,
hasMeta: v.hookFailureDigestCsvMeta != null hasMeta: v.hookFailureDigestJsonMeta != null
} }
} }
@@ -3499,24 +3499,24 @@ class HeadlessSession {
return { return {
hasSnapshot: snap != null || v.lastComplianceSnapshot != null, hasSnapshot: snap != null || v.lastComplianceSnapshot != null,
entryCount: snap?.count ?? v.lastComplianceSnapshot?.count ?? 0, entryCount: snap?.count ?? v.lastComplianceSnapshot?.count ?? 0,
guildDigestCsvCount: (v.hookFailureDigestCsvRows || []).length guildDigestJsonCount: (v.hookFailureDigestJsonRows || []).length
} }
} }
async runDigestRelayHandoffCsvJourney () { async runDigestRelayHandoffJsonJourney () {
if (!this.platform) throw new Error('headless not started') if (!this.platform) throw new Error('headless not started')
await this.registerUser({ username: 'rh692', displayName: 'Relay CSV 692' }) await this.registerUser({ username: 'rh692', displayName: 'Relay JSON 692' })
await this.createGuild({ name: 'Relay CSV 692', publicListing: false }) await this.createGuild({ name: 'Relay JSON 692', publicListing: false })
await this.wait({ mode: 'guild' }, 45000) await this.wait({ mode: 'guild' }, 45000)
await this.platform.dryRunDigestWebhookRelay().catch(() => null) await this.platform.dryRunDigestWebhookRelay().catch(() => null)
const pushed = await this.platform.pushDigestRelayHandoffCsvToMesh() const pushed = await this.platform.pushDigestRelayHandoffJsonToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature && !v.digestRelayHandoffCsvMeta?.signature) { if (!pushed?.signature && !v.digestRelayHandoffJsonMeta?.signature) {
throw new Error('expected signed relay handoff CSV after mesh push') throw new Error('expected signed relay handoff JSON after mesh push')
} }
return { return {
guildRelayHandoffCount: (v.digestRelayHandoffCsvRows || []).length, guildRelayHandoffCount: (v.digestRelayHandoffJsonRows || []).length,
hasMeta: v.digestRelayHandoffCsvMeta != null hasMeta: v.digestRelayHandoffJsonMeta != null
} }
} }
@@ -3528,27 +3528,27 @@ class HeadlessSession {
const pushed = await this.platform.pushArchivePeerExportToMesh() const pushed = await this.platform.pushArchivePeerExportToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature) { if (!pushed?.signature) {
throw new Error('expected signed archive peer CSV export') throw new Error('expected signed archive peer JSON export')
} }
return { return {
guildRelayHandoffCount: (v.archivePeerExportCsvRows || []).length, guildRelayHandoffCount: (v.archivePeerExportJsonRows || []).length,
hasArchiveExport: v.lastArchivePeerExport != null || (v.archivePeerExportCsvRows || []).length > 0 hasArchiveExport: v.lastArchivePeerExport != null || (v.archivePeerExportJsonRows || []).length > 0
} }
} }
async runWorkerReleaseCsvJourney () { async runWorkerReleaseJsonJourney () {
if (!this.platform) throw new Error('headless not started') if (!this.platform) throw new Error('headless not started')
await this.registerUser({ username: 'wr693', displayName: 'Worker CSV 693' }) await this.registerUser({ username: 'wr693', displayName: 'Worker JSON 693' })
await this.createGuild({ name: 'Worker CSV 693', publicListing: false }) await this.createGuild({ name: 'Worker JSON 693', publicListing: false })
await this.wait({ mode: 'guild' }, 45000) await this.wait({ mode: 'guild' }, 45000)
const pushed = await this.platform.pushWorkerReleaseCsvToMesh() const pushed = await this.platform.pushWorkerReleaseJsonToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature && !v.workerReleaseCsvMeta?.signature) { if (!pushed?.signature && !v.workerReleaseJsonMeta?.signature) {
throw new Error('expected signed worker release CSV after mesh push') throw new Error('expected signed worker release JSON after mesh push')
} }
return { return {
guildWorkerReleaseCount: (v.workerReleaseCsvRows || []).length, guildWorkerReleaseCount: (v.workerReleaseJsonRows || []).length,
hasMeta: v.workerReleaseCsvMeta != null hasMeta: v.workerReleaseJsonMeta != null
} }
} }
@@ -3560,30 +3560,30 @@ class HeadlessSession {
const pushed = await this.platform.pushIntegrationManifestExportToMesh() const pushed = await this.platform.pushIntegrationManifestExportToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature) { if (!pushed?.signature) {
throw new Error('expected signed integration manifest CSV export') throw new Error('expected signed integration manifest JSON export')
} }
return { return {
guildWorkerReleaseCount: (v.integrationManifestExportCsvRows || []).length, guildWorkerReleaseCount: (v.integrationManifestExportJsonRows || []).length,
hasManifestExport: hasManifestExport:
v.lastIntegrationManifestExport != null || v.lastIntegrationManifestExport != null ||
(v.integrationManifestExportCsvRows || []).length > 0 (v.integrationManifestExportJsonRows || []).length > 0
} }
} }
async runBotRegistryCsvJourney () { async runBotRegistryJsonJourney () {
if (!this.platform) throw new Error('headless not started') if (!this.platform) throw new Error('headless not started')
await this.registerUser({ username: 'br694', displayName: 'Bot CSV 694' }) await this.registerUser({ username: 'br694', displayName: 'Bot JSON 694' })
await this.createGuild({ name: 'Bot CSV 694', publicListing: false }) await this.createGuild({ name: 'Bot JSON 694', publicListing: false })
await this.wait({ mode: 'guild' }, 45000) await this.wait({ mode: 'guild' }, 45000)
await this.createGuildBotInstallToken({ name: 'Phase694 Bot' }) await this.createGuildBotInstallToken({ name: 'Phase694 Bot' })
const pushed = await this.platform.pushBotRegistryCsvToMesh() const pushed = await this.platform.pushBotRegistryJsonToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature && !v.botRegistryCsvMeta?.signature) { if (!pushed?.signature && !v.botRegistryJsonMeta?.signature) {
throw new Error('expected signed bot registry CSV after mesh push') throw new Error('expected signed bot registry JSON after mesh push')
} }
return { return {
guildBotRegistryCount: (v.botRegistryCsvRows || []).length, guildBotRegistryCount: (v.botRegistryJsonRows || []).length,
hasMeta: v.botRegistryCsvMeta != null hasMeta: v.botRegistryJsonMeta != null
} }
} }
@@ -3599,31 +3599,31 @@ class HeadlessSession {
const pushed = await this.platform.pushWebhookExecuteExportToMesh() const pushed = await this.platform.pushWebhookExecuteExportToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature) { if (!pushed?.signature) {
throw new Error('expected signed webhook execute CSV export') throw new Error('expected signed webhook execute JSON export')
} }
return { return {
guildBotRegistryCount: (v.webhookExecuteExportCsvRows || []).length, guildBotRegistryCount: (v.webhookExecuteExportJsonRows || []).length,
hasExecuteExport: hasExecuteExport:
v.lastWebhookExecuteExport != null || (v.webhookExecuteExportCsvRows || []).length > 0 v.lastWebhookExecuteExport != null || (v.webhookExecuteExportJsonRows || []).length > 0
} }
} }
async runSlashRegistryCsvJourney () { async runSlashRegistryJsonJourney () {
if (!this.platform) throw new Error('headless not started') if (!this.platform) throw new Error('headless not started')
await this.registerUser({ username: 'sr695', displayName: 'Slash CSV 695' }) await this.registerUser({ username: 'sr695', displayName: 'Slash JSON 695' })
await this.createGuild({ name: 'Slash CSV 695', publicListing: false }) await this.createGuild({ name: 'Slash JSON 695', publicListing: false })
await this.wait({ mode: 'guild' }, 45000) await this.wait({ mode: 'guild' }, 45000)
await this.platform.registerSlashCommands([ await this.platform.registerSlashCommands([
{ name: 'phase695_ping', description: 'Phase 695 slash CSV journey' } { name: 'phase695_ping', description: 'Phase 695 slash JSON journey' }
]) ])
const pushed = await this.platform.pushSlashRegistryCsvToMesh() const pushed = await this.platform.pushSlashRegistryJsonToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature && !v.slashRegistryCsvMeta?.signature) { if (!pushed?.signature && !v.slashRegistryJsonMeta?.signature) {
throw new Error('expected signed slash registry CSV after mesh push') throw new Error('expected signed slash registry JSON after mesh push')
} }
return { return {
guildSlashRegistryCount: (v.slashRegistryCsvRows || []).length, guildSlashRegistryCount: (v.slashRegistryJsonRows || []).length,
hasMeta: v.slashRegistryCsvMeta != null hasMeta: v.slashRegistryJsonMeta != null
} }
} }
@@ -3638,29 +3638,29 @@ class HeadlessSession {
const pushed = await this.platform.pushSlashInvokeAuditExportToMesh() const pushed = await this.platform.pushSlashInvokeAuditExportToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature) { if (!pushed?.signature) {
throw new Error('expected signed slash invoke audit CSV export') throw new Error('expected signed slash invoke audit JSON export')
} }
return { return {
guildSlashRegistryCount: (v.slashInvokeAuditExportCsvRows || []).length, guildSlashRegistryCount: (v.slashInvokeAuditExportJsonRows || []).length,
hasInvokeExport: hasInvokeExport:
v.lastSlashInvokeAuditExport != null || (v.slashInvokeAuditExportCsvRows || []).length > 0 v.lastSlashInvokeAuditExport != null || (v.slashInvokeAuditExportJsonRows || []).length > 0
} }
} }
async runOAuthGrantCsvJourney () { async runOAuthGrantJsonJourney () {
if (!this.platform) throw new Error('headless not started') if (!this.platform) throw new Error('headless not started')
await this.registerUser({ username: 'og696', displayName: 'OAuth CSV 696' }) await this.registerUser({ username: 'og696', displayName: 'OAuth JSON 696' })
await this.createGuild({ name: 'OAuth CSV 696', publicListing: false }) await this.createGuild({ name: 'OAuth JSON 696', publicListing: false })
await this.wait({ mode: 'guild' }, 45000) await this.wait({ mode: 'guild' }, 45000)
await this.createGuildBotInstallToken({ name: 'Phase696 OAuth App' }) await this.createGuildBotInstallToken({ name: 'Phase696 OAuth App' })
const pushed = await this.platform.pushOAuthGrantCsvToMesh() const pushed = await this.platform.pushOAuthGrantJsonToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature && !v.oauthGrantCsvMeta?.signature) { if (!pushed?.signature && !v.oauthGrantJsonMeta?.signature) {
throw new Error('expected signed OAuth grant CSV after mesh push') throw new Error('expected signed OAuth grant JSON after mesh push')
} }
return { return {
guildOAuthGrantCount: (v.oauthGrantCsvRows || []).length, guildOAuthGrantCount: (v.oauthGrantJsonRows || []).length,
hasMeta: v.oauthGrantCsvMeta != null hasMeta: v.oauthGrantJsonMeta != null
} }
} }
@@ -3673,29 +3673,29 @@ class HeadlessSession {
const pushed = await this.platform.pushOAuthInstallTokenExportToMesh() const pushed = await this.platform.pushOAuthInstallTokenExportToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature) { if (!pushed?.signature) {
throw new Error('expected signed OAuth install token CSV export') throw new Error('expected signed OAuth install token JSON export')
} }
return { return {
guildOAuthGrantCount: (v.oauthInstallTokenExportCsvRows || []).length, guildOAuthGrantCount: (v.oauthInstallTokenExportJsonRows || []).length,
hasInstallExport: hasInstallExport:
v.lastOAuthInstallTokenExport != null || (v.oauthInstallTokenExportCsvRows || []).length > 0 v.lastOAuthInstallTokenExport != null || (v.oauthInstallTokenExportJsonRows || []).length > 0
} }
} }
async runInviteLinkCsvJourney () { async runInviteLinkJsonJourney () {
if (!this.platform) throw new Error('headless not started') if (!this.platform) throw new Error('headless not started')
await this.registerUser({ username: 'il697', displayName: 'Invite CSV 697' }) await this.registerUser({ username: 'il697', displayName: 'Invite JSON 697' })
await this.createGuild({ name: 'Invite CSV 697', publicListing: false }) await this.createGuild({ name: 'Invite JSON 697', publicListing: false })
await this.wait({ mode: 'guild' }, 45000) await this.wait({ mode: 'guild' }, 45000)
await this.platform.createInvite({ ttlMs: 86400000, maxUses: 10 }) await this.platform.createInvite({ ttlMs: 86400000, maxUses: 10 })
const pushed = await this.platform.pushInviteLinkCsvToMesh() const pushed = await this.platform.pushInviteLinkJsonToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature && !v.inviteLinkCsvMeta?.signature) { if (!pushed?.signature && !v.inviteLinkJsonMeta?.signature) {
throw new Error('expected signed invite link CSV after mesh push') throw new Error('expected signed invite link JSON after mesh push')
} }
return { return {
guildInviteCsvCount: (v.inviteLinkCsvRows || []).length, guildInviteJsonCount: (v.inviteLinkJsonRows || []).length,
hasMeta: v.inviteLinkCsvMeta != null hasMeta: v.inviteLinkJsonMeta != null
} }
} }
@@ -3708,19 +3708,19 @@ class HeadlessSession {
const pushed = await this.platform.pushVanityUrlExportToMesh() const pushed = await this.platform.pushVanityUrlExportToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature) { if (!pushed?.signature) {
throw new Error('expected signed vanity URL CSV export') throw new Error('expected signed vanity URL JSON export')
} }
return { return {
guildInviteCsvCount: (v.vanityUrlExportCsvRows || []).length, guildInviteJsonCount: (v.vanityUrlExportJsonRows || []).length,
hasVanityExport: hasVanityExport:
v.lastVanityUrlExport != null || (v.vanityUrlExportCsvRows || []).length > 0 v.lastVanityUrlExport != null || (v.vanityUrlExportJsonRows || []).length > 0
} }
} }
async runRoleOverrideCsvJourney () { async runRoleOverrideJsonJourney () {
if (!this.platform) throw new Error('headless not started') if (!this.platform) throw new Error('headless not started')
await this.registerUser({ username: 'ro698', displayName: 'Role CSV 698' }) await this.registerUser({ username: 'ro698', displayName: 'Role JSON 698' })
await this.createGuild({ name: 'Role CSV 698', publicListing: false }) await this.createGuild({ name: 'Role JSON 698', publicListing: false })
await this.wait({ mode: 'guild' }, 45000) await this.wait({ mode: 'guild' }, 45000)
const roles = await this.platform.guildRoles.listRoles(this.platform.guild.guild.id) const roles = await this.platform.guildRoles.listRoles(this.platform.guild.guild.id)
const custom = roles.find((r) => r.name !== '@everyone') const custom = roles.find((r) => r.name !== '@everyone')
@@ -3732,14 +3732,14 @@ class HeadlessSession {
deny: 2048 deny: 2048
}) })
} }
const pushed = await this.platform.pushRoleOverrideCsvToMesh() const pushed = await this.platform.pushRoleOverrideJsonToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature && !v.roleOverrideCsvMeta?.signature) { if (!pushed?.signature && !v.roleOverrideJsonMeta?.signature) {
throw new Error('expected signed role override CSV after mesh push') throw new Error('expected signed role override JSON after mesh push')
} }
return { return {
guildPermissionCsvCount: (v.roleOverrideCsvRows || []).length, guildPermissionJsonCount: (v.roleOverrideJsonRows || []).length,
hasMeta: v.roleOverrideCsvMeta != null hasMeta: v.roleOverrideJsonMeta != null
} }
} }
@@ -3751,32 +3751,32 @@ class HeadlessSession {
const pushed = await this.platform.pushEffectivePermissionExportToMesh() const pushed = await this.platform.pushEffectivePermissionExportToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature) { if (!pushed?.signature) {
throw new Error('expected signed effective permission CSV export') throw new Error('expected signed effective permission JSON export')
} }
return { return {
guildPermissionCsvCount: (v.effectivePermissionExportCsvRows || []).length, guildPermissionJsonCount: (v.effectivePermissionExportJsonRows || []).length,
hasEffectiveExport: hasEffectiveExport:
v.lastEffectivePermissionExport != null || v.lastEffectivePermissionExport != null ||
(v.effectivePermissionExportCsvRows || []).length > 0 (v.effectivePermissionExportJsonRows || []).length > 0
} }
} }
async runEmojiRegistryCsvJourney () { async runEmojiRegistryJsonJourney () {
if (!this.platform) throw new Error('headless not started') if (!this.platform) throw new Error('headless not started')
await this.registerUser({ username: 'em699', displayName: 'Emoji CSV 699' }) await this.registerUser({ username: 'em699', displayName: 'Emoji JSON 699' })
await this.createGuild({ name: 'Emoji CSV 699', publicListing: false }) await this.createGuild({ name: 'Emoji JSON 699', publicListing: false })
await this.wait({ mode: 'guild' }, 45000) await this.wait({ mode: 'guild' }, 45000)
if (this.platform.emojiRegistry) { if (this.platform.emojiRegistry) {
await this.platform.emojiRegistry.ensureBuiltins() await this.platform.emojiRegistry.ensureBuiltins()
} }
const pushed = await this.platform.pushEmojiRegistryCsvToMesh() const pushed = await this.platform.pushEmojiRegistryJsonToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature && !v.emojiRegistryCsvMeta?.signature) { if (!pushed?.signature && !v.emojiRegistryJsonMeta?.signature) {
throw new Error('expected signed emoji registry CSV after mesh push') throw new Error('expected signed emoji registry JSON after mesh push')
} }
return { return {
guildEmojiCsvCount: (v.emojiRegistryCsvRows || []).length, guildEmojiJsonCount: (v.emojiRegistryJsonRows || []).length,
hasMeta: v.emojiRegistryCsvMeta != null hasMeta: v.emojiRegistryJsonMeta != null
} }
} }
@@ -3788,28 +3788,28 @@ class HeadlessSession {
const pushed = await this.platform.pushStickerPackExportToMesh() const pushed = await this.platform.pushStickerPackExportToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature) { if (!pushed?.signature) {
throw new Error('expected signed sticker pack CSV export') throw new Error('expected signed sticker pack JSON export')
} }
return { return {
guildEmojiCsvCount: (v.stickerPackExportCsvRows || []).length, guildEmojiJsonCount: (v.stickerPackExportJsonRows || []).length,
hasStickerExport: hasStickerExport:
v.lastStickerPackExport != null || (v.stickerPackExportCsvRows || []).length > 0 v.lastStickerPackExport != null || (v.stickerPackExportJsonRows || []).length > 0
} }
} }
async runMemberRosterCsvJourney () { async runMemberRosterJsonJourney () {
if (!this.platform) throw new Error('headless not started') if (!this.platform) throw new Error('headless not started')
await this.registerUser({ username: 'mb700', displayName: 'Member CSV 700' }) await this.registerUser({ username: 'mb700', displayName: 'Member JSON 700' })
await this.createGuild({ name: 'Member CSV 700', publicListing: false }) await this.createGuild({ name: 'Member JSON 700', publicListing: false })
await this.wait({ mode: 'guild' }, 45000) await this.wait({ mode: 'guild' }, 45000)
const pushed = await this.platform.pushMemberRosterCsvToMesh() const pushed = await this.platform.pushMemberRosterJsonToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature && !v.memberRosterCsvMeta?.signature) { if (!pushed?.signature && !v.memberRosterJsonMeta?.signature) {
throw new Error('expected signed member roster CSV after mesh push') throw new Error('expected signed member roster JSON after mesh push')
} }
return { return {
guildMemberCsvCount: (v.memberRosterCsvRows || []).length, guildMemberJsonCount: (v.memberRosterJsonRows || []).length,
hasMeta: v.memberRosterCsvMeta != null hasMeta: v.memberRosterJsonMeta != null
} }
} }
@@ -3821,29 +3821,29 @@ class HeadlessSession {
const pushed = await this.platform.pushModerationTimeoutExportToMesh() const pushed = await this.platform.pushModerationTimeoutExportToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature) { if (!pushed?.signature) {
throw new Error('expected signed moderation timeout CSV export') throw new Error('expected signed moderation timeout JSON export')
} }
return { return {
guildMemberCsvCount: (v.moderationTimeoutExportCsvRows || []).length, guildMemberJsonCount: (v.moderationTimeoutExportJsonRows || []).length,
hasTimeoutExport: hasTimeoutExport:
v.lastModerationTimeoutExport != null || v.lastModerationTimeoutExport != null ||
(v.moderationTimeoutExportCsvRows || []).length > 0 (v.moderationTimeoutExportJsonRows || []).length > 0
} }
} }
async runBanRegistryCsvJourney () { async runBanRegistryJsonJourney () {
if (!this.platform) throw new Error('headless not started') if (!this.platform) throw new Error('headless not started')
await this.registerUser({ username: 'bn701', displayName: 'Ban CSV 701' }) await this.registerUser({ username: 'bn701', displayName: 'Ban JSON 701' })
await this.createGuild({ name: 'Ban CSV 701', publicListing: false }) await this.createGuild({ name: 'Ban JSON 701', publicListing: false })
await this.wait({ mode: 'guild' }, 45000) await this.wait({ mode: 'guild' }, 45000)
const pushed = await this.platform.pushBanRegistryCsvToMesh() const pushed = await this.platform.pushBanRegistryJsonToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature && !v.banRegistryCsvMeta?.signature) { if (!pushed?.signature && !v.banRegistryJsonMeta?.signature) {
throw new Error('expected signed ban registry CSV after mesh push') throw new Error('expected signed ban registry JSON after mesh push')
} }
return { return {
guildBanCsvCount: (v.banRegistryCsvRows || []).length, guildBanJsonCount: (v.banRegistryJsonRows || []).length,
hasMeta: v.banRegistryCsvMeta != null hasMeta: v.banRegistryJsonMeta != null
} }
} }
@@ -3855,30 +3855,30 @@ class HeadlessSession {
const pushed = await this.platform.pushAutomodRuleExportToMesh() const pushed = await this.platform.pushAutomodRuleExportToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature) { if (!pushed?.signature) {
throw new Error('expected signed automod rule CSV export') throw new Error('expected signed automod rule JSON export')
} }
return { return {
guildBanCsvCount: (v.automodRuleExportCsvRows || []).length, guildBanJsonCount: (v.automodRuleExportJsonRows || []).length,
hasAutomodExport: hasAutomodExport:
v.lastAutomodRuleExport != null || (v.automodRuleExportCsvRows || []).length > 0 v.lastAutomodRuleExport != null || (v.automodRuleExportJsonRows || []).length > 0
} }
} }
async runPollRegistryCsvJourney () { async runPollRegistryJsonJourney () {
if (!this.platform) throw new Error('headless not started') if (!this.platform) throw new Error('headless not started')
await this.registerUser({ username: 'pl702', displayName: 'Poll CSV 702' }) await this.registerUser({ username: 'pl702', displayName: 'Poll JSON 702' })
await this.createGuild({ name: 'Poll CSV 702', publicListing: false }) await this.createGuild({ name: 'Poll JSON 702', publicListing: false })
await this.wait({ mode: 'guild' }, 45000) await this.wait({ mode: 'guild' }, 45000)
await this.sendGuildMessage('/poll Phase702 export? | Yes | No | Maybe') await this.sendGuildMessage('/poll Phase702 export? | Yes | No | Maybe')
await this.refreshView() await this.refreshView()
const pushed = await this.platform.pushPollRegistryCsvToMesh() const pushed = await this.platform.pushPollRegistryJsonToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature && !v.pollRegistryCsvMeta?.signature) { if (!pushed?.signature && !v.pollRegistryJsonMeta?.signature) {
throw new Error('expected signed poll registry CSV after mesh push') throw new Error('expected signed poll registry JSON after mesh push')
} }
return { return {
guildPollCsvCount: (v.pollRegistryCsvRows || []).length + (v.guildPolls || []).length, guildPollJsonCount: (v.pollRegistryJsonRows || []).length + (v.guildPolls || []).length,
hasMeta: v.pollRegistryCsvMeta != null, hasMeta: v.pollRegistryJsonMeta != null,
pollCount: (v.guildPolls || []).length pollCount: (v.guildPolls || []).length
} }
} }
@@ -3886,7 +3886,7 @@ class HeadlessSession {
async runScheduledMessageExportJourney () { async runScheduledMessageExportJourney () {
if (!this.platform) throw new Error('headless not started') if (!this.platform) throw new Error('headless not started')
await this.registerUser({ username: 'sc702', displayName: 'Schedule 702' }) await this.registerUser({ username: 'sc702', displayName: 'Schedule 702' })
await this.createGuild({ name: 'Schedule CSV 702', publicListing: false }) await this.createGuild({ name: 'Schedule JSON 702', publicListing: false })
await this.wait({ mode: 'guild' }, 45000) await this.wait({ mode: 'guild' }, 45000)
await this.platform.scheduleMessage({ await this.platform.scheduleMessage({
content: 'Phase702 scheduled export row', content: 'Phase702 scheduled export row',
@@ -3897,31 +3897,31 @@ class HeadlessSession {
const pushed = await this.platform.pushScheduledMessageExportToMesh() const pushed = await this.platform.pushScheduledMessageExportToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature) { if (!pushed?.signature) {
throw new Error('expected signed scheduled message CSV export') throw new Error('expected signed scheduled message JSON export')
} }
return { return {
guildPollCsvCount: (v.scheduledMessageExportCsvRows || []).length, guildPollJsonCount: (v.scheduledMessageExportJsonRows || []).length,
hasScheduleExport: hasScheduleExport:
v.lastScheduledMessageExport != null || (v.scheduledMessageExportCsvRows || []).length > 0 v.lastScheduledMessageExport != null || (v.scheduledMessageExportJsonRows || []).length > 0
} }
} }
async runPinRegistryCsvJourney () { async runPinRegistryJsonJourney () {
if (!this.platform) throw new Error('headless not started') if (!this.platform) throw new Error('headless not started')
await this.registerUser({ username: 'pn703', displayName: 'Pin CSV 703' }) await this.registerUser({ username: 'pn703', displayName: 'Pin JSON 703' })
await this.createGuild({ name: 'Pin CSV 703', publicListing: false }) await this.createGuild({ name: 'Pin JSON 703', publicListing: false })
await this.wait({ mode: 'guild' }, 45000) await this.wait({ mode: 'guild' }, 45000)
const msg = await this.sendGuildMessage('Phase703 pin export target message') const msg = await this.sendGuildMessage('Phase703 pin export target message')
await this.platform.pinMessage(msg.id) await this.platform.pinMessage(msg.id)
await this.refreshView() await this.refreshView()
const pushed = await this.platform.pushPinRegistryCsvToMesh() const pushed = await this.platform.pushPinRegistryJsonToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature && !v.pinRegistryCsvMeta?.signature) { if (!pushed?.signature && !v.pinRegistryJsonMeta?.signature) {
throw new Error('expected signed pin registry CSV after mesh push') throw new Error('expected signed pin registry JSON after mesh push')
} }
return { return {
guildPinCsvCount: (v.pinRegistryCsvRows || []).length + (v.guildPins || []).length, guildPinJsonCount: (v.pinRegistryJsonRows || []).length + (v.guildPins || []).length,
hasMeta: v.pinRegistryCsvMeta != null, hasMeta: v.pinRegistryJsonMeta != null,
pinCount: (v.guildPins || []).length pinCount: (v.guildPins || []).length
} }
} }
@@ -3929,7 +3929,7 @@ class HeadlessSession {
async runReactionSummaryExportJourney () { async runReactionSummaryExportJourney () {
if (!this.platform) throw new Error('headless not started') if (!this.platform) throw new Error('headless not started')
await this.registerUser({ username: 'rx703', displayName: 'Reaction 703' }) await this.registerUser({ username: 'rx703', displayName: 'Reaction 703' })
await this.createGuild({ name: 'Reaction CSV 703', publicListing: false }) await this.createGuild({ name: 'Reaction JSON 703', publicListing: false })
await this.wait({ mode: 'guild' }, 45000) await this.wait({ mode: 'guild' }, 45000)
const msg = await this.sendGuildMessage('Phase703 reaction export') const msg = await this.sendGuildMessage('Phase703 reaction export')
await this.platform.toggleReaction(msg.id, '👍') await this.platform.toggleReaction(msg.id, '👍')
@@ -3937,33 +3937,33 @@ class HeadlessSession {
const pushed = await this.platform.pushReactionSummaryExportToMesh() const pushed = await this.platform.pushReactionSummaryExportToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature) { if (!pushed?.signature) {
throw new Error('expected signed reaction summary CSV export') throw new Error('expected signed reaction summary JSON export')
} }
return { return {
guildPinCsvCount: (v.reactionSummaryExportCsvRows || []).length, guildPinJsonCount: (v.reactionSummaryExportJsonRows || []).length,
hasReactionExport: hasReactionExport:
v.lastReactionSummaryExport != null || (v.reactionSummaryExportCsvRows || []).length > 0 v.lastReactionSummaryExport != null || (v.reactionSummaryExportJsonRows || []).length > 0
} }
} }
async runThreadArchiveCsvJourney () { async runThreadArchiveJsonJourney () {
if (!this.platform) throw new Error('headless not started') if (!this.platform) throw new Error('headless not started')
await this.registerUser({ username: 'th704', displayName: 'Thread CSV 704' }) await this.registerUser({ username: 'th704', displayName: 'Thread JSON 704' })
await this.createGuild({ name: 'Thread CSV 704', publicListing: false }) await this.createGuild({ name: 'Thread JSON 704', publicListing: false })
await this.wait({ mode: 'guild' }, 45000) await this.wait({ mode: 'guild' }, 45000)
const row = await this.sendGuildMessage('Phase704 thread archive export seed') const row = await this.sendGuildMessage('Phase704 thread archive export seed')
await this.ipc({ type: 'create-thread', messageId: row.id, name: 'Archive export thread' }) await this.ipc({ type: 'create-thread', messageId: row.id, name: 'Archive export thread' })
await this.refreshView() await this.refreshView()
const threadId = this._lastView?.activeChannelId const threadId = this._lastView?.activeChannelId
if (threadId) await this.platform.archiveThread(threadId, true).catch(() => {}) if (threadId) await this.platform.archiveThread(threadId, true).catch(() => {})
const pushed = await this.platform.pushThreadArchiveCsvToMesh() const pushed = await this.platform.pushThreadArchiveJsonToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature && !v.threadArchiveCsvMeta?.signature) { if (!pushed?.signature && !v.threadArchiveJsonMeta?.signature) {
throw new Error('expected signed thread archive CSV after mesh push') throw new Error('expected signed thread archive JSON after mesh push')
} }
return { return {
guildThreadCsvCount: (v.threadArchiveCsvRows || []).length + (v.guildThreads || []).length, guildThreadJsonCount: (v.threadArchiveJsonRows || []).length + (v.guildThreads || []).length,
hasMeta: v.threadArchiveCsvMeta != null, hasMeta: v.threadArchiveJsonMeta != null,
threadCount: (v.guildThreads || []).length threadCount: (v.guildThreads || []).length
} }
} }
@@ -3978,32 +3978,32 @@ class HeadlessSession {
const pushed = await this.platform.pushForumTagExportToMesh() const pushed = await this.platform.pushForumTagExportToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature) { if (!pushed?.signature) {
throw new Error('expected signed forum tag CSV export') throw new Error('expected signed forum tag JSON export')
} }
return { return {
guildThreadCsvCount: (v.forumTagExportCsvRows || []).length, guildThreadJsonCount: (v.forumTagExportJsonRows || []).length,
hasForumExport: hasForumExport:
v.lastForumTagExport != null || (v.forumTagExportCsvRows || []).length > 0 v.lastForumTagExport != null || (v.forumTagExportJsonRows || []).length > 0
} }
} }
async runStageInstanceCsvJourney () { async runStageInstanceJsonJourney () {
if (!this.platform) throw new Error('headless not started') if (!this.platform) throw new Error('headless not started')
await this.registerUser({ username: 'st705', displayName: 'Stage CSV 705' }) await this.registerUser({ username: 'st705', displayName: 'Stage JSON 705' })
await this.createGuild({ name: 'Stage CSV 705', publicListing: false }) await this.createGuild({ name: 'Stage JSON 705', publicListing: false })
await this.wait({ mode: 'guild' }, 45000) await this.wait({ mode: 'guild' }, 45000)
await this.createGuildChannel('Stage Export', { type: 'stage' }) await this.createGuildChannel('Stage Export', { type: 'stage' })
await this.refreshView() await this.refreshView()
const ch = this._lastView?.channels?.find((c) => c.type === 'stage') const ch = this._lastView?.channels?.find((c) => c.type === 'stage')
if (ch?.id) await this.platform.joinStageChannel(ch.id).catch(() => {}) if (ch?.id) await this.platform.joinStageChannel(ch.id).catch(() => {})
const pushed = await this.platform.pushStageInstanceCsvToMesh() const pushed = await this.platform.pushStageInstanceJsonToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature && !v.stageInstanceCsvMeta?.signature) { if (!pushed?.signature && !v.stageInstanceJsonMeta?.signature) {
throw new Error('expected signed stage instance CSV after mesh push') throw new Error('expected signed stage instance JSON after mesh push')
} }
return { return {
guildStageCsvCount: (v.stageInstanceCsvRows || []).length + (v.guildStages || []).length, guildStageJsonCount: (v.stageInstanceJsonRows || []).length + (v.guildStages || []).length,
hasMeta: v.stageInstanceCsvMeta != null, hasMeta: v.stageInstanceJsonMeta != null,
stageCount: (v.guildStages || []).length stageCount: (v.guildStages || []).length
} }
} }
@@ -4018,32 +4018,32 @@ class HeadlessSession {
const pushed = await this.platform.pushGuildEventExportToMesh() const pushed = await this.platform.pushGuildEventExportToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature) { if (!pushed?.signature) {
throw new Error('expected signed guild event CSV export') throw new Error('expected signed guild event JSON export')
} }
return { return {
guildStageCsvCount: (v.guildEventExportCsvRows || []).length, guildStageJsonCount: (v.guildEventExportJsonRows || []).length,
hasGuildEventExport: hasGuildEventExport:
v.lastGuildEventExport != null || (v.guildEventExportCsvRows || []).length > 0 v.lastGuildEventExport != null || (v.guildEventExportJsonRows || []).length > 0
} }
} }
async runVoiceStateCsvJourney () { async runVoiceStateJsonJourney () {
if (!this.platform) throw new Error('headless not started') if (!this.platform) throw new Error('headless not started')
await this.registerUser({ username: 'vc706', displayName: 'Voice CSV 706' }) await this.registerUser({ username: 'vc706', displayName: 'Voice JSON 706' })
await this.createGuild({ name: 'Voice CSV 706', publicListing: false }) await this.createGuild({ name: 'Voice JSON 706', publicListing: false })
await this.wait({ mode: 'guild' }, 45000) await this.wait({ mode: 'guild' }, 45000)
await this.createGuildChannel('Voice Export', { type: 'voice' }) await this.createGuildChannel('Voice Export', { type: 'voice' })
await this.refreshView() await this.refreshView()
const ch = this._lastView?.channels?.find((c) => c.type === 'voice') const ch = this._lastView?.channels?.find((c) => c.type === 'voice')
if (ch?.id) await this.platform.joinVoiceChannel(ch.id).catch(() => {}) if (ch?.id) await this.platform.joinVoiceChannel(ch.id).catch(() => {})
const pushed = await this.platform.pushVoiceStateCsvToMesh() const pushed = await this.platform.pushVoiceStateJsonToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature && !v.voiceStateCsvMeta?.signature) { if (!pushed?.signature && !v.voiceStateJsonMeta?.signature) {
throw new Error('expected signed voice state CSV after mesh push') throw new Error('expected signed voice state JSON after mesh push')
} }
return { return {
guildVoiceCsvCount: (v.voiceStateCsvRows || []).length + (v.guildVoiceStates || []).length, guildVoiceJsonCount: (v.voiceStateJsonRows || []).length + (v.guildVoiceStates || []).length,
hasMeta: v.voiceStateCsvMeta != null, hasMeta: v.voiceStateJsonMeta != null,
voiceCount: (v.guildVoiceStates || []).length voiceCount: (v.guildVoiceStates || []).length
} }
} }
@@ -4057,19 +4057,19 @@ class HeadlessSession {
const pushed = await this.platform.pushBoostLedgerExportToMesh() const pushed = await this.platform.pushBoostLedgerExportToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature) { if (!pushed?.signature) {
throw new Error('expected signed boost ledger CSV export') throw new Error('expected signed boost ledger JSON export')
} }
return { return {
guildVoiceCsvCount: (v.boostLedgerExportCsvRows || []).length, guildVoiceJsonCount: (v.boostLedgerExportJsonRows || []).length,
hasBoostLedgerExport: hasBoostLedgerExport:
v.lastBoostLedgerExport != null || (v.boostLedgerExportCsvRows || []).length > 0 v.lastBoostLedgerExport != null || (v.boostLedgerExportJsonRows || []).length > 0
} }
} }
async runScreenShareCsvJourney () { async runScreenShareJsonJourney () {
if (!this.platform) throw new Error('headless not started') if (!this.platform) throw new Error('headless not started')
await this.registerUser({ username: 'sc707', displayName: 'Screen CSV 707' }) await this.registerUser({ username: 'sc707', displayName: 'Screen JSON 707' })
await this.createGuild({ name: 'Screen CSV 707', publicListing: false }) await this.createGuild({ name: 'Screen JSON 707', publicListing: false })
await this.wait({ mode: 'guild' }, 45000) await this.wait({ mode: 'guild' }, 45000)
await this.createGuildChannel('Voice Share', { type: 'voice' }) await this.createGuildChannel('Voice Share', { type: 'voice' })
await this.refreshView() await this.refreshView()
@@ -4078,14 +4078,14 @@ class HeadlessSession {
await this.platform.joinVoiceChannel(ch.id).catch(() => {}) await this.platform.joinVoiceChannel(ch.id).catch(() => {})
await this.startGuildScreenShare('Phase707 screen export').catch(() => {}) await this.startGuildScreenShare('Phase707 screen export').catch(() => {})
} }
const pushed = await this.platform.pushScreenShareCsvToMesh() const pushed = await this.platform.pushScreenShareJsonToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature && !v.screenShareCsvMeta?.signature) { if (!pushed?.signature && !v.screenShareJsonMeta?.signature) {
throw new Error('expected signed screen share CSV after mesh push') throw new Error('expected signed screen share JSON after mesh push')
} }
return { return {
guildScreenCsvCount: (v.screenShareCsvRows || []).length + (v.guildScreenShares || []).length, guildScreenJsonCount: (v.screenShareJsonRows || []).length + (v.guildScreenShares || []).length,
hasMeta: v.screenShareCsvMeta != null, hasMeta: v.screenShareJsonMeta != null,
shareCount: (v.guildScreenShares || []).length shareCount: (v.guildScreenShares || []).length
} }
} }
@@ -4099,19 +4099,19 @@ class HeadlessSession {
const pushed = await this.platform.pushSoundboardRegistryExportToMesh() const pushed = await this.platform.pushSoundboardRegistryExportToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature) { if (!pushed?.signature) {
throw new Error('expected signed soundboard registry CSV export') throw new Error('expected signed soundboard registry JSON export')
} }
return { return {
guildScreenCsvCount: (v.soundboardRegistryExportCsvRows || []).length, guildScreenJsonCount: (v.soundboardRegistryExportJsonRows || []).length,
hasSoundboardExport: hasSoundboardExport:
v.lastSoundboardRegistryExport != null || (v.soundboardRegistryExportCsvRows || []).length > 0 v.lastSoundboardRegistryExport != null || (v.soundboardRegistryExportJsonRows || []).length > 0
} }
} }
async runPresenceActivityCsvJourney () { async runPresenceActivityJsonJourney () {
if (!this.platform) throw new Error('headless not started') if (!this.platform) throw new Error('headless not started')
await this.registerUser({ username: 'pa708', displayName: 'Presence CSV 708' }) await this.registerUser({ username: 'pa708', displayName: 'Presence JSON 708' })
await this.createGuild({ name: 'Presence CSV 708', publicListing: false }) await this.createGuild({ name: 'Presence JSON 708', publicListing: false })
await this.wait({ mode: 'guild' }, 45000) await this.wait({ mode: 'guild' }, 45000)
await this.refreshView() await this.refreshView()
const gid = this.platform.guild?.guild?.id const gid = this.platform.guild?.guild?.id
@@ -4119,14 +4119,14 @@ class HeadlessSession {
if (gid && uid) { if (gid && uid) {
this.platform._bumpPresenceVector(gid, uid, { status: 'online', at: Date.now() }) this.platform._bumpPresenceVector(gid, uid, { status: 'online', at: Date.now() })
} }
const pushed = await this.platform.pushPresenceActivityCsvToMesh() const pushed = await this.platform.pushPresenceActivityJsonToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature && !v.presenceActivityCsvMeta?.signature) { if (!pushed?.signature && !v.presenceActivityJsonMeta?.signature) {
throw new Error('expected signed presence activity CSV after mesh push') throw new Error('expected signed presence activity JSON after mesh push')
} }
return { return {
guildPresenceCsvCount: (v.presenceActivityCsvRows || []).length + (v.guildPresenceActivities || []).length, guildPresenceJsonCount: (v.presenceActivityJsonRows || []).length + (v.guildPresenceActivities || []).length,
hasMeta: v.presenceActivityCsvMeta != null, hasMeta: v.presenceActivityJsonMeta != null,
presenceCount: (v.guildPresenceActivities || []).length presenceCount: (v.guildPresenceActivities || []).length
} }
} }
@@ -4144,16 +4144,16 @@ class HeadlessSession {
const pushed = await this.platform.pushReadStateExportToMesh() const pushed = await this.platform.pushReadStateExportToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature) { if (!pushed?.signature) {
throw new Error('expected signed read-state CSV export') throw new Error('expected signed read-state JSON export')
} }
return { return {
guildPresenceCsvCount: (v.readStateExportCsvRows || []).length, guildPresenceJsonCount: (v.readStateExportJsonRows || []).length,
hasReadStateExport: hasReadStateExport:
v.lastReadStateExport != null || (v.readStateExportCsvRows || []).length > 0 v.lastReadStateExport != null || (v.readStateExportJsonRows || []).length > 0
} }
} }
async runNotificationOverrideCsvJourney () { async runNotificationOverrideJsonJourney () {
if (!this.platform) throw new Error('headless not started') if (!this.platform) throw new Error('headless not started')
await this.registerUser({ username: 'no709', displayName: 'Notification 709' }) await this.registerUser({ username: 'no709', displayName: 'Notification 709' })
await this.createGuild({ name: 'Notification 709', publicListing: false }) await this.createGuild({ name: 'Notification 709', publicListing: false })
@@ -4163,14 +4163,14 @@ class HeadlessSession {
if (ch?.id) { if (ch?.id) {
await this.platform.setChannelNotificationLevel(ch.id, 'mentions').catch(() => {}) await this.platform.setChannelNotificationLevel(ch.id, 'mentions').catch(() => {})
} }
const pushed = await this.platform.pushNotificationOverrideCsvToMesh() const pushed = await this.platform.pushNotificationOverrideJsonToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature && !v.notificationOverrideCsvMeta?.signature) { if (!pushed?.signature && !v.notificationOverrideJsonMeta?.signature) {
throw new Error('expected signed notification override CSV after mesh push') throw new Error('expected signed notification override JSON after mesh push')
} }
return { return {
guildNotificationCsvCount: (v.notificationOverrideCsvRows || []).length + (v.guildNotificationOverrides || []).length, guildNotificationJsonCount: (v.notificationOverrideJsonRows || []).length + (v.guildNotificationOverrides || []).length,
hasMeta: v.notificationOverrideCsvMeta != null hasMeta: v.notificationOverrideJsonMeta != null
} }
} }
@@ -4187,30 +4187,30 @@ class HeadlessSession {
const pushed = await this.platform.pushChannelFollowExportToMesh() const pushed = await this.platform.pushChannelFollowExportToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature) { if (!pushed?.signature) {
throw new Error('expected signed channel follow CSV export') throw new Error('expected signed channel follow JSON export')
} }
return { return {
guildNotificationCsvCount: (v.channelFollowExportCsvRows || []).length, guildNotificationJsonCount: (v.channelFollowExportJsonRows || []).length,
hasChannelFollowExport: hasChannelFollowExport:
v.lastChannelFollowExport != null || (v.channelFollowExportCsvRows || []).length > 0 v.lastChannelFollowExport != null || (v.channelFollowExportJsonRows || []).length > 0
} }
} }
async runCustomStatusCsvJourney () { async runCustomStatusJsonJourney () {
if (!this.platform) throw new Error('headless not started') if (!this.platform) throw new Error('headless not started')
await this.registerUser({ username: 'cs710', displayName: 'Custom Status 710' }) await this.registerUser({ username: 'cs710', displayName: 'Custom Status 710' })
await this.createGuild({ name: 'Custom Status 710', publicListing: false }) await this.createGuild({ name: 'Custom Status 710', publicListing: false })
await this.wait({ mode: 'guild' }, 45000) await this.wait({ mode: 'guild' }, 45000)
await this.refreshView() await this.refreshView()
this.platform.setPresence('online', 'Phase710 custom status') this.platform.setPresence('online', 'Phase710 custom status')
const pushed = await this.platform.pushCustomStatusCsvToMesh() const pushed = await this.platform.pushCustomStatusJsonToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature && !v.customStatusCsvMeta?.signature) { if (!pushed?.signature && !v.customStatusJsonMeta?.signature) {
throw new Error('expected signed custom status CSV after mesh push') throw new Error('expected signed custom status JSON after mesh push')
} }
return { return {
guildStatusCsvCount: (v.customStatusCsvRows || []).length + (v.guildCustomStatuses || []).length, guildStatusJsonCount: (v.customStatusJsonRows || []).length + (v.guildCustomStatuses || []).length,
hasMeta: v.customStatusCsvMeta != null hasMeta: v.customStatusJsonMeta != null
} }
} }
@@ -4223,31 +4223,31 @@ class HeadlessSession {
const pushed = await this.platform.pushGuildWidgetExportToMesh() const pushed = await this.platform.pushGuildWidgetExportToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature) { if (!pushed?.signature) {
throw new Error('expected signed guild widget CSV export') throw new Error('expected signed guild widget JSON export')
} }
return { return {
guildStatusCsvCount: (v.guildWidgetExportCsvRows || []).length, guildStatusJsonCount: (v.guildWidgetExportJsonRows || []).length,
hasGuildWidgetExport: hasGuildWidgetExport:
v.lastGuildWidgetExport != null || (v.guildWidgetExportCsvRows || []).length > 0 v.lastGuildWidgetExport != null || (v.guildWidgetExportJsonRows || []).length > 0
} }
} }
async runActivityInviteCsvJourney () { async runActivityInviteJsonJourney () {
if (!this.platform) throw new Error('headless not started') if (!this.platform) throw new Error('headless not started')
await this.registerUser({ username: 'ai711', displayName: 'Activity Invite 711' }) await this.registerUser({ username: 'ai711', displayName: 'Activity Invite 711' })
await this.createGuild({ name: 'Activity Invite 711', publicListing: false }) await this.createGuild({ name: 'Activity Invite 711', publicListing: false })
await this.wait({ mode: 'guild' }, 45000) await this.wait({ mode: 'guild' }, 45000)
await this.refreshView() await this.refreshView()
this.platform.setPresence('online', 'Phase711 activity', { name: 'Pearcord', type: 'playing', partySize: 1 }) this.platform.setPresence('online', 'Phase711 activity', { name: 'Pearcord', type: 'playing', partySize: 1 })
const pushed = await this.platform.pushActivityInviteCsvToMesh() const pushed = await this.platform.pushActivityInviteJsonToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature && !v.activityInviteCsvMeta?.signature) { if (!pushed?.signature && !v.activityInviteJsonMeta?.signature) {
throw new Error('expected signed activity invite CSV after mesh push') throw new Error('expected signed activity invite JSON after mesh push')
} }
return { return {
guildActivityCsvCount: (v.activityInviteCsvRows || []).length + (v.guildActivityInvites || []).length, guildActivityJsonCount: (v.activityInviteJsonRows || []).length + (v.guildActivityInvites || []).length,
hasMeta: v.activityInviteCsvMeta != null hasMeta: v.activityInviteJsonMeta != null
} }
} }
@@ -4260,15 +4260,52 @@ class HeadlessSession {
const pushed = await this.platform.pushProfileBannerExportToMesh() const pushed = await this.platform.pushProfileBannerExportToMesh()
const v = await this.refreshView() const v = await this.refreshView()
if (!pushed?.signature) { if (!pushed?.signature) {
throw new Error('expected signed profile banner CSV export') throw new Error('expected signed profile banner JSON export')
} }
return { return {
guildActivityCsvCount: (v.profileBannerExportCsvRows || []).length, guildActivityJsonCount: (v.profileBannerExportJsonRows || []).length,
hasProfileBannerExport: hasProfileBannerExport:
v.lastProfileBannerExport != null || (v.profileBannerExportCsvRows || []).length > 0 v.lastProfileBannerExport != null || (v.profileBannerExportJsonRows || []).length > 0
} }
} }
async runSessionActivityJsonJourney () {
if (!this.platform) throw new Error('headless not started')
await this.registerUser({ username: 'sa712', displayName: 'Session Activity 712' })
await this.createGuild({ name: 'Session Activity 712', publicListing: false })
await this.wait({ mode: 'guild' }, 45000)
await this.refreshView()
this.platform.setPresence('online', 'Phase712 session', { name: 'Pearcord', type: 'playing', partySize: 1 })
const pushed = await this.platform.pushSessionActivityJsonToMesh()
const v = await this.refreshView()
if (!pushed?.signature && !v.sessionActivityJsonMeta?.signature) {
throw new Error('expected signed session activity JSON after mesh push')
}
return {
guildSessionJsonCount: (v.sessionActivityJsonRows || []).length + (v.guildSessionActivities || []).length,
hasMeta: v.sessionActivityJsonMeta != null
}
}
async runAvatarDecorationExportJourney () {
if (!this.platform) throw new Error('headless not started')
await this.registerUser({ username: 'ad712', displayName: 'Avatar Decoration 712' })
await this.createGuild({ name: 'Avatar Decoration 712', publicListing: true })
await this.wait({ mode: 'guild' }, 45000)
await this.refreshView()
const pushed = await this.platform.pushAvatarDecorationExportToMesh()
const v = await this.refreshView()
if (!pushed?.signature) {
throw new Error('expected signed avatar decoration JSON export')
}
return {
guildSessionJsonCount: (v.avatarDecorationExportJsonRows || []).length,
hasAvatarDecorationExport:
v.lastAvatarDecorationExport != null || (v.avatarDecorationExportJsonRows || []).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' })