blun-king-cli 9.1.574 → 9.1.576
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,21 @@
|
|
|
1
|
+
## 9.1.576 - 2026-09-07
|
|
2
|
+
|
|
3
|
+
- Preserve standalone C++ and C# as distinct terms in local research recall,
|
|
4
|
+
including case-insensitive queries and ordinary surrounding punctuation.
|
|
5
|
+
- Keep existing saved passages, hashes, source guards, Unicode normalization,
|
|
6
|
+
collection boundaries and output limits unchanged. No reindexing is required.
|
|
7
|
+
- Add a frozen 20-case technical replay and explicit token-boundary regressions.
|
|
8
|
+
This is a local recall correction, not a live WebSearch quality or capacity claim.
|
|
9
|
+
- Retain all public575 crawler, search, Telegram, resume and updater changes.
|
|
10
|
+
|
|
11
|
+
# 9.1.575 - 2026-09-07
|
|
12
|
+
|
|
13
|
+
- Cumulative release retaining all public 9.1.574 changes.
|
|
14
|
+
- The bundled public-web crawler rejects responses carrying `cf-mitigated: challenge` before reading content, following redirects or treating a missing robots file as permission to continue. Case-insensitive header names, normalized values and repeated headers are checked; the response status is retained in the failure report.
|
|
15
|
+
- Unmarked missing robots files and ordinary documentation continue through the existing path. Completed pages remain available when a later page is rejected, with the failure recorded as partial output.
|
|
16
|
+
- This is a response-marker safeguard, not general challenge detection or a CAPTCHA bypass. It does not change search providers, authentication, update locking or the CLI core.
|
|
17
|
+
|
|
18
|
+
|
|
1
19
|
# 9.1.574 - 2026-09-07
|
|
2
20
|
|
|
3
21
|
- Cumulative release retaining every public 9.1.573 payload change.
|
package/package.json
CHANGED
|
@@ -151,7 +151,9 @@ function save({ home, project, report }) {
|
|
|
151
151
|
}
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
|
-
|
|
154
|
+
// Preserve standalone language names whose punctuation is semantically significant.
|
|
155
|
+
const terms = text => [...new Set(text.normalize('NFC').toLocaleLowerCase('en')
|
|
156
|
+
.match(/(?<![\p{L}\p{N}\p{M}_])c(?:\+\+|#)(?![\p{L}\p{N}\p{M}_+#])|[\p{L}\p{N}]{2,}/gu) || [])];
|
|
155
157
|
function query({ home, project, query: question, limit = 5, maxChars = 8000, offset = 0, expectedCollectionSha256 }) {
|
|
156
158
|
const output = { schema: 'blun.research-recall/v1', availability: 'unavailable', matches: [], diagnostics: [],
|
|
157
159
|
sourceVerified: false, retrieval: 'lexical-artifact-search', bytesRead: 0, limited: false,
|
|
@@ -192,6 +192,9 @@ class PublicStrategy:
|
|
|
192
192
|
await asyncio.sleep(max(0, max(0.4, delay) - (time.monotonic() - self.last_fetch)))
|
|
193
193
|
self.last_fetch = time.monotonic()
|
|
194
194
|
async with self.session.get(current, allow_redirects=False) as response:
|
|
195
|
+
if any(value.strip().lower() == 'challenge'
|
|
196
|
+
for value in response.headers.getall('cf-mitigated', ())):
|
|
197
|
+
raise CrawlError('challenge-page-not-crawled', status=response.status)
|
|
195
198
|
if response.status in (301, 302, 303, 307, 308):
|
|
196
199
|
location = response.headers.get('Location')
|
|
197
200
|
if not location: raise CrawlError('redirect-without-location')
|