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 มีตัวเลข ชื่อโค้ดเนม และเหตุผลหนึ่งบรรทัด — หน้านี้คือเส้นทาง: อะไรลงเมื่อไหร่ · เพิ่มหรือแตก · ใครเป็นคนทำ
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.
src/lib/fit-matrix.ts as party_split_pct.
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.
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.
ORG not SET (synthetic price).
gender prop — no more 50/50 RNG.
/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.
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.
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.
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.
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.
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.
token-economy.ts,
fit-matrix.ts, PixelSprite.tsx, and every exhaustive
Record<Archetype, …> downstream. Brings the canon roster to all seven.
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).
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.
Documents accompany the ROM but have their own version line — they describe the system rather than embodying it.