VERSIONING DECISION (user, 2026-09-22): this first multiplayer release bumps the major version — it ships as v1.0.0 (package.json + CHANGELOG), subsequent steps continue 1.x. The game world is RESET at this cutover per user decision (fresh year-2000 worlds; no save migration).
Add a players table (id TEXT PK, provider, username, cash REAL, reputation REAL) to lib/db/schema.ts and the DDL/migrateColumns in lib/db/client.ts. One-time migration: copy the existing singleton account row into a seeded player (e.g. id local) and drop account. No behavior change yet — all code still reads via a temporary helper so this ships standalone.
Part of the #101 multiplayer plan.
VERSIONING DECISION (user, 2026-09-22): this first multiplayer release bumps the major version — it ships as **v1.0.0** (package.json + CHANGELOG), subsequent steps continue 1.x. The game world is RESET at this cutover per user decision (fresh year-2000 worlds; no save migration).
Add a `players` table (`id TEXT PK`, `provider`, `username`, `cash REAL`, `reputation REAL`) to lib/db/schema.ts and the DDL/migrateColumns in lib/db/client.ts. One-time migration: copy the existing singleton `account` row into a seeded player (e.g. id `local`) and drop `account`. No behavior change yet — all code still reads via a temporary helper so this ships standalone.
kamilkrzywda
added a new dependency 2026-09-22 12:47:28 +02:00
Decision (2026-09-24, user): no world wipe at the v1.0.0 cutover — deployed in-place; the player's wallet and current fleet persist. The "fresh year-2000 world" reset is deferred ("we can reset it later") and will be done by simply rewinding sim_state.clockMs to the start value (doable today via the admin panel's DB CRUD) — open market refreshes on its own via wall-clock expiry, no migration or wipe needed.
Decision (2026-09-24, user): **no world wipe at the v1.0.0 cutover** — deployed in-place; the player's wallet and current fleet persist. The "fresh year-2000 world" reset is deferred ("we can reset it later") and will be done by simply rewinding `sim_state.clockMs` to the start value (doable today via the admin panel's DB CRUD) — open market refreshes on its own via wall-clock expiry, no migration or wipe needed.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Part of the #101 multiplayer plan.
VERSIONING DECISION (user, 2026-09-22): this first multiplayer release bumps the major version — it ships as v1.0.0 (package.json + CHANGELOG), subsequent steps continue 1.x. The game world is RESET at this cutover per user decision (fresh year-2000 worlds; no save migration).
Add a
playerstable (id TEXT PK,provider,username,cash REAL,reputation REAL) to lib/db/schema.ts and the DDL/migrateColumns in lib/db/client.ts. One-time migration: copy the existing singletonaccountrow into a seeded player (e.g. idlocal) and dropaccount. No behavior change yet — all code still reads via a temporary helper so this ships standalone.Multiplayer: players table + migration from singleton account (step 1/12)to Multiplayer: players table + migration from singleton account (step 1/12) — ships as v1.0.0Decision (2026-09-24, user): no world wipe at the v1.0.0 cutover — deployed in-place; the player's wallet and current fleet persist. The "fresh year-2000 world" reset is deferred ("we can reset it later") and will be done by simply rewinding
sim_state.clockMsto the start value (doable today via the admin panel's DB CRUD) — open market refreshes on its own via wall-clock expiry, no migration or wipe needed.