openvibers/openvibe.news Commits
Drop temp capture script and sync package version claims in docs
Changes
@@@ -229,11 +229,11 @@ under [Grants the Network must hold](#grants-the-network-must-hold).- **PostgreSQL 18 and Valkey 9** (OpenVibe.Host `roles/data/`, ADR-035): every read and write is async through`openvibe-sdk/db`; Valkey holds the per-actor limit counters (optional: without `VALKEY_URL` they count per process).--- **Packages** (pinned by release tarball): `openvibe-publishing` v1.1.0 (async PostgreSQL stores: revisions,++- **Packages** (pinned by release tarball): `openvibe-publishing` v1.2.0 (async PostgreSQL stores: revisions,citations, authorship, seo, index-hooks, ssr, taxonomy slugify, and the shared ingest/publicationchassis: the Sources client, the change-cursor pull, the signed events consumer and thegate → document → outbox glue), `openvibe-contracts` v0.79.0,-- `openvibe-shared` v2.2.0 (Frame, app icon, footer, legal, release, metrics, ready, seo),++ `openvibe-shared` v2.6.0 (Frame, app icon, footer, legal, release, metrics, ready, seo),`openvibe-sdk` v0.25.0 (db with after-commit hooks, PostgreSQL events outbox and inbox, webhook signatures v2,service tokens, Network sign-in (`openvibe-sdk/sso`) and the service outbox (`openvibe-sdk/events`), per-actor limits, testing).- **OpenVibe.Sources** (4720): `sources.item.read`; optionally `sources.source.read` (outlet@@@ -9,9 +9,9 @@"domain": "openvibe.news","contracts": "openvibe-contracts v0.79.0","packages": [-- "openvibe-publishing v1.1.0",++ "openvibe-publishing v1.2.0","openvibe-contracts v0.79.0",-- "openvibe-shared v2.2.0",++ "openvibe-shared v2.6.0","openvibe-sdk v0.25.0"],"capabilities": [ddeleted file mode 100644@@@ -1,38 +0,0 @@--'use strict';--const { boot } = require('./helpers/boot');--const PARA = 'Officials confirmed on Tuesday that the regional water authority will open two new treatment plants next spring, adding capacity for roughly 400,000 residents across the valley and ending the seasonal restrictions of recent summers. The authority said construction is on schedule and within the approved budget.';--async function storyOn(t, headline, items) {-- let r = await t.api('/stories', { json: { headline } });-- const story = r.json().story;-- for (const it of items) await t.api(`/stories/${story.id}/sources`, { json: { item: it.id } });-- await t.api(`/stories/${story.id}/revisions`, { json: { body: `${PARA} [${items.map((_, i) => i + 1).join(', ')}]`, expected_revision: 0 } });-- await t.api(`/stories/${story.id}/publish`, { json: {} });-- return story;--}--const tags = (html) => {-- const head = html.slice(0, html.indexOf('</head>'));-- const out = head.match(/<(meta|link|script|title)\b[^>]*>/g) || [];-- const body = html.slice(html.indexOf('</head>'));-- const bodyTags = body.match(/<(script|noscript|main|div id="navbar-mount"|footer|nav)\b[^>]*>/g) || [];-- return out.join('\n') + '\n--- body ---\n' + bodyTags.join('\n');--};--(async () => {-- const t = await boot();-- const S = t.sources;-- S.addSource('alpha-news', { name: 'Alpha News' });-- S.addSource('beta-daily', { name: 'Beta Daily' });-- const a = S.addItem({ source_key: 'alpha-news', title: 'Water agency says two plants will open', url: 'https://alpha.example/a/water' });-- const b = S.addItem({ source_key: 'beta-daily', title: 'Budget vote clears way for valley water projects', url: 'https://beta.example/b/budget-vote' });-- await t.pull();-- const good = await storyOn(t, 'Two treatment plants to open next spring', [a, b]);-- const thin = await storyOn(t, 'Single-source water story', [a]);-- const fs = require('fs');-- const dir = process.env.CAP_DIR;-- for (const [name, p] of [['indexable', `/stories/${good.slug}`], ['noindex', `/stories/${thin.slug}`], ['home', '/']]) {-- const r = await t.get(p);-- fs.writeFileSync(`${dir}/${name}.html`, r.text);-- fs.writeFileSync(`${dir}/${name}.tags`, tags(r.text));-- }-- await t.close();-- process.exit(0);--})().catch((e) => { console.error(e); process.exit(1); });
@@ -229,11 +229,11 @@ under [Grants the Network must hold](#grants-the-network-must-hold).
@@ -229,11 +229,11 @@ under [Grants the Network must hold](#grants-the-network-must-hold).
- **PostgreSQL 18 and Valkey 9** (OpenVibe.Host `roles/data/`, ADR-035): every read and write is async through
- **PostgreSQL 18 and Valkey 9** (OpenVibe.Host `roles/data/`, ADR-035): every read and write is async through
`openvibe-sdk/db`; Valkey holds the per-actor limit counters (optional: without `VALKEY_URL` they count per process).
`openvibe-sdk/db`; Valkey holds the per-actor limit counters (optional: without `VALKEY_URL` they count per process).
-- **Packages** (pinned by release tarball): `openvibe-publishing` v1.1.0 (async PostgreSQL stores: revisions,
+- **Packages** (pinned by release tarball): `openvibe-publishing` v1.2.0 (async PostgreSQL stores: revisions,
citations, authorship, seo, index-hooks, ssr, taxonomy slugify, and the shared ingest/publication
citations, authorship, seo, index-hooks, ssr, taxonomy slugify, and the shared ingest/publication
chassis: the Sources client, the change-cursor pull, the signed events consumer and the
chassis: the Sources client, the change-cursor pull, the signed events consumer and the
gate → document → outbox glue), `openvibe-contracts` v0.79.0,
gate → document → outbox glue), `openvibe-contracts` v0.79.0,
- `openvibe-shared` v2.2.0 (Frame, app icon, footer, legal, release, metrics, ready, seo),
+ `openvibe-shared` v2.6.0 (Frame, app icon, footer, legal, release, metrics, ready, seo),
`openvibe-sdk` v0.25.0 (db with after-commit hooks, PostgreSQL events outbox and inbox, webhook signatures v2,
`openvibe-sdk` v0.25.0 (db with after-commit hooks, PostgreSQL events outbox and inbox, webhook signatures v2,
service tokens, Network sign-in (`openvibe-sdk/sso`) and the service outbox (`openvibe-sdk/events`), per-actor limits, testing).
service tokens, Network sign-in (`openvibe-sdk/sso`) and the service outbox (`openvibe-sdk/events`), per-actor limits, testing).
- **OpenVibe.Sources** (4720): `sources.item.read`; optionally `sources.source.read` (outlet
- **OpenVibe.Sources** (4720): `sources.item.read`; optionally `sources.source.read` (outlet
@@ -9,9 +9,9 @@
@@ -9,9 +9,9 @@
"domain": "openvibe.news",
"domain": "openvibe.news",
"contracts": "openvibe-contracts v0.79.0",
"contracts": "openvibe-contracts v0.79.0",
"packages": [
"packages": [
- "openvibe-publishing v1.1.0",
+ "openvibe-publishing v1.2.0",
"openvibe-contracts v0.79.0",
"openvibe-contracts v0.79.0",
- "openvibe-shared v2.2.0",
+ "openvibe-shared v2.6.0",
"openvibe-sdk v0.25.0"
"openvibe-sdk v0.25.0"
],
],
"capabilities": [
"capabilities": [
deleted file mode 100644
deleted file mode 100644
@@ -1,38 +0,0 @@
@@ -1,38 +0,0 @@
-'use strict';
-const { boot } = require('./helpers/boot');
-const PARA = 'Officials confirmed on Tuesday that the regional water authority will open two new treatment plants next spring, adding capacity for roughly 400,000 residents across the valley and ending the seasonal restrictions of recent summers. The authority said construction is on schedule and within the approved budget.';
-async function storyOn(t, headline, items) {
- let r = await t.api('/stories', { json: { headline } });
- const story = r.json().story;
- for (const it of items) await t.api(`/stories/${story.id}/sources`, { json: { item: it.id } });
- await t.api(`/stories/${story.id}/revisions`, { json: { body: `${PARA} [${items.map((_, i) => i + 1).join(', ')}]`, expected_revision: 0 } });
- await t.api(`/stories/${story.id}/publish`, { json: {} });
- return story;
-}
-const tags = (html) => {
- const head = html.slice(0, html.indexOf('</head>'));
- const out = head.match(/<(meta|link|script|title)\b[^>]*>/g) || [];
- const body = html.slice(html.indexOf('</head>'));
- const bodyTags = body.match(/<(script|noscript|main|div id="navbar-mount"|footer|nav)\b[^>]*>/g) || [];
- return out.join('\n') + '\n--- body ---\n' + bodyTags.join('\n');
-};
-(async () => {
- const t = await boot();
- const S = t.sources;
- S.addSource('alpha-news', { name: 'Alpha News' });
- S.addSource('beta-daily', { name: 'Beta Daily' });
- const a = S.addItem({ source_key: 'alpha-news', title: 'Water agency says two plants will open', url: 'https://alpha.example/a/water' });
- const b = S.addItem({ source_key: 'beta-daily', title: 'Budget vote clears way for valley water projects', url: 'https://beta.example/b/budget-vote' });
- await t.pull();
- const good = await storyOn(t, 'Two treatment plants to open next spring', [a, b]);
- const thin = await storyOn(t, 'Single-source water story', [a]);
- const fs = require('fs');
- const dir = process.env.CAP_DIR;
- for (const [name, p] of [['indexable', `/stories/${good.slug}`], ['noindex', `/stories/${thin.slug}`], ['home', '/']]) {
- const r = await t.get(p);
- fs.writeFileSync(`${dir}/${name}.html`, r.text);
- fs.writeFileSync(`${dir}/${name}.tags`, tags(r.text));
- }
- await t.close();
- process.exit(0);
-})().catch((e) => { console.error(e); process.exit(1); });