openvibers/openvibe.space CHANGELOG.md
CHANGELOG.md
Changelog
Unreleased
- The AI builder speaks the shared component registry (design 2026-11-09): before starting a
space.app.buildrun, Space reads OpenVibe.Design's publicdesign.component@1registry (GET /api/v1/components) and passes the definitions as the run'scomponentsinput, so a built space is made from the same navbar, menu, Dock, composer, sheet, rows and settings as the rest of OpenVibe. The read is cached for an hour, times out after 2.5 s, and a missing registry only means a build without the vocabulary: it never fails a build. The URL isOV_DESIGN_URL(defaulthttps://openvibe.design).test/spaces-registry.test.js. - The builder is the person's own agent (plan 2026-10-22 §Z, stage Z1): "Describe it and OpenVibe AI builds it" starts a task of the person's one agent (OpenVibe.Actor) instead of Space's own AI loop. The space is the task's subject; the agent writes its files through Space's builder API (
/api/v1/builder/spaces, the capabilitiesspace.build.read|create|write|publish), and the editor opens the Dock at that task and shows the space as the agent writes it. The step reaches the network's agent namespace (agent.step.started|updated|ended, productspace), so the Dock's one timeline shows it. Publishing is never done on its own: the agent asks, the person's answer lands in the Dock ("Needs you") and nothing goes live until they say yes (POST /api/v1/agent/approvals/:id/decide). The old builder stays behindSPACE_BUILDER=legacyuntil the new one is proven; nothing is deleted.test/spaces-agent.test.js. - The forum's links follow Community's move to
/forum(design 2026-11-07): Space's forum redirect now
maps/sand/s/*straight to/forumand/forum/<space>/<thread>(the/t/segment is gone) instead
of passing the old path on, so a bookmark lands in one hop. The home page, both navbars andllms.txtlink
https://openvibe.community/forum; the forum API paths still answer 308 unchanged. - Official example spaces (plan §4 Space: "Next: official example spaces"): three published examples owned by the official OpenVibe account — a link page (
ov-links), a portfolio (ov-portfolio) and a monthly community night with a live RSVP list (ov-night) — adapted from the Space kit'ssite-links,site-portfolioandsite-eventtemplates and kept inseeds/official-spaces/.node scripts/seed-official-spaces.jscreates and publishes them through the service's own modules (server/spaces/official.js); it is idempotent,--reviserepairs drift, and a slug somebody else holds is reported and never taken.spaces.createnow accepts an explicitslug(same checks as a generated one).test/official-spaces.test.js. - Share: a space's page carries the network's one Share button (
data-ov-share-sheet) in its actions; it shares the published space's own address (or the page's address for a draft), with its name and description.test/spaces.test.js. - Guest drafts (openvibe.website, plan 5.9: "making websites and code without needing OpenVibe logins"): a visitor who is not signed in makes a draft on openvibe.space (
GET/POST /spaces/guest) from a website template or a sentence, and edits it with a secret link (/spaces/<id>/edit?key=…; the cookie only remembers it, the link alone works). The draft has no owner and of the secret only its sha256 is kept. It is static: never published, no visitor's data, no server functions; in the preview the SDK answers "sign in to use this" where a visitor's account would be needed. A signed-in person who holds the secret claims it (POST /spaces/<id>/claim): it becomes theirs, the secret is cleared, andspace.app.claimedis logged. The limits (per address, per draft, per service) and the seven-day expiry are inserver/hosting-config.js; the abuse screen (server/spaces/content-check.js) refuses a phishing page and any form in a guest draft that posts to another origin. - Usage readings (plan T5 step 14, Space slice):
server/billing.jsturns the bytes the local object store keeps (space_blobs, each blob once per project) into oneplatform.usage-sample@1gb-monthreading per production project and owner per closed UTC day, queued inbilling_readings(migration0006_billing_readings.sql) and relayed to OpenVibe.Billing'sbilling.usage.record. Off unlessSPACE_BILLING_INTERVAL_MS> 0; withSPACE_OBJECT_STORE=mediaSpace emits none, because Media bills the stored bytes. - The forum moved back to OpenVibe.Community (owner decision, 2026-10-08), so Space keeps none of it. Removed:
server/forum/*,server/relay/*,server/vip/*,server/media/*,server/identity/*,server/{chat-rooms,votes,limits,actor-limits,events,events-consumer}.js,server/http/v1.js,server/render/{board,forum,markdown,jsonld,highlight}.js,public/js/space.js, the forum suites and their fixtures,docs/discord-relay.mdand the roadmap JSON. - Every forum URL answers a permanent redirect to the same path and query on https://openvibe.community:
/sand/s/*by 301 for GET and HEAD and 308 otherwise (the method and body are preserved), and/api/v1/spaces*,/api/v1/posts/*,/api/v1/space-groups*and/api/v1/relay*by 308. - Space's home page (
/) is now a short, honest page: Space will host code and dynamic pages, and "spaces" — apps people build on their OpenVibe account, the network's services and the SDK — with a clear link to the forum at https://openvibe.community/s. It claims no feature Space does not have. - Kept: sign-in (the Network OAuth2 client
space), the discovery files (robots, llms.txt, llms-full.txt, a sitemap holding/alone), health/ready/release.json. Removed the account export/deletion hooks and the rest of the network-event consumer: they only ever touched the forum's tables, and the forum's account data is Community's. The forum tables stay in the database; this release writes no drop migration. - The suite is now
home,redirectsandboot(the real process on a fresh database, ending in a clean SIGTERM).