openvibers/openvibe.meme Commits

openvibe-shared v4.80.0 (was v4.79.0) (#44)

OP OpenVibers committed 12 days ago · e591605bad · 4 files, +13 −13

Opened by scripts/pin-bump.js in OpenVibers/OpenVibe.Shared after the v4.80.0 release.

Changes

ddiff --git a/README.md b/README.md
iindex eb32636..8f4b463 100644
---- a/README.md
++++ b/README.md
@@@ -127,7 +127,7 @@ Environment variable names are in [.env.example](.env.example); no value is comm
- **PostgreSQL** — `DATABASE_URL` (through PgBouncer) and `DATABASE_DIRECT_URL` (migrations); embedded PGlite in
`MEME_PGLITE_DIR` for development.
- **Valkey** — optional `VALKEY_URL`, `VALKEY_PREFIX` (readiness lists it; the limits in v1 count in-process).
--- **Packages** — `openvibe-contracts` v0.229.0, `openvibe-sdk` v0.74.0, `openvibe-shared` v4.79.0, the same
++- **Packages** — `openvibe-contracts` v0.229.0, `openvibe-sdk` v0.74.0, `openvibe-shared` v4.80.0, the same
tags OpenVibe.Today pins.
## API
@@@ -377,5 +377,5 @@ AGPL-3.0-only. See [LICENSE](LICENSE).
<!-- versions:start -->
- openvibe-contracts: v0.234.0
- openvibe-sdk: v0.78.0
--- openvibe-shared: v4.79.0
++- openvibe-shared: v4.80.0
<!-- versions:end -->
ddiff --git a/STATUS.json b/STATUS.json
iindex 964837a..2cc56e0 100644
---- a/STATUS.json
++++ b/STATUS.json
@@@ -4,17 +4,17 @@
"stage": "product",
"code": true,
"wave": "W21",
-- "plan": "OpenVibe.Meme: the open meme database rebuilt with AI \u2014 entries built from OpenVibe's own running jokes, each cited to the moment it happened, a timeline of later uses, a status, meme of the week and a caption generator on templates",
++ "plan": "OpenVibe.Meme: the open meme database rebuilt with AI — entries built from OpenVibe's own running jokes, each cited to the moment it happened, a timeline of later uses, a status, meme of the week and a caption generator on templates",
"runtime": "node 22, express 4, PostgreSQL 18 (openvibe-sdk/db, async) + Valkey 9",
"port": "5120",
"domain": "openvibe.meme",
"contracts": "openvibe-contracts v0.234.0",
"sdk": "openvibe-sdk v0.78.0",
-- "shared": "openvibe-shared v4.79.0",
++ "shared": "openvibe-shared v4.80.0",
"packages": [
"openvibe-contracts v0.234.0",
"openvibe-sdk v0.78.0",
-- "openvibe-shared v4.79.0"
++ "openvibe-shared v4.80.0"
],
"summary": "OpenVibe.Meme is the open meme encyclopedia, rebuilt with AI. Internet entries carry an origin citation, spread points, variations, Media examples, meaning, L1 labels, related memes and a moderated revision history; OpenVibe's own running jokes keep the original importer. The importer reads only public Chat and Live APIs and proposes a candidate when a recurring phrase appears in at least two uses on two different days; the candidate is born hidden with a verbatim citation for every use and stays hidden until a staff person publishes it. Every citation is re-verified daily, a 404 marks it gone and an entry whose origin is gone is hidden. People vote once a week for meme of the week, and a caption is plain text over a template, never a rendered image. Trends come from Reddit's official API (no scraping), measured by score samples and perceptual hashes. Every public entry is one Search Fabric document queued in the service's outbox. Deep dives gather sources and fail unless every claim is cited. The generator renders real PNGs from the template's own layout and stores them in Media.",
"works": [
@@@ -31,14 +31,14 @@
"The generator (M6): POST /api/v1/generate {template_slug|topic, lines?} researches current uses with research.gather, writes captions and L1 labels with ai.extract, and renders a PNG server-side from the template's own layout and bundled DejaVu fonts (outline, wrap, per-box alignment)",
"Generated PNGs are stored in OpenVibe.Media; the caption row keeps its labels and media_id; generation has its own daily call/cost budget",
"Citations with role origin/use/example, verbatim quote and sha256, canonical OpenVibe.Video URL, VOD seconds, observed time and source_status live/hidden/gone",
-- "The public importer: Chat history/timeline, Rundown topics and segments, VOD transcripts; a recurring phrase across \u22652 uses on \u22652 days; hidden candidates only, never a publish",
-- "Daily citation re-verification: 404/410 \u2192 gone, 401/403 \u2192 hidden, the origin gone hides the entry, a transient 5xx changes nothing",
++ "The public importer: Chat history/timeline, Rundown topics and segments, VOD transcripts; a recurring phrase across ≥2 uses on ≥2 days; hidden candidates only, never a publish",
++ "Daily citation re-verification: 404/410 → gone, 401/403 → hidden, the origin gone hides the entry, a transient 5xx changes nothing",
"The fixed deny list: VOD 5709 and clip 483 are never cited, cached or rendered",
"Meme of the week: ISO weeks, one ballot per week and person, a second vote changes the choice",
"The caption generator: a template, 1–4 lines × 120 characters, a blocked-word list, server-rendered HTML preview, text lines stored in jsonb",
"The API: public entries filtered by scope/q/status/label and sorted newest or top-this-week per channel (Live), an entry with origin/citations/spread/variations/examples/related/revisions, a zero-filled use series, trending, the week, templates, captions, reports, proposals and staff publish/hide/patch/review",
"Search Fabric documents (owner meme, type entry, /m/<slug>) with scope/labels facets and the origin as provenance, in meme_outbox, with a tombstone when an entry is hidden",
-- "The caption generator: a template, 1\u20134 lines \u00d7 120 characters, a blocked-word list, server-rendered HTML preview, text lines stored in jsonb",
++ "The caption generator: a template, 1–4 lines × 120 characters, a blocked-word list, server-rendered HTML preview, text lines stored in jsonb",
"The API: public cursor-paged entries, an entry with citations and timeline, a zero-filled use series, trending, the week, templates, captions, reports, and staff publish/hide/patch",
"Search Fabric documents (owner meme, type entry, /m/<slug>) in meme_outbox, with a tombstone when an entry is hidden",
"Sign-in with OpenVibe.Network (PKCE S256, meme_at/meme_rt/meme_oauth), staff role global_mod+",
ddiff --git a/package-lock.json b/package-lock.json
iindex 99bc9a4..88e867c 100644
---- a/package-lock.json
++++ b/package-lock.json
@@@ -18,7 +18,7 @@
"opentype.js": "^1.3.4",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.234.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.78.0",
-- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.79.0",
++ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.80.0",
"pg": "^8.23.0",
"sharp": "^0.33.5"
},
@@@ -1675,9 +1675,9 @@
}
},
"node_modules/openvibe-shared": {
-- "version": "4.79.0",
-- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.79.0",
-- "integrity": "sha512-GYFDzpScBPYum5KABxeJJHkZmBJM+J1jIB9VnaSm7rZFjGVToKLWztSogZQMgdP06lRVf3oYS+jLFG/dpae+hQ==",
++ "version": "4.80.0",
++ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.80.0",
++ "integrity": "sha512-UtwFy57V2MuYnRzeFDJHeycpR6cOksOueqRCe2gM8ydPCzcFgIKtfNIhB2tFeXbrARvO8hW5Bj959asLiBhWAg==",
"license": "MIT",
"dependencies": {
"jsonwebtoken": "^9.0.0",
ddiff --git a/package.json b/package.json
iindex 776fae9..e3e9c83 100644
---- a/package.json
++++ b/package.json
@@@ -29,7 +29,7 @@
"opentype.js": "^1.3.4",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.234.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.78.0",
-- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.79.0",
++ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.80.0",
"pg": "^8.23.0",
"sharp": "^0.33.5"
},