webpeel 0.21.46 → 0.21.48

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -199,7 +199,13 @@ export function createResearchRouter() {
199
199
  }
200
200
  catch (proxyErr) {
201
201
  console.warn('[research] Hetzner proxy failed, falling back to local:', proxyErr.message);
202
- // Fall through to local research pipeline
202
+ // Return the proxy error directly instead of falling back to broken local path
203
+ res.json({
204
+ success: false,
205
+ error: { type: 'proxy_error', message: `Research worker unavailable: ${proxyErr.message}` },
206
+ requestId: req.requestId,
207
+ });
208
+ return;
203
209
  }
204
210
  }
205
211
  // ── Parse & validate body ─────────────────────────────────────────────
@@ -442,6 +448,7 @@ export function createResearchRouter() {
442
448
  }
443
449
  }
444
450
  const elapsed = Date.now() - startTime;
451
+ res.setHeader('Cache-Control', 'no-store'); // Research must never be cached
445
452
  res.json({
446
453
  success: true,
447
454
  data: {
@@ -327,6 +327,7 @@ export function createSearchRouter(authStore) {
327
327
  res.setHeader('X-Credits-Used', '1');
328
328
  res.setHeader('X-Processing-Time', elapsed.toString());
329
329
  res.setHeader('X-Fetch-Type', 'search');
330
+ res.setHeader('Cache-Control', 'no-store'); // Never cache search results — they must be fresh
330
331
  res.json({
331
332
  success: true,
332
333
  data,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "webpeel",
3
- "version": "0.21.46",
3
+ "version": "0.21.48",
4
4
  "description": "Fast web fetcher for AI agents - stealth mode, crawl mode, page actions, structured extraction, PDF parsing, smart escalation from simple HTTP to headless browser",
5
5
  "author": "Jake Liu",
6
6
  "license": "AGPL-3.0-only",