Fix Chrome session list API pagination in IDE beta 9

This commit is contained in:
yilsem committed 2026-09-07 13:58:03 +03:00
1 parent fa63e03eb7
commit ff2eb47302
7 files changed
+189 -8

No files matched your search

+17 -4
View File
@@ -159,10 +159,23 @@ export class ChromeGatewayClient {
case 'status':
return { product: 'AITURK IDE', protocol: 1, profile: this.backend.profile || 'default', local: true }
case 'sessions.list': {
const query = new URLSearchParams({ ...this.scope(), limit: '200', offset: '0', min_messages: '1', archived: 'exclude', order: 'recent' })
const data = await this.rest(`/api/sessions?${query}`)
const rows = Array.isArray(data) ? data : data.sessions || []
return { sessions: rows.slice(0, 200).filter(row => row.source === 'desktop').map(row => ({
const rows = [], seen = new Set()
// The real sessions API validates limit <= 100. Filter before paging:
// cron/CLI traffic must not crowd IDE conversations out of the list.
for (let offset = 0; offset < 200; offset += 100) {
const query = new URLSearchParams({ ...this.scope(), limit: '100', offset: String(offset),
source: 'desktop', min_messages: '1', archived: 'exclude', order: 'recent' })
const data = await this.rest(`/api/sessions?${query}`)
const page = Array.isArray(data) ? data : data.sessions || []
for (const row of page) {
const id = row.id || row.session_id
if (row.source !== 'desktop' || !id || seen.has(id)) continue
seen.add(id)
rows.push(row)
}
if (page.length < 100) break
}
return { sessions: rows.slice(0, 200).map(row => ({
id: row.id || row.session_id, title: clip(row.title || row.preview || 'İsimsiz konuşma', 180),
model: clip(row.model, 160), updatedAt: row.last_active || row.started_at,
})), profile: this.backend.profile || 'default', limited: true }
+1 -1
View File
@@ -2,7 +2,7 @@
"name": "aiturk-ide",
"productName": "AITURK IDE",
"private": true,
"version": "1.0.0-beta.8",
"version": "1.0.0-beta.9",
"description": "TurkServis resmi yapay zekâ geliştirme ortamı. Hermes Agent tabanlıdır.",
"author": "AITURK / TurkServis",
"repository": {