Releases: jfmoe/smartsearch
Releases · jfmoe/smartsearch
Release list
v0.7.0
@jfmoe/smart-search 0.7.0
Provider Credential Pool
- Adds multi-credential round-robin for allowlisted providers: Exa, Tavily, Jina, Firecrawl, Context7, and AnySearch.
- Supports
*_API_KEYSJSON arrays (config and env). A non-empty KEYS list fully replaces the matching single*_API_KEYafter empty-strip and dedupe. - Selects credentials with a config-dir claim-advance cursor under file lock, and rotates within the same call only on
rate_limited/ explicit quota exhaustion. - Reports pool enablement, key count, and masked tails in doctor/config output without raw secrets.
- Treats KEYS-only pools as configured for capability gates, including AnySearch automatic Vertical Discovery and Jina’s standard minimum-profile contribution.
- Setup and
config setmanage whole KEYS arrays; no dedicated add/remove key subcommands.
Domain and docs
- Records glossary terms Provider Credential Pool vs Cross-account Quota Aggregation and ADR-0005.
- Skill and README language describes multi-credential load spreading and rate-limit rotation without free-account harvesting framing.
Validation
- Full Python suite: 500 passed, 4 opt-in tests skipped.
- Mock smoke: ok.
- Skill mirror and release metadata checks pass.
v0.6.0
@jfmoe/smart-search 0.6.0
Caller-owned intent routing
- Adds complete Caller Capability Declarations to ordinary
searchand diagnosticroutecommands, including catalog-ordered CSV values and the explicitnonesentinel. - Treats a supplied declaration as authoritative: local rules, URL recognition, strict validation, embeddings, and the classifier do not add capabilities. Calls without a declaration retain the existing configured intent router.
- Keeps provider selection, same-capability fallback, unconditional main search, parallel extra sources, and the live Deep Research evidence workflow unchanged.
Shared capability contract
- Establishes the runtime Intent Routing Catalog as the single source for capability identity, semantics, rule terms, semantic examples, classifier material, and generated Skill reference content.
- Updates the Agent Skill and offline Deep Planner so ordinary searches declare the complete capability set in their first search call without a route preflight.
- Synchronizes public and packaged Skill assets and records the authoritative declaration decision in ADR-0004.
Validation
- Full Python suite: 468 passed, 4 opt-in tests skipped.
- Source regression: 290 passed.
- Mock smoke: 27 cases, 0 failed, 0 degraded.
- Skill mirror and generated capability reference checks pass.
- Independent Codex CLI E2E confirmed Documentation Search uses only
docs_searchand does not attempt Vertical Search or AnySearch.
v0.5.1
@jfmoe/smart-search 0.5.1
Packaging fix
- Includes the versioned AnySearch Verified Domain Manifest in the npm package,
restoringdoctorand search startup for globally installed CLIs. - Extends the npm package-content gate to require the manifest, preventing future
releases from passing validation with this runtime asset missing.
Validation
- Reproduced the
0.5.0installed-package failure and verified the corrected
package contains and loads the manifest. npm test: 442 passed, 4 opt-in live acceptance tests skipped.- Release metadata, public/package Skill mirror, wrapper, and npm package-content
checks pass.
v0.5.0
@jfmoe/smart-search 0.5.0
Search Result Journal
- Adds an opt-in, default-disabled Search Result Journal for every completed
Default Search Invocation throughsearchors, including successful,
structured-failure, and CLI-timeout results. - Writes one complete normalized terminal result per compact UTF-8 JSONL record,
preserving primary and extra sources, URLs, routing decisions, provider
attempts, fallback metadata, counts, timing, and failure details. - Sanitizes a copy before persistence by redacting credential-bearing fields and
configured credential values without changing stdout or explicit output files.
Local safety and operations
- Uses daily files under the resolved log directory, user-only permissions where
supported, a 0.5-second cross-process lock, and synchronous non-fsyncappends. - Defaults to 30-day retention, supports permanent retention with
0, and only
cleans up regular files in the recognized dated Journal namespace. - Keeps Journal failures non-fatal: one stderr warning, no retry or partial line,
and no change to the original search result or exit code. - Extends JSON and human-readable
doctoroutput with enablement, retention,
resolved directory, and writable/readiness diagnostics.
Validation
npm test: 442 passed, 4 opt-in live acceptance tests skipped.- Focused CLI and storage-contract coverage for formats, aliases, output files,
timeouts, redaction, failure isolation, retention, permissions, and concurrent
writers. - Public and packaged Skill mirror verification, release metadata checks, and npm
package-content dry-run.
v0.4.0
@jfmoe/smart-search 0.4.0
AnySearch Acceptance Surface
- Aligns explicit AnySearch operations with the current MCP tools for Domain
Discovery, domain-less Vertical Discovery, explicit domain search, Batch
Discovery, and AnySearch Extraction. - Supports nested JSON Sub-domain Parameters while keeping operation names,
upstream tool names, schema-validation state, and classified errors observable. - Returns compact search candidates with title, URL, and descriptions capped at
300 characters; full page content remains an explicit fetch step.
Vertical Discovery and domain status
- Keeps automatic AnySearch discovery behind vertical intent, provider filters,
balanced or strict validation, and an explicitANYSEARCH_API_KEY. - Adds focused academic, gaming, and travel intent coverage without implementing
Automatic Domain Search or changing Web Search fallback behavior. - Introduces an initially empty Verified Domain Manifest and truthful per-operation
status. Candidate domains remain discovered/unverified until all acceptance
gates are satisfied.
Current explicit domain contracts
- Refreshes the observed request parameters for
security.vuln,
finance.fundamental, andcode.docafter live MCP contract drift. - Keeps AnySearch optional and experimental; it does not satisfy the standard
minimum profile or become Web Search or Web Fetch.
Validation
npm test: 430 passed, 4 opt-in live acceptance tests skipped.- Public and packaged Skill mirror verification.
- npm package-content dry-run and release metadata checks.
- Live E2E comparison across academic, security, finance, code, gaming, and travel
scenarios, with compact AnySearch results and selective fetch verification.
v0.3.0
@jfmoe/smart-search 0.3.0
Persistent Skill management
- Replaces one-shot tool targets with a saved Skill Installation Preference.
- Adds
skills install,status,update, andclearfor the Agents, Claude,
Hermes, and custom Skill Containers. - Normalizes and validates saved paths while preserving user-added and obsolete
files during managed updates.
Automatic Skill Sync
- Synchronizes the bundled
smart-search-cliSkill on the first ordinary CLI
invocation after an exact version-string change. - Keeps successful maintenance silent and confines recoverable failure guidance
to standard error without changing the requested command result. - Serializes concurrent processes and atomically replaces configuration and
managed Skill files. - Lets interactive setup establish the same preference while non-interactive
setup and--skip-skillspreserve existing preferences. - Keeps package installation separate from writes to user Skill Containers.
Validation
npm test- Public CLI and real cross-process synchronization acceptance tests.
- Standards and specification review with confirmed findings repaired.
- Public and packaged Skill mirror verification.
- Mock smoke and npm package-content dry-run checks.
v0.2.3
@jfmoe/smart-search 0.2.3
Context7 result guidance
- Documents that
context7:/...items returned by ordinarysearchare
library candidates, not fetchable or citable sources. - Directs agents to take the first relevant candidate, strip the
context7:
prefix, and retrieve documentation withcontext7-docs. - Clarifies that a successful Context7
docs_searchattempt means library
resolution succeeded; it does not mean documentation content was retrieved. - Preserves the existing search result schema and runtime behavior.
Validation
python3 scripts/sync-skill.py --checksmart-search regressionsmart-search smoke --mock --format jsonnpm test- Live Codex CLI validation with
gpt-5.6-lunaconfirmed the first Context7
candidate was passed tocontext7-docsinstead of being fetched or cited.
v0.2.2
@jfmoe/smart-search 0.2.2
Search timeout
- Raises the default
smart-search searchhard timeout from 90 to 180 seconds. - Updates the public Skill, packaged Skill, and bilingual documentation to use the
180-second search budget consistently. - Adds regression coverage for the CLI default and distributed Skill contract.
Validation
npm testsmart-search regressionsmart-search smoke --mock --format json- Release metadata verified consistently across npm, lockfile, and Python
package metadata.
v0.2.1
@jfmoe/smart-search 0.2.1
Skill discovery
- Publishes the updated Skill contract as
@jfmoe/smart-search@0.2.1. - Advertises X/Twitter search in the public Smart Search Skill description and
research-or-retrieval task branch. - Keeps the packaged Skill mirror synchronized with the public source.
Validation
npm test- Release metadata verified consistently across npm, lockfile, and Python
package metadata.
v0.2.0
@jfmoe/smart-search 0.2.0
Personal release identity
- Moves the user-facing npm package to
@jfmoe/smart-search@0.2.0. - Aligns npm metadata, Python metadata, lock metadata, repository links, install
and repair guidance, README documentation, and the public Smart Search Skill. - Formally supports macOS with Node as the only promised JavaScript launcher.
Release policy
- A normal
mainpush only runs tests. - Preview publishing is a manual
workflow_dispatchaction pinned to a full
40-character commit SHA and publishes only tonext. - Stable publishing requires an exact
v0.2.0tag and verifies version
consistency before publishing tolatest.
Validation
npm testnpm pack --dry-runthrough the package-content check innpm test- No release, tag, registry, or workflow-dispatch action was performed while
preparing these notes.