openvibers/openvibe.publishing
Commits
-
openvibe-contracts v0.127.0 (was v0.126.0) (#18)OpenVibers · 10 Oct 2026
f19a3e4 -
openvibe-shared v2.20.3 (was v2.20.0) (#17)OpenVibers · 10 Oct 2026
74c2019 -
openvibe-contracts v0.126.0 (was v0.122.1) (#16)OpenVibers · 10 Oct 2026
4ad58b0 -
openvibe-shared v2.20.0 (was v2.17.0) (#15)OpenVibers · 9 Oct 2026
7b75782 -
openvibe-contracts v0.122.1 (was v0.112.0) (#14)OpenVibers · 9 Oct 2026
899845d -
openvibe-shared v2.17.0 (was v2.15.0) (#13)OpenVibers · 9 Oct 2026
35bb4b2 -
openvibe-shared v2.15.0 (was v2.13.2) (#12)OpenVibers · 8 Oct 2026
2995c99 -
openvibe-shared v2.13.2 (was v2.6.0) (#10)OpenVibers · 8 Oct 2026
a375e51 -
openvibe-sdk v0.35.0 (was v0.15.0) (#9)OpenVibers · 8 Oct 2026
b6dee4b -
openvibe-contracts v0.112.0 (was v0.76.0) (#8)OpenVibers · 7 Oct 2026
f5bcc8b -
Set STATUS.json consumers to openvibe-publishing v1.3.0 (#7)OpenVibers · 5 Oct 2026
3510f2c -
Bump release metadata to 1.3.0 and fix the AI summary migration notesOpenVibers · 4 Oct 2026
51bd5ba -
Add layout.renderDocument over shell.page and release 1.2.0OpenVibers · 4 Oct 2026
c569ae6 -
Set all STATUS.json consumers to v1.1.0 (#3)OpenVibers · 3 Oct 2026
d214b56 -
Publishing 1.1.0: the shared ingest and publication chassis (plan T9 J1, additive). openvibe-publishing/ingest: the Sources client, a named change cursor (<prefix>_ingest_cursor), pullChanges (one transaction per page, one savepoint per item, apply → applied|hold|removed, a bad item isolated), the signed event consumer with an exactly-once inbox, and the normalize/hosts/freshness helpers the five product copies share (119 fixture cases citing their source). openvibe-publishing/publication: createPublication (gate → document → sequencer.stamp → events → outbox on the caller's transaction, tombstones, the IndexNow ping). No existing export, table or document changed. Both suites green (verified).OpenVibers · 29 Sept 2026
bd7e6c2 -
Publishing 1.0.0: the stores run on PostgreSQL through openvibe-sdk/db, async (ADR-035 and its amendment: PostgreSQL 18 behind PgBouncer is every service's system of record, one SQL dialect, PGlite in tests). Every store (revisions, citations, media, discussion refs, schedule, the review log, taxonomy, redirects, the index sequencer) takes the product's openvibe-sdk/db handle instead of a better-sqlite3 one, and every method that touches data is async with the 0.4 names and result shapes. Each data method takes the caller's transaction handle as an optional first argument, so a product's own write and the stores' writes commit or roll back together; multi-statement store writes run in their own db.tx or in a savepoint of the caller's, so a 412/404/410 leaves the caller's transaction usable; indexSequencer.stamp(t, doc) takes the handle always, like outbox.enqueue(t, …). Stores no longer create tables: each module exports schema(prefix) (seo redirectsSchema, index-hooks sequencerSchema, and the root schema({ … }) joining several) for the product's migrations, and store.ensureSchema() runs it for tests. The DDL uses bigint identity keys, jsonb, bigint epoch ms, timestamptz for citations' retrieved_at and COLLATE "C" on identifiers, keeps every CHECK, turns the RAISE(ABORT) guards into PL/pgSQL triggers (SQLSTATE 23001), and has an index under every statement the stores send. Writers of one entity take pg_advisory_xact_lock where 0.4 relied on SQLite's single writer; the scheduler claims with one UPDATE … FOR UPDATE SKIP LOCKED; get-or-create uses ON CONFLICT; loops became ANY/unnest queries and batched inserts (setTerms, attachMany, carryForward, drafts, verify); lists are bounded, cross-entity lists page by keyset (after), and new batch reads (revisions.getMany, citations.forRevisions, reviews.latestMany, taxonomy.termsForMany) keep list routes free of N+1. openvibe-sdk >=0.15.0 is a peer (one copy of the data layer per service; the sql fragments must come from the handle's own SDK), better-sqlite3 is dropped, and PGlite, pg and the SDK v0.15.0 tag are devDependencies. The two-product example applies generated migrations with db.migrate and writes its Search events in the same transaction. Every 0.4 test is kept on PGlite; new schema, transaction, query-count and PgBouncer integration tests; CI starts the PostgreSQL 18 + PgBouncer containers. npm test (Node 22.22.1): 16/16 files, 121 cases with the containers (8 through PgBouncer); 15/16 and 1 skipped without them.OpenVibers · 28 Sept 2026
184b663 -
README and STATUS.json are current (roadmap WS-U task 3): the README gains Purpose, Owns, Capabilities (none held; the grants the discussion, ai and media modules need from the product), Acceptance (what each test file proves), Security (SECURITY.md, escaping, no secrets, calls only through the product's client) and Deploy (a tag products pin) sections; What it does not do is now Does not own. Stale facts corrected: the release is 0.4.0 and the seven products pin v0.4.0 (not 0.2.1), openvibe-shared is a peer dependency since v0.4.0, and tests validate against openvibe-contracts v0.49.0. STATUS.json names the same, adds the ai module, deployed false and features, and is updated 2026-09-28.OpenVibers · 28 Sept 2026
a37b706 -
openvibe-shared v1.5.1, openvibe-contracts v0.33.0 (devDependency)OpenVibers · 23 Sept 2026
9eaffab -
openvibe-shared v1.5.0, openvibe-contracts v0.32.0 (devDependency)OpenVibers · 23 Sept 2026
2b21b2c -
Docs: STATUS.json and README match production (2026-09-23)OpenVibers · 23 Sept 2026
7b32321 -
openvibe-publishing 0.2.1: fix ReDoS in ssr.renderMarkdown/markdownToText (headings with trailing spaces were cubic, unclosed **/__/~~ and backtick runs quadratic, fence lines and [ runs in markdownToText quadratic); same output, linear-time matchingOpenVibers · 23 Sept 2026
c7d1138 -
openvibe-publishing 0.2.0: index-hooks emits the released search.index-document@1 (contracts v0.12.0) and the <owner>.index_document.upserted|deleted events Search consumes, with a monotonic index-revision sequencer; proposal schema removedOpenVibers · 23 Sept 2026
0ff38e1 -
openvibe-publishing 0.1.0: shared publishing packages (revisions, schedule, taxonomy, citations, media, discussion, seo gate, authorship, index hooks, ssr) with the two-products exit proofOpenVibers · 23 Sept 2026
6b4f426