feat(v0.8.671): Phase 696 OAuth grant CSV and install token mesh parity
Signed OAuth grant CSV (guild bots as application grants) and install token export CSV follow the bot/slash CSV mesh pattern: oauth-csv-ui, oauth-csv-mixin, delivery-receipts collections, guild gossip, ui-flow IPC, deep link ?oauth-csv=1, oauth-errors dev filter, and agentctl journeys. Adds test:ci-phase696 (static + boot + agentctl) and bumps app to 0.8.671. Documents OAUTH_GRANT_CSV.md, RELEASE_v0.8.671, and opens Phase 697 on the roadmap.
This commit is contained in:
+35
@@ -3647,6 +3647,41 @@ class HeadlessSession {
|
||||
}
|
||||
}
|
||||
|
||||
async runOAuthGrantCsvJourney () {
|
||||
if (!this.platform) throw new Error('headless not started')
|
||||
await this.registerUser({ username: 'og696', displayName: 'OAuth CSV 696' })
|
||||
await this.createGuild({ name: 'OAuth CSV 696', publicListing: false })
|
||||
await this.wait({ mode: 'guild' }, 45000)
|
||||
await this.createGuildBotInstallToken({ name: 'Phase696 OAuth App' })
|
||||
const pushed = await this.platform.pushOAuthGrantCsvToMesh()
|
||||
const v = await this.refreshView()
|
||||
if (!pushed?.signature && !v.oauthGrantCsvMeta?.signature) {
|
||||
throw new Error('expected signed OAuth grant CSV after mesh push')
|
||||
}
|
||||
return {
|
||||
guildOAuthGrantCount: (v.oauthGrantCsvRows || []).length,
|
||||
hasMeta: v.oauthGrantCsvMeta != null
|
||||
}
|
||||
}
|
||||
|
||||
async runOAuthInstallTokenExportJourney () {
|
||||
if (!this.platform) throw new Error('headless not started')
|
||||
await this.registerUser({ username: 'oi696', displayName: 'OAuth Install 696' })
|
||||
await this.createGuild({ name: 'OAuth Install 696', publicListing: false })
|
||||
await this.wait({ mode: 'guild' }, 45000)
|
||||
await this.createGuildBotInstallToken({ name: 'Phase696 Install' })
|
||||
const pushed = await this.platform.pushOAuthInstallTokenExportToMesh()
|
||||
const v = await this.refreshView()
|
||||
if (!pushed?.signature) {
|
||||
throw new Error('expected signed OAuth install token CSV export')
|
||||
}
|
||||
return {
|
||||
guildOAuthGrantCount: (v.oauthInstallTokenExportCsvRows || []).length,
|
||||
hasInstallExport:
|
||||
v.lastOAuthInstallTokenExport != null || (v.oauthInstallTokenExportCsvRows || []).length > 0
|
||||
}
|
||||
}
|
||||
|
||||
async runForumPostSearchJourney () {
|
||||
if (!this.platform) throw new Error('headless not started')
|
||||
await this.registerUser({ username: 'fm672', displayName: 'Forum 672' })
|
||||
|
||||
Reference in New Issue
Block a user