feat: tighten feature pulse flow and backend resilience

This commit is contained in:
OpenClaw Bot
2026-05-09 07:25:26 +02:00
parent f3e6106f49
commit d0806dccb8
4 changed files with 149 additions and 43 deletions
+24 -7
View File
@@ -11,17 +11,34 @@ const baseHeaders = {
'X-Appwrite-Project': projectId,
}
const REQUEST_TIMEOUT_MS = Number(process.env.BUILDPULSE_APPWRITE_TIMEOUT_MS || 4500)
const documentUrl = `${endpoint}/databases/${BUILDPULSE_DATABASE_ID}/collections/${BUILDPULSE_COLLECTION_ID}/documents/${BUILDPULSE_DOCUMENT_ID}`
const collectionUrl = `${endpoint}/databases/${BUILDPULSE_DATABASE_ID}/collections/${BUILDPULSE_COLLECTION_ID}/documents`
async function appwriteFetch(url, init = {}) {
const response = await fetch(url, {
...init,
headers: {
...baseHeaders,
...(init.headers || {}),
},
})
const controller = new AbortController()
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS)
let response
try {
response = await fetch(url, {
...init,
signal: init.signal || controller.signal,
headers: {
...baseHeaders,
...(init.headers || {}),
},
})
} catch (error) {
if (error?.name === 'AbortError') {
const timeoutError = new Error(`Appwrite request timed out after ${REQUEST_TIMEOUT_MS}ms`)
timeoutError.status = 504
throw timeoutError
}
throw error
} finally {
clearTimeout(timeout)
}
if (response.status === 204) return null