Commits
-
Games M4: instances per place, fenced leases, room transfer, region interest (one process) (#45)OpenVibers · 12 Oct 2026
d4a0826 -
Rapier replaces Havok behind the unchanged physics seam (ADR-0007 M1 steps 4-7), and Games serves its own legal pages (plan T11 decision 6).OpenVibers · 29 Sept 2026
9201a6f -
ADR-0007: rewrite the moddable base (the base is the product, Scraplandia its first pack; Rapier; places and instances; PostgreSQL + Valkey with a write-behind flusher; declarative, QuickJS and Worker mods; phones a real target; OpenVibe.Play for achievements, stats, inventories and lobbies; milestones M1-M6). Nothing on openvibe.games is kept or restored, so M1 starts by deleting the legacy surface, with no shims and no redirects: - the Live legacy import (liveLegacyImport, importLiveLegacy, legacy_live_rows, docs/legacy-import.md); - identity adoption of ovn: keys (migrateIdentity, identityMigration, the ovn: prefix; sign-in keys on the token's subject and a token without one is refused) and IP-bound guest recovery (guest_ips, GUEST_IP_BINDING); the once-only ledger that account merge and deletion still use is renamed identity_adoptions; - the /api/texture alias and the /game and /canvas redirects; - map v1 (migrateV1ToV2, MAIN_TERRAIN_MIGRATED_ID, migrateLegacyMix, the client's legacyLayer, TerrainPatchData.mix): a v1 document is invalid, and the editor e2e checks that it opens empty; - the committed dist-types build output (366 files, now ignored) and the stale gameplay status doc. The guest cookie keys hq_token/hq_reload_ts became openvibe.token/openvibe.reload_ts. ADR-0006 notes that its identity adoption is superseded. The SQLite schema version went 13 -> 11: this build refuses the old world.db on purpose and is not deployed; PostgreSQL replaces the store next (M1), on a fresh database. Reviewed independently; its findings are fixed here (e2e v1 section, ADR notes) or in Live (links to /game and /canvas). pnpm typecheck, lint, test 843/843.OpenVibers · 29 Sept 2026
cfaf83c -
Live legacy import (Wave 12 migration gate): every HoboQuest and canvas table in Live has a recorded decision, and scripts/importLiveLegacy.ts reconciles each one (read = imported + held + excluded). Per-player HoboQuest rows (players, inventory, bank, achievements, recipes, fish, battle stats, structures, farm plots) are archived verbatim under the owner's Network subject in world.db legacy_live_rows (schema 13), because Scraplandia has no equivalent for them. Nothing is mapped into characters. Excluded: the world seed, expired daily quests, empty buff/dungeon/leaderboard tables, the pixel canvas (not a Games feature, and its rows carry IP addresses), and 47 placeholder game_players rows that Live's profile lookup still inserts. Subjects come from the Network identity service (system live) as the games principal, with Live's linked_accounts as a cross-check. Unresolved or conflicting owners are held and listed, never guessed. The importer is a dry run by default and idempotent (keyed by source primary key, never overwrites). --apply needs --backup, which it writes and verifies with integrity_check before one transaction. It refuses Live's production file. The dry run on production copies: 2224 read = 616 imported + 200 held + 1408 excluded. Not applied. docs/legacy-import.md has the inventory, the output and the host commandsOpenVibers · 23 Sept 2026
474df50 -
Docs: ADR-0006 (canonical subjects, platform boundary), README platform integration (env, grants, mods API), architecture and roadmap notes, platform env in the unit fileOpenVibers · 23 Sept 2026
208f41b -
Initial OpenVibe releaseOpenVibers · 17 Aug 2026
c8c9c25