blun-king-cli 9.1.579 → 9.1.581

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/CHANGELOG.md CHANGED
@@ -1,3 +1,19 @@
1
+ ## 9.1.581
2
+
3
+ - Local HTML fetching now rejects extraction results that are empty after cleanup, instead of presenting a document title alone as page content.
4
+ - Short genuine content, visible headings, and plain-text or Markdown responses remain available. The existing extraction error path is preserved.
5
+ - Includes the 9.1.580 research fixes and earlier Telegram repairs unchanged. Model latency and incoming message addressing are unchanged.
6
+
7
+ ## 9.1.580 - 2026-09-08
8
+
9
+ - Research collections reject impossible calendar dates and unparseable date-time
10
+ suffixes in optional historical source metadata before saving a new report.
11
+ - Recall skips legacy snapshots containing invalid source dates and reports a
12
+ diagnostic without rewriting or deleting them. Separate valid snapshots remain
13
+ searchable; valid date strings keep their original offset and precision.
14
+ - Includes the 9.1.579 research ordering and earlier Telegram repairs unchanged.
15
+ This release does not change model latency or incoming message addressing.
16
+
1
17
  ## 9.1.579 - Research capture ordering
2
18
 
3
19
  - Saved research passages with equal relevance are ordered by their actual UTC retrieval time, including mixed second and millisecond timestamp formats.
@@ -107,6 +107,7 @@ function renderRoot(root, title, safeBaseUrl) {
107
107
  let markdown = createMarkdownService().turndown(root.innerHTML).trim();
108
108
  if (markdown.length === 0) markdown = fallback;
109
109
  markdown = markdown.replace(/\n{4,}/gu, '\n\n\n').trim();
110
+ if (markdown.length === 0) return '';
110
111
  return withTitle(title, markdown);
111
112
  }
112
113
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "blun-king-cli",
3
- "version": "9.1.579",
3
+ "version": "9.1.581",
4
4
  "description": "BLUN CLI - your own AI agent with a Telegram channel. Get it done. With BLUN.",
5
5
  "license": "MIT",
6
6
  "bin": {
@@ -79,8 +79,12 @@ function normalizeReport(report) {
79
79
  passages++;
80
80
  return { startOffset: entry.startOffset, endOffset: entry.endOffset, text: entry.text, textSha256: entry.textSha256 };
81
81
  });
82
+ // Check the written calendar day, not the UTC day shifted by a time-zone offset.
82
83
  ensure(source.sourceDate === undefined || source.sourceDate === null
83
- || typeof source.sourceDate === 'string' && /^\d{4}-\d{2}-\d{2}(?:T[^\s]{1,40})?$/.test(source.sourceDate), 'report-source-date');
84
+ || typeof source.sourceDate === 'string' && /^\d{4}-\d{2}-\d{2}(?:T[^\s]{1,40})?$/.test(source.sourceDate)
85
+ && Number.isFinite(Date.parse(source.sourceDate))
86
+ && new Date(source.sourceDate.slice(0, 10) + 'T00:00:00Z').toISOString().slice(0, 10)
87
+ === source.sourceDate.slice(0, 10), 'report-source-date');
84
88
  return { id: source.id, url: source.url, retrievedAt: source.retrievedAt,
85
89
  sourceDate: source.sourceDate || null, contentSha256: source.contentSha256, status: source.status,
86
90
  totalChars: entries.length ? source.totalChars : null, passages: normalized };