crawlforge-mcp-server 3.0.13 → 3.0.14

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "crawlforge-mcp-server",
3
- "version": "3.0.13",
3
+ "version": "3.0.14",
4
4
  "description": "CrawlForge MCP Server - Professional Model Context Protocol server with 19 comprehensive web scraping, crawling, and content processing tools.",
5
5
  "main": "server.js",
6
6
  "bin": {
@@ -219,8 +219,8 @@ export class SnapshotManager extends EventEmitter {
219
219
  let isCompressed = false;
220
220
  let isDelta = false;
221
221
 
222
- // Apply delta storage if similar snapshot found
223
- if (deltaInfo && deltaInfo.similarity > this.retentionPolicy.deltaThreshold) {
222
+ // Apply delta storage if similar snapshot found (skip if base content is null, e.g. exact hash match)
223
+ if (deltaInfo && deltaInfo.content && deltaInfo.similarity > this.retentionPolicy.deltaThreshold) {
224
224
  const deltaData = this.createDelta(deltaInfo.content, content);
225
225
  if (deltaData.length < content.length * 0.7) { // Only use delta if it's significantly smaller
226
226
  finalContent = deltaData;
@@ -389,7 +389,7 @@ export class ContentAnalyzer {
389
389
  summarySentences = await this.createAbstractiveSummary(text, targetSentences);
390
390
  }
391
391
 
392
- const summaryText = summarySentences.join('. ').trim() + '.';
392
+ const summaryText = summarySentences.map(s => s.replace(/[.!?]+$/, '').trim()).join('. ').trim() + '.';
393
393
  const compressionRatio = summaryText.length / text.length;
394
394
 
395
395
  return {
@@ -411,8 +411,8 @@ export class ContentAnalyzer {
411
411
  type: 'fallback',
412
412
  length: 'short',
413
413
  sentences: fallbackSentences,
414
- text: fallbackSentences.join('. ').trim() + '.',
415
- compressionRatio: fallbackSentences.join('. ').length / text.length
414
+ text: fallbackSentences.map(s => s.replace(/[.!?]+$/, '').trim()).join('. ').trim() + '.',
415
+ compressionRatio: fallbackSentences.map(s => s.replace(/[.!?]+$/, '').trim()).join('. ').length / text.length
416
416
  };
417
417
  }
418
418
  }