changedInput schema / properties / dateRange / description
Previous value: -"Filter to a date window. Useful for finding discussions about recent events."New value: +"Filter to a creation-time window with a start, an end, or both. An empty object is rejected — omit dateRange instead."
changedInput schema / properties / dateRange / properties / end / description
Previous value: -"End date (ISO 8601). Results created before this date."New value: +"Exclusive upper bound — only items created strictly before this instant match. Same formats and UTC reading as start, and must be later than start. A date-only end excludes that whole UTC day: to include it, pass the next day or a full timestamp."
addedInput schema / properties / dateRange / properties / end / pattern
Added value: +"^(\\d{4})(?:-(\\d{2})(?:-(\\d{2})(?:T(\\d{2}):(\\d{2})(?::(\\d{2})(?:\\.\\d{1,3})?)?(?:Z|[+-](\\d{2}):(\\d{2}))?)?)?)?$"
changedInput schema / properties / dateRange / properties / start / description
Previous value: -"Start date (ISO 8601). Results created after this date."New value: +"Exclusive lower bound — only items created strictly after this instant match. ISO 8601: YYYY, YYYY-MM, YYYY-MM-DD, or YYYY-MM-DDThh:mm[:ss[.sss]] with an optional Z or ±hh:mm offset. Reduced and date-only forms mean UTC midnight at the start of that period; a date-time without an offset is read as UTC."
addedInput schema / properties / dateRange / properties / start / pattern
Added value: +"^(\\d{4})(?:-(\\d{2})(?:-(\\d{2})(?:T(\\d{2}):(\\d{2})(?::(\\d{2})(?:\\.\\d{1,3})?)?(?:Z|[+-](\\d{2}):(\\d{2}))?)?)?)?$"
changedInput schema / properties / minPoints / description
Previous value: -"Minimum score/points. Filters out low-engagement content."New value: +"Minimum score. Applies to stories and polls, including the ask_hn, show_hn, and front_page subsets. Comments and jobs carry no points in the search index, so any minPoints excludes them — combining it with tags \"comment\" or \"job\" is rejected."
changedInput schema / properties / query / description
Previous value: -"Search terms. Supports simple keywords — Algolia handles stemming and relevance. Trimmed before searching; blank or whitespace-only input is rejected."New value: +"Search terms. Supports simple keywords — Algolia handles stemming and relevance. Trimmed before searching; blank or whitespace-only input is rejected. Omit for a filter-only search, which needs at least one of tags, author, storyId, minPoints, or a dateRange bound."
addedInput schema / properties / storyId
Added value: +{
+ "description": "Restrict results to one discussion: the id of a story or poll root, combined with the other filters. Pair with tags \"comment\" to search within a thread. Take it from hits[].storyId or the root item of hn_get_thread — a comment id matches nothing.",
+ "exclusiveMinimum": 0,
+ "maximum": 9007199254740991,
+ "type": "integer"
+}
changedInput schema / properties / tags / description
Previous value: -"Filter results by content type. Omit to search all types."New value: +"Filter results by content type: \"story\", \"comment\", \"poll\", or \"job\", or the story subsets \"ask_hn\", \"show_hn\", and \"front_page\". Omit to search all types."
changedInput schema / properties / tags / enum
Previous value: -[
- "story",
- "comment",
- "ask_hn",
- "show_hn",
- "front_page"
-]New value: +[
+ "story",
+ "comment",
+ "poll",
+ "job",
+ "ask_hn",
+ "show_hn",
+ "front_page"
+]
removedInput schema / required
Removed value: -[
- "query"
-]
changedOutput schema / anyOf
Previous value: -[
- {
- "not": {
- "required": [
- "error"
- ]
- },
- "required": [
- "hits",
- "query",
- "totalHits",
- "page",
- "totalPages"
- ]
- },
- {
- "required": [
- "error"
- ]
- }
-]New value: +[
+ {
+ "not": {
+ "required": [
+ "error"
+ ]
+ },
+ "required": [
+ "hits",
+ "totalHits",
+ "page",
+ "totalPages"
+ ]
+ },
+ {
+ "required": [
+ "error"
+ ]
+ }
+]
changedOutput schema / properties / error / properties / data / properties / reason / description
Previous value: -"Machine-readable failure mode. Declared by this tool: `upstream_rejected`: Algolia answered with a 4xx status other than 429 — it rejected the request as built. `upstream_rate_limited`: Algolia answered with HTTP 429. `upstream_unavailable`: Algolia answered with a 5xx status. `upstream_html`: Algolia served an HTML error page with a 200 status, which it does under rate limiting or maintenance. `upstream_malformed`: Algolia answered with a 200 status and a body that is not JSON. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `missing_query_or_filter`: Neither a query nor any filter was supplied, so there is nothing to search by. `invalid_date_range`: dateRange was supplied with neither bound, or with start not before end. `min_points_unscored_type`: minPoints was combined with tags \"comment\" or \"job\", record types Algolia stores without points. `upstream_rejected`: Algolia answered with a 4xx status other than 429 — it rejected the request as built. `upstream_rate_limited`: Algolia answered with HTTP 429. `upstream_unavailable`: Algolia answered with a 5xx status. `upstream_html`: Algolia served an HTML error page with a 200 status, which it does under rate limiting or maintenance. `upstream_malformed`: Algolia answered with a 200 status and a body that is not JSON. Other values are possible when a failure originates below the handler."
changedOutput schema / properties / error / properties / data / properties / reason / examples
Previous value: -[
- "upstream_rejected",
- "upstream_rate_limited",
- "upstream_unavailable",
- "upstream_html",
- "upstream_malformed"
-]New value: +[
+ "missing_query_or_filter",
+ "invalid_date_range",
+ "min_points_unscored_type",
+ "upstream_rejected",
+ "upstream_rate_limited",
+ "upstream_unavailable",
+ "upstream_html",
+ "upstream_malformed"
+]
changedOutput schema / properties / hits / items / description
Previous value: -"A single Algolia search hit (story or comment)."New value: +"A single Algolia search hit (story, comment, poll, or job)."
changedOutput schema / properties / hits / items / properties / title / description
Previous value: -"Story title (present for stories)."New value: +"Item title (present for stories, polls, and jobs)."
changedOutput schema / properties / notice / description
Previous value: -"Recovery hint when results are empty — names the filters applied, for relaxing the search. Absent on non-empty result pages."New value: +"Agent guidance: the next page to request while more pages remain, the last valid page when the requested page is past the end, or the filters to relax when a first page comes back empty. Absent on the last page of a non-empty result."
changedOutput schema / properties / query / description
Previous value: -"The query that was searched."New value: +"The query that was searched. Absent for a filter-only search."
changedOutput schema / properties / truncated / description
Previous value: -"True when the hit list was capped by the count parameter."New value: +"True when more pages remain after this one (page + 1 < totalPages). Absent on the last page Algolia serves."