Commit Graph
11 Commits
Author SHA1 Message Date
Manielle dc8a97c53f CI accepts four-part tags (v1.2.3.1) for fixes
Publish image / publish (push) Failing after 53s
2026-10-25 14:22:13 +01:00
Worph 6df8e382b1 release (first build on gitea-watch / IPCR)
Publish image / publish (push) Successful in 2m21s
v1.0.4
2026-10-13 11:02:57 +00:00
Worph a1f55c9fd3 gitea workflow: push to IPCR's direct host (Cloudflare 100 MB cap) [skip ci] 2026-10-13 10:02:27 +00:00
Worph 48eeccc8fb gitea workflow: publish to IPCR (metadec.eth) instead of ghcr
Publish image / publish (push) Successful in 1m53s
2026-10-12 18:30:42 +00:00
Manielle ebc7e1da65 give every record a url-locator CID so the gateway can persist it
Publish image / publish (push) Failing after 13s
A record with no CID cannot be persisted by the gateway ("search-persist: record
carries no CID; not persisted"), yet the gateway still stamps the query as
covered for an hour (META_GATEWAY_SEARCH_COVERAGE_TTL_SECS) and, inside that
window, skips this feeder and answers from what it persisted. So the first query
returned papers and every identical one for the next hour returned none.
Measured on the live box: 40 hits, then 0 hits in 1.5 s with no fan-out.

Each record now carries exactly one `cids/` member: a 0x1006 url-locator over the
canonical, versioned PDF URL (https://arxiv.org/pdf/<id>.pdf). This is the fleet
convention (Gutenberg, internetarchive, jamendo): it is a pure function of the
URL, so it costs no I/O, and it doubles as the byte path that meta-share
redeems. The versioned id means v2 of a paper is a different CID. Built from the
canonical URL rather than the feed's link, which arXiv emits as http:// without
.pdf.

Verified live after deploying: 40 hits each carrying a CID; the same query again
inside its coverage window returns 40 (was 0); meta-share serves the locator
with 206 Partial Content and the bytes are a real PDF (%PDF-1.7, 1,182,901 B).
v1.0.3
2026-10-11 17:02:17 +02:00
Manielle 92b2f8aa0d browse the newest papers when a query has no keywords
A query with only filters (a consumer's `domain:science contentKind:paper` row)
reached the plugin with no free text, and the plugin substituted `all:*`. arXiv
answers that with HTTP 500, so every such query returned nothing, however many
papers existed.

An empty query (or the SDK's `*` placeholder) now browses the major subject
archives (`cat:<archive>.*`, OR-ed) newest first (`sortBy=submittedDate`).
Keyword queries are unchanged: same `all:` field, same URL, relevance order.

The URL is built by a pure function, so both shapes are tested without the
network. Every form was verified against the live API: `all:*` -> 500, the
browse query -> 200 with 60 entries out of ~2.6M papers.

No `licence` is written, on purpose: arXiv declares none per paper, its default
licence does not permit redistribution, and the registry says absence means
"unknown", never "unrestricted".
2026-10-11 16:34:00 +02:00
Worph 1d4eee7042 SDK v1.7.0: advertises over beacon v2 as metamesh.feeder/<upstream>
Publish image / publish (push) Failing after 13s
v1.0.2
2026-10-04 17:35:13 +00:00
Worph 63a19f6ab0 rework domain field
Publish image / publish (push) Failing after 13s
v1.0.1
2026-09-02 00:04:47 +02:00
Worph e69ea60d97 align to metadata keys doc 2026-08-30 19:52:02 +02:00
Worph 8a8c02c97e feeder rework
Publish image / publish (push) Failing after 14s
v1.0.0
2026-08-24 19:13:08 +02:00
Pierre 0ea0c5ca7e Initial commit 2026-08-24 16:42:07 +02:00