★ Version History · ROM Lineage

Every revision of the cassette, in order.

The cassette revises visibly. Each ROM bump has a number, a codename, and a one-line reason it exists. This page is the lineage — what shipped when, what broke, what was additive, and who landed it. The current ROM is shown in the pill on every page of command-center · this is the long form.

คาสเซตต์ปรับเปลี่ยนอย่างเห็นได้ชัด · ทุก ROM bump มีตัวเลข ชื่อโค้ดเนม และเหตุผลหนึ่งบรรทัด — หน้านี้คือเส้นทาง: อะไรลงเมื่อไหร่ · เพิ่มหรือแตก · ใครเป็นคนทำ

Era 1 · Sheets
Oct 2025 — Jan 2026
v1.0
Sheets
Oct 2025 – Jan 2026
foundation Google Sheets only. Manual HR tracking in spreadsheets — 20 tabs, formula-on-formula, every cell typed by hand. This was the actual first version of the system. The data structure of those 20 tabs is the schema every Postgres table descends from today, and Sheets remains the shadow save file: every Postgres write fire-and-forgets a mirror back to the same tab the team always knew.
Era 2 · Command Center
Jan – Feb 2026
v2.0
Command Center
Jan – Feb 2026
additive Next.js + Postgres dashboard wrapped around the Sheets. 28 tables, ~348 employees loaded as seed data, fire-and-forget mirror writes so the Sheet stays authoritative for humans while Postgres becomes source of truth for the app. The cassette starts having a screen.
Era 3 · Cassette · the DQ3 rebuild
Feb – Apr 2026
v3.0
Cassette
Feb – Mar 2026
major rebuild The whole thing rebuilt on Dragon Quest III Famicom (1988) archetypes — Hero / Soldier / Wizard / Pilgrim / Merchant, 32×32 gendered sprites with 6-slot palette variation (~260k combos). Formation + Resources tabs. Readiness formula: coverage·0.45 + quality·0.25 + chemistry·0.15 + morale·0.15. Dark wood tabletop aesthetic — no border-radius, no gradients on chrome, no modern UI templates.
v3.1
Party Split
Mar 2026
balance DQ3 EXP-split baked into readiness. Over-staffed slots now dilute per-head contribution at weight 0.05 (taken from coverage). Hoarding a slot costs visibly instead of silently. Lives in src/lib/fit-matrix.ts as party_split_pct.
v3.2
Alltrades
Mar 2026
ledger Alltrades Abbey reskilling ledger — vocation_changes table records every internal career move with the DQ3 cost (stats halved, level reset) but kept spells. POST /api/alltrades appends and mirrors to the VocationChanges Sheets tab.
v3.3
Front Row
Apr 2026
mechanic DQ3 party order on every allocation — Front / Mid / Back. Captain in front + scout in back earns +5 chemistry which feeds readiness. project_allocations.party_order column added; Formation mirror encodes empid@dim@order and emits front / mid / back counts. A Sheets-bootstrap re-run was required to pick up the new headers.
Era 4 · Pulse · SNES, AI, real data
Apr – May 2026
v4.2
Fluid Legend
Apr 2026
visual upgrade SNES-grade 16-bit sprites (64×64) with shading + vocation gear. Obsidian-style Social Graph in the Lobby. URL-based routing for every tab. Optimized path-based SVG rendering. The cassette jumps from Famicom (1988) era visuals to SNES (1992) era.
v4.3
Alive
Apr 2026
org signals Org Grade (S/A/B/C/D/F) on the home screen — computed from chemistry × KPI. Sprint countdown to cycle end. Editable hero attributes in Roster. MatrixGrid scenario rebuild (Codex). Ticker shows ORG not SET (synthetic price).
v4.4
Talk-to-Fill
May 2026
conversation Conversational stat builder. Open any hero card → "Compose with AI" → answer 3–4 questions → AI proposes a full DQ3 profile → review, nudge, approve → writes Postgres + Sheets + AI live context in one chain. ICA Index (I/C/A bars + score) added to every card, reacting live to stat changes. ProjectTrajectoryStrip: financial burn / weeks-left / projected / margin + spark.
v4.5
Real
May 2026
real data May 2026 dossier merged: 320 real employees with names, gender (215m / 105f), DOB, education, ส่วน, certifications (77 records), KPIs (62 rows). 28 missing employees become ghost rows — greyed sprite + halo + "Departed Apr 2026" badge. PlayerCard gains a narrative one-liner. Tome rebuilt as a CEO-signed Letter of Recommendation derived entirely from real DB facts. DQ3 sprite takes a real gender prop — no more 50/50 RNG.
v4.6
Pulse
8 May 2026
org pulse Hero-page rebuild around real org pulse. /api/pulse aggregates active heroes, in-office check-ins, skill family stack, department head-counts, anchor count, ghost count; PulseBanner renders it as the first thing you see after login. /api/hiring reads 33 actual TKC job-board banners and computes a need-gauge per role (HOT / WARM / COVERED / DEEP) by token-matching against employee titles + skills.
v4.6.1
Game Loop
12 May 2026
Kimi
substrate Real-time game loop. game-clock.ts as an Animal-Crossing-style lazy world-state engine — when a director logs in, the cassette computes "what should have happened since last time." match-engine.ts as a CM95-style stochastic match simulator producing a reproducible MatchReport (timeline, quality, per-player stat deltas, named events). Migration 029 adds game_events + projects.director_id + outcome enrichments. Four new API routes. FixtureTab on shortcut 0.
v4.6.2
Parity
13 May 2026
PMO surface Migration 030 · PMO Parity. Three new tables — project_issues, project_risks, project_instalments — plus projects.pm_id, internal_budget_thb, project_year columns. Demo backfill: 5 instalments per project + 0–3 issues + 0–2 risks. /api/db/project-health endpoint + ProjectHealthCard component mirror PMO page-5 per-project. Sections needing data we don't yet have (Timesheet, ERP) render as DATA PENDING · WAITING ON <source> FEED bands — the gap is visible, not hidden.
v4.6.3
Tower
14 May 2026
multi-agent PMO Control Tower built by three AI agents in one codebase, zero merge conflicts. Antigravity rewrote MatrixTab.tsx (783 lines) as the strategic tower from the PMO Roadmap deck. Kimi's game loop became the substrate. Claude extended /api/db/project-health to return a portfolio rollup and built PortfolioControlTower (bilingual, mirrors PMO page-4). One endpoint, two surfaces. PortfolioStrip annual target bumped to ฿4.0B Base Case.
v4.6.4
Mirror
14 May 2026
Kimi
data integrity Full Sheets-restore-path coverage. restoreProjectsFromSheet was silently dropping budget_thb, internal_budget_thb, progress_pct, start_date, end_date, overall_score on round-trip. Fixed. PortfolioControlTower gains a green LIVE DATA pulse indicator on every section header. LedgerTab bilingual copy clarified to say exactly what the restore covers.
v4.6.5
Handbook
14 May 2026
manual Player's Handbook · 13-spread bilingual EN/TH page-flipping component on the Ledger tab. Story, seven heroes, six stats, buildings + Lobby + invisible lines, mission registration + 10× rule, formation + readiness formula, weekly cycle + feedback loop, five traps and the 80% rule, the PMO observer, the endless game. Styled after Championship Manager Italia '95, Dragon Warrior III Explorer's Handbook (Enix America 1991), and CM 01/02. Navigation via ◀ PREV / ▶ NEXT, ← → keys, and TOC row jump.
v4.6.6
Red Dot
16 May 2026 · current
Kimi · Claude
accessibility + mobile Closed the seven Red Dot blockers in one cycle. Formation drag-drop announces every assign / remove via a visually-hidden aria-live region; hero cards (pool + assigned) are keyboard-reachable with Enter / Space. Project Health cards collapse cleanly at 768px and 420px; instalment tables get a horizontal-scroll hint with inset shadow. Handbook flipbook, Tome (/tome/[employee_id]), and Lobby all get a 360px mobile pass. Viewport meta added with theme-color. SSR hydration cleanup (removed stray requestAnimationFrame in i18n hydrator, moved sprintDaysLeft into useEffect, dropped Date() during render). PMO Control Tower lifted its inline <style jsx> keyframe into globals.css. anim-card-appear on every Command Center tab enter. docs/HOUSE_STYLE_AUDIT.md (212 lines) captures the full rule set. Provisional patent draft (297 lines, 5 method claims on reconciling qualitative and quantitative team-performance signals into a deterministic six-axis efficiency signal) ready for attorney review.
Queued · Roadmap
post-16 May 2026
v3.4
Septet
queued
Add the two remaining DQ3 vocations — Fighter (agility / scrappy IC) and Goof-Off (wildcard archetype). Touches token-economy.ts, fit-matrix.ts, PixelSprite.tsx, and every exhaustive Record<Archetype, …> downstream. Brings the canon roster to all seven.
v3.5
Colonists
queued
Immigrant Town — colonist-driven new-division builder. Migration 022_towns.sql adds towns + town_colonists tables; a new /command-center/town/ route with an Expedia-filter colonist picker. When a town hits 100% it can be promoted to a real department (inserts into departments, reassigns colonists, archives the town).
v4.7
Feeds
post-PMO workshop
Turn off the DATA PENDING bands. Once the director workshop maps the customer journey and the PMO commits the ERP + Timesheet feeds, the cassette ingests them directly and Resource Utilization / Instalment-actual data flows through the existing Project Health surface without further UI work.

Companion documents

Documents accompany the ROM but have their own version line — they describe the system rather than embodying it.