# Changelog

All notable changes to paracosm are documented here. Format follows the spirit of [Keep a Changelog](https://keepachangelog.com/), grouped by major.minor version. Each `0.M.<run_number>` npm publish rolls into the matching major.minor entry. Per-publish detail lives in each [GitHub Release](https://github.com/framersai/paracosm/releases).

## 0.9.0 (2026-05-04)

### Breaking Changes

- cli: paracosm init scaffolds use v0.9 root imports + wm.simulate ([f99cc1d](https://github.com/framersai/paracosm/commit/f99cc1db0020a4e51fee8cc0473a505e331f3557))
- dashboard: view-as-code emits v0.9 root imports + runMany shape ([411b246](https://github.com/framersai/paracosm/commit/411b246f8284cdcb30ebae58c174315033ce66a4))
- pkg: drop subpaths /world-model /runtime /leader-presets /mars /lunar (BREAKING) ([3496501](https://github.com/framersai/paracosm/commit/34965017f36c2d60ccdb356d8b52c52c39f63649))
- kernel internals (SimulationKernel/SeededRng/generateInitialPopulation) accessible via /core (BREAKING — removed from root in package.json next commit) ([1648afc](https://github.com/framersai/paracosm/commit/1648afc567fdc80f1bacd034d633db368490a7ca))
- types: ActorConfig.hexaco is optional (paired runtime fix in next commit) ([0b94daa](https://github.com/framersai/paracosm/commit/0b94daa687aee761eb57fd228933264be6ed3fa5))
- world-model: rename simulateIntervention → intervene, options-bag (BREAKING) ([9cbb493](https://github.com/framersai/paracosm/commit/9cbb493caf9e2918be2041ac8f215f7c53aef97f))
- world-model: simulate accepts options-bag (BREAKING) ([7f573c8](https://github.com/framersai/paracosm/commit/7f573c8be8675c0c37adaf593d07fd66ed643def))
- storage: route run-history + session stores through @framers/sql-storage-adapter ([82ce244](https://github.com/framersai/paracosm/commit/82ce2447086c8e2e87667620cc020c58c672a791))
- sqlite: migrate v0.7 leader_* columns to v0.8 actor_* on boot ([bcc420f](https://github.com/framersai/paracosm/commit/bcc420f0b9dba42534df3483cde2780a36a6d6b6))

### Features

- world-model: quickstart result includes zipped runs[] for ergonomics ([d7c72f1](https://github.com/framersai/paracosm/commit/d7c72f195b9b4ed12dded287e877e89bf2760be1))
- api: BatchOptions aliases existing WorldModelBatchOptions ([8cc0a40](https://github.com/framersai/paracosm/commit/8cc0a4034b0128797ea7ca14b0867250218f07ae))
- api: unified v0.9 root entry — re-exports run/runMany/WorldModel/types ([a8f01e9](https://github.com/framersai/paracosm/commit/a8f01e9846bcf671d1b4fcf99768d6c4dbabca0e))
- api: add run/runMany top-level shortcuts ([eedcec6](https://github.com/framersai/paracosm/commit/eedcec6403255822f62328134b00ca20ce02ebd2))
- api: add v0.9 option/result types ([13e4761](https://github.com/framersai/paracosm/commit/13e47613541fd54d01d59c31896045c65b710e3a))
- waitlist: user_type field + early-access rebrand + colorized form + 'you're in' broadcast script ([10d1e81](https://github.com/framersai/paracosm/commit/10d1e81b1d761f0c5380787222dfaee39474176e))
- landing: styles for waitlist form + cta-secondary pill ([ed06556](https://github.com/framersai/paracosm/commit/ed06556eda70f0e7315b2bb37f05a363282d2dc3))
- landing: waitlist form section with vanilla JS handler ([a99eb91](https://github.com/framersai/paracosm/commit/a99eb91044fc3a8179c5af67db9e1b6dfa344d76))
- landing: three-CTA hero bar — Demo / Enterprise / Star ([3e64d9f](https://github.com/framersai/paracosm/commit/3e64d9f89c50fb522a430f26039b76fc59c005a7))
- server: wire POST /api/waitlist into server router ([021a97d](https://github.com/framersai/paracosm/commit/021a97d0321c96053c3d8e4efa05c8fd16927077))
- server: add POST /api/waitlist handler ([2d860e6](https://github.com/framersai/paracosm/commit/2d860e63e2b787434e0c73066d18b2246c3b033e))
- rate-limiter: add 5-min per-IP waitlist cooldown ([0049435](https://github.com/framersai/paracosm/commit/004943582ae11f6b8bf9a44af1beeef416a946e2))
- server: add waitlist SQLite store ([3476ef3](https://github.com/framersai/paracosm/commit/3476ef340e709928331673273952f491fd2b73c3))
- server: add waitlist confirmation email template ([7513b28](https://github.com/framersai/paracosm/commit/7513b2884f6f1dcf638f744cd6de1550ec22252d))
- server: add Resend wrapper for transactional email ([14a94ea](https://github.com/framersai/paracosm/commit/14a94eaef4a8ff316872401cb0986064f3a9bd77))
- seo: pretty-print sitemap.xml in browsers via XSL stylesheet ([ab63d39](https://github.com/framersai/paracosm/commit/ab63d39707b5551e3e32c80f4b9aaa5ffe6fcbb1))
- sim: constellation per-node stats + edge labels + center chip ([2a7d322](https://github.com/framersai/paracosm/commit/2a7d32231ed42342d749a8a4be8350bab9f53c63))
- quickstart: one-click run for the loaded scenario ([308e228](https://github.com/framersai/paracosm/commit/308e22850ea23628eb742df0b5833efac81da183))
- seo: serve sitemap.xml, robots.txt, llms.txt at root + add AI crawlers ([4ce7c96](https://github.com/framersai/paracosm/commit/4ce7c9672dcba86feed6158e31a86eafb3333745))
- seo: bump homepage to paracosm.agentos.sh + agent-swarm keywords ([954c719](https://github.com/framersai/paracosm/commit/954c71940a8d9b99a1b8614e75d526bbb57d9ba8))
- sim: wire TurnGrid into SimView, slim StatsBar ([8c790bb](https://github.com/framersai/paracosm/commit/8c790bbc49b33becfb49e0f15e16b9790680d04d))
- sim: DivergenceRail → per-turn mini-map ([5c483dd](https://github.com/framersai/paracosm/commit/5c483ddb7a1898e66cd4f4cea618c3a81d03c210))
- sim: collapse forge / dept / reactions / bulletin / fallback by default ([c3f0312](https://github.com/framersai/paracosm/commit/c3f0312ad31f3e51d3612f862f29c92cfe2823c8))
- sim: TurnRow + TurnGrid components ([0d9e965](https://github.com/framersai/paracosm/commit/0d9e9652756c5fbf10bca9ebd164fbb0f08b055c))
- sim: turn-diff helper, DiffBadge, ActorBar compact mode ([1ba4389](https://github.com/framersai/paracosm/commit/1ba4389df0aebdb3a784a5b4181d3cf46f58d8fa))
- quickstart: View-as-Code panel under the prompt input ([6ce98a1](https://github.com/framersai/paracosm/commit/6ce98a11b7de367418f2f6d688718995652ea128))
- quickstart: add view-as-code recipe helpers ([3cf6b9f](https://github.com/framersai/paracosm/commit/3cf6b9fb83745822a2e8dcd15bda1c57c071fd7a))
- compare: swarm diff in pinned-runs comparison panel ([b6fd69f](https://github.com/framersai/paracosm/commit/b6fd69f59f2f67dfdb88a031a34484af6a4caef4))
- library: inline swarm panel inside the run-detail drawer ([43ac140](https://github.com/framersai/paracosm/commit/43ac1407b3ad854aff46a67342aa913c3ff053e1))
- swarm: add paracosm/swarm subpath export with focused helpers ([c1199a5](https://github.com/framersai/paracosm/commit/c1199a59bce28a65991fa775c63e84e3e0bde5bd))
- schema: surface agent swarm on RunArtifact + WorldModel + HTTP API ([a2dd80f](https://github.com/framersai/paracosm/commit/a2dd80fddc2e70ce1e3d5ed04ea3d75150423ede))
- landing: whitepaper coming-soon section with disabled PDF CTA + notify mailto ([2ff98d1](https://github.com/framersai/paracosm/commit/2ff98d1f6f658e5b5341b88ef40f77445549b7cf))
- dashboard: add button-label + metric-value typography roles ([2d02cbf](https://github.com/framersai/paracosm/commit/2d02cbfaa5405663bdc3a3d8f7ea8e3826b7d527))
- landing: friendlier hero, sample-prompt chips, world-model explainer ([392319d](https://github.com/framersai/paracosm/commit/392319d6bfd3252bd7d5b84a3f8fe048e58692cc))
- Studio guide section with steps, Settings CTA, and example RunArtifact ([ded72da](https://github.com/framersai/paracosm/commit/ded72da526fa8e32404f02739df12f3323f8aff7))
- Contact nav link on paracosm landing pointing to agentos.sh/contact ([4ee163a](https://github.com/framersai/paracosm/commit/4ee163a7d349953ab7505aab91822af365dd10a0))
- landing: re-record both demos against current dashboard UX ([73c9818](https://github.com/framersai/paracosm/commit/73c9818ecc9eedfe2117f893f6cdd108ba7bce33))
- tour: show active tab name as amber badge in tour card ([6e93ae9](https://github.com/framersai/paracosm/commit/6e93ae9064a0ebc7bc162dbe55d034eced3a1dd1))
- dashboard: refresh GuidedTour for new 9-tab structure ([f88aa56](https://github.com/framersai/paracosm/commit/f88aa5647900906dcdc2632034e8eecf76817ea8))
- dashboard: merge BRANCHES into STUDIO, LOG into SETTINGS as sub-tabs ([e001cd4](https://github.com/framersai/paracosm/commit/e001cd4813adc65c81a1951408f2ef65fad57c69))
- digital-twin: real case-description textarea above the parsed cards ([1a312fc](https://github.com/framersai/paracosm/commit/1a312fc06418ec0972c498a487ef9ca06ea06422))
- digital-twin: typewriter-animated subject + intervention input ([688df0a](https://github.com/framersai/paracosm/commit/688df0a0d1311722b213303b4d44b499034c6d54))
- landing: patient digital-twin demo recorded against prod ([2e534e1](https://github.com/framersai/paracosm/commit/2e534e17be5cd7071b28398bc4254e8f58a38a3d))
- digital-twin: pivot to patient digital twin (Maria Chen + GLP-1) ([54d672f](https://github.com/framersai/paracosm/commit/54d672fe713760e81db3f8c9989867b96cff51e6))
- digital-twin: demo with metrics that actually move ([1024a47](https://github.com/framersai/paracosm/commit/1024a471ffdcfbd13c19447ca4b18298e0a10f2c))
- digital-twin: real frontier-ai-lab scenario with subject-shaped metrics ([6ce5f20](https://github.com/framersai/paracosm/commit/6ce5f20699f4944b549729f2498bbf3e62428666))
- digital-twin: live SSE progress + scrubbable event playback ([0a65f23](https://github.com/framersai/paracosm/commit/0a65f234ba715e2a14a21a8db5cfb1359eecf10a))
- landing: rewrite hero + digital-twin captions for clarity ([165c0bc](https://github.com/framersai/paracosm/commit/165c0bc0eafe1630e56edcc1eb5a6b08d19b397f))
- landing: swap digital-twin SVG for recorded demo against prod ([73d0c5f](https://github.com/framersai/paracosm/commit/73d0c5feb8693b91b716d773ab030489fdb0b48e))
- dashboard: inline digital-twin demo via Quickstart + SimView detection ([3191d1a](https://github.com/framersai/paracosm/commit/3191d1ad614fe3f374dfda23b732831efefd3ab1))
- landing: drop eyebrows, strengthen digital-twin, animated dividers, nav rename ([d28e85d](https://github.com/framersai/paracosm/commit/d28e85df9c54ddc880076dc9d61d7227e06a7949))
- landing: rewrite positioning + left-align all section headers ([ac1e4e7](https://github.com/framersai/paracosm/commit/ac1e4e74e2743a73b77252b828828c6555667e16))
- landing: elaborate phased captions explaining grounding + tool forging ([4dfdf26](https://github.com/framersai/paracosm/commit/4dfdf26dc8ef33c6f2481241885d9e02990422e7))
- landing: fresh hero captured against revamped Quickstart UI ([9b38979](https://github.com/framersai/paracosm/commit/9b389798003947c5914b116b5bf0beafbd4404e3))
- quickstart: side-by-side actor cards + run-summary strip; hero captions cite forging + APIs ([7f9437b](https://github.com/framersai/paracosm/commit/7f9437b335b629c8a46825aaf370bc8b6888bdf4))
- landing: per-scene narration captions on hero (12x bump kept) ([9e63905](https://github.com/framersai/paracosm/commit/9e63905ffe3a3b35d642d08ba300185e6a0eb174))
- quickstart: fan out grounding across Serper + Tavily + Firecrawl ([4860291](https://github.com/framersai/paracosm/commit/4860291e89e8356df8d7ecc31c034afa8f867c4f))
- quickstart: real deep-research grounding + fresh hero recording ([0633f18](https://github.com/framersai/paracosm/commit/0633f181add8e4d47121e7bb2605c9f62822766f))
- quickstart: expandable per-stage log cards + recorder Constellation/scroll tour ([187ad8f](https://github.com/framersai/paracosm/commit/187ad8f5e264c4dfb4613a415d305d8cb1c26a28))
- security: per-request token auth on /admin/* routes (X-Admin-Token) ([a1d5306](https://github.com/framersai/paracosm/commit/a1d5306a04de2095145e7c35e257e9bacda4a84d))
- sim: wire Constellation layout toggle + drill-in modal into SimView ([492ff4f](https://github.com/framersai/paracosm/commit/492ff4f072325f8db8f48b6a0e4a364a091efcdb))
- sim: ActorDrillInModal — per-actor focused report from a constellation node ([5e7e97b](https://github.com/framersai/paracosm/commit/5e7e97b857076edaa0756bdbc9d20c5801f94336))
- sim: ConstellationView SVG layout for N actors with edge weights ([cd18071](https://github.com/framersai/paracosm/commit/cd18071bca59da674bd2959ddfacd68a2e1fa3a1))
- sim: SimLayoutToggle for Side-by-side vs Constellation ([e112419](https://github.com/framersai/paracosm/commit/e1124193826e26fb22e3f4d43726f9b4416a4bf0))
- sim: computeHexacoDistances helper for Constellation edge weights ([620db13](https://github.com/framersai/paracosm/commit/620db13f380451765b6cef48fb36b4f7de1571ca))
- dashboard: Wipe All overflow item — local buffer + server runs/sessions/output ([ab02ab0](https://github.com/framersai/paracosm/commit/ab02ab096856efa475608e193feaff8535b61152))
- admin: POST /admin/data/wipe — clear runs + sessions tables ([8125cca](https://github.com/framersai/paracosm/commit/8125cca52d5428ff80dd1888019967d1e61caa79))
- studio: wire Studio tab into App + TabBar + tab-routing ([2473b32](https://github.com/framersai/paracosm/commit/2473b32b005a41d7c05232e6928d122f06665652))
- compare: CompareModal accepts extraArtifacts for ad-hoc Studio compare ([b59c983](https://github.com/framersai/paracosm/commit/b59c983e750e8186aef690bc002203765b8876ff))
- studio: useStudioPromote hook wraps POST /api/v1/library/import ([97907b2](https://github.com/framersai/paracosm/commit/97907b252117206b5b2d2575af0c3b2840bd7e50))
- studio: StudioDropZone drag-drop + click-upload ([74e6c36](https://github.com/framersai/paracosm/commit/74e6c36fac2067d5842a00a3cd1a075c879afea0))
- studio: StudioBundleView grid + drill-in ([c1ac7ef](https://github.com/framersai/paracosm/commit/c1ac7efcfbb49af6d4ab90597718f4907e177d64))
- studio: StudioArtifactView delegates to ReportViewAdapter or BatchArtifactView ([aa230ff](https://github.com/framersai/paracosm/commit/aa230ffdf85d6d19d7f8731d3cae26ddb643c6db))
- server: wire POST /api/v1/library/import behind paracosmRoutesEnabled ([b884816](https://github.com/framersai/paracosm/commit/b8848163695725e5eb735c7e8ce5854d7460e5a5))
- server: handleLibraryImport — POST /api/v1/library/import for Studio drops ([a81fe6e](https://github.com/framersai/paracosm/commit/a81fe6e2def5c6ed238c2029f86847587ee722f1))
- studio: parseStudioInput — JSON text → single | bundle | error ([c189307](https://github.com/framersai/paracosm/commit/c18930757a9b7c442ba676f7f6163e6cfbf061cd))

### Bug Fixes

- runtime: read traitProfile via traitsToHexaco when hexaco is omitted ([60b1be0](https://github.com/framersai/paracosm/commit/60b1be0f5a82bd40e037fcdeb6488e48b75a0b59))
- docs: landing examples now compile against current API (leaderCount->actorCount, hexaco required, real fork API) ([4657d4b](https://github.com/framersai/paracosm/commit/4657d4bf9284f2b0a6a0ebd54a01359b4cc88b0f))
- landing: scroll-reveal fallbacks for crawlers/no-JS + mobile code-block wrap ([0ea1ae0](https://github.com/framersai/paracosm/commit/0ea1ae0ec3f95aa82e51ca660169756e03e03366))
- landing: trim mobile hero — hide video + sub-paragraph + chip label below 768px ([b186a42](https://github.com/framersai/paracosm/commit/b186a422b0d8bad14e06aa63bb66e15954790b28))
- email: use paracosm orbital favicon, drop weird '@ frame.dev' signoff ([14e34bb](https://github.com/framersai/paracosm/commit/14e34bb36062314054a7fcbb61c1e89039e4ac3e))
- docs nav uses real paracosm logo; email drops position number; footer to frame/agentos/manic ([10aaec9](https://github.com/framersai/paracosm/commit/10aaec9ca79b2e10621a0e177ef6012a5c15b4db))
- docs: orbit-line stroke uses currentColor so logo stays visible in light mode ([9458be9](https://github.com/framersai/paracosm/commit/9458be9407b3177f793eb6530a0d4535405d85f7))
- deps: restore @napi-rs/canvas umbrella entry in lockfile ([58439f5](https://github.com/framersai/paracosm/commit/58439f5cf4450cc6554967093c4fc4dec5b8014f))
- quickstart: friendly error messages on loaded-scenario CTA ([a58ff00](https://github.com/framersai/paracosm/commit/a58ff000f8ea6f63fb6ab0bcaf82a287dca4d3a7))
- quickstart: make loaded-scenario CTA dynamic from Settings ([74df7be](https://github.com/framersai/paracosm/commit/74df7beb567249c6ed97ed07234327c86b8d1c37))
- quickstart: allow single-actor runs + untrack tsbuildinfo ([e3f366e](https://github.com/framersai/paracosm/commit/e3f366e0f8ef515dbdb78af3718f64bc47271cec))
- quickstart: read presets[].leaders + navigate on /setup redirect ([e3d0584](https://github.com/framersai/paracosm/commit/e3d058413a36b6afe02ab6728e20044d3e27993a))
- viz: per-cell GoL state in tile tooltip ([ec09eca](https://github.com/framersai/paracosm/commit/ec09eca6b7152a3b99dcabd4f4c6f25fc76d8375))
- sim,landing: relocate layout toggle to footer + drop library section ([e7ef5fa](https://github.com/framersai/paracosm/commit/e7ef5fa1833360ab2fe8a468856b4b5ecdbc887a))
- a11y: forge_attempt INSPECT button outside <summary> ([7257a9c](https://github.com/framersai/paracosm/commit/7257a9c17e63bdf993a0b768e52522de3ca50efa))
- a11y: typedoc nested-interactive — extract link outside <details> ([34b1bf6](https://github.com/framersai/paracosm/commit/34b1bf6c0c925a5a0466734984b4a10aea54a007))
- a11y: typedoc nested-interactive — extract <a> from <summary> ([743a181](https://github.com/framersai/paracosm/commit/743a181ace6f3ae4b1c61b4a2a0a2265f8ca727b))
- a11y: typedoc light-theme link/accent tokens — AA on sepia bg ([a462a6c](https://github.com/framersai/paracosm/commit/a462a6c8d5d7a5637ea4af6e850aa9503dea492b))
- a11y: light-theme landing tokens + docs footer brand override ([f328c38](https://github.com/framersai/paracosm/commit/f328c38a369a62dee1675bd4a823faa37473640d))
- sim,viz: mobile event spacing, footer hint wrap, popover scroll cutoff ([ab17e2c](https://github.com/framersai/paracosm/commit/ab17e2c5d70d3b87c7720be7c2490b99cc852169))
- a11y: contrast singletons — guideCta white text, moreNote --text-3, light-theme rust bumped, typedoc brand span override ([34f08e8](https://github.com/framersai/paracosm/commit/34f08e830fb569c1ece7dd818b13e1b454ecbc12))
- a11y: underline prose links in landing sections + tabindex=0 on stats-bar scroll region ([39f4b8d](https://github.com/framersai/paracosm/commit/39f4b8d96a34df386bbf28d8c2a3d9aead8632e1))
- a11y: move EventCard INSPECT button outside <summary> + sparkline-style aria-label on CommanderTrajectoryCard SVG ([c4d4bbc](https://github.com/framersai/paracosm/commit/c4d4bbcdc933a3b219f191e30715caa247dd7b47))
- a11y: EventLog index — bump from --text-4 (3:1) to --text-3 (6.5:1) for AA contrast ([3fd0b51](https://github.com/framersai/paracosm/commit/3fd0b515648cb0cc620edcfd1009e39abbfbb0ef))
- a11y: contrast — drop opacity on event-log index, transparent outcome-badge bg, darker light-theme amber/vis ([36b2485](https://github.com/framersai/paracosm/commit/36b248586b99f0b933d97ac4dc5959a06ef2d894))
- a11y: add tabindex=0 to scrollable code-body blocks so keyboard users can scroll long examples ([a99d1a4](https://github.com/framersai/paracosm/commit/a99d1a42d1f4097537fbe02cd28ff906e539a8b6))
- a11y: drop role=button from Tooltip wrapper, move sparkline aria-label onto the SVG itself ([dcfbf1b](https://github.com/framersai/paracosm/commit/dcfbf1bc9532222b3b43e7cf6c156a9c1ff5b968))
- a11y: RunCard nested-interactive — drop tabIndex + key handler so inner buttons are the keyboard affordances ([887da91](https://github.com/framersai/paracosm/commit/887da91f74ef4b3aec0ad39091b7046ebe8356a8))
- refresh package-lock for @framers/* dep bumps + a11y aria-required-children + nested-interactive on BundleCard ([15dbe7c](https://github.com/framersai/paracosm/commit/15dbe7c4eedcde568ead86426d606a9838127c33))
- chat: keep tablet (~768px) sidebar layout; collapse only on phones (<640px) ([89ae5f4](https://github.com/framersai/paracosm/commit/89ae5f4da07db3436a18dc63ecdeb32b5d24dcd4))
- viz: wrap bare unicode escapes in JSX expressions so glyphs render (not literal text) ([a1b474f](https://github.com/framersai/paracosm/commit/a1b474f05acda3377f08c1fb958b2e515ef977db))
- viz: clamp narrow region max-width so canvasWrap + spotlight overlay don't overflow phone viewport ([a968a28](https://github.com/framersai/paracosm/commit/a968a283dea2a7f63d193cb13ec0fc63a4c6bd60))
- viz: clamp hover-tooltip with overflow-hidden so role line ellipsizes on phone canvases ([3134fae](https://github.com/framersai/paracosm/commit/3134fae8dd77f6aad719f0dd83dfa0ed8579bb79))
- viz: mobile responsive — clamp colonist-search popover, fix mood-legend ellipsis, drop sim leader-column 280px floor ([3d27093](https://github.com/framersai/paracosm/commit/3d27093142a4349807765da3c71ceaab8d56a4a0))
- docs: expose all subpaths in typedoc + add e2e smoke spec for live site ([dcd6bed](https://github.com/framersai/paracosm/commit/dcd6bed7202d2eba75df68b5f76df03beaa05c0a))
- docs: correct stale imports + add proof-by-typecheck for advertised subpaths ([520f1f2](https://github.com/framersai/paracosm/commit/520f1f262e30d099c88ca738971ca3f4dd0cf533))
- digital-twin: make Subject/Intervention legends sit inside the fieldset ([f7934fb](https://github.com/framersai/paracosm/commit/f7934fb53dd28ec4d6d8539c24b714df0824d2c2))
- export-menu: standalone modifier classes (triggerOpen, itemRecording) ([6ae588c](https://github.com/framersai/paracosm/commit/6ae588c6f384d6a94139579b753c25e3594a8b0f))
- event-card: reorder border shorthand before border-left so accents render ([b0b85ca](https://github.com/framersai/paracosm/commit/b0b85caf6b24079521cf2ec17be59394b0882382))
- settings: rename grid4 to simRow5 (matches actual column count) ([db22e0c](https://github.com/framersai/paracosm/commit/db22e0cb36c056b6e96ef518b377e17a00a8ee70))
- topbar: guard progressPct divide-by-zero ([03e91a4](https://github.com/framersai/paracosm/commit/03e91a447b515e365957487470cdb65c1d848940))
- mobile: whitepaper + banner + footer + Compare modal phone breakpoints ([aabc4fe](https://github.com/framersai/paracosm/commit/aabc4fe103d09d10312405df0239a004f8fb12b9))
- landing: bake width/height onto whitepaper pill icon so it sizes without CSS ([ceba749](https://github.com/framersai/paracosm/commit/ceba74908d7c948c88b615e0a9d7e1b6450d93d1))
- compare: drawer z-index above modal, positional Actor N labels, trajectory caption ([87dadfd](https://github.com/framersai/paracosm/commit/87dadfd7e5f105eeb278458b7c9c237449bd0204))
- dashboard: second-pass typography fixes from CodeRabbit follow-up ([fdebc12](https://github.com/framersai/paracosm/commit/fdebc12196aa4bc1db89ad4217b145a2b9e353e0))
- dashboard: drop .clearFilterButton dead code, keep TraitModelNotice headline mono ([286e8f0](https://github.com/framersai/paracosm/commit/286e8f04776ab7e004f5e5b86e8a3fc0151e3011))
- a11y: wrap React root in <main id=main-content> so skip-link works with JS enabled ([0f84b63](https://github.com/framersai/paracosm/commit/0f84b630943da3c693d446daaef43bd89b04d87e))
- dashboard: restore sentence case on prose-bearing typography roles ([37d0267](https://github.com/framersai/paracosm/commit/37d0267410bc33db208b39587039bde3246d1050))
- a11y+seo: /sim canonical, robots.txt + sitemap.xml, main landmark, h4->h3, contrast, world-models link underline, sr-only sim h1 ([2a8111c](https://github.com/framersai/paracosm/commit/2a8111ce739ba9c01a90519e0e97a09aafa7f571))
- dashboard: tighten digital-twin form layout, normalize type scale ([f7cf6a8](https://github.com/framersai/paracosm/commit/f7cf6a819ca4e71758a8701e6c6b43fa115a329f))
- landing: trim white intro frames from hero video ([9d7a0eb](https://github.com/framersai/paracosm/commit/9d7a0eb6d3297d97cee6bc6da51a83f359cfb384))
- dashboard: replace hardcoded Maria Chen demo with editable subject + intervention form ([72b6ac7](https://github.com/framersai/paracosm/commit/72b6ac713d342d0f0eb23cbf3187b157cc35be18))
- COOKBOOK.md is uppercase on github (case-sensitive paths) ([40b7fa4](https://github.com/framersai/paracosm/commit/40b7fa4e1728fdd2d5976590e3be51e312f80cb9))
- landing: define --bg-card so the hero video stops flashing white ([d88c43d](https://github.com/framersai/paracosm/commit/d88c43d207d0dbc221b03f0af9412cad63511269))
- dashboard: restore global JSX namespace via shim ([43d734d](https://github.com/framersai/paracosm/commit/43d734dc2748495718971de5f1a327639f2e4825))
- dashboard: regenerate lockfile to include emnapi optional peers ([d936f07](https://github.com/framersai/paracosm/commit/d936f07dd35225f3ce60f37c062bbd428677bb3e))
- dashboard: bump @vitejs/plugin-react to ^5.2.0 for vite 8 peer ([cab2dd9](https://github.com/framersai/paracosm/commit/cab2dd9a69f7b7c01e9675ebf7e7a6792689cd4f))
- reports: RunStrip cells truncate cleanly on phone widths ([35296b8](https://github.com/framersai/paracosm/commit/35296b81ba698864b2ca47e51589c3a1c14993c5))
- viz: mode pills row scrolls horizontally on narrow viewports ([eabcbeb](https://github.com/framersai/paracosm/commit/eabcbeb39bf0823bd2245e503552dcf8068c50f6))
- docs: hide breadcrumb on phone widths ([288a231](https://github.com/framersai/paracosm/commit/288a2315bbe2d7d393da4ec9f568276ee6a92126))
- footer: collapse to status + cost only on phone viewports ([d71990b](https://github.com/framersai/paracosm/commit/d71990bcb62e2b8b44a9dd1ff3d9e82f6cdda1ed))
- /chat: tighten rate limits + cap input size + concurrency cap ([7c89433](https://github.com/framersai/paracosm/commit/7c8943356264bab2a742ced47976e8758ab12dfa))
- landing: trim hero to 1:34, drop speed mention from results caption ([478e9c2](https://github.com/framersai/paracosm/commit/478e9c2bb6f033d0a685abcf14d6eafb912ad106))
- routing: persist Studio + Settings sub-tab in URL ([42ec31a](https://github.com/framersai/paracosm/commit/42ec31a8e9951dee9cf456e05ebb12a1fa64714a))
- quickstart: friendlier setup + URL fetch errors, align landing breakpoint ([730f9cc](https://github.com/framersai/paracosm/commit/730f9ccc52587d1ff09d84ca54154fe765d9e048))
- replay: banner names which run is replaying ([d6ff99a](https://github.com/framersai/paracosm/commit/d6ff99a13715b79eda701dea3e5164c5abea1ffc))
- quickstart: friendlier PDF error messages ([f2fe384](https://github.com/framersai/paracosm/commit/f2fe384234ea583e6b5a0c7090817c74ca8ca8b4))
- tour: drop chat step when scenario disables character chat ([853310d](https://github.com/framersai/paracosm/commit/853310dc51ad3e9ab3496aeeaf465df75d499f67))
- replay: preserve ?replay query when launching a cached run ([a996b1f](https://github.com/framersai/paracosm/commit/a996b1fe5ffa02d23b0a4c22f68e9e99466ec280))
- quickstart: wire pdf.worker.min.mjs URL via Vite asset import ([8fb7479](https://github.com/framersai/paracosm/commit/8fb7479e27991bf1261e6112d9cfaf02f9607d20))
- tour: preserve real run data + restore pre-tour tab on close ([4de45ad](https://github.com/framersai/paracosm/commit/4de45adbd849ea1010807580f01f2eba8159c938))
- tour: hoist onTabChange out of measure into a step-only effect ([0675273](https://github.com/framersai/paracosm/commit/06752733adc92fb5dac31f2df9cd8e88a6e1d148))
- tour: defer lookup until activeTab commits + populate viz snapshots ([511e60b](https://github.com/framersai/paracosm/commit/511e60be942a6a166a3e41f8a7f895e5514d59c8))
- tour: MutationObserver lookup + mobile card + generic page title ([b498a03](https://github.com/framersai/paracosm/commit/b498a0334e32f7d613e45ac04e42036a645c5341))
- dashboard: GuidedTour retries selector lookup until tab content mounts ([f9ec4b1](https://github.com/framersai/paracosm/commit/f9ec4b1b9dea6be77c275aa9ca397bfed791b88b))
- landing: re-record e2e top hero with WRITE label + visible typing ([5a91e6b](https://github.com/framersai/paracosm/commit/5a91e6be527b67f096071f40f65f8ad2181d2434))
- scenario-research: default missing canonicalFacts/counterpoints/notes to empty ([cad2778](https://github.com/framersai/paracosm/commit/cad2778a785d713cbe1f2da4900d13ba145416b2))
- landing: kill theme flash with inline pre-paint script ([c0ae52a](https://github.com/framersai/paracosm/commit/c0ae52a0176a34e236a2bfd9f1bc470797e821b6))
- recorder: clear state + visible keystroke typing on e2e top hero ([802d4b3](https://github.com/framersai/paracosm/commit/802d4b3a403c5b0ba01afc88fb19154e9f4b1703))
- dashboard: tagline + tab reorder ([e888c04](https://github.com/framersai/paracosm/commit/e888c042fcf5f1d4c3c2c7bfb7e385eff420791c))
- dashboard: tab order + dividers + drop bundle 'Unknown' rows ([7c0c29f](https://github.com/framersai/paracosm/commit/7c0c29fd2319add265db7ccc37482b03fce555d1))
- landing: trim e2e top hero from 3:15 to 1:45 ([16523cd](https://github.com/framersai/paracosm/commit/16523cd3d4a07ec16e6d43b3370b326d454db617))
- landing: re-record both demos against SeedInput-on-top layout ([2b55769](https://github.com/framersai/paracosm/commit/2b55769422849956a49865cb610999a32d44ee3f))
- quickstart: revert SeedInput-on-top layout ([155326c](https://github.com/framersai/paracosm/commit/155326ca54582b4253ba217800bc5c1b3602489c))
- landing: re-record e2e top hero with WRITE label visible ([cd0b361](https://github.com/framersai/paracosm/commit/cd0b36194178c53db7d6ddd8f287ee1cf6324f1f))
- recorder: anchor e2e seg timestamps to ctxCreationMs ([a7cb5a7](https://github.com/framersai/paracosm/commit/a7cb5a73382987ad08592a3341a798bcbe325cf6))
- recorder: target seed textarea via data-quickstart-seed ([d73e41b](https://github.com/framersai/paracosm/commit/d73e41b61a51c60037d520535dff6a2065a0f8c0))
- demo: correct seg-timestamp anchor so typing shows in segment A ([7fed4a1](https://github.com/framersai/paracosm/commit/7fed4a15e104e4a24f8d34de971fa3fd8ab03fdb))
- demo: re-record after WRITE rename + bump cache to dt-8 ([6225502](https://github.com/framersai/paracosm/commit/62255024c98154a7c069b9dc9746d4095ffa0b5b))
- quickstart: rename PASTE tab to WRITE + bump dt cache to dt-7 ([352f647](https://github.com/framersai/paracosm/commit/352f647c18c9e073a7f9a78988b88059c3f9e0f2))
- demo: re-record after dt card moved to top of Quickstart ([c3f01b8](https://github.com/framersai/paracosm/commit/c3f01b8a8dbe30d540c9aa2c8e3f688bb4bb1b1d))
- quickstart: put digital-twin card above seed input ([bc1005d](https://github.com/framersai/paracosm/commit/bc1005d86b18c0c9dd9dc52109f6c24169f8b2ea))
- demo: typewriter visible across full segment A ([b5b4e2a](https://github.com/framersai/paracosm/commit/b5b4e2a2704a4473feea2ba22dde9a0d63536718))
- demo: trim empty-Quickstart frames from dt hero ([1647130](https://github.com/framersai/paracosm/commit/1647130c706fa6043e53865c1143e3d94e19c73d))
- demo: drop empty-seed framing from digital-twin recording ([1911663](https://github.com/framersai/paracosm/commit/1911663716e1ba397059d2a2ad38589c9fa78896))
- orchestrator: force milestone category to scenario effects key ([fbac260](https://github.com/framersai/paracosm/commit/fbac2609fbd8ee990cc1be0302444e5819bca2fe))
- director: MUST-language for category constraint ([8282911](https://github.com/framersai/paracosm/commit/82829114d53373912adc1fb1a16fad6fdbb0d6aa))
- digital-twin: minimal categoryMapping that doesn't break research path ([5dcddcb](https://github.com/framersai/paracosm/commit/5dcddcbd35950e094fd699f27127f9af86dcaa40))
- digital-twin: populate knowledge.categoryMapping so Director picks AI-lab categories ([b285d5d](https://github.com/framersai/paracosm/commit/b285d5d325518cee9893fa6bdd3ccbfcab0bc715))
- digital-twin: re-record demo against frontier-ai-lab scenario ([007df67](https://github.com/framersai/paracosm/commit/007df670cf7050a603d61fc02cf21f3d2b4791c9))
- digital-twin: allowlist AI-lab metrics + bump maxTurns to 2 ([40eabdc](https://github.com/framersai/paracosm/commit/40eabdcaf1a96a833d9badd2f5a5461c9ccca44a))
- landing: add video controls + drop wm. prefix from dt caption ([f66bf84](https://github.com/framersai/paracosm/commit/f66bf84bc39ccce04e9f59cdeb81679c177e25aa))
- landing: make digital-twin video full-width ([aea7228](https://github.com/framersai/paracosm/commit/aea72282094ae2ad9b2f897399c9b75a60cd6152))
- digital-twin: pre-warm world on boot + drop maxTurns to 1 ([2040af3](https://github.com/framersai/paracosm/commit/2040af31f2292171baa5aea4f68e02ac918737a8))
- deploy: include scenarios/ in build artifact ([681e3be](https://github.com/framersai/paracosm/commit/681e3be699de83883c0e12f995e793de1068bbb8))
- landing: swap digital-twin example to real Atlas Lab AI alignment artifact ([296dd87](https://github.com/framersai/paracosm/commit/296dd8729993fd9db94ded8eaf418d0b0b5bb2e3))
- landing: cohesive bold caption style + 'being recorded at 12× speed' ([7759eef](https://github.com/framersai/paracosm/commit/7759eef42effd772e0d44f4a6a95bfc675a4a917))
- landing: replace 'calculator' with concrete forged-tool example ([4205aeb](https://github.com/framersai/paracosm/commit/4205aebe8f95470f0f10cbc1259705bf893ae248))
- landing: properly cover white baked-in caption (taller drawbox + tighter timing) ([59b9d64](https://github.com/framersai/paracosm/commit/59b9d64715d3e0ed4d66c020fb526d6d1c6126d8))
- landing: widen drawbox to 1100px so white baked-in caption is fully covered ([bcd9cdf](https://github.com/framersai/paracosm/commit/bcd9cdfe1fc8f4ed6bd2efde1392e7d48d83e193))
- landing: collapse compile captions into one amber line, recolor all scene captions amber ([5654394](https://github.com/framersai/paracosm/commit/56543943a95931082d3f5d6c65ab195e0686a8b8))
- landing: bump compile speed to 12x (was 10x), shaving 6s off hero loop ([4b3624a](https://github.com/framersai/paracosm/commit/4b3624a429d348787e5fc8445320a1720d74c2cb))
- landing: cut Library section out of hero (113s end on Reports scroll) ([a891134](https://github.com/framersai/paracosm/commit/a8911342c8b17b2818bf9fc4f890e793520ed001))
- landing: trim Compare-modal 404 frames out of hero (120s end) ([e8633c9](https://github.com/framersai/paracosm/commit/e8633c92a11699656d68ac074296ba77a301d4d1))
- server: bundle + library-import routes must run before platform-api 404 ([8a66e35](https://github.com/framersai/paracosm/commit/8a66e3513720b0b4c8355553cf9875185a4da756))
- landing: bump video cache-key to v15 so CF refetches Range-aware response ([217e8af](https://github.com/framersai/paracosm/commit/217e8af6eb9b7ab94e2f1fbd87278a083cdfa7c9))
- server: honor HTTP Range on /demo/ assets so video scrubbing works ([b597cae](https://github.com/framersai/paracosm/commit/b597cae7ea6e4cdfd4ea3af3ab9491be28b43ed9))
- landing: final hero recording with multi-provider citations live ([f257251](https://github.com/framersai/paracosm/commit/f2572515c3e97d1d7065ba479aae1c5d8e6b3122))
- landing: hero white-flash trim + recorder VIZ mode tour + 3-stage scrolls ([c1043b3](https://github.com/framersai/paracosm/commit/c1043b32a3cd8a726d02ffa30670b6e0aa12d86a))
- landing: re-record hero against fixed prod (no stale verdict banner) ([78a187a](https://github.com/framersai/paracosm/commit/78a187ad194d055522a305974843ce70d54ed8c6))
- dashboard: gate verdict banner on userTriggeredRun (drop stale rehydrated banners) ([4c1cf43](https://github.com/framersai/paracosm/commit/4c1cf438043f860f53984878438810428aad97ae))
- landing: re-record hero demo against new Quickstart UI + tour ([716ca8a](https://github.com/framersai/paracosm/commit/716ca8ae514bf7590c0f2f21ad8d1f83b01c02eb))
- landing: hero compile demo at 10x (was 3x), shaving 70s off runtime ([0cab114](https://github.com/framersai/paracosm/commit/0cab1145fa9539408edde0996737d7bd77922504))
- landing: rewrite mobile nav as polished collapsible cards ([53d184e](https://github.com/framersai/paracosm/commit/53d184eaf872bf8aa6d3b746073b685e6bf8dafe))
- landing: polish mobile nav dropdown groups ([7b7e5a1](https://github.com/framersai/paracosm/commit/7b7e5a1312d4a1cc9f9ae38e2ac278c3513090f2))
- 7 CodeRabbit findings: defensive errors, a11y, stale closures, prop usage ([3a58483](https://github.com/framersai/paracosm/commit/3a5848314961208b13df89feb6b3c027d90c4a58))
- dashboard: mobile responsive: VerdictBanner stacks, TopBar/TabBar/Footer tighten at <640px ([9c6f1e7](https://github.com/framersai/paracosm/commit/9c6f1e7ab9c69117096f389bdbf14c6f069e7a20))
- landing: collapsible groups for mobile nav ([f0beda4](https://github.com/framersai/paracosm/commit/f0beda4833d2d1883ad46e30da5b480fe37eed31))
- admin: /admin/data/wipe also clears the SSE event buffer ([25a50d0](https://github.com/framersai/paracosm/commit/25a50d0d603efa4302e1abcfb145b59ba34dbaf9))
- dashboard: 'Clear local data' actually clears all local state, not just the ring ([cb6498c](https://github.com/framersai/paracosm/commit/cb6498c97419248df9c244b29603419731c42370))
- dashboard: gate complete + saved-to-cache toasts on userTriggeredRun flag ([e1d3241](https://github.com/framersai/paracosm/commit/e1d3241388dfbd0ea60e51742debcfe293b333d5))
- dashboard: suppress 'Simulation complete' + 'Saved to cache' toasts on cold load ([865cc8b](https://github.com/framersai/paracosm/commit/865cc8bc8ddc3430a28c51c29164f52ad1d658bf))
- dashboard: orphan v0.7 localStorage entries to fix RunMenu .join crash ([8144e40](https://github.com/framersai/paracosm/commit/8144e40492c9cb977185ec5be1ca4b0fd179cc9c))
- address coderabbit review on 0.8.0 rename ([d1be680](https://github.com/framersai/paracosm/commit/d1be6807e719f5f882791d2b0f415bc95ebc8f4a))

### Performance

- landing: revert font preload — Speed Index regression on mobile (3.1s -> 4.5s) ([1c7b257](https://github.com/framersai/paracosm/commit/1c7b257faef80c2c828dada2eb9edccc9d45895c))
- landing: non-blocking font load + video dims to fix CLS 0.133 ([7633fcf](https://github.com/framersai/paracosm/commit/7633fcff3517f5ba4bd91005ae32be1be7d0c06f))

<details>
<summary>Other</summary>

- bump version to 0.9.0 ([9dcb58a](https://github.com/framersai/paracosm/commit/9dcb58a47a64b1698886940757915cd36ab67a37))
- add v0.9 migration guide with worked diffs + sed recipe ([1bead0b](https://github.com/framersai/paracosm/commit/1bead0bb1e6f5c1204aee5e8e8a6b02375c4b258))
- readme: rewrite for v0.9 API + collapsed subpath table ([801c457](https://github.com/framersai/paracosm/commit/801c457028ba78656cd583ea90c4675608de0d04))
- cookbook: rewrite for v0.9 API (intervene, options-bag, root imports) ([97220ad](https://github.com/framersai/paracosm/commit/97220ad9c4288dbeb0416925904509efbd1ef10a))
- landing: rewrite all code-blocks for v0.9 API (options-bag, root imports) ([93e5e00](https://github.com/framersai/paracosm/commit/93e5e00c23b9b5bf901a4fb9b48d909e723d1450))
- type-check landing code examples against package (gates publish) ([3ace81c](https://github.com/framersai/paracosm/commit/3ace81c8d5e124ed6045764a24a373aa120a5b1c))
- pin v0.9 public surface (regression test for shape drift) ([53eaec4](https://github.com/framersai/paracosm/commit/53eaec4e869c776912c377364df7289a7e2e4785))
- JSDoc examples reference paracosm root, not removed subpaths ([83094be](https://github.com/framersai/paracosm/commit/83094be17d7c1bde8209dc2d1e04e3c613dd3071))
- include scripts/ in build artifact so deploys carry one-off CLIs ([4b7d109](https://github.com/framersai/paracosm/commit/4b7d109255db6541b63aff869511eecf9500ee08))
- add resend dep, widen test glob to cover src/cli/** ([d67e74a](https://github.com/framersai/paracosm/commit/d67e74ab28ced575ebcf59195c2fe434e397f985))
- drop sitemap.xsl stylesheet — sitemap stays raw XML ([bdd64ce](https://github.com/framersai/paracosm/commit/bdd64ce8a4396557b0ff4c60e7335b5a1198acd3))
- sim: regression guards for DivergenceRail mini-map ([18e7114](https://github.com/framersai/paracosm/commit/18e711443de0a6b3539fe3f69555960cc29029af))
- coderabbit: skip internal planning docs to prevent 300-file cap ([57e4bdb](https://github.com/framersai/paracosm/commit/57e4bdb19645828847863572c59d83dc49a3efe3))
- api: add paracosm/core entry point to typedoc ([bc6068b](https://github.com/framersai/paracosm/commit/bc6068b94f619d5ddfccd803bc0ea41960e1b7d6))
- docs: use npm view for docs version, not run_number ([e18d3b1](https://github.com/framersai/paracosm/commit/e18d3b1b13b99059c147b87a50b2974a436f7f69))
- docs: sync version to 0.8.${run_number} before typedoc build ([9fae5df](https://github.com/framersai/paracosm/commit/9fae5df53b1db3aefb9d3cd242b65d6602ef1b5c))
- e2e: add 1500ms settle for tour surfaces so auto-start fires before screenshot ([2ef6e0a](https://github.com/framersai/paracosm/commit/2ef6e0acaa1dac32a10fcc0f141b60bebb8ad477))
- e2e: add tablet viewport, light theme variants, and interactive states (compare modal, run-detail drawer) ([11d4abf](https://github.com/framersai/paracosm/commit/11d4abf186c4334e6e41c0dc0dc9b2b726010787))
- deps: bump @framers/* to latest npm versions ([4326bc9](https://github.com/framersai/paracosm/commit/4326bc90dc27bea0ffbb5b8d79aebd3ae2c22a2a))
- gitignore tests-e2e screenshots/ ([db2587d](https://github.com/framersai/paracosm/commit/db2587d36ecb5357dde648ec8e6bc469f6822f20))
- architecture: document the agent swarm + new API surface ([827a5aa](https://github.com/framersai/paracosm/commit/827a5aa9391b957e3a5c93ae3183f7dea29f1f4d))
- lead positioning with agent-swarm + world-modeling tagline ([69fd571](https://github.com/framersai/paracosm/commit/69fd571114d0cbb6c3ecd56ac68f984ce4cdbb36))
- viz: migrate SwarmViz inline styles to SCSS module ([39afb7d](https://github.com/framersai/paracosm/commit/39afb7d9cd306fd21d22c1b1d54d0eb71e4e62dd))
- viz: migrate LivingSwarmGrid inline styles to SCSS module ([24ce04e](https://github.com/framersai/paracosm/commit/24ce04e5b269a49a415816d13cfb620bea07ecad))
- viz: migrate EventChronicle inline styles to SCSS module ([9651f51](https://github.com/framersai/paracosm/commit/9651f5198a466b21da1a6f675acbeb0bb9dc2ed2))
- viz: migrate TurnProgress inline styles to SCSS module ([bcb79e2](https://github.com/framersai/paracosm/commit/bcb79e25648c219fcd582928e6514edda96faf9f))
- viz: migrate FamilyTree inline styles to SCSS module ([0be2f14](https://github.com/framersai/paracosm/commit/0be2f143a10fb03e95388bfd549f6564f8b4e98e))
- viz: migrate TurnBanner inline styles to SCSS module ([7998190](https://github.com/framersai/paracosm/commit/7998190678447e128b1c94312370efbfdc0aa62d))
- layout: migrate ProviderErrorBanner inline styles to SCSS module ([7c4b7d7](https://github.com/framersai/paracosm/commit/7c4b7d75961dedb28978e5e83dfbe08774707d57))
- reports: migrate RunStrip inline styles to SCSS module ([1fa881b](https://github.com/framersai/paracosm/commit/1fa881b01692c7c4ebea7f2aed23d20fe7709c18))
- reports: migrate CommanderTrajectoryCard inline styles to SCSS module ([dc3805e](https://github.com/framersai/paracosm/commit/dc3805e5cc848a6d3c2c99621d61d9639a08e433))
- viz: migrate GridSettingsDrawer inline styles to SCSS module ([e7bdd9e](https://github.com/framersai/paracosm/commit/e7bdd9e95b5d6e52b01ded2144372166ec37ce8b))
- digital-twin: migrate DigitalTwinPanel inline styles to SCSS module ([54bf984](https://github.com/framersai/paracosm/commit/54bf9841345f2a72fef2a6e1b16ec86e3c30eb4a))
- shared: migrate CitationPills inline styles to SCSS module ([bb47b6e](https://github.com/framersai/paracosm/commit/bb47b6e3871a380cdd2a8f544403324cf7ecc482))
- sim: migrate DivergenceRail inline styles to SCSS module ([944f91d](https://github.com/framersai/paracosm/commit/944f91d647be10f12faefddf65ee1852ef51a1d8))
- viz: migrate ExportMenu inline styles to SCSS module ([f57b31d](https://github.com/framersai/paracosm/commit/f57b31d5a68468bc2dbb93df00232e08a53201b8))
- sim: migrate TurnEventHeader inline styles to SCSS module ([4a029dc](https://github.com/framersai/paracosm/commit/4a029dc2328c2904a832d3d4abb613b4ae4190be))
- viz: migrate Tile inline styles to SCSS module ([8d6534a](https://github.com/framersai/paracosm/commit/8d6534adb5fa886e8bfcf6f555b5c079a60cd077))
- sim: migrate SimFooterBar inline styles to SCSS module ([6758c99](https://github.com/framersai/paracosm/commit/6758c993b03881edb6e0b2aa5a36f33dc63cae1b))
- viz: migrate ColonistSearch inline styles to SCSS module ([ca64fdc](https://github.com/framersai/paracosm/commit/ca64fdcd9ba229941bc9a3ab344e20f7a24c0de3))
- layout: migrate Footer inline styles to SCSS module ([daa5d14](https://github.com/framersai/paracosm/commit/daa5d1489a025fb19e296451f1372b96854639ad))
- reports: migrate MetricSparklines inline styles to SCSS module ([af0ca07](https://github.com/framersai/paracosm/commit/af0ca074751076f41643ef16e37fc7dd3bbb3dc7))
- shared: migrate ShortcutsOverlay inline styles to SCSS module ([fea2e7d](https://github.com/framersai/paracosm/commit/fea2e7d752977314e5cecc4d2b89338db5ae92ab))
- sim: migrate ActorDrillInModal inline styles to SCSS module ([7a0a183](https://github.com/framersai/paracosm/commit/7a0a1838b7febf905cf34e799c3689de4ac863d2))
- viz: migrate GridHelpOverlay inline styles to SCSS module ([4bf531c](https://github.com/framersai/paracosm/commit/4bf531ce74e4cd8257094354c6830ee5e4a13e0f))
- viz: migrate TimelineSparkline inline styles to SCSS module ([903b29b](https://github.com/framersai/paracosm/commit/903b29b7f6096dc4771c4e450d766e6bc9247b27))
- settings: migrate LoadPriorRunsCTA inline styles to SCSS module ([6c6a871](https://github.com/framersai/paracosm/commit/6c6a871f4b616ff1f7dceb3b07f7997a972661f7))
- shared: migrate ReferencesSection inline styles to SCSS module ([06e6c65](https://github.com/framersai/paracosm/commit/06e6c6539e6b3a243965f8ef1907451e106ade11))
- tour: migrate GuidedTour inline styles to SCSS module ([8b1e5f8](https://github.com/framersai/paracosm/commit/8b1e5f827a38b304a809f0dc9029b6f15776b757))
- viz: migrate RosterDrawer inline styles to SCSS module ([b060f7d](https://github.com/framersai/paracosm/commit/b060f7d9043ca2015ef7647abc9c50501833bf67))
- viz: migrate RunSummaryDrawer inline styles to SCSS module ([f32dfa6](https://github.com/framersai/paracosm/commit/f32dfa695e9112e10306e40496a5a79fc421439c))
- settings: migrate ScenarioEditor inline styles to SCSS module ([6786d90](https://github.com/framersai/paracosm/commit/6786d908ec41675344d9e4d13424f2a473b26ab0))
- viz: migrate ForgeLineageModal inline styles to SCSS module ([ac43dfd](https://github.com/framersai/paracosm/commit/ac43dfd409457156e3bcc7e1290bf4f0b620b15b))
- sim: migrate Timeline inline styles to SCSS module ([de5e2d4](https://github.com/framersai/paracosm/commit/de5e2d412e3865e2fc1fd4487a3030da4a17f7df))
- reports: migrate HeroScoreboard inline styles to SCSS module ([efd6abe](https://github.com/framersai/paracosm/commit/efd6abeeb323e901055c40287481ab6f0bbbee38))
- viz: migrate ClickPopover inline styles to SCSS module ([08a2d4d](https://github.com/framersai/paracosm/commit/08a2d4dc1dc073fa0c6f27e94de4772010cf82e1))
- viz: migrate GridMetricsStrip inline styles to SCSS module ([ce37797](https://github.com/framersai/paracosm/commit/ce37797dd22326310c33decde89b278881df980b))
- event-card: migrate inline styles to SCSS module ([04891e3](https://github.com/framersai/paracosm/commit/04891e304d01995bc32977e7406ad878e9649741))
- verdict: migrate VerdictCard inline styles to SCSS module ([997ed90](https://github.com/framersai/paracosm/commit/997ed902b7e72d747015a1b314f748647e86ceea))
- toolbox: migrate ToolboxSection inline styles to SCSS module ([136570d](https://github.com/framersai/paracosm/commit/136570d82f1ad2826d24e231e97f96fbf6d0825a))
- settings: migrate SettingsPanel inline styles to SCSS module ([cc21dac](https://github.com/framersai/paracosm/commit/cc21dac78c7a7ee552607020393516bd7c7951a0))
- reports: migrate ReportView inline styles to SCSS module ([40bc34d](https://github.com/framersai/paracosm/commit/40bc34dd53d9b9a8f609448b80b8e76fb477d515))
- topbar: migrate inline styles to SCSS module ([5dbeec3](https://github.com/framersai/paracosm/commit/5dbeec3ce0d10431dfc15779badd56c24adb1185))
- chat: migrate inline styles to SCSS module ([5bd607e](https://github.com/framersai/paracosm/commit/5bd607ea8bb294335ed988278a36471c2c84a91a))
- about: migrate inline styles to SCSS module ([0d68fb3](https://github.com/framersai/paracosm/commit/0d68fb3beca997c72d2fac14a25cfb67fe99270f))
- cost-breakdown: migrate inline styles to SCSS module ([8ffbedd](https://github.com/framersai/paracosm/commit/8ffbeddbd5159b15e2eb332402cfc08df9683eab))
- link HTTP API reference from the README HTTP section ([17db2f7](https://github.com/framersai/paracosm/commit/17db2f714c1600eca98bd61b1664e21adc6d7888))
- theme: semantic z-index layer variables across overlays ([97e57a5](https://github.com/framersai/paracosm/commit/97e57a5b121cc829ea74172d04b8273beaa00851))
- drop JS numeric separators from HTTP API JSON examples ([18073da](https://github.com/framersai/paracosm/commit/18073dac505860443e26575497714dc76400834c))
- HTTP API reference for /api/v1/* endpoints ([0d11b13](https://github.com/framersai/paracosm/commit/0d11b13fb5b03b52efa32a89f60a6bc929887bb6))
- remove redirect-only /about URL from dashboard sitemap ([13db9ef](https://github.com/framersai/paracosm/commit/13db9ef970f05598f2344bdd21d6cecd43684dba))
- inject /en/ locale on agentos.sh URLs ([324c196](https://github.com/framersai/paracosm/commit/324c196633692e8763ae8257145c8c9497267b99))
- dashboard: typography role mixins, final pass (9 utility components) ([de206ed](https://github.com/framersai/paracosm/commit/de206ed932b644f480343ab45263411c144589ae))
- dashboard: typography role mixins, third pass (16 more files) ([e6dc8c1](https://github.com/framersai/paracosm/commit/e6dc8c17e7fc0b6f809c11afe037766dccfce4da))
- dashboard: typography role mixins, second pass (15 more files) ([ed4b987](https://github.com/framersai/paracosm/commit/ed4b987ad4bc1ae4ceaa7bb520926daa1fda84d3))
- dashboard: typography role mixins + sweep SIM tab + adjacent panels ([108d85c](https://github.com/framersai/paracosm/commit/108d85c0bebe0766e6935ff71435657827ac9f56))
- trim 1s white intro from digital-twin-atlas-lab demo ([52f5da7](https://github.com/framersai/paracosm/commit/52f5da76b609948c9ed1481e5e24355f428adac6))
- landing: adopt the dashboard's font-token scale ([e7130bd](https://github.com/framersai/paracosm/commit/e7130bd851c8e8667b28cfd793f1975d0dbf209a))
- dashboard: collapse 18 ad-hoc font-sizes into a 9-token scale ([2e29582](https://github.com/framersai/paracosm/commit/2e295826c30452976cc4b5092f2f145122631c1b))
- deps: bump zod from 4.3.6 to 4.4.1 (#20) ([9a942ce](https://github.com/framersai/paracosm/commit/9a942ce97f150aacac309c7487c8faa94e51ccde))
- deps-dev: bump vite from 6.4.2 to 8.0.10 in /src/cli/dashboard (#12) ([1cdf382](https://github.com/framersai/paracosm/commit/1cdf382cf6db15f8c7f75578e697ef575e1b18c9))
- deps: bump pdfjs-dist in /src/cli/dashboard (#19) ([3d122e4](https://github.com/framersai/paracosm/commit/3d122e459a48e0b4c8e8ed96760a8871374f2f76))
- deps: bump pdfjs-dist from 4.10.38 to 5.7.284 (#18) ([acb63a4](https://github.com/framersai/paracosm/commit/acb63a4378da5d674d73ae1fcb671863cfe7545a))
- deps: bump @framers/agentos (#17) ([26799ea](https://github.com/framersai/paracosm/commit/26799ea1f36316658d5202f18d980f2dfc9ddad7))
- deps: bump pnpm/action-setup from 4 to 6 (#16) ([34d0034](https://github.com/framersai/paracosm/commit/34d003413616861efc30d5035d6d945425d1a769))
- deps: bump actions/setup-python from 5 to 6 (#15) ([10f197f](https://github.com/framersai/paracosm/commit/10f197f83b127a7e7b9c8b97bdf570b6e5eb72b3))
- deps: bump actions/download-artifact from 4 to 8 (#14) ([775661d](https://github.com/framersai/paracosm/commit/775661dfecf9e38dafe96141f177ebe21813b6ea))
- tighten README intro, drop comparison list, retire counterfactual framing ([44038ab](https://github.com/framersai/paracosm/commit/44038abfb94d874d8355acce6d1e0117c07eb06a))
- rewrite README in narrative voice with tightened API surface ([c5de52a](https://github.com/framersai/paracosm/commit/c5de52a66b70ec4cc3d08d3eac6eac74b21ca9e1))
- docs: drop session/audit artifacts and standardize doc filenames ([2789ce1](https://github.com/framersai/paracosm/commit/2789ce1cb6de8d57dfea1f559a78015992c14b16))
- pass GA + Clarity env vars to dashboard build ([ce0b44c](https://github.com/framersai/paracosm/commit/ce0b44c66a2dbc6f6d53478b4999bd630f79ac7a))
- landing: normalize gap and padding across card grids ([b9036b6](https://github.com/framersai/paracosm/commit/b9036b642764d259c3efa159d203131870aa533f))
- gitignore cleanup ([6b9dabe](https://github.com/framersai/paracosm/commit/6b9dabe4b3620b9addb4594dc6412d7202e26eab))
- landing: convert architecture pillars to a 2-column card grid ([16c294e](https://github.com/framersai/paracosm/commit/16c294e02750392bb632e6b0830d5f3d25713685))
- landing: match e2e hero caption styling to digital-twin demo ([7075211](https://github.com/framersai/paracosm/commit/7075211e036f8746366c988ec473049b33cf02a4))
- debug(tour): log step transitions + target lookup for live diagnosis ([92a2fc7](https://github.com/framersai/paracosm/commit/92a2fc7502cfb8f7f689a33582e3858afd7f8f29))
- landing: promote Blog to top-level nav (out of Docs dropdown) ([b2c95fc](https://github.com/framersai/paracosm/commit/b2c95fcde6fadf83f835e28eaca6dfde3d641fd8))
- plan: Constellation view implementation plan + spec correction (decisions live in events stream) ([3ce1356](https://github.com/framersai/paracosm/commit/3ce13565a2f158c51546b9f46628e2225dedc641))
- spec: Constellation view design (radial layout for N>=3 actors in Sim) ([70174fb](https://github.com/framersai/paracosm/commit/70174fb8d0095bbabe2672951b87d5d0b55e2a76))
- studio: add v0.8 RunArtifact JSON fixtures (turn-loop + batch + bundle) ([a8543e5](https://github.com/framersai/paracosm/commit/a8543e5dd6c7ff0656aa5d8d9e33f222993e7d3b))
- plan: Studio tab implementation plan + spec correction (delegate to existing adapters) ([e935e40](https://github.com/framersai/paracosm/commit/e935e40589478efe4e02f3c308a4647a0687f729))
- spec: Studio tab design (drag-drop JSON + Promote + Compare) ([c18d180](https://github.com/framersai/paracosm/commit/c18d1801fdfa2b36e61fd48e0fc1ab739fa086f8))
- actor: align README with 0.8.0 (leader -> actor rename) ([248ad1c](https://github.com/framersai/paracosm/commit/248ad1cdccfbf0df66c9a5eaf045b2338355875a))

</details>

---

## 0.8.0 (2026-04-27)

### Breaking Changes

- actor: finish leader -> actor rename (config files, dashboard, cookbook) ([6a1beae](https://github.com/framersai/paracosm/commit/6a1beae90be39941ef17b8da31fedc8bba5294a3))
- actor: rename leader -> actor across entire codebase (no back-compat) ([96e39a2](https://github.com/framersai/paracosm/commit/96e39a2c996db3a23dd604c1cf041e3e2f285946))
- dashboard: rename Leader{Bar,Config,PresetPicker} components to Actor{*} ([4e61d3a](https://github.com/framersai/paracosm/commit/4e61d3aef279fa6ed2a91b9da281326a4fdf1522))
- types: ActorConfig + NormalizedActorConfig + normalizeActorConfig (LeaderConfig deprecated alias) ([ad01778](https://github.com/framersai/paracosm/commit/ad017784ffa56202b3486386ced96d0f37150502))

### Features

- recorder: include Compare modal + pin-two-cells tour in end-to-end demo ([fe9527b](https://github.com/framersai/paracosm/commit/fe9527b6bd46a0fcd0f0b30a62e78b024b691d18))
- quickstart: actor-count slider 1-50 + Compare-all-N CTA on results ([d2b81ae](https://github.com/framersai/paracosm/commit/d2b81aedc3c54729b1ffb7ae272e36c3cd7e985a))
- compare: full Compare modal — phases 4-7 in one batch ([b4c39d3](https://github.com/framersai/paracosm/commit/b4c39d37536d42c51ef7f4b89cb860f948f20876))
- library: RunGallery groups bundles into BundleCard + LibraryTab opens CompareModal stub ([ae88561](https://github.com/framersai/paracosm/commit/ae885610ea7d71b648cea7f34cad5748b521b5c9))
- library: BundleCard component ([6eb6d14](https://github.com/framersai/paracosm/commit/6eb6d141fc845fc9484d00fbb323dd0c9a661503))
- library: groupRunsByBundle pure helper ([2e4242c](https://github.com/framersai/paracosm/commit/2e4242cefb3030a86e744eb84876ba934e092fdf))
- dashboard,test: extend ScenarioClientPayload.labels with actorNoun + bump count-cap test to 50 ([6d9569e](https://github.com/framersai/paracosm/commit/6d9569efd163fb5a2793e56c064f3fe1a61549a1))
- server: generate bundleId per /setup batch + summaryTrajectory on enrichRunRecord ([f618e93](https://github.com/framersai/paracosm/commit/f618e93f1c83b4d0e2e6160be507ac98a2c55d86))
- server: wire /api/v1/bundles routes + bundleId filter on /api/v1/runs ([cc77dcd](https://github.com/framersai/paracosm/commit/cc77dcda4796a50cb952f043c2f4580ec40c94df))
- server: bundle-routes handleListBundle + handleBundleAggregate ([582b3c2](https://github.com/framersai/paracosm/commit/582b3c2a0044612f0327032f5b1088a701e1e4b9))
- quickstart: bump actor-count cap from 6 to 50 ([2cf9cea](https://github.com/framersai/paracosm/commit/2cf9ceae25960224be399f4e2251ac6ba04a1e71))
- server: migrate runs table for bundle_id + summary_trajectory + listRunsByBundleId ([1340272](https://github.com/framersai/paracosm/commit/134027252cdd12f29e1e5fd336fe1398558827f5))
- server: add bundleId + summaryTrajectory fields to RunRecord ([88d8ac8](https://github.com/framersai/paracosm/commit/88d8ac839c4b7900f3a0ed00b51b2f4fa993d75b))
- server: extractSummaryTrajectory helper for cell sparklines ([ddd56f7](https://github.com/framersai/paracosm/commit/ddd56f7e69699fe21048facd25ee6413854792bf))
- server: bundle-id helper for grouping Quickstart submissions ([644d31c](https://github.com/framersai/paracosm/commit/644d31c059a76d83f2937eb3b4acd2c487ccef63))
- scenario,dashboard,landing: rename user-facing 'leader' -> 'actor' (engine internals untouched) ([d793695](https://github.com/framersai/paracosm/commit/d7936956d1d6a684c76ac6f15535d8856564a18e))
- landing: universally relatable hurricane-mayor demo + cookbook nav anchor ([f82c827](https://github.com/framersai/paracosm/commit/f82c82759307059cd68a868a2caf1d9be1508347))
- landing: polished hero video with readable prompt + 3x compile caption ([f72d1a1](https://github.com/framersai/paracosm/commit/f72d1a1f8d566f21fed578a9bf42da65a5cd5cc5))
- landing,dashboard: readable hero prompt + selective speed-up + tab reorder ([37b3313](https://github.com/framersai/paracosm/commit/37b3313080da3019e09f62646f21b53599fceecf))
- landing: swap hero video to Atlas-7 end-to-end demo ([1dc86e0](https://github.com/framersai/paracosm/commit/1dc86e0d69ca2006d70203a86a8a4a882acac49c))
- scripts: end-to-end demo recorder (prompt -> compile -> sim -> tab tour -> library drawer) ([5ffb301](https://github.com/framersai/paracosm/commit/5ffb301977537b0a2fe428481fa9466f1f1b52e5))
- landing: collapsible nav dropdowns + 7 example tabs + cleaner install block ([9de6eec](https://github.com/framersai/paracosm/commit/9de6eec12b557143fe765e61e1e5d4b23a224c25))
- trait-models: TraitProfileSchema + axis validation + safety tests ([199ecee](https://github.com/framersai/paracosm/commit/199ecee0b7a4e7aa6310d33c05152456323ba105))
- orchestrator: traitProfile drift + cue dispatch for non-HEXACO leaders ([c1684f1](https://github.com/framersai/paracosm/commit/c1684f133f06a180f0f98fb938d40cf43c611f58))
- trait-models: driftLeaderProfile (HEXACO byte-identical to legacy) ([534f8e0](https://github.com/framersai/paracosm/commit/534f8e03d16ed9c862393056a8e63c215ee6d958))
- dashboard: TraitModelNotice in LeaderConfig ([fc3ca9d](https://github.com/framersai/paracosm/commit/fc3ca9d46de2de2999908e90520f372282236004))
- orchestrator: normalizeLeaderConfig at runSimulation entry ([1157ee7](https://github.com/framersai/paracosm/commit/1157ee7f3db715ea0754c883886ac1cfb0b73221))
- trait-cues: runtime cue dispatch through trait-model registry ([afb31ac](https://github.com/framersai/paracosm/commit/afb31acb1266b80a14b00123b888e4fb47566015))
- trait-models: LeaderConfig.traitProfile + back-compat resolver ([ff22880](https://github.com/framersai/paracosm/commit/ff22880510cfde7421b15d9fc4137096005cd7d9))
- trait-models: pluggable registry + hexaco + ai-agent built-ins ([13e400d](https://github.com/framersai/paracosm/commit/13e400d00dabb8fe6d8a799d4b63afbbd4b71834))
- compile-from-seed: harden DRAFT_SYSTEM_PROMPT + retry budget ([4f2dc00](https://github.com/framersai/paracosm/commit/4f2dc00368c468b03e4862394351ae950e7c3a87))
- landing: hero gets video controls + 3-turn loop with launching first frame ([69af132](https://github.com/framersai/paracosm/commit/69af1322921deeac6ae60929a7400c0589319771))
- landing: hero video extended to 2 full turns @ 2x speed (50s loop) ([3b73c02](https://github.com/framersai/paracosm/commit/3b73c02ab3ec3dea77180d21f912cf5c9c64fb8d))
- landing: hero copy + video extended to match world-model positioning ([eaee13d](https://github.com/framersai/paracosm/commit/eaee13d001d3e41d10f847d812520036c29e63a7))
- demo: library demo extended to 20s with full click→drawer→replay flow ([dc29d01](https://github.com/framersai/paracosm/commit/dc29d019e14da3addd247ab9656718e8e6ac2dcd))
- demo: library + branches mockups replaced with live Playwright recordings ([0cd384d](https://github.com/framersai/paracosm/commit/0cd384d9d3b063ab4d52045fad17ffa5e2db9625))
- landing: hero gets real sim recording; library/branches keep mockups w/ posters ([280bcb3](https://github.com/framersai/paracosm/commit/280bcb380adac3356d185a999fc11afaeeff9f7c))
- landing: replace busy hero + SVG wireframe with Remotion video loops ([4b59e1c](https://github.com/framersai/paracosm/commit/4b59e1c8c3519f8ca06197d94b4197516ad66a57))
- platform-api: POST /api/v1/runs/:runId/replay endpoint + tests ([4eaa0e6](https://github.com/framersai/paracosm/commit/4eaa0e69c131eddf58d197bfe052c166fdc461bb))
- platform-api: add scenarioLookup option for replay route ([5ab6566](https://github.com/framersai/paracosm/commit/5ab6566863aaeb662975af3098570d3c68521716))
- landing: use-cases vertical-domain section + library wireframe styles ([0e31c5b](https://github.com/framersai/paracosm/commit/0e31c5beaa24c5dfaa20f95fa4acecffac16060e))
- landing: library tab section with inline-SVG wireframe ([7435e6e](https://github.com/framersai/paracosm/commit/7435e6e596a92d0ebbcf6585509be0452905685d))
- landing: digital-twin subpath section with import example ([f969dc4](https://github.com/framersai/paracosm/commit/f969dc413b44b47fb0a0347133252f5fd67a0a28))
- landing: hero copy + replay-verified chip + 7th feature card ([4dfd8e7](https://github.com/framersai/paracosm/commit/4dfd8e7eef2ff23601cae13cb0caa9e16d7f278d))
- server: persist enriched RunRecord per artifact at run-end ([3e7073c](https://github.com/framersai/paracosm/commit/3e7073c8e4e0fef7b52c9f6b2e74b84c394476c3))
- dashboard: Library tab end-to-end (browse, replay, inspect stored runs) ([3e34639](https://github.com/framersai/paracosm/commit/3e34639a9daa4112f68b86717286c91cab53fe48))
- server: three new run-history routes + paracosmRoutesEnabled gate ([fe27f04](https://github.com/framersai/paracosm/commit/fe27f043495b3f32afcfb3fce21ce918be3210f0))
- server: RunRecord enrichment + ListRunsFilters split + SQLite migration ([b6dfb74](https://github.com/framersai/paracosm/commit/b6dfb74c6d947f7deac8b6c38bf89f3cb228fef0))
- tests: RunArtifactSchema breaking-change CI gate (T6.2) ([4081a22](https://github.com/framersai/paracosm/commit/4081a22b0b10babe5ce02618d335938ac18d3dc4))
- tests: initial RunArtifactSchema snapshot fixture (T6.2 anchor) ([206acc9](https://github.com/framersai/paracosm/commit/206acc99db6d953ca3a8b358f8b75eb568029cf6))
- scripts: shape-utils + snapshot-schema regen script ([4d02174](https://github.com/framersai/paracosm/commit/4d02174adc869562a46a27a6e9981411bb5f6d6f))
- engine: paracosm/digital-twin subpath barrel (T5.4) ([b3a7590](https://github.com/framersai/paracosm/commit/b3a759079a56881d25317a4207747346183fd204))
- runtime: WorldModel.simulateIntervention ergonomic method ([957930b](https://github.com/framersai/paracosm/commit/957930bbac584b010fc1faa65acacfc3f1dd104b))
- runtime: WorldModel.replay public method (T5.5) ([b3ea228](https://github.com/framersai/paracosm/commit/b3ea228adaac301d68902e50c4c297e10bebf5f6))
- runtime: replaySimulation kernel re-execution + WorldModelReplayError ([c0c5896](https://github.com/framersai/paracosm/commit/c0c589612f6fcbf300f05ad3c92829764f8900ca))
- runtime: canonicalJson helper for deterministic comparison ([3951484](https://github.com/framersai/paracosm/commit/395148488f8f0f430dc4c4d377cd8d8977e4d181))
- dashboard: BatchArtifactView for batch-trajectory and batch-point ([d118227](https://github.com/framersai/paracosm/commit/d1182270ad526b5aaf4d1496f462639e0748a1cc))
- dashboard: TimepointCard, TrajectoryStrip, viz kit barrel ([e26b9b5](https://github.com/framersai/paracosm/commit/e26b9b5543dc8912b1eb75157c9f5ea1d2800882))
- dashboard: HealthScoreGauge and RiskFlagList viz components ([d64d18b](https://github.com/framersai/paracosm/commit/d64d18b43c5a6cf255e112a73fdc317ccac34bd8))
- dashboard: viz kit shared primitives + CSS stub loader ([5ae18ba](https://github.com/framersai/paracosm/commit/5ae18ba3922c5c5485434d0c603cbee02eaa7269))
- cli: paracosm init scaffolding subcommand (T5.2) ([ca5446c](https://github.com/framersai/paracosm/commit/ca5446c9ec6af9581d21a9b9c6355fdafecca92d))
- server: SQLite persistence for run history (T4.3) ([65167e6](https://github.com/framersai/paracosm/commit/65167e6eaecb132eeefb133de7f99512e7e9380b))
- compiler: replace new Function with hardened sandbox-runner for compiled hooks ([850db6c](https://github.com/framersai/paracosm/commit/850db6c8db6ea4139c1b70ab231836f4e04f1516))
- server: POST /simulate one-shot HTTP endpoint (Tier 4 T4.2) ([f22a235](https://github.com/framersai/paracosm/commit/f22a23518aa1a3358c862b024625e2a198e4ee99))
- quickstart: prompt/URL/PDF onboarding to 3-leader run to fork + export ([a32eafb](https://github.com/framersai/paracosm/commit/a32eafbcf7c7476b7f5596ad62bfc2df54bfb2a8))
- dashboard: Branches tab + fork UX (Tier 2 Spec 2B) ([50df962](https://github.com/framersai/paracosm/commit/50df9625f81fa994738149d7bc3a0c3be6e15b51))
- server: fork dispatch in /setup + runForkSimulation (Tier 2 Spec 2B backend) ([d19215d](https://github.com/framersai/paracosm/commit/d19215d51c1e2129831e5567821fd3d1067cfbfd))
- world-model: fork + snapshot API for mid-run counterfactuals ([161f1e4](https://github.com/framersai/paracosm/commit/161f1e4dc9026401713442ec7324e9cb2a6ed7cc))
- dashboard: StatsBar surfaces statuses + environment bags ([b1ff8e0](https://github.com/framersai/paracosm/commit/b1ff8e0cf0d857c8be914eacdbde3f4ff7aede37))
- artifact: per-timepoint worldSnapshot carries all four runtime bags ([ed10e3a](https://github.com/framersai/paracosm/commit/ed10e3a886b99e0aa388c756db4374f986009a1a))
- f23.1: thread scenario timeUnitNoun through dashboard + runtime copy ([c86e6dd](https://github.com/framersai/paracosm/commit/c86e6ddadab5a53a280b03b2596af1163e6ca47c))
- reposition as structured world model for AI agents ([12219ab](https://github.com/framersai/paracosm/commit/12219ab5faae00bc50348900d30c1c1d6c12c3ee))
- compiler: state-shape + fixture re-expose statuses/environment now that they're real runtime bags ([ee216ac](https://github.com/framersai/paracosm/commit/ee216acae397a3ce61fcf641a2c7b204fda5f5f6))
- artifact: buildRunArtifact widens finalState mapping to all runtime bags ([29f4182](https://github.com/framersai/paracosm/commit/29f418223721524c5714f36c261e06fc061eaebf))
- runtime: RunOptions startTime/timePerTurn default to scenario.setup.* ([3ab1e61](https://github.com/framersai/paracosm/commit/3ab1e6151e79f0452ca3fc2e445273dff4689099))
- kernel: constructor seeds state bags from scenario.world.* declarations ([f74ca61](https://github.com/framersai/paracosm/commit/f74ca61ee5a4fbe62f7e1ebcf9bfcf7e230b4c2c))
- engine: SimulationState gains statuses + environment bags ([2d5a934](https://github.com/framersai/paracosm/commit/2d5a934cc34168266681f25bd721dcd39d1e4517))
- compiler: scenario-derived smokeTest fixtures + flat state-shape in every prompt ([c156c05](https://github.com/framersai/paracosm/commit/c156c05342e2a64905b665f8b7a34aac4d7e29f8))
- compiler: scenario-derived fixture helper for hook validation ([5da16be](https://github.com/framersai/paracosm/commit/5da16be600ed8a1e05e0337d936ad0dc78251dc5))
- smoke: F23.2 full flow - compile + parallel run + F23 assertions ([6fda743](https://github.com/framersai/paracosm/commit/6fda74301f785914d1db6e0ce26003639aa10772))
- smoke: F23.2 scaffold - load corporate-quarterly scenario dry-run ([c8132f7](https://github.com/framersai/paracosm/commit/c8132f7a5f5fa71ec599cb02161e3c69bf0d7a5c))

### Bug Fixes

- server: align extractSummaryTrajectory with actual TrajectoryPoint shape (metrics record, not value) ([907ccdb](https://github.com/framersai/paracosm/commit/907ccdbb8ec7e0e38ea86360c61c40faec13a61b))
- dashboard,compiler: REPORTS tab no longer crashes on quickstart-compiled scenarios ([a48075d](https://github.com/framersai/paracosm/commit/a48075d1327cf83b49322c3b8f85da8cad93c638))
- server: default quickstart compile to openai+gpt-5.4-mini (was anthropic+sonnet) ([4d01798](https://github.com/framersai/paracosm/commit/4d017983281dd3d6bdb282131551b3aab9d2fba7))
- compiler: reject unparseable cached hooks + skip cache writes for fallbacks ([f6c11c6](https://github.com/framersai/paracosm/commit/f6c11c698bca74dee95da5e3716e7461c11c6819))
- runtime: commit createWebSearchTool factory referenced by orchestrator (prod 502 fix) ([3975dc1](https://github.com/framersai/paracosm/commit/3975dc1592834adaa0229554adb67ff4503c91bc))
- address CodeRabbit findings on trait-model implementation ([0d11c69](https://github.com/framersai/paracosm/commit/0d11c69751e200d9415ec4eb300fd7855b6282b7))
- trait-models: hexacoModel drift values match canonical progression.ts ([2f3702b](https://github.com/framersai/paracosm/commit/2f3702b81806225b7f75b8895c985fa296f3bf9d))
- dashboard: StatsBar background matches body (var(--bg-deep)) ([41fd0b6](https://github.com/framersai/paracosm/commit/41fd0b678c024ca0ac2f2b239fa0ed906b2475fc))
- cli: paracosm dashboard exits immediately bug + cookbook curl drift ([0a21d82](https://github.com/framersai/paracosm/commit/0a21d826ad486b4885a69aa4431e773b69a5213f))
- engine: commit untracked provider-credentials module (prod 502 fix) ([18a6445](https://github.com/framersai/paracosm/commit/18a6445f8fb9f39ded3d215272f852bbb9e862e9))
- sim-config: commander model gpt-5.4-mini → gpt-4o for schema reliability ([f85587f](https://github.com/framersai/paracosm/commit/f85587f615dbc4ad70a5061f21f1ef8b0f0d995b))
- landing: bust Cloudflare cache on demo videos with ?v= query strings ([89b780c](https://github.com/framersai/paracosm/commit/89b780c01d5f5c2c6bcbe9dea817aeba4fbc7b7f))
- ci: preserve output/ artifacts across deploys ([287b658](https://github.com/framersai/paracosm/commit/287b658b4d17e56ec47d08c9c20b9f86af705a08))
- dashboard: skip first-visit tour entirely on deep-linked tabs ([2c00356](https://github.com/framersai/paracosm/commit/2c003560ef0f0ca773f5eda0a916049ec957ee5c))
- dashboard: respect URL tab on first-visit auto-tour ([25dbf55](https://github.com/framersai/paracosm/commit/25dbf55107d9c6ce154f23a5960a62a1aa49d936))
- dashboard: remove one-click X delete on history entries ([2cf2708](https://github.com/framersai/paracosm/commit/2cf27087eaf472721ad1ad3a661519f0aed0f8d3))
- cli: commit fetch-seed-url.ts that c7fa47e4 forgot ([f5e7c2a](https://github.com/framersai/paracosm/commit/f5e7c2ae2a763cc09a58048632aaa10d3dd95680))
- dashboard: resolve latent type errors surfaced by typecheck ([b27757f](https://github.com/framersai/paracosm/commit/b27757f5923ec9777aa50c8bbf46ee8ab78aa04e))
- ci: regenerate root package-lock.json outside pnpm workspace ([e90bbf8](https://github.com/framersai/paracosm/commit/e90bbf8f9544beec6175cb84361f1349dfd6f937))
- ci: regenerate dashboard package-lock.json outside pnpm workspace ([9ec2407](https://github.com/framersai/paracosm/commit/9ec2407558871596427d6e6d9ee00ad42f3f2887))
- dashboard: vite build resolution for Library tab + replay endpoint stub ([5ea29fe](https://github.com/framersai/paracosm/commit/5ea29fec7c57de995b7f48df9f86c0e0e1481ea3))
- server: include onArtifact in runPairSimulations injection signature ([9e5d49e](https://github.com/framersai/paracosm/commit/9e5d49e0546cacac974d5fe2182f2c5f8efbe285))
- tests: align fixtures with state.metrics rename (T4.5 sweep miss) ([ff0b81d](https://github.com/framersai/paracosm/commit/ff0b81d46d2a64aead7494252452238467e8002b))
- server: /simulate scopes user API keys into env vars ([c7fa47e](https://github.com/framersai/paracosm/commit/c7fa47e48b2e8eb03a571d6c2961a781d7a98b42))
- cli: init renders correct runSimulation API in run.mjs ([a26c462](https://github.com/framersai/paracosm/commit/a26c46235168329c974eee9afee7512d0604bcb4))
- cli: init defaults paracosmVersion to readOwnVersion() ([ff58a3d](https://github.com/framersai/paracosm/commit/ff58a3d2ba3ac9755cfec9ffa13f667fce89ef50))
- tests: align fixtures with current production types (T4.4) ([ecd85b5](https://github.com/framersai/paracosm/commit/ecd85b5a53857144a0c540b392da0a7d1824c07b))
- compiler: mirror agentos sandbox hardening to block realm intrinsics ([d178cab](https://github.com/framersai/paracosm/commit/d178cabd76c3f11a7d243c9f00ba6ef222369323))
- simulate: coderabbit. rate-limit record + BYO-key bypass + no unsafe pre-compiled passthrough ([a9eab10](https://github.com/framersai/paracosm/commit/a9eab10660c86b02a8ea2d480be1c1e81c093d22))
- quickstart: coderabbit review. PDF byte-safe truncation, NaN seed guard, disabled drop zone ([0eff7db](https://github.com/framersai/paracosm/commit/0eff7db05c6d7b4aacc748785c653f357495588f))
- docs: coderabbit review. correct Kirfel citation + MiroFish star count + MIT Media Lab link ([b2363bf](https://github.com/framersai/paracosm/commit/b2363bf6a4e097962f7626b6f21b67f037e1eca3))
- compiler: state-shape block must match runtime, not declaration vocabulary ([e866418](https://github.com/framersai/paracosm/commit/e866418a34a0f1ee6b98a179d6e7a1ed7d38c18c))
- runtime: distinguish compiled-hook runtime errors from provider errors in event-loop catch ([4d85244](https://github.com/framersai/paracosm/commit/4d85244c3b44dc75025c120a013455d08b6b8f4a))
- landing: update code sample to post-0.7 RunArtifact shape ([b5e0b4b](https://github.com/framersai/paracosm/commit/b5e0b4b559e960e7c1c22b6b0af70befa843fdcb))
- smoke: F23.2 - pass startTime/timePerTurn explicitly + assert on timepoints ([ac07cb6](https://github.com/framersai/paracosm/commit/ac07cb6d0a3c6f5d5b628027c57666a7d1ea5b9c))
- F23 coderabbit review fixes ([c1d247b](https://github.com/framersai/paracosm/commit/c1d247b4bee4d52ba7caa7be2254dcbd4e11f8ba))

<details>
<summary>Other</summary>

- plan(compare-runs): TDD-disciplined implementation plan, 11 phases, 25 tasks ([625c1c1](https://github.com/framersai/paracosm/commit/625c1c1c13894d21076bfcbd6dc21aadc3a1265a))
- spec(compare-runs): brainstormed design for Compare 2+ runs UI ([cef6a50](https://github.com/framersai/paracosm/commit/cef6a507204e661c640f09a5cd7875684221e3e2))
- spec(trait-models): revise narrative to match shipped implementation ([c3b980c](https://github.com/framersai/paracosm/commit/c3b980c1fc5dbb6453a18952e12a868fdca5584c))
- README + landing positioning sharpen for pluggable trait models ([7aae06e](https://github.com/framersai/paracosm/commit/7aae06ec2a673f3f080d7f21857492569ff3a8db))
- cookbook: ai-agent end-to-end proof-of-life ([b0bd8df](https://github.com/framersai/paracosm/commit/b0bd8df51f2d10d3d2579810fe87d2e4ade9f607))
- spec: pluggable trait-model registry for leaders ([d6fd6e2](https://github.com/framersai/paracosm/commit/d6fd6e2da10f01ebb9f5ac15419ffe12091eec4c))
- cookbook: commit captured creative + CLI JSON ([8255c35](https://github.com/framersai/paracosm/commit/8255c3538198fc1a2f3ac377c53e80582ebe300b))
- fix lingering legacy CLI invocations ([0548cec](https://github.com/framersai/paracosm/commit/0548cece1ad2cbf24c54667a29b2dc6ece3aa29e))
- weekly auto-bump of @framers/* deps to latest ([4e5fd94](https://github.com/framersai/paracosm/commit/4e5fd94824d7d85515e170dac0dfc3f6824bab95))
- cli: unify under `paracosm <command>` with help + version ([41d45b7](https://github.com/framersai/paracosm/commit/41d45b710b06eaa2066fd7f3a867750c09e24e39))
- landing: tabbed examples + dashboard footer color match ([6cd3d6c](https://github.com/framersai/paracosm/commit/6cd3d6cedc05b9595e58479172ceab2b5f398dc5))
- deps: regenerate lockfile from scratch (fixes @napi-rs/canvas) ([325ec2e](https://github.com/framersai/paracosm/commit/325ec2ec9b3cb4846c4cdca26781f609be4ecec4))
- deps: bump @framers/agentos to ^0.5.2 ([1b1934c](https://github.com/framersai/paracosm/commit/1b1934c302db166e634c5cbe37b81705fb49df15))
- landing: add Hosted SaaS coming-soon section ([a8a77c8](https://github.com/framersai/paracosm/commit/a8a77c81f75f210b13e8213a0eb5c81069912f6e))
- deps: bump @framers/agentos to ^0.5.1 ([35b01d5](https://github.com/framersai/paracosm/commit/35b01d522a98a2f6e2cc1f25ce4478890628af10))
- cookbook: add wire-level cookbook + landing revamp ([b78f347](https://github.com/framersai/paracosm/commit/b78f347381ec38c3d24e1f937118b610be5bc104))
- deps: bump @framers/agentos to ^0.5.0 ([3ad77ed](https://github.com/framersai/paracosm/commit/3ad77edb00feebcc14f1e128f94cdad68fa43b8d))
- copy(landing): hero positioning rewritten for clarity + SEO ([ab8ec6d](https://github.com/framersai/paracosm/commit/ab8ec6d408ee000daa1b91ddb9f99139d7625481))
- dashboard: drop now-dead onDeleteHistory prop chain ([889608b](https://github.com/framersai/paracosm/commit/889608b4791a4d5409ba92605fe25352391b5bf7))
- test: typecheck dashboard before running test runner ([8e81620](https://github.com/framersai/paracosm/commit/8e816205f84d448fe319a3e884d5b7dafebe029d))
- arch: document the replay HTTP surface ([719fa4e](https://github.com/framersai/paracosm/commit/719fa4e71f4a5e4a88017a55bca13ab38e0bbdfd))
- hard-fail on pnpm-workspace contamination in lockfiles ([31400f0](https://github.com/framersai/paracosm/commit/31400f0bcd42f52998b44f70ac2a521b4d53b555))
- plan: replay endpoint + Library verification loop closure plan ([3adf6f7](https://github.com/framersai/paracosm/commit/3adf6f788d325e41ba2be3c45239dfa410fa1792))
- spec: replay endpoint + Library verification loop closure ([710f6e3](https://github.com/framersai/paracosm/commit/710f6e3f005b85724426b46269ebb448a5517f1e))
- deps: regenerate package-lock.json to match package.json ([cff965e](https://github.com/framersai/paracosm/commit/cff965e7948490a8e992def821ef14492ae409b6))
- arch: document replay, digital-twin subpath, and schema gate ([7377a05](https://github.com/framersai/paracosm/commit/7377a05c7d98df2517c00827ca1b7cad72a8e00f))
- pkg: expose paracosm/digital-twin subpath + snapshot:schema script ([3d99dec](https://github.com/framersai/paracosm/commit/3d99dec51f70e75676eae0f3eaf37610e025301d))
- arch: correct sandbox vocabulary to match agentos hardening ([16bab00](https://github.com/framersai/paracosm/commit/16bab003378cac526af27be065aa575ce7daec1c))
- audit: 2026-04-25 audit + hotfix and viz kit design + plan ([bac90ac](https://github.com/framersai/paracosm/commit/bac90ac66ba833ee6f7d42a51507d7b7bb61e5d7))
- 2026-04-24 full session audit + 2026-04-25 next-session handoff ([a5e6364](https://github.com/framersai/paracosm/commit/a5e6364edd06e58bfcfc747f099df826ba415151))
- deps: bump @framers/agentos to ^0.2.11 ([f75d5f3](https://github.com/framersai/paracosm/commit/f75d5f37326ebc18494190ae8a6bbd9999933923))
- runtime: rename state.systems to state.metrics + WorldSystems to WorldMetrics (T4.5) ([c4f0be0](https://github.com/framersai/paracosm/commit/c4f0be0e915474b6e911b94d0631ace8e6f997d2))
- dashboard: drop useSSE legacy alias map (T4.6) ([c434dbb](https://github.com/framersai/paracosm/commit/c434dbb86357edf1a804583be5e1f87f464da22f))
- plan: fill Tier 4 T4.2 commit hash in roadmap ([e8f59f5](https://github.com/framersai/paracosm/commit/e8f59f587753f736329492b184f6e61a55b25253))
- spec: POST /simulate one-shot HTTP endpoint design (Tier 4 T4.2) ([0408741](https://github.com/framersai/paracosm/commit/0408741607743a91e7e00ea8264376ef6339edc0))
- plan: fill Tier 5 Quickstart commit hash in roadmap ([0df008c](https://github.com/framersai/paracosm/commit/0df008cc1a6aac038daf91f30f568b42420b3024))
- plan: quickstart onboarding implementation plan ([3769742](https://github.com/framersai/paracosm/commit/376974234ded885b97d60e5b62ad3e0ed9931a4b))
- spec: quickstart onboarding flow design (prompt/URL/PDF -> 3 leaders -> fork -> export) ([208f242](https://github.com/framersai/paracosm/commit/208f24271151eebf308c52faf0b9b3d531d7f1d8))
- plan: fill tier 2 spec 2b commit hash in roadmap ([2208ccf](https://github.com/framersai/paracosm/commit/2208ccfec12c4e5e3e9ea2cb47c8ea62d6ac4cd2))
- plan: Branches tab + fork UX implementation plan (Tier 2 Spec 2B) ([396bda9](https://github.com/framersai/paracosm/commit/396bda9ff444df7878fabb0d967ec4aacbb10b44))
- spec: Spec 2B amendment: client-authority fork dispatch ([46e06b9](https://github.com/framersai/paracosm/commit/46e06b922f3456715a251e8de569c067469318af))
- spec: Branches tab + fork UX design (Tier 2 Spec 2B) ([4496e7a](https://github.com/framersai/paracosm/commit/4496e7aceca460bbe1cc7d6390544107e8aba409))
- plan: fill in tier 2 spec 2a commit hash in roadmap ([3ee2f41](https://github.com/framersai/paracosm/commit/3ee2f4171a8fb7cdd7af4434cdbe08ea9df8642f))
- plan: WorldModel.fork + snapshot implementation plan (Tier 2 spec 2A) ([94d6803](https://github.com/framersai/paracosm/commit/94d68035f16bd8c368028e48de77253387c6b466))
- spec: WorldModel.fork + snapshot API design (Tier 2 spec 2A) ([994a9c6](https://github.com/framersai/paracosm/commit/994a9c65b4fecc0f886a36444f79da8a0f1358e9))
- plan: roadmap: move Tier 1 to shipped ([ed5c1d4](https://github.com/framersai/paracosm/commit/ed5c1d4bd16f3dcd5dcb28144647c9f5ca4f77c8))
- plan: paracosm roadmap and work queue ([10a5f07](https://github.com/framersai/paracosm/commit/10a5f07aa45b7aedfd58be8a44dbf0cae9c8907f))
- F23.2 smoke drops startTime workaround + CHANGELOG 0.7.x note ([7416165](https://github.com/framersai/paracosm/commit/741616531feba0ec0eae27e3b567f679e8035215))
- plan: runtime wiring for scenario declarations implementation plan ([1942c2f](https://github.com/framersai/paracosm/commit/1942c2fa591be80ef8e3f1bf3689f2f86e7fd6e2))
- spec: runtime wiring for scenario declarations + setup defaults ([304e43b](https://github.com/framersai/paracosm/commit/304e43b91e66f89ee1b27252db46c68d1219121e))
- release: 0.7.1 compiler prompt hardening - COMPILE_SCHEMA_VERSION 4 -> 5 ([349b510](https://github.com/framersai/paracosm/commit/349b510b75bf122c918c162e28eed9c575039cc1))
- compiler: verify generateValidatedCode retry feedback loop ([f1f6719](https://github.com/framersai/paracosm/commit/f1f6719389cc0ac696a737d6b5a1e2c2cc71391c))
- plan: compiler prompt hardening implementation plan ([a1ddf9a](https://github.com/framersai/paracosm/commit/a1ddf9a5c92d87aed4d1680e65a2b906020a996f))
- spec: compiler prompt hardening design ([0539f01](https://github.com/framersai/paracosm/commit/0539f0104badfeb94ee38d0d39362f42ce012153))
- plan: F23.2 corporate-quarterly smoke implementation plan ([7007636](https://github.com/framersai/paracosm/commit/70076361722d5b70653895c8c1dd76d9450fed45))
- spec: F23.2 corporate-quarterly smoke-test design ([9c336ba](https://github.com/framersai/paracosm/commit/9c336bab85b622fb63d37a22e1f07082ffea608d))
- domain-neutral naming across docs, specs, tests, and code ([58e8284](https://github.com/framersai/paracosm/commit/58e82847619c407f853139b6c9b9410a8ec85d4f))

</details>

---

## 0.7.0 (2026-04-23)

F23 generic time-units rename. Retires the last Mars-ism from the public type system. `year` becomes `time` across scenario setup, simulation metadata, event payloads, hook contexts, and agent cores. Scenarios whose natural cadence is not yearly (hour-granular habitats, quarterly corporate strategy, real-time arena benchmarks) no longer have to pretend. Mars and Lunar continue to display year-unit copy through the new additive `labels.timeUnitNoun` field.

### Breaking Changes

- F23 generic time-units rename (year to time, 0.7.0) ([408cae7](https://github.com/framersai/paracosm/commit/408cae7ffecb2f728d8ed20a992d495037f88168))

### Features

- runtime: RunOptions accepts subject + intervention pass-through ([9ff4354](https://github.com/framersai/paracosm/commit/9ff4354b83fc692ce263e4fb910f2274f5d23958))
- runtime: buildRunArtifact threads subject + intervention through ([7db7afc](https://github.com/framersai/paracosm/commit/7db7afc0a87ca3dffebf02a28644cacdfeda2370))
- schema: RunArtifact carries optional subject + intervention ([20ad04d](https://github.com/framersai/paracosm/commit/20ad04d7605de5e961991bf7f8f6e879995f02f2))
- schema: expose SubjectConfig + InterventionConfig TS types ([06307bc](https://github.com/framersai/paracosm/commit/06307bc272167bcbe99dbe99b64981f15a8b7d65))
- schema: SubjectConfig + SubjectSignal + SubjectMarker primitives ([3b1342d](https://github.com/framersai/paracosm/commit/3b1342dd42008f51ab42c2b9c851e47057ddfc49))

### Bug Fixes

- runtime: coderabbit review - outcome cast to Decision['outcome'] ([933cad2](https://github.com/framersai/paracosm/commit/933cad2275de6d9a6bb92cf8c907e05b56ecf735))
- coderabbit review cleanup for 0.6.0 release ([10f7495](https://github.com/framersai/paracosm/commit/10f7495c5aa985f5212b78c27de2929bf98e546e))
- runtime: chat-agents evt.type checks use new event names ([bf9616b](https://github.com/framersai/paracosm/commit/bf9616b8a18a9fb5e6196fd651b9e8d2425526e5))

<details>
<summary>Other</summary>

- release: 0.7.0 F23 generic time-units breaking rename ([54c4cf1](https://github.com/framersai/paracosm/commit/54c4cf1dc275aff74a6c8c1026b50d9b17106265))
- paracosm: F23 refresh tests + add v2 to v3 migration tests ([827c243](https://github.com/framersai/paracosm/commit/827c243d3c9aa76ff0e8c51734392346ec13392e))
- architecture: rename stale dept_done SSE event to specialist_done ([67a235c](https://github.com/framersai/paracosm/commit/67a235cb009ce39314b48832d7512e980a6c7b39))
- handoff: 2026-04-23 v0.6.0-shipped next-session handoff ([35c860e](https://github.com/framersai/paracosm/commit/35c860efaa8d5421692a04f1d82145fe1ba6a9cf))
- 0.6.0 consistency pass — scrub legacy API refs + add subject/intervention teaser ([c30bd36](https://github.com/framersai/paracosm/commit/c30bd364167c63422d982c62689444e0ddcd78dc))
- changelog: SubjectConfig + InterventionConfig under 0.6.0 Features ([98450cc](https://github.com/framersai/paracosm/commit/98450ccf3b7cf86eefc51d75adfac86245480f9b))
- adoption: digital-twin worked example for SubjectConfig + InterventionConfig ([cefba1b](https://github.com/framersai/paracosm/commit/cefba1bb2c24c88174ebbdbc11835f4c5f7beea5))
- schema: regen JSON Schema with subject + intervention primitives ([5238fd8](https://github.com/framersai/paracosm/commit/5238fd877c9812499a1749e2f807a9e2f3330359))
- schema: InterventionConfig primitive test coverage ([bb81d5c](https://github.com/framersai/paracosm/commit/bb81d5cd0b9f60af7185201008b044deca994e17))
- plan: SubjectConfig + InterventionConfig implementation plan ([16946cc](https://github.com/framersai/paracosm/commit/16946cc6def40ec38e7b474d7cdd6631b5153a6a))
- spec: SubjectConfig + InterventionConfig input primitives (P4 + P5) ([82c83ce](https://github.com/framersai/paracosm/commit/82c83ce9003708192b89adbcf51aeade67440c3f))

</details>

---

## 0.6.0 (2026-04-22)

Universal JSON result schema. `runSimulation()` now returns `Promise<RunArtifact>` — one Zod-validated shape covering civilization sims (turn-loop), digital-twin simulations (batch-trajectory), and one-shot forecasts (batch-point). Public primitives + schemas live under the new `paracosm/schema` subpath export. Five SSE event types renamed for consistency with the primitive vocabulary.

### Features

- runtime: SSE envelope validator + legacy event-type rename map ([5d10ea2](https://github.com/framersai/paracosm/commit/5d10ea2a10870afaacb322b6b21f1e5f9a05fafc))
- runtime: buildRunArtifact maps internal state to universal RunArtifact ([6e00e55](https://github.com/framersai/paracosm/commit/6e00e55b9bcc634431d770358a7537cc1ad8fbeb))
- schema: add paracosm/schema subpath with universal Zod primitives ([7855906](https://github.com/framersai/paracosm/commit/78559065bdd2265125e7e755fb31c0faadd6cab9))
- dashboard: F15 event-log filter bar (search + types + leader + turn range) ([b741086](https://github.com/framersai/paracosm/commit/b741086bf0299a4299aec00f9795e899e329d70c))
- dashboard: F14 local history ring (auto-cache + RunMenu history section) ([f37364e](https://github.com/framersai/paracosm/commit/f37364eaf5c19988ab41aef10b2d3c6c14c9351f))
- dashboard: F13 URL-param load (?load=<url>) ([3aec70c](https://github.com/framersai/paracosm/commit/3aec70c0147230feea9ef41e5c2b079766e4e911))
- dashboard: F12 scenario-mismatch detection with preview warning row ([d293142](https://github.com/framersai/paracosm/commit/d293142f4642957f55b73969673c5a5a2de997ec))
- dashboard: F11 schema-version gate on load (migration chain + too-new toast) ([c2e94d2](https://github.com/framersai/paracosm/commit/c2e94d26d1f00b0df75d75c432953836ebbe13f7))
- dashboard: F10 drag-and-drop file load with overlay + validator ([e23e497](https://github.com/framersai/paracosm/commit/e23e49737f768697e79169e97e024769181adfe5))
- dashboard: F9 JSON-load preview modal with metadata + overwrite warning ([11cf1b3](https://github.com/framersai/paracosm/commit/11cf1b3bea0fd067f8599b57d1bc9c336271ea86))
- scripts: npm run changelog + initial auto-generated CHANGELOG ([d4e2b11](https://github.com/framersai/paracosm/commit/d4e2b11d4c5afe4349f4a2b9d0347e501dbda3e4))
- scripts: renderEntry + main() for end-to-end changelog generation ([9e37883](https://github.com/framersai/paracosm/commit/9e378838d4092db4c9457e15277c81889a697141))
- scripts: detectBoundaries + sliceCommits for changelog git seam ([09853b9](https://github.com/framersai/paracosm/commit/09853b9ddeaeff7013b24de3057a0143d7951380))
- scripts: extractNarratives for CHANGELOG round-trip preservation ([43396f6](https://github.com/framersai/paracosm/commit/43396f65e83496bdc3c6d1eebedc0a5dc1eff8ae))
- scripts: parseCommit + classifyCommit for changelog generator ([5b6ad78](https://github.com/framersai/paracosm/commit/5b6ad7865b829bcd8a965070f8e2d1fcb4b91a42))
- dashboard: migrate legacy pre-0.5 event shapes on load ([7c101bb](https://github.com/framersai/paracosm/commit/7c101bb4128301a53f2d3dfac01b2515bd232751))

### Bug Fixes

- dashboard: F4 batch 3 coderabbit a11y - LeaderConfig label/input association via useId ([3874414](https://github.com/framersai/paracosm/commit/3874414e0d9d21680d43a9b890732747e1f557c8))
- dashboard: F4 batch 2 coderabbit - StatsBar.deltaClass inverts sign for lossIsRed tone ([8ce8d67](https://github.com/framersai/paracosm/commit/8ce8d67773f423940349b1b9e39b12622da42d37))
- dashboard: F4 batch 2 coderabbit - RerunPanel surface non-2xx non-429 errors ([28b4b14](https://github.com/framersai/paracosm/commit/28b4b149915a2145784e51d0c6ce7a560193707f))
- dashboard: F15 coderabbit pass - normalize inverted turn range + strip hash on toolHash clear ([709cdae](https://github.com/framersai/paracosm/commit/709cdae1a95c90bfd319939ede52896c7eb6493b))
- dashboard: F14 coderabbit review - dedup scenarioShortName in history card line2 ([905ea59](https://github.com/framersai/paracosm/commit/905ea59e0aa826a8920f0eab3ca76c036cee4653))
- dashboard: coderabbit review pass 1 (pickFile cancel hang, turnCount coalescing, autoFocus a11y, doc + spec drift cleanup) ([8956f48](https://github.com/framersai/paracosm/commit/8956f4802a7b6ad6c15b3faad56590e901746f4d))
- runtime: cast memoryProvider to satisfy AgentMemoryProvider contract ([82aaee6](https://github.com/framersai/paracosm/commit/82aaee6f1552e5217cb2d3ee39c4a26bb30db221))
- runtime+cli: catch stray colony refs in server-app + session-title ([9baf76f](https://github.com/framersai/paracosm/commit/9baf76fa1b4f9e0c99ecaa29521dba935df9561a))

<details>
<summary>Other</summary>

- release: 0.6.0 breaking - universal schema ([d85645a](https://github.com/framersai/paracosm/commit/d85645ad6eacee028edee49264faa181e9dd75c9))
- README + ARCHITECTURE reflect paracosm/schema universal contract ([5641ce9](https://github.com/framersai/paracosm/commit/5641ce9227948120242cc83dcae1d2619ba8e191))
- runtime: SSE event type renames for 0.6.0 wire format ([4dbe4cc](https://github.com/framersai/paracosm/commit/4dbe4ccae674dbd37f653943ba2b571effb32751))
- runtime: runSimulation returns Promise<RunArtifact> ([8dc595f](https://github.com/framersai/paracosm/commit/8dc595f2194e6fad13cf1112960fb34b7a5bbfab))
- plan: universal-schema integration plan for 0.6.0 bundled release ([486765d](https://github.com/framersai/paracosm/commit/486765d614ac10adff1a7b4cec9e4352499d397a))
- spec: universal JSON schema design (paracosm/schema subpath, 0.6.0) ([b6cd1d5](https://github.com/framersai/paracosm/commit/b6cd1d50948786b0762ed18380e8dca555bc4b77))
- F6 viz audit + full-day session handoff ([6b8f326](https://github.com/framersai/paracosm/commit/6b8f326a478ed63f98582d448eea955064ba4f8d))
- plan: F23 phased checklist for 0.6.0 time-units rename execution ([c3d61cf](https://github.com/framersai/paracosm/commit/c3d61cf887b371a42fa452c8079989265f4c4a31))
- dashboard: F4 batch 3 migrate LeaderConfig + RunMenu legacy inline styles to SCSS modules ([790c8fc](https://github.com/framersai/paracosm/commit/790c8fc19dc855b9972dbfdb5f4ed3a3f4b1afae))
- spec: F23 addendum - birthYear rename + 3-commit phasing + timeUnitNoun threading ([4ac1a55](https://github.com/framersai/paracosm/commit/4ac1a5599348a02270aaffa2fe34ad6a597b91cc))
- spec: F23 generic time-units rename design (0.6.0 breaking change) ([9f62303](https://github.com/framersai/paracosm/commit/9f62303567dcc7ac388cc64c531a825afef73e04))
- dashboard: F4 batch 2 migrate StatsBar + LeaderBar inline styles to SCSS modules ([6ea4467](https://github.com/framersai/paracosm/commit/6ea4467be2283ca58689a857e9cfc53fa7ab720b))
- dashboard: F4 batch 2 migrate SimView + extract RerunPanel + useLastLaunchConfig helpers ([3e6a50b](https://github.com/framersai/paracosm/commit/3e6a50b0b331fcb664359fc692c46b42c583772d))
- spec: F4 batch 2 SCSS migration (SimView + RerunPanel + StatsBar + LeaderBar) ([c36a503](https://github.com/framersai/paracosm/commit/c36a503add71edbebed4a33c746a27344e1b7140))
- spec: F15 event-log filter bar design ([f1a20d9](https://github.com/framersai/paracosm/commit/f1a20d91dfd9d3ff2c3fab31369c2df9e5446053))
- spec: F14 coderabbit review - align spec with native-confirm restore pattern ([fca7b18](https://github.com/framersai/paracosm/commit/fca7b189afdd87258270d0cec75bb41644269491))
- spec: F14 client-side local history ring design ([c0b8cfe](https://github.com/framersai/paracosm/commit/c0b8cfe0c42a17b2a2e70513ba7d12605d307cfd))
- spec: F13 URL-param load design ([5d50d8b](https://github.com/framersai/paracosm/commit/5d50d8b698d03869207d0de42fe4bf92256d7396))
- dashboard: self-review fixes (shared schema version constant, confirm try/finally, orphan jsdoc) ([dc35584](https://github.com/framersai/paracosm/commit/dc3558451373edead8773bc3b47d887138187748))
- handoff: 2026-04-22 late session wrap - F9-F12 JSON-load UX bundle ([77f508e](https://github.com/framersai/paracosm/commit/77f508e1c982afe4d52eda546c94977dca6dbbc5))
- spec: F9 + F12 self-review fixes (align with useReplaySessionId + /scenario/switch semantics) ([3fa2fd9](https://github.com/framersai/paracosm/commit/3fa2fd9f9b39d3e36eb51da95f5d9cbafa91e404))
- spec: F12 scenario-mismatch detection on load design ([01dba31](https://github.com/framersai/paracosm/commit/01dba31ea41df957a226eab920254ebbc4d6f069))
- spec: F11 schema-version gate on load design ([ef4839b](https://github.com/framersai/paracosm/commit/ef4839b3876bf1cc0cddc23cabb7b1466e37733b))
- spec: F10 drag-and-drop file load design ([96ee844](https://github.com/framersai/paracosm/commit/96ee8446a96bb27130c90d109800ebd9a85db3d0))
- spec: F9 JSON-load preview modal design ([8ab090e](https://github.com/framersai/paracosm/commit/8ab090e7bd925c2182190c2834201bcd8aee894f))
- expand forge-observability chain + fix F1/P1 drift in ARCHITECTURE + trajectory card ([47e0f6b](https://github.com/framersai/paracosm/commit/47e0f6b2ed7af4a8040620cc9dffb4dfa3a3eda2))
- deps: bump @framers/agentos to ^0.2.1 ([0d444b2](https://github.com/framersai/paracosm/commit/0d444b2204b51908c75ed4c655959b29e73a6472))
- handoff: 2026-04-22 session wrap — P1.5 + F1 + F5 + F4 batch 1 ([73898f4](https://github.com/framersai/paracosm/commit/73898f4c1d5c7871d177ca5d37750ebde5bd4670))
- dashboard: F4 migrate App.tsx shell + ErrorBoundary to SCSS module ([98a1211](https://github.com/framersai/paracosm/commit/98a121150597d5e43172072e34ad525c2b1af0cf))
- dashboard: F4 migrate LoadMenu inline styles to SCSS module ([8fe13d0](https://github.com/framersai/paracosm/commit/8fe13d0bcf9f548918538be5935473b9d0068fe0))
- dashboard: F4 migrate VerdictBanner + ReplayBanner + EventLogPanel to SCSS modules ([c258a60](https://github.com/framersai/paracosm/commit/c258a6042d861dd3831a4ea61e70bb95a1c1052d))
- dashboard: F4 migrate VerdictModal inline styles to SCSS module ([31ff47e](https://github.com/framersai/paracosm/commit/31ff47e22c2f944677d701f71ebe6ed750d99eca))
- deps: bump @framers/agentos to 0.2.0 ([b90eee4](https://github.com/framersai/paracosm/commit/b90eee48bfdd7af259ea3ef5410ea82a471b6950))
- dashboard: F5 extract VerdictBanner + VerdictModal + ReplayBanner + EventLogPanel + useLaunchState ([76c3a71](https://github.com/framersai/paracosm/commit/76c3a718123e352b987306afb8026847cd79e497))
- dashboard: F5 extract toast hooks (useForgeToasts, useTerminalToast, useSimSavedToast) ([57191b9](https://github.com/framersai/paracosm/commit/57191b97f1b6e5c4e57b4973f2408298fc21e38c))
- dashboard: F1 complete - arena-ready state shape + crisis→event rename ([4ac532a](https://github.com/framersai/paracosm/commit/4ac532aebb96d78fcd955e193ea4f848e6ed177d))
- dashboard: F1 WIP - layout + sim + reports + shared migrated (SwarmViz remaining) ([cc9941a](https://github.com/framersai/paracosm/commit/cc9941a6880ac6a4378691d87a2b710835eeefb2))
- audit: add F23 generic time units (surfaced during F1) ([5f6ef83](https://github.com/framersai/paracosm/commit/5f6ef833cd1d31504f110b67e68ec981522b0bae))
- dashboard: F1 WIP - consumer hooks + layout + divergence rail migrated ([37aaa20](https://github.com/framersai/paracosm/commit/37aaa20f0bd17c6f21d4492c339307d5b3c8227a))
- dashboard: generalize useGameState for N leaders (core hook) ([b89af4a](https://github.com/framersai/paracosm/commit/b89af4a06e78c498243b372764d718f46dacec80))
- plan: F1 arena-ready state shape implementation — 10 tasks, 22 files ([7839739](https://github.com/framersai/paracosm/commit/783973923506d8c16986681eafdd45ea871d0082))
- spec: F1 arena-ready dashboard state shape (internal refactor) ([a23f5bd](https://github.com/framersai/paracosm/commit/a23f5bdd333ea6963d70236538b4b754f86a5618))
- audit: dashboard UI/UX audit — 22 findings across 4 severity tiers ([54b68cf](https://github.com/framersai/paracosm/commit/54b68cf0f1273adec1e759e0a2b65fee8096d24c))
- deploy: generate + commit CHANGELOG, use release-notes.md in gh release ([7fb934f](https://github.com/framersai/paracosm/commit/7fb934fad319c530f554890d6c58faa20b8b3686))
- gitignore release-notes.md + fix README finalState example ([11f8bad](https://github.com/framersai/paracosm/commit/11f8badadffb607ba55d14c05b0f1a56bdf8a7c0))
- seed CHANGELOG with 0.5.0 + 0.4.0 entries (locked 0.4.0) ([67f91a1](https://github.com/framersai/paracosm/commit/67f91a147289324bb698dc2bcb5fc498c27f473b))
- plan: P1.5 CHANGELOG implementation — 9 tasks, 44 steps ([18a4568](https://github.com/framersai/paracosm/commit/18a45688dcd2d70b842a92456b5d00832fa595f9))
- spec: P1.5 automated CHANGELOG + release notes ([d93f5f4](https://github.com/framersai/paracosm/commit/d93f5f4de0194c41695ed254decca500e36cfdf9))
- README + landing examples use leader.unit / systemDeltas ([9a7982c](https://github.com/framersai/paracosm/commit/9a7982c0ceee65a307c0e6560c793f984955d348))
- compiler: regression guard for COMPILE_SCHEMA_VERSION bump ([495f5a7](https://github.com/framersai/paracosm/commit/495f5a7479347e07c6d4840fa12294cf78719565))
- rename colony→unit/systems across all test suites ([16faed8](https://github.com/framersai/paracosm/commit/16faed8b72835bd17f7b8cf0781923b4eecca644))

</details>

---

## 0.5.0 (2026-04-21)

Domain-agnostic schema rename. `LeaderConfig.colony` renamed to `.unit`, `SimulationState.colony` renamed to `.systems`, every `SimEvent` payload field renamed in lockstep, the `'colony_snapshot'` event type renamed to `'systems_snapshot'`, public types `ColonyPatch` and `applyColonyDeltas` renamed to `SystemsPatch` and `applySystemDeltas`, CLI flag `--colony` renamed to `--unit`. Saved-run migration helper aliases legacy field names on read so pre-0.5 output JSON and stored sessions still load cleanly. Cache busted via `COMPILE_SCHEMA_VERSION` bump, forcing regeneration of every pre-0.5 compiled scenario hook on next run.

### Breaking Changes

- rename colony→unit/systems across public API (0.5.0) ([2f0d4b2](https://github.com/framersai/paracosm/commit/2f0d4b2852c863bf639d4efdd00124d060f23266))

### Features

- runtime: createParacosmClient factory + PARACOSM_* env-var config ([c999419](https://github.com/framersai/paracosm/commit/c999419dfd6e28b8426c979e7c15699275b8aa38))
- runtime: costPreset option for cheap iteration + honest cost table ([8a55f3d](https://github.com/framersai/paracosm/commit/8a55f3d0ea80083015948fa03e30754fcbb6dfa9))
- runtime: universal summary field on every SimEvent for robust logging ([3654358](https://github.com/framersai/paracosm/commit/3654358343068f6a40d03397a85508ef40928692))
- RUN guard + focus ring + GoL cache + mobile min-height ([10c625a](https://github.com/framersai/paracosm/commit/10c625aed287a1a08a36fe50f5e310fc4e352e6d))
- dashboard: known-rough-edges sweep — replay 404 + sessions offline + tour CTA + search icon + chronicle→reports jump + terminal-toast gate ([c0285da](https://github.com/framersai/paracosm/commit/c0285da7507a35af9de02b083a041961501dc5a3))
- viz,reports: polish + mode overlays + Colony→Swarm rename ([ef9e051](https://github.com/framersai/paracosm/commit/ef9e05119168145ab6d17acd0bf9b42d7e9abc57))
- viz: polish pass — staged fade-in + chronicle-hover flash + click-focused relationship lines ([3e41f76](https://github.com/framersai/paracosm/commit/3e41f761236a84b171035d6f215e09624810fbb1))
- viz: add Conway Game of Life overlay + boost RD injection on sparse populations ([c049b5b](https://github.com/framersai/paracosm/commit/c049b5bd358c919ff54ef121ae3f4657dd08dee2))
- viz: HEXACO-driven Gray-Scott chemistry — side A vs B diverge from turn 1 ([4906380](https://github.com/framersai/paracosm/commit/490638092ccef61efa3447f727b82fb88d52b79d))
- viz: event-filter pills now filter the canvas flares too ([28be316](https://github.com/framersai/paracosm/commit/28be3169169ef999146cdc97b663f01fe9b2915a))
- viz: mode pills now produce visibly distinct renders ([84b4fea](https://github.com/framersai/paracosm/commit/84b4fea4fe7c223aa3b7d434f1c428a2cd3eb83e))
- footer: fold /chat turn cost + tokens into global footer total ([3e65d71](https://github.com/framersai/paracosm/commit/3e65d7134662be57ced38a3026fd96ab8c253b3d))
- sessions: LLM-generated narrative titles for cached runs ([7376c06](https://github.com/framersai/paracosm/commit/7376c068fa1b43eabf1774e1417e5fcc9486d412))
- providers: default compileScenario to openai + gpt-5.4-mini; drop explicit provider from landing example ([56976eb](https://github.com/framersai/paracosm/commit/56976eb2b7a10635c49805132984080d9a66a8aa))
- providers: preflight env check + fallback between openai/anthropic + ProviderKeyMissingError + landing example env hint ([3ec001c](https://github.com/framersai/paracosm/commit/3ec001c45dc2268eec38c755e5adbfdc0ca73d3f))
- reports: compose hero + strip + sparklines + side-nav, demote meta-pills, highlight divergent turns ([3ac78fa](https://github.com/framersai/paracosm/commit/3ac78fa8346dde4c11830b29114dbf17082985ad))
- reports: ReportSideNav sticky jump-nav with IntersectionObserver active highlight ([61a5fb1](https://github.com/framersai/paracosm/commit/61a5fb12c2d1bf46007cdd2da68e5a7ddf0cdd5a))
- reports: MetricSparklines six-metric trajectory grid ([4f2d90f](https://github.com/framersai/paracosm/commit/4f2d90f8d5099bd5c7d96100562522175d2e972a))
- reports: RunStrip horizontal timeline with outcome badges ([8614eab](https://github.com/framersai/paracosm/commit/8614eab1a16eee321193fa62214b346214711f20))
- reports: HeroScoreboard top-of-page summary ([e34bf8b](https://github.com/framersai/paracosm/commit/e34bf8b45d6647c594acd39dc5f57fdb37f6db71))
- reports: shared helpers + tests for outcome color, turn classify, metric + strip series ([445e17f](https://github.com/framersai/paracosm/commit/445e17f1b3e1e935812c73b74869386a1f68001a))
- dashboard: promote LOAD to amber gradient CTA matching RUN ([44587c7](https://github.com/framersai/paracosm/commit/44587c76939df30f2669bf1bb84cacf080a5e762))
- dashboard: LoadMenu opens cache-first, expanded, scrollable at 5 cards ([28c5904](https://github.com/framersai/paracosm/commit/28c590464700d62fd5791f4c81b85ce49dfb9b8f))
- add paracosm economics and platform modes ([a85ba35](https://github.com/framersai/paracosm/commit/a85ba350546e91307897585a14b0efbe5f977760))
- dashboard: wire LoadMenu into TopBar ([38c9f3d](https://github.com/framersai/paracosm/commit/38c9f3dc0583c8ef8a3dcdba7daa3c00605cd05b))
- dashboard: add LoadMenu dropdown component ([ddde299](https://github.com/framersai/paracosm/commit/ddde2991622a1ef4eaaf6970fd7cdc7cd9553bce))
- dashboard: add LoadMenu pure helpers + tests ([83167ba](https://github.com/framersai/paracosm/commit/83167bae5dc199b8d7256f1b3ec7aefc6093ead2))
- server: auto-save completed runs to session ring ([3cf698e](https://github.com/framersai/paracosm/commit/3cf698e2e8e97c5b0f507967fdcf574121d98414))
- server: add run-state flags for auto-save ([9e9e2d3](https://github.com/framersai/paracosm/commit/9e9e2d3f6516261fa5c4255af4de524a58afef76))
- dashboard: forge toasts + bump @framers/agentos for tightened judge rubric ([f8cab71](https://github.com/framersai/paracosm/commit/f8cab71eb697c417b36a9be874a6c9c807f7e1ac))
- dashboard: UI for replay-stored-sessions ([4ddcd61](https://github.com/framersai/paracosm/commit/4ddcd6140fb7309b0962ba429c2d06c753245c76))
- server: stored sessions — save + list + replay endpoints ([bcf2f25](https://github.com/framersai/paracosm/commit/bcf2f25c5b6f06b6ec004e7ef1760e48a2b25aa0))
- llm: maxTokens caps on every paracosm LLM wrapper + call site ([dfefbb1](https://github.com/framersai/paracosm/commit/dfefbb1beacc6c2fe4d87cdd533901f7ca95769a))
- server: add /health endpoint for monitoring + smoke tests ([fbd6864](https://github.com/framersai/paracosm/commit/fbd686414136638c1c0c69ec4bacb2c001ecb7b3))
- viz: interactive viz — click-to-select, forge tooltips, metric sparklines ([74b0104](https://github.com/framersai/paracosm/commit/74b0104c2a267facdb4cc5fdb7b24a7cdeef7884))
- viz: rewrite MOOD/FORGE/ECOLOGY as informative-first renderers ([1433276](https://github.com/framersai/paracosm/commit/1433276ba150c544cb3367808fa604682e554443))
- forge: rejection-reason histogram in /retry-stats + dashboard ([b4a9eea](https://github.com/framersai/paracosm/commit/b4a9eea7d412f5170d828063ce85dc2d021fb8a2))
- forge: classify rejection reasons into 5 categories ([b499b9d](https://github.com/framersai/paracosm/commit/b499b9dcebee1005df29862504ab611400f2ea41))
- forge: unique-tool metrics distinguish re-forges from real failures ([934cf1f](https://github.com/framersai/paracosm/commit/934cf1f791208b4733ebbc23b0d28c4489dfdedd))
- telemetry: provider-error aggregation in /retry-stats + dashboard panel ([3ef3c48](https://github.com/framersai/paracosm/commit/3ef3c48fc62fb9e47d1e9a4dbeb993b94aa619aa))
- telemetry: provider-error counter on cost tracker ([5ef249d](https://github.com/framersai/paracosm/commit/5ef249dadd5e81bc4b8c905903daf918cc49942c))
- cache: per-run cache stats + cross-run /retry-stats rollup + dashboard ([becc7f0](https://github.com/framersai/paracosm/commit/becc7f086e6a8f2800dbf1007c867cacefb4832c))
- dashboard: forge reliability + cross-run /retry-stats panel ([f182ab7](https://github.com/framersai/paracosm/commit/f182ab7c901f043e2d995737f14a5bd507743e72))
- forge: per-run forge stats + cross-run /retry-stats rollup ([249cd2a](https://github.com/framersai/paracosm/commit/249cd2ac0f9797cee42797d65ecce2ccd5ba7be5))
- compiler: generateValidatedJson wrapper + milestones via injected generateText ([2aa8a4e](https://github.com/framersai/paracosm/commit/2aa8a4e6dc3893cd76016f4ffe460738d78056f1))
- server: /compile telemetry, SSE fallback events, retry-stats wiring ([7cfebc8](https://github.com/framersai/paracosm/commit/7cfebc8f59294d8e751563b2ada4572b385456c7))
- compiler: migrate 6 code/prose hooks to validated wrappers ([9ab5323](https://github.com/framersai/paracosm/commit/9ab5323ebf0c345eab7a279c5b34ecb425e86560))
- compiler: route milestones through generateValidatedObject + Zod ([72b1b7c](https://github.com/framersai/paracosm/commit/72b1b7cea3e38d91beef46667d58c4e86ad148d0))
- compiler: generateValidatedProse wrapper for director hook ([26b5ef8](https://github.com/framersai/paracosm/commit/26b5ef84385c7120f8ae035618baa99e159624b2))
- compiler: generateValidatedCode wrapper for code-producing hooks ([fcf4550](https://github.com/framersai/paracosm/commit/fcf455079c0d3afa89cc98b16a3a55d9002333e9))
- compiler: cache-aware GenerateTextFn + telemetry CompileOption ([92f6415](https://github.com/framersai/paracosm/commit/92f6415baf90dba9655ea72c80a189d39982a5df))
- compiler: CompilerTelemetry aggregator ([326c22f](https://github.com/framersai/paracosm/commit/326c22f94263b52b4eb9889a5a41bb45659fd87a))
- compiler: compile-side generateValidatedObject wrapper ([cde2256](https://github.com/framersai/paracosm/commit/cde225603f8b1e309bc407b535feec10d8e075e5))
- compiler: add Zod schemas for milestones ([0d51062](https://github.com/framersai/paracosm/commit/0d51062b17c71fb4632cbf1b5dab036e14a50bd3))
- observability: /retry-stats endpoint + cross-run schema retry ring buffer ([66e45de](https://github.com/framersai/paracosm/commit/66e45de0c1239c380ad8b0a215dcfddb88e7a9ba))
- dashboard: schema reliability table in CostBreakdown modal ([c9bbe24](https://github.com/framersai/paracosm/commit/c9bbe24ae9c3db5f7fc9cd6836c194aab0a8373c))
- dashboard: render validation_fallback events in the sim stream ([bbb01ab](https://github.com/framersai/paracosm/commit/bbb01ab6cf0edc7986b496690b86f0df6c164718))
- telemetry: per-schema retry counts in run cost output ([d8ad954](https://github.com/framersai/paracosm/commit/d8ad954742883ed556614fd387b1fc461a609ae3))
- dashboard: commander HEXACO trajectory arc in Reports tab ([735b848](https://github.com/framersai/paracosm/commit/735b848c41c692afe2d3d9729dd3bf24c698c614))
- dashboard: surface commander reasoning field in Reports expand ([57c19c8](https://github.com/framersai/paracosm/commit/57c19c823ef0c44441e98648b48bf890893304da))
- dashboard: surface validation_fallback events as topbar indicator ([935d30b](https://github.com/framersai/paracosm/commit/935d30b7b08c4ad2b8a61c6bae7c9208008b4812))
- observability: emit validation_fallback SSE when schema fallback fires ([18792e9](https://github.com/framersai/paracosm/commit/18792e92be57f1267f900485f5a9df7533ba5b31))
- hexaco: thread trajectory cue into commander director and dept prompts ([bbc2707](https://github.com/framersai/paracosm/commit/bbc2707080c91712919102346cfb6100950f45c0))
- orchestrator: track commander HEXACO drift and preserve caller config ([20d72da](https://github.com/framersai/paracosm/commit/20d72daf4e93df6f9313ef5a89be0c0f0d8e073c))
- progression: full-trait outcome-pull drift and commander drift helper ([7247ff6](https://github.com/framersai/paracosm/commit/7247ff658385db423c2badcfbd1b45465a962c7c))
- hexaco: add trajectory and translation cue helpers ([1583b0f](https://github.com/framersai/paracosm/commit/1583b0f84a1f36e8191337ea2e09d6f19edf9286))
- llm: add sendAndValidate session-aware wrapper with retry feedback loop ([4d64c52](https://github.com/framersai/paracosm/commit/4d64c5296908c2b99a68c93d81d22a6a696a9898))
- llm: add generateValidatedObject one-shot wrapper ([31b4ff9](https://github.com/framersai/paracosm/commit/31b4ff90d7acaf06c087ca61e040889ef61dcc5c))
- schemas: add VerdictSchema with reasoning field and score bounds ([59e679b](https://github.com/framersai/paracosm/commit/59e679b6d92b97b962c4a91411fd33b1b016ba17))
- schemas: add ReactionBatchSchema (wrapped for json_object mode) ([32e17a1](https://github.com/framersai/paracosm/commit/32e17a1c2c9a1ca32f64834fb8694d38f83a05a7))
- schemas: add CommanderDecisionSchema with reasoning field + PromotionsSchema ([d6a4090](https://github.com/framersai/paracosm/commit/d6a409045fb5ed9ca1cad7d1beb1eab6f0d31e4a))
- schemas: add DepartmentReportSchema with nested risk/effect schemas ([70169c9](https://github.com/framersai/paracosm/commit/70169c9bb2174a9ecf45a69b4acd7b673f1845b8))
- schemas: add DirectorEventBatchSchema with risky-option refine ([f9afc4d](https://github.com/framersai/paracosm/commit/f9afc4da3b1dc2df4cb6e2a77de56b7f38665545))
- forge: turn-1 bootstrap-forge floor so every dept seeds the toolbox before turn 2 ([3c503d2](https://github.com/framersai/paracosm/commit/3c503d23881da855a5c08b567864f6a50be2dc76))
- viz: rebuild mood mode as a real Conway's Game of Life automaton ([f178c95](https://github.com/framersai/paracosm/commit/f178c959c2f7321954217038183002b875eb8fa1))
- viz: automaton now fills the panel — default taller, maximize button hides tile grid entirely ([095c533](https://github.com/framersai/paracosm/commit/095c533469fc08b5d67d1c8758bd0e459050570e))
- ux+prompts: audit pass — reduced-motion, first-run nudge, clearer topbar, CoT on commander + verdict ([75acbb7](https://github.com/framersai/paracosm/commit/75acbb753a9b34df02e8e9a5e606ff1dc9dec46d))
- viz: forge flow + ecology hex grid + tour + shortcuts (steps 2 + 3 of 3) ([845f944](https://github.com/framersai/paracosm/commit/845f944e9258e4ea4de89bd21c57abe8cef7ea1a))
- viz: mood propagation automaton canvas (step 1 of 3) ([dfbbcc7](https://github.com/framersai/paracosm/commit/dfbbcc7fbb78a07b7359c9dc9ffec2971d70c89a))
- ux: re-run epilogue, viz leader identities, compact intro, escape-to-close on every modal ([b852beb](https://github.com/framersai/paracosm/commit/b852beb478ee6622968492f106826642dc0d230c))
- viz+verdict: global closable verdict banner, metrics strip per colony, symmetric panel structure ([cff5609](https://github.com/framersai/paracosm/commit/cff5609cc8d8bb74b151a83ad4e8f2acd6680d0e))
- verdict: flagship model + winner badges on leader headers + inline expansion in Reports ([ec149af](https://github.com/framersai/paracosm/commit/ec149aff6baefe07e1e3055f692e3e42e7493e67))
- scroll: tail-to-bottom on sim columns, timeline, reports, and chat ([215c5d0](https://github.com/framersai/paracosm/commit/215c5d07f2b7ec3d021c31cc695724931b28a33e))
- log: tail the event log to the bottom as new SSE frames arrive ([3970be1](https://github.com/framersai/paracosm/commit/3970be114edd59e2eb1901efe77ee335d77b5b54))
- viz: mobile drilldown drag-to-reduce with snap points ([586cf96](https://github.com/framersai/paracosm/commit/586cf96a43ca58e008b6afffe1b6d0cd24dc027a))
- verdict: cause-of-death breakdown feeds the LLM verdict prompt ([081be4b](https://github.com/framersai/paracosm/commit/081be4be4c7bfb201811f5b73a9c256619bd472e))
- viz: attribute deaths by cause in stats bar + tooltip breakdown ([d3960c0](https://github.com/framersai/paracosm/commit/d3960c05475befc4b9c7d9e6df30cb47ebbc8d6f))
- kernel: partnership formation + condition recovery + partnered-birth rates ([e6b879e](https://github.com/framersai/paracosm/commit/e6b879e9f38597f111608a457d2006cbc4c33e5c))
- kernel: multi-cause mortality with attributed deaths ([f8c2649](https://github.com/framersai/paracosm/commit/f8c2649983681ce4d193bace6c84fd63e5f6f95e))
- prompts: director uses HEXACO to colour events per leader ([9e16828](https://github.com/framersai/paracosm/commit/9e16828afac5db84674b19769a92d4ca35318aa0))
- prompts: commander sees forged toolbox + cites outputs in rationale ([0f0e7ab](https://github.com/framersai/paracosm/commit/0f0e7abadbebc6278355016fb8e4c6769f14a0a1))
- prompts: sharper HEXACO asymmetry + explicit call_forged_tool guidance ([f32da3f](https://github.com/framersai/paracosm/commit/f32da3ffc5580ca1efd8b5703939ae9022b98e1b))
- runtime: full 6-trait HEXACO coverage in commander + dept prompts ([153ddd6](https://github.com/framersai/paracosm/commit/153ddd623926b1aec7ae6aaf9ccab92b08ca2524))
- runtime: personality drives forge-vs-reuse asymmetry ([0cd61ec](https://github.com/framersai/paracosm/commit/0cd61ec2bf8ab95c60cbbb006feecff358080061))
- demo-mode turn cap configurable via env, default 6 for recording ([aff1524](https://github.com/framersai/paracosm/commit/aff15248f05095fd7e8123a892e6c8f57805f7a9))
- viz: chat handoff via URL hash preselects colonist in chat tab ([81c8a07](https://github.com/framersai/paracosm/commit/81c8a079d4fccfdb3307d919016fb3ebf4d79dcf))
- viz: rewrite ColonyViz as composition root; trim VizControls ([b8b4663](https://github.com/framersai/paracosm/commit/b8b46639453c64754d57e1d546c1ab7650104696))
- viz: ColonyPanel per-leader column wiring layout sections ([b41b957](https://github.com/framersai/paracosm/commit/b41b95757ad9b3f8181ae73b77267a7ebf5a9449))
- viz: DrilldownPanel composing radar, mood, family, memories, chat ([bd2be1f](https://github.com/framersai/paracosm/commit/bd2be1fcb89e85f452e0ed68bba2e1d15c3dadda))
- viz: HexacoRadar, MoodChart, FamilyTree drilldown subcomponents ([a5cc17c](https://github.com/framersai/paracosm/commit/a5cc17cda4f21173875e4e3b06f2ae48d23fa706))
- viz: ClusterToggleRow (visible modes) and Legend strip ([b2f6eca](https://github.com/framersai/paracosm/commit/b2f6eca095cbaf006e01b20acf86313dccce3194))
- viz: TurnBanner with humanized per-leader outcome strings ([ec44079](https://github.com/framersai/paracosm/commit/ec440798ec2b46b08415dac19d0d0de4079364c9))
- viz: FamilyPod, DeptBand, GhostLayer containers ([8d3bf20](https://github.com/framersai/paracosm/commit/8d3bf2020c6aa85401e8237c776d450eb4bc5455))
- viz: Tile component with four size variants ([779aa34](https://github.com/framersai/paracosm/commit/779aa3414ffbde5934b42babfd7176af94891b9a))
- viz: humanize-outcome utility for turn banner strings ([6dd95e5](https://github.com/framersai/paracosm/commit/6dd95e54a32cc024cc9bc0baa5d665c4df606df9))
- viz: pure layout computation with tier + pod assignment ([3b9a321](https://github.com/framersai/paracosm/commit/3b9a321460f4dddea0aa17eba5a53e6538915491))
- phone-width stats bar + chat HEXACO sidebar + re-run-with-seed button ([c115261](https://github.com/framersai/paracosm/commit/c11526134b71336ab4c159659bdaed775fd16e92))
- call_forged_tool meta-tool so depts actually execute reused forges ([d329965](https://github.com/framersai/paracosm/commit/d3299657d0a3ed681844a54d964073af59d8578c))
- demo cap UX, /chat BYO-key, progress bar, persistent rate limit, retention ([0f1593c](https://github.com/framersai/paracosm/commit/0f1593cd60669be431c0418fa767e3081c3efc3b))
- wire judge prompt caching via generateTextWithSystem ([2ca16cb](https://github.com/framersai/paracosm/commit/2ca16cbf2e035e39d2e80f38bbc11d98304bc9b1))
- surface prompt-cache savings end to end in cost telemetry ([7850505](https://github.com/framersai/paracosm/commit/785050592473781d313c98409ae1acb8f98ec9d2))
- clickable cost breakdown modal — see where the API bill went ([b1d042d](https://github.com/framersai/paracosm/commit/b1d042d456df511aeae05808dbf22ae8dea68629))
- surface provider quota/auth errors with persistent banner + abort ([199a1e0](https://github.com/framersai/paracosm/commit/199a1e0e2228b7e92263e092cf34507556465047))
- per-tool reuse history + outcome dedupe + toast replay-storm fix ([28b8b6b](https://github.com/framersai/paracosm/commit/28b8b6bf0f16263561610d32d6a715dab5c1b89b))
- tool forging now materially affects outcomes, fingerprints, and verdicts ([60a0cce](https://github.com/framersai/paracosm/commit/60a0cce6952bc5e253c8c3a6402dc7dc3ca1c6c8))
- enrich runSimulation/result API + tool detail modal in sim flow ([04d44f8](https://github.com/framersai/paracosm/commit/04d44f80f56c019a041cca14a5ef06d0d5ea664a))
- real-time forge SSE + inline FORGED cards + bottom-bar evidence CTAs ([e89b2b7](https://github.com/framersai/paracosm/commit/e89b2b7c891d0864a5d7bb3f0f7659deadad0326))
- stylized GitHub CTA in TopBar (icon + label, hover amber, mobile icon-only) ([2c2a3ac](https://github.com/framersai/paracosm/commit/2c2a3ac67f945f41ca3d6a141165378b9014888c))
- verdict modal + SSE dedupe + amplified personality divergence ([c1f4be2](https://github.com/framersai/paracosm/commit/c1f4be2d69979455ad168855318898dba800eee0))
- perf + resilience + UX polish (rAF pause, SSE reconnect, ?-shortcuts) ([a49a8f2](https://github.com/framersai/paracosm/commit/a49a8f20af06c5b206637ca093a63b3773f9a7a5))
- highlight newly forged tools, expose JSON Schemas, add Forged Toolbox ([686f425](https://github.com/framersai/paracosm/commit/686f4251f61b9ec885ea97107c49b89404f58692))
- viz UX overhaul, citation provenance guarantee, seed enrichment docs ([14ac972](https://github.com/framersai/paracosm/commit/14ac972b31366c7a98fcc4739d54601f43b510ec))

### Bug Fixes

- viz: hoist useMediaQuery calls above maxTurn early return ([73b023e](https://github.com/framersai/paracosm/commit/73b023eb456ac3d2bbdcf67c3b25a975597c5d2c))
- toasts: persist forge-toast dedup across page reloads ([694a551](https://github.com/framersai/paracosm/commit/694a551fc43a94c6cd508e53c98a3fe80d50304d))
- viz: settings schema v2 migration + silence historical-event toasts ([0090965](https://github.com/framersai/paracosm/commit/0090965c29632fe3968b3b42172572085800e308))
- viz: family-relationship lines default OFF — the 'weird diamond animation' ([ca3417c](https://github.com/framersai/paracosm/commit/ca3417c1c5c0eaea920c9976f8fa970937554052))
- viz: GoL square tiles + bigger hover hit radius + shorter warmup ([13d62a7](https://github.com/framersai/paracosm/commit/13d62a7c2f60d261548327823faa3302d223ce62))
- viz: kill pulsing halo + explain ambient layers to users ([9ebf142](https://github.com/framersai/paracosm/commit/9ebf1428236aa72a031d963edbdf6b1fc95d22b5))
- viz: GoL freezes after stabilization — no more per-frame animation ([b991c75](https://github.com/framersai/paracosm/commit/b991c75f8163f0d6fea2d61af1993126bf0fc225))
- viz: GoL re-seed uses own turn ref + fires on empty grid ([fc523b6](https://github.com/framersai/paracosm/commit/fc523b6811aa2d0abacef05ab1cccbb33d238689))
- viz: deterministic Conway GoL + bigger filter pills ([1cee578](https://github.com/framersai/paracosm/commit/1cee578eed3f75de808e9b1c32ede923ddb9221c))
- viz: GoL overlay invisible — canvas rejects var() fillStyle + bump visibility ([818afab](https://github.com/framersai/paracosm/commit/818afab5aee7c6af38a792d917bcb8b7199b4c7d))
- viz: dept labels off by default + user-toggleable ([a043559](https://github.com/framersai/paracosm/commit/a0435598c8fb061a0b654884b7d5297945175d71))
- sim-config: hosted-demo uses pure economy tier — drops per-run cost ~10× ([ed687f1](https://github.com/framersai/paracosm/commit/ed687f171f22bd11a95aa1284a8cb84187c8ae93))
- reports: responsive layout — stop sidenav from collapsing content to 20px wide ([4392e8c](https://github.com/framersai/paracosm/commit/4392e8c7dc48f536e155314b4fc6e610ef56e046))
- sim: Load Prior Run button scrolls to visible replay card ([beefb49](https://github.com/framersai/paracosm/commit/beefb49f88113a5f76ef8fa9009678963b4cf5a3))
- viz: sparkline legend rendered raw \u2014 / \u00B7 — use real em-dash + middle-dot ([020ebf9](https://github.com/framersai/paracosm/commit/020ebf9f12b3b54c5dbbc9f0528dcc0b04212a4b))
- sessions: count wrapped turn_done frames + derive leader names from status event ([c503c1b](https://github.com/framersai/paracosm/commit/c503c1b9f748fb9932a9ecedf79da952e1cff26c))
- sessions: surface save outcome + mirror completed runs to localStorage ([43d8f9b](https://github.com/framersai/paracosm/commit/43d8f9b15668df46e326e5faee6e49e3ce6c6d84))
- viz: hoist theme-color block above ghost-trail + drawGlyphs — fourth TDZ site ([cbce148](https://github.com/framersai/paracosm/commit/cbce148efcc6e4f7149773057700f0c8f0213b48))
- viz,server: stop interrupting sims on in-domain nav + dedup toast replay + tooltip on Interrupt chip ([d943162](https://github.com/framersai/paracosm/commit/d94316250313140860677f3c3329f0e144cff870))
- viz: hoist leaderA/leaderB above export callbacks — third TDZ site (handleExportJson deps captured leaderA/B declared 130 lines below) ([567a1dc](https://github.com/framersai/paracosm/commit/567a1dc1130178b4d4ce735e3e8b9153229f91c1))
- viz: hoist leaderA/leaderB + move useSoundCues below forgeFeeds — another TDZ in prod minified bundle (Cannot access 'st' before initialization) ([7580312](https://github.com/framersai/paracosm/commit/75803127d8e7ecb32d8133b53d9df788f63dd2b7))
- toolbox: back-fill terminally-rejected forges from forge_attempt stream + add load-prior-runs CTA on setup page ([7431ab1](https://github.com/framersai/paracosm/commit/7431ab1046a08988eff8aac22de3abd9012c7ddf))
- load-menu: refresh saved-sessions on menu open so just-completed runs show without reload ([f0302ff](https://github.com/framersai/paracosm/commit/f0302ff516767ced89953ae89c8a3fe8d7112570))
- viz: hoist gridSettings useState above effects — TDZ crash on viz tab load in minified prod bundle ([555fe2a](https://github.com/framersai/paracosm/commit/555fe2a7f96cad2782562ecf0f8c696cdbbae173))
- dashboard: toast forge only for events arriving post-mount (react 18 batching broke replayDone seed); add server auto-save diagnostics ([2dc407f](https://github.com/framersai/paracosm/commit/2dc407ff2e9834186ed14eafc4582607464f8c25))
- server: lower AUTO_SAVE_MIN_TURNS to 1 so 1- and 2-turn runs land in the cache ring ([377227c](https://github.com/framersai/paracosm/commit/377227c9d9585d0f98226514d1391a6ed24d975b))
- dashboard: clear all tsc -b type errors across TopBar, ReportView, trajectory card, SimView, DrilldownPanel, viz-layout test ([11134b5](https://github.com/framersai/paracosm/commit/11134b5446daa804244ca8ab18381d6285c42bba))
- dashboard: hoist ReportView hooks above empty-state early return (react #310) ([45bbd63](https://github.com/framersai/paracosm/commit/45bbd63e5e3fd3dd0110766b359e2d947e0fb07a))
- dashboard: destructure sections prop in EventSide (ReferenceError on /sim?tab=reports) ([eeb666d](https://github.com/framersai/paracosm/commit/eeb666dc54704155dd8cb625296863f8c50e86a8))
- dashboard: hoist useToast() above forge-attempt useEffect (TDZ) ([4dce6df](https://github.com/framersai/paracosm/commit/4dce6df47a0fe3c578b1ea4ce78f9043a2c3f909))
- deps: bump @framers/agentos to 0.1.242 for OpenAI max_tokens fix ([7c40d69](https://github.com/framersai/paracosm/commit/7c40d69b74977375bfc2e473918d7c6130d9b257))
- runtime: cap commander + department session maxTokens ([6a015b2](https://github.com/framersai/paracosm/commit/6a015b2bb3858df3c4944919c3af4827cbf578c1))
- sim-config: user-key signal overrides stale dropdown defaults ([c49d0f7](https://github.com/framersai/paracosm/commit/c49d0f7c3b0f03467b3be3155dda359dbd219b34))
- scenario: surface 'stored but not runnable' + broadcast active-scenario on /setup ([401bad2](https://github.com/framersai/paracosm/commit/401bad2e97e2bb21c542b2f171cd0c92c28e1f19))
- server: custom scenarios now actually run — was silently using Mars ([5166834](https://github.com/framersai/paracosm/commit/51668347d79e1527d0ff997088a7c21b8e16687d))
- viz: maximize/restore button overflow — replace 2-char chevrons with 1-char icons ([187ce61](https://github.com/framersai/paracosm/commit/187ce61aeb11b2c25b7f10a756c2b55a410e30f2))
- forge: sharpen return-key discipline in forge guidance prompt ([d97273b](https://github.com/framersai/paracosm/commit/d97273bae4ee84237c1c4a97184ac9d2c3a3701e))
- viz: auto-scroll deceased section into view on expand ([64cc03a](https://github.com/framersai/paracosm/commit/64cc03a876f2421a273fb7777816d72bf51cb9b1))
- compiler: align MilestoneEventSchema fields with MilestoneEventDef ([c96b899](https://github.com/framersai/paracosm/commit/c96b8990e4816e3aec05255ec1ae5130d6adeb0f))
- security: scope user API keys to request lifetime instead of mutating process env globally ([9505de9](https://github.com/framersai/paracosm/commit/9505de90c6250e105c57cafe04a0c5a1ddfd00b7))
- forge: infer schema properties from testCases when LLM omits them ([1a5d4b6](https://github.com/framersai/paracosm/commit/1a5d4b6120daccce0352e0dd84e44eb857915214))
- server crash on scenario policy shorthand + commander prompt crash on non-array risks ([f0e0e46](https://github.com/framersai/paracosm/commit/f0e0e469f8e74847d321bc36360f07d4248843eb))
- commander decision parser salvages malformed JSON; departments tier bump to gpt-4o ([f70f8db](https://github.com/framersai/paracosm/commit/f70f8db2ed8ea7e891a107c3c6750e6be28e1d59))
- forge: tighter worked example, explicit retry guidance, departmentMaxSteps 2→3 ([4d3be08](https://github.com/framersai/paracosm/commit/4d3be08a318f64f8ac287a357fcc5f06879f1118))
- tools: stats bar counts unique forges, registry approval escalates monotonically ([5c4da41](https://github.com/framersai/paracosm/commit/5c4da41fec8429dd8ff2a4daa6597107ec5c59a1))
- demo: department tier → flagship gpt-5.4 and tighten forge-schema prompt ([4a855c7](https://github.com/framersai/paracosm/commit/4a855c731dfa219c8153ffd7bfc0e61dd4486bd7))
- topbar: responsive collisions at 1200-1440px — hide scenario earlier, compact turn labels, shrink progress bar ([ea885f2](https://github.com/framersai/paracosm/commit/ea885f2e2f166199382c8c70a069f34958e5be1f))
- revert launching auto-clear on events.length — SSE replay cleared the spinner before the sim started ([41b93e4](https://github.com/framersai/paracosm/commit/41b93e45774bcb2ca50bcba6ba6d21ca54c60073))
- forges stop failing on empty schemas, launch-stalled toast stops lying after tab navigation ([6ca6872](https://github.com/framersai/paracosm/commit/6ca687203284a4d990d5d4fb9eb1b4bb96fdafc3))
- stats: exclude rejected forges from the TOOLS count ([4c9c1fb](https://github.com/framersai/paracosm/commit/4c9c1fbd2d00c37afdee63867f9d0c8fe0b9900a))
- demo: put departments back on gpt-5.4-mini so forges stop failing ([ac5da5e](https://github.com/framersai/paracosm/commit/ac5da5e602af2c71b386765ae3bdbfa09ec61a20))
- topbar: rename "Unfinished" to "Interrupted" and explain the cause on hover ([6c1d210](https://github.com/framersai/paracosm/commit/6c1d2100daff614e33331bd18a6df27e6442bb27))
- tour: step 7 now highlights the viz area whether or not data loads ([0d1f1ab](https://github.com/framersai/paracosm/commit/0d1f1ab719a21e18bcdbf7a1a49cc68a09e0e8a2))
- settings: stabilize HEXACO slider width + add caret to dropdowns ([850c7af](https://github.com/framersai/paracosm/commit/850c7af4dcc5a42a0e58c22e7ba7a8b5942ab09d))
- viz: render each side's latest snapshot when leaders are out of sync ([cfa2d8b](https://github.com/framersai/paracosm/commit/cfa2d8bd0c9c0f980eed071b4c2ec5c86c94c0ee))
- sim: close 'No simulation running' flash between Launching and first turn ([5a27bb9](https://github.com/framersai/paracosm/commit/5a27bb976994afe4d347025d01a22cd6734d652e))
- stop wasting tokens on abandoned runs + clear stale state on Run ([f2ccd1d](https://github.com/framersai/paracosm/commit/f2ccd1d54a2a8a19cd6474134cac15ad1b5c3212))
- maxTurns display, chat across deploys, chat history across tabs ([0115647](https://github.com/framersai/paracosm/commit/0115647a370ed8113fa67f3c82be1968d1a16e32))
- remove narrative event/outcome toasts + auto-size duration ([6f46618](https://github.com/framersai/paracosm/commit/6f46618f8e63b226d2c2d775f852fa2830d84ff4))
- stop toast replay-storm on page reload via server replay_done marker ([678f7b5](https://github.com/framersai/paracosm/commit/678f7b50404a209ac433460893774dc94268a50a))
- dept prompt tells every HEXACO profile to reuse first ([68b8cc4](https://github.com/framersai/paracosm/commit/68b8cc4cd14f8289fa5e177f6e06823a578a72f8))
- agent-reactions: widen ReactionContext.outcome to TurnOutcome | null ([3296e65](https://github.com/framersai/paracosm/commit/3296e65036fa5758f5c2ad95912e5ef96b958cb2))
- reaction-step: add crisisTitle to ReactionContext + coerce null outcome ([25b8323](https://github.com/framersai/paracosm/commit/25b8323ca7db4850ddbb06227d839d1b30afe514))
- surface last tool output + hard rule so depts actually reuse ([a5124e2](https://github.com/framersai/paracosm/commit/a5124e25cf20b886f7c844e748fc272ad121e404))
- expose previously-forged tools to depts so reuse actually happens ([31a1fef](https://github.com/framersai/paracosm/commit/31a1fefad58525cfa4b2d5a3c0d48daefb409b4c))
- drop cost pill from stats bar; upgrade demo departments to mid-tier ([fdf14e2](https://github.com/framersai/paracosm/commit/fdf14e2d7e5c42fe536b0a56ee42669da0b7a6f0))
- clear in-flight sim on /setup; make abort controller race-safe ([745a365](https://github.com/framersai/paracosm/commit/745a3650794f2fa666eeb978a8ef57f14144a977))
- dashboard: toolbox popover -> expandable details, stats bar reuse pill ([9919a76](https://github.com/framersai/paracosm/commit/9919a7678d625380d8d9cea9a0ba94bb2ebb8c2a))
- show model picker for local .env keys + apply user keys on /compile ([d2a875b](https://github.com/framersai/paracosm/commit/d2a875bb97944b857ec60fbf743ef6232c6ccea6))
- cost floor for hosted demo + BYO-key model tier picker ([e4a9365](https://github.com/framersai/paracosm/commit/e4a9365f6e105ab639e26f215bd11618ed6da9f0))
- paracosm CI + consumer-facing cache savings UX ([a10aa59](https://github.com/framersai/paracosm/commit/a10aa5984e54585e8ca6afde7e9bab2811315343))
- quota toast spam + cancel-on-disconnect with Unfinished badge ([8de089b](https://github.com/framersai/paracosm/commit/8de089babbcf79bf4e49213d9ff86013a7bbe8e0))
- compose-mode TypeError caused by mode variants falling into sandbox path ([8b5258e](https://github.com/framersai/paracosm/commit/8b5258e776476c8cd2a5849df998cbeda1f4fe2d))
- tooltips clipped by ancestor transform (forge card 'animation: forgeSlide') ([5741a5a](https://github.com/framersai/paracosm/commit/5741a5a14b9b7ee892ab0772b4db5b369210a51a))
- session tool limit at 10 bug + array-safety in forge guidance ([9c31018](https://github.com/framersai/paracosm/commit/9c3101827d121ba2f8d7ba44f3d6652ad1e4314b))
- forge verdict tooltip + layout overflow + SSE dedup dropping turns 2+ ([9dfe20d](https://github.com/framersai/paracosm/commit/9dfe20d33c39b887bf691169b29cf463f2e64ccd))
- chat agents spoke like assistants and used Mars-specific language ([513679b](https://github.com/framersai/paracosm/commit/513679b3fc64f204dd71f9cbbc1e319e4356e8a7))
- chat agents confabulated fake colonists for any name asked ([92b7953](https://github.com/framersai/paracosm/commit/92b79536414af3a27652d97e2aad9f305f842666))
- viz play/pause no longer snaps playhead to end on pause ([d8bc3d7](https://github.com/framersai/paracosm/commit/d8bc3d781f43cdc0750c324ade1250d98cee8396))
- judge default to cheap tier + track judge/director/reaction token usage ([ace7abf](https://github.com/framersai/paracosm/commit/ace7abf5133b680b0f969d36f2c34833255bc3d8))
- per-event forge tally was counting cumulative bucket every event ([4f725ac](https://github.com/framersai/paracosm/commit/4f725acc420d7d14ed48cb9f61d91a13c2498454))
- failed forges no longer display fake 0.85 confidence ([aaf2534](https://github.com/framersai/paracosm/commit/aaf2534fded4ebe9a65ffd87bdb2a5c94c96862a))
- launching state survives tab navigation + forge robustness rules ([627ff50](https://github.com/framersai/paracosm/commit/627ff5019451447dbdd203931d3e28338fc89667))
- save includes verdict, JSON export from modals, dept tools clickable ([3bd742d](https://github.com/framersai/paracosm/commit/3bd742dc0bb6675afbc6e73fb47e7e7344108aa3))
- dept agents in every scenario now told to forge_tool (was dead code) ([29e25d5](https://github.com/framersai/paracosm/commit/29e25d5bf7b1f345018a7dfecc1e8483f7f78aa9))
- Clear button now actually clears state (POST /clear + preserve status) ([e38c8dd](https://github.com/framersai/paracosm/commit/e38c8dd68083f124d5b279c6bdc58c4751470390))
- toast notifications visible in light mode (theme-aware backgrounds) ([d622023](https://github.com/framersai/paracosm/commit/d622023d690ff4316a0951c24779d45b0c1319da))
- HEXACO sliders + viz scrubber render an actual visible track ([a3f62ca](https://github.com/framersai/paracosm/commit/a3f62ca9946873e5d21d5ef722a71ad1e848bdbd))
- capture forge_tool calls directly so TOOLS count reflects reality ([8a2790b](https://github.com/framersai/paracosm/commit/8a2790b92132381257ec9f33d19a7a77d9f72600))
- chat character prompts steer toward simulation events, not generic chat ([af4ffaf](https://github.com/framersai/paracosm/commit/af4ffaf7135f880cca92741e3510572868924f29))
- viz crash + divergence visibility + inline citation pills + 2-column refs ([e0e9843](https://github.com/framersai/paracosm/commit/e0e9843a70860c654079707086067205e63f925e))
- restore CrisisHeader tooltip popover (no internal scrollbar) ([2de2434](https://github.com/framersai/paracosm/commit/2de24346ae6589dc8a64a52cd438b4e73052d55c))
- replace CrisisHeader hover popup with inline ellipsis ([5f57f44](https://github.com/framersai/paracosm/commit/5f57f44637d8589ed11009f457270a7a986c8c7f))
- replace verbose inline citations with compact [N] pills + References section ([77ac2fe](https://github.com/framersai/paracosm/commit/77ac2fe18718e6a6ba416a026640a24969292591))
- chat per-agent threads + typing indicator, cost tracking, cache fixes ([a57e3e2](https://github.com/framersai/paracosm/commit/a57e3e29022f0dc902bfea056c2e38f3061351f2))
- built-in scenario milestones, mood labels, reports per-event drill-down, tsc cleanup ([91d683e](https://github.com/framersai/paracosm/commit/91d683ee3f7785041e988a6c943ad8df6df78e5a))
- resilient turn loop, emit degraded colony_snapshot on failure, per-event try/catch ([521f4d2](https://github.com/framersai/paracosm/commit/521f4d2cc9363a6483e3aa641eccdba11e4addeb))
- docs header reads version from package.json instead of hardcoded v0.1.0 ([a47b22f](https://github.com/framersai/paracosm/commit/a47b22f991a0415f978bbcc9054b8281bc2267fb))

### Performance

- demo: cut demo dept model from gpt-4o to gpt-5.4-mini ([cb34fe8](https://github.com/framersai/paracosm/commit/cb34fe8c0bb7c2b712d6860b40914e260d56acc2))
- demo: cut demo-mode spend via cheaper dept tier, shorter tool loops, explicit verdict model ([41e0c3c](https://github.com/framersai/paracosm/commit/41e0c3cb71e01ae36925c1e6abc4e5b2ebb1604b))
- Tier 2 reactions — batched (10/call) + progressive filter after turn 1 ([f42f0d3](https://github.com/framersai/paracosm/commit/f42f0d3b166145a3b284a37133a9d91228e1e2fb))
- Tier 1 cost cuts (caching + step cap + event cap + rate limits) ([974177f](https://github.com/framersai/paracosm/commit/974177fd24e006e3da611b5f5f1223c72290d246))

<details>
<summary>Other</summary>

- fixtures: capture pre-0.5 run + cache-v2 shapes for migration tests ([bd0d0d6](https://github.com/framersai/paracosm/commit/bd0d0d60dc6ade77e612cec48b084ece896c8286))
- plan: P1 implementation plan — 7 tasks, 35 steps ([4c7b068](https://github.com/framersai/paracosm/commit/4c7b0684c89b768ec46551d11ee3de6a9ed270e3))
- spec: P1 domain-agnostic schema rename + cache-bust ([0119fdf](https://github.com/framersai/paracosm/commit/0119fdf54ac9aee9ad3c543798af8e6dcc822604))
- cli: load .env from cwd, not package root, with audit log ([3cc1fa0](https://github.com/framersai/paracosm/commit/3cc1fa030abaa510636ae8ae7c6877b889d7fcce))
- Update README.md ([be46b79](https://github.com/framersai/paracosm/commit/be46b79d4237e02c7ac6ff2beaaf0d2ee0d2eda7))
- runtime: sync @param name in buildMemoryContext JSDoc ([b3f38eb](https://github.com/framersai/paracosm/commit/b3f38eb268f95aa139e7b34d985c6a07271b6020))
- update Discord invite to permanent link ([6211d6a](https://github.com/framersai/paracosm/commit/6211d6a12bee7ce19589965077845e66322effc2))
- dashboard: tighten SimEvent type union + rot-proof about ecosystem copy ([6f45a8c](https://github.com/framersai/paracosm/commit/6f45a8c5b85bb55c3b6f342bf86a02f5d76cf8f5))
- runtime: discriminated SimEvent + full API docs coverage ([8e87b4e](https://github.com/framersai/paracosm/commit/8e87b4efcc13533882e1ba56c5d535b9e5b0e4f7))
- runtime: write run output to cwd/output, not node_modules ([86b3296](https://github.com/framersai/paracosm/commit/86b3296d10451a8758279244be8fe3b4558a53c7))
- landing: inject real package version into schema.org + fix cost table ([edc133e](https://github.com/framersai/paracosm/commit/edc133e68e339db650df8c4322a5564d8bd081da))
- dashboard: stop forge toast flood on launch/load/replay, align flow line ([cb35725](https://github.com/framersai/paracosm/commit/cb357257280c111c1aa0c6632a382dd1b18810dc))
- landing: widen Anatomy of a Turn cards on mobile ([4970594](https://github.com/framersai/paracosm/commit/4970594ef2b95b81b0567d66e9b5acba9cf176f8))
- bun/pnpm install hints, result-usage examples, expose ProviderKeyMissingError ([ddf7dcd](https://github.com/framersai/paracosm/commit/ddf7dcdf0bf631a450667cf87350a6a9efbf2dfa))
- runmenu: fix contrast on gradient rows for both themes ([15ba4cc](https://github.com/framersai/paracosm/commit/15ba4cca6fb182e45f2863a25c13ca723e81e59b))
- topbar: unify REPLAY + RUN + LOAD into a single RUN ▾ dropdown ([8a2df5f](https://github.com/framersai/paracosm/commit/8a2df5f8a53ac0a89892abb9c37c343cc408b061))
- topbar + tour: REPLAY + RUN split, pin tour-seen flag on auto-start fire ([53b8fe9](https://github.com/framersai/paracosm/commit/53b8fe99a210efdace9ac13d63fe9229df11af14))
- deploy: preserve data/, .event-buffer.json, logs/ across rsync --delete ([5e542d3](https://github.com/framersai/paracosm/commit/5e542d333df23d2aa5a5228a500da9b8d709a7df))
- tour: rewrite steps for current UI, auto-run on first load ([6eb9fff](https://github.com/framersai/paracosm/commit/6eb9fff812b02db265c8419ae746110284c59966))
- topbar + toolbox: warning tooltip popover, forge tool log jump ([a0eff3a](https://github.com/framersai/paracosm/commit/a0eff3a5ed2921672297ae370da0d99588f580be))
- viz(grid): BIRTHS/DEATHS filters keep Conway texture, overlay markers ([6b41687](https://github.com/framersai/paracosm/commit/6b416876fcf0efb10fae605b84ec5f6a5649a0b1))
- viz(grid): hover + click tooltips on Conway tiles + birth/death markers ([a75e9a7](https://github.com/framersai/paracosm/commit/a75e9a7025fabc85860f1bcf0d17d277c10605ec))
- viz(grid): BIRTHS filter renders green + markers, not Conway blocks ([0486790](https://github.com/framersai/paracosm/commit/04867906dec1b58ccb2c32af63b44d7c67d4bfe2))
- viz(grid): DEATHS filter renders tombstone markers, not live cells ([9255308](https://github.com/framersai/paracosm/commit/9255308c83ce88d43d2e68d339beea5ecf928f0a))
- viz(grid): DEATHS/BIRTHS filters now seed per-event positions ([e673d07](https://github.com/framersai/paracosm/commit/e673d076cc928e7094b5b67efe6e27cd7c10aa18))
- cli: move leaders.json to config/, add resolver + bin entries ([927c0c8](https://github.com/framersai/paracosm/commit/927c0c82518c7ef2100da0e3e8ac6c77b8a9f4fb))
- untrack .firecrawl, output/, SESSION-HANDOFF.md ([49d0964](https://github.com/framersai/paracosm/commit/49d09647d1bfd93d7cf4ed86a84684af1a327f5a))
- topbar + verdict: hover popovers for T/Y/S + loud end-of-run banner ([5de45dd](https://github.com/framersai/paracosm/commit/5de45dd23637db17f5202290f8044647bc68d1bb))
- viz(grid): mode pills reshape colonist cluster layout ([6519fd5](https://github.com/framersai/paracosm/commit/6519fd5f3a2d72d411c48327fdabaf2481d2fa6d))
- viz(grid): event filter pills reshape Conway seed ([002855a](https://github.com/framersai/paracosm/commit/002855a0ad2db818a741cdf8f9990922698c917f))
- viz(grid): chunky 12x6 Conway, mode-reactive reseed, alpha 0.65 ([554401c](https://github.com/framersai/paracosm/commit/554401c5cde97658a68537d42875f39cd6b19826))
- viz(grid): bigger Conway tiles + react to event flares ([2c54fd7](https://github.com/framersai/paracosm/commit/2c54fd7d2a4971adbe0f2b00d5f919dfd00692f9))
- viz(grid): restore Conway GoL as ambient, dedupe HUD with metrics strip ([d9ed4ed](https://github.com/framersai/paracosm/commit/d9ed4edcc1272b230c0fc9e78d70530c67261a65))
- viz(grid): strip WebGL RD + all ambient overlay layers ([34c601b](https://github.com/framersai/paracosm/commit/34c601bfe7f2bb734e4c022b1aedb5e38885b3f5))
- viz(grid): compact featured spotlight, drop Conway GoL ([9dd9c1a](https://github.com/framersai/paracosm/commit/9dd9c1a2549d1d2d70a3385edd3fdf7fe8c04509))
- topbar: collapse save/copy/clear into overflow menu ([9f8a394](https://github.com/framersai/paracosm/commit/9f8a39415ab3c54cd86a5adf4f16cc1686576d8a))
- settings: unify label + section + reset typography across surfaces ([47f1666](https://github.com/framersai/paracosm/commit/47f16660bf8d042051506b7d7069ae0948a7d169))
- viz(grid): drop imageRendering pixelated on RD canvas ([f692c4d](https://github.com/framersai/paracosm/commit/f692c4d55e9d9ed35a4cdd39534b7620583e783d))
- viz: phase B. delete legacy path, touch glyph taps, focus trap, mobile reports ([48600f3](https://github.com/framersai/paracosm/commit/48600f36d448a23359b142e9302354adb8238643))
- viz: phase A fixes. mood-driven Conway, overflow menu, phone single-panel ([9fa83e2](https://github.com/framersai/paracosm/commit/9fa83e26c256d8608f9f7a481448edc6c4d4e0cb))
- reports: move Run Summary / Verdict to the bottom + top-of-page jump CTA ([9fe487c](https://github.com/framersai/paracosm/commit/9fe487c55363841f9f16d3cfdf7edbbdf22e41fe))
- viz: rename LivingColonyGrid → LivingSwarmGrid for scenario-agnostic naming ([36072fd](https://github.com/framersai/paracosm/commit/36072fd1a0935ca98971980cc86541f1f91e1760))
- deps: sync lockfiles under npm 11 (adds bundled @tailwindcss/oxide-wasm32-wasi nested entries) ([1f64a09](https://github.com/framersai/paracosm/commit/1f64a09f80406e349d715b2e915d0cd4a30fe31d))
- soften lockfile preflight to warn-only — blocks on platform-specific optional-dep drift (oxide-wasm32-wasi, native rollup) which isn't a real desync; npm ci remains the authoritative gate ([0e21db4](https://github.com/framersai/paracosm/commit/0e21db4b1bc1b35cb370ad1ed0d02921acc22520))
- bump Node to 24 (ships npm 11) to match local lockfile authoring — fixes oxide-wasm32-wasi drift on CI preflight ([e9ea9e7](https://github.com/framersai/paracosm/commit/e9ea9e76dd21e114dda8835ad66683b3ea1bd762))
- deps: sync lockfiles — strip stale 'peer' markers that newer npm doesn't emit (CI preflight fix) ([2490f0c](https://github.com/framersai/paracosm/commit/2490f0c1622e0f5a2aa07a68f15378287b804796))
- add lockfile-sync preflight to deploy workflow + dependabot config ([0b531ae](https://github.com/framersai/paracosm/commit/0b531ae4a021e7455a61beb78ed49cb28726b9a6))
- deps: sync lockfile with @framers/agentos ^0.1.247 bump ([5952a3c](https://github.com/framersai/paracosm/commit/5952a3cefca6f7018d969d69bfc1bf3a7819f081))
- bump @framers/agentos to ^0.1.247 (scoringTimeMs diagnostics) ([a38eb10](https://github.com/framersai/paracosm/commit/a38eb10e66ba22e1c3ba4fbd5db64f04029a69ef))
- bump @framers/agentos to ^0.1.246 ([ee11290](https://github.com/framersai/paracosm/commit/ee11290b70c2ffcad1f68415ffa403ff6d11d63a))
- sim: always show Load-Prior-Run CTA + add dedicated Load button to empty state; open top-bar LoadMenu on click ([56dd92f](https://github.com/framersai/paracosm/commit/56dd92f467e7c16c254a45fe0afb6abad96c1180))
- sim: surface LoadPriorRunsCTA in sim empty state so 'No simulation running' screen offers replays ([dba4c15](https://github.com/framersai/paracosm/commit/dba4c15dab19f72851ef0ee521a6bb2813194039))
- sim: dedupe forged-tool notifications — dept_done summary hides isNew entries that already showed as live forge_attempt cards ([fffe8d3](https://github.com/framersai/paracosm/commit/fffe8d351da50bb89d1bdc216b34c17850665b69))
- viz(grid): useScenarioLabels hook + scenario-aware UI copy + README + ARCH callouts ([08bf11e](https://github.com/framersai/paracosm/commit/08bf11eee24084a8fce9bc448df5106ba89fe1a1))
- viz(grid): scenario-aware copy via useScenarioLabels + document colony default override in README ([292d92a](https://github.com/framersai/paracosm/commit/292d92a54e97515b18f66cd4ee825fa33c88d6b8))
- viz(grid): export dropdown + search memo + always-on labels + relationship flare + sparkline tooltip ([cf62c67](https://github.com/framersai/paracosm/commit/cf62c6782129afe341add0213d9d3fc7aa1a6920))
- viz(grid): featured spotlight banner + chronicle filter chips + roster sort + forge lineage modal ([90e3b27](https://github.com/framersai/paracosm/commit/90e3b2797c05600352a7c5037515c67354a3e261))
- viz(grid): theme-aware colors across toasts, roster, HUD labels, crosshair, ghost trail ([68e7135](https://github.com/framersai/paracosm/commit/68e71356fb32474424f84d305001dff826715a2d))
- viz(grid): roster drawer per leader + timelapse webm recording + JSON replay export ([e84bded](https://github.com/framersai/paracosm/commit/e84bded73442e6f5e5c1388a5aa29e66e767c318))
- viz(grid): run-summary drawer + panel full-screen toggle + multi-metric trajectory ([959025a](https://github.com/framersai/paracosm/commit/959025a60a7d53fb874c4d360ff13a27180e023c))
- viz(grid): archetype chip + year/age HUD + dept donut + ghost trail + alerts toggle + sound cues ([3f94b24](https://github.com/framersai/paracosm/commit/3f94b24ca997e33f96fd72fe9de12185fab977bd))
- viz(grid): multi-keyword search + jump-to-latest + psych sparkline tooltip + crash alerts ([7840b03](https://github.com/framersai/paracosm/commit/7840b03e3213db6b5fc5c5fe754b6dffbb8a8125))
- stop tracking .event-buffer.json (runtime state) ([a0ac452](https://github.com/framersai/paracosm/commit/a0ac4528142b024b517fb523dc1aed1b0f4df704))
- viz(grid): search autocomplete + hover crosshair + settings drawer (anim/rings/lines/dust/crosshair) ([0e8b31b](https://github.com/framersai/paracosm/commit/0e8b31bb95e25431575bb9dc00756c661c51e22a))
- viz(grid): colonist search + PNG export + palette toggle (amber/cool/mono) + crisis toast ([9592d77](https://github.com/framersai/paracosm/commit/9592d7777388f2d556ffd9d7abd286207f234d71))
- viz(grid): cross-widget hover link + pop trend arrow + scrub vignette + live turn progress ([9c1aeb8](https://github.com/framersai/paracosm/commit/9c1aeb803556c5edb9ee147cc4228c729849e3c4))
- viz(grid): background dust + timeline sparkline + event chronicle + keyboard footer ([a15f6d8](https://github.com/framersai/paracosm/commit/a15f6d84a69bee85a4b15c56b4c5020902361765))
- viz(grid): birth/death particles + featured pulse halo + reuse comet head + dept rings + metric tweens ([0418ca2](https://github.com/framersai/paracosm/commit/0418ca291b56b413886abf869f0a4cc46049cc44))
- viz(grid): pill count badges + morale border glow + cross-panel hover match + turn pulse ([f16db2c](https://github.com/framersai/paracosm/commit/f16db2c4d5389dcc78ab40ac5b6676d015b173ed))
- viz(grid): reduced-motion + aria-live + divergence empty state + mode hint line ([965c52f](https://github.com/framersai/paracosm/commit/965c52f69665e9a0b55ea6a7e3eb0d3da595b2f5))
- viz(grid): mobile responsive + keyboard shortcuts + help overlay + label collision + injection tune ([f58e109](https://github.com/framersai/paracosm/commit/f58e109e6864609931d69d5f0b8c8511346bbaa9))
- viz(grid): divergence mode tints colonists alive here but dead on the other side ([8ab2608](https://github.com/framersai/paracosm/commit/8ab2608e19f0bd6252d17d0d5a75bac63ea0b368))
- viz(grid): add partner + parent-child connection line overlay (LinesLayer) ([f62e94c](https://github.com/framersai/paracosm/commit/f62e94ca8a210243f6a0f32960dda0361440b098))
- viz(grid): wire forge/reuse/crisis flare seeding with dept cluster anchors ([ec82732](https://github.com/framersai/paracosm/commit/ec8273241424b7e1ef10d7b5295c923e7af2e7d0))
- viz(grid): full colonist drilldown popover on click (HEXACO radar + memory + open-chat) ([2a49140](https://github.com/framersai/paracosm/commit/2a491403773920aadcfc0c2c13ab2e352e7b2823))
- viz(grid): comprehensive info layer — metrics strip, mode pills, dept labels, hover tooltip ([a4d7dcc](https://github.com/framersai/paracosm/commit/a4d7dccb0debe607bbd141b8dc220d3aaa2fcda8))
- viz: re-enable new grid as default; build info layer on top ([46bef6d](https://github.com/framersai/paracosm/commit/46bef6d0999e9c528542c45af42d1ae87730d9e0))
- viz: revert default back to legacy viz; new grid hidden behind VITE_NEW_GRID=1 until Phase 2 ([62129cc](https://github.com/framersai/paracosm/commit/62129cc9ec79225f87904135f3a5a9b6124719db))
- trigger deploy with SERVER_IP + APP_DIR secrets set ([c606edc](https://github.com/framersai/paracosm/commit/c606edcb96c32327dd9adcb50a9ee1d785aa7546))
- use secrets instead of vars for SERVER_IP + APP_DIR ([2fde873](https://github.com/framersai/paracosm/commit/2fde87377cf7a1ca626f7b654efc3a84fcf0ed7d))
- move SERVER_IP + APP_DIR to GitHub Actions variables; scrub IP from docs ([db9c3cb](https://github.com/framersai/paracosm/commit/db9c3cbf935aaa946597213f8f41fba68f6ff9dc))
- viz(grid): flip VITE_NEW_GRID default to on; env=0 is now the legacy opt-out ([80b752f](https://github.com/framersai/paracosm/commit/80b752ffec98e6202f5bd307c8d7afbb311095fd))
- viz(grid): wire LivingColonyGrid — WebGL RD + Canvas2D overlays + flare seeding ([40e4b5b](https://github.com/framersai/paracosm/commit/40e4b5bbb079e68df7dbcd817da113617799bc2a))
- viz(grid): add useGridState hook — rAF loop, flare seeding, visibility pause ([556ebfd](https://github.com/framersai/paracosm/commit/556ebfdbabd4a8d7d1151fbdd6137a50b56cf14e))
- viz(grid): add Canvas2D overlay layers — seeds, glyphs, flares, HUD ([c4064c9](https://github.com/framersai/paracosm/commit/c4064c9f1b615cde06b270ba625a7eeabb3e88d7))
- webgl(rd): add flare -> chemistry deposit translator ([ab4d2ff](https://github.com/framersai/paracosm/commit/ab4d2ffa56dafc15869d843441a5ff894f3d4a2e))
- webgl(rd): add GridRenderer class wrapping Gray-Scott context ([ca025db](https://github.com/framersai/paracosm/commit/ca025db0d543fa77438fbcc3b2c14835d5bd669c))
- webgl(rd): add WebGL2 Gray-Scott program + ping-pong FBO manager ([b8b7fc4](https://github.com/framersai/paracosm/commit/b8b7fc43207432ba7b20f4095cf6ff420a276ab0))
- webgl(rd): add GLSL shaders — Gray-Scott update + amber display ([767617e](https://github.com/framersai/paracosm/commit/767617e0e3f5026dceaac31f158550cf25aad23f))
- webgl(rd): add CPU-equivalent Gray-Scott math (shader reference + fallback) ([0e07dac](https://github.com/framersai/paracosm/commit/0e07dac429641f7dba6ab14b66d0d17182e07ce3))
- viz(grid): add event flare queue with capacity cap and per-tick decay ([241168b](https://github.com/framersai/paracosm/commit/241168b885ad47fd37c4963e4410733f0830bd4e))
- viz(grid): add snapshot -> Gray-Scott (F, k) + per-colonist injection mapping ([19889af](https://github.com/framersai/paracosm/commit/19889af74ee583d716aec5cbb7a3c70629578674))
- viz(grid): add hashed colonist position function with 4 cluster modes ([2ba9a6f](https://github.com/framersai/paracosm/commit/2ba9a6fe6a7546509344b7384d23ff6bdb146e77))
- viz(grid): scaffold LivingColonyGrid behind VITE_NEW_GRID flag ([13df31b](https://github.com/framersai/paracosm/commit/13df31bf2a43128ce539a024fc820fc131a0ee71))
- plans: reports revamp implementation plan (7 tasks, TDD) ([1ce303e](https://github.com/framersai/paracosm/commit/1ce303e578f68aa1d5f17959997137c75a9e3735))
- living colony grid phase 1 implementation plan ([f601da5](https://github.com/framersai/paracosm/commit/f601da522c31637083314275949ffe8021f5e51e))
- specs: correct outcome keys + metric names to match code ([3a15b65](https://github.com/framersai/paracosm/commit/3a15b6586bd5817bce46b2b3fb0dfc587e994691))
- specs: reports revamp (hero, strip, sparklines, divergent weight, side-nav) ([e5625e8](https://github.com/framersai/paracosm/commit/e5625e8e5f68f60d9683c52393595a2ffa11722b))
- living colony grid viz design ([611ad0c](https://github.com/framersai/paracosm/commit/611ad0c4ea6277b5d1a39553662dcc4c79e14ea1))
- deps: sync lockfile with @framers/agentos ^0.1.244 bump ([8c920c6](https://github.com/framersai/paracosm/commit/8c920c6fc86b126d1677a30308e50dfc7e19bd7b))
- deps: bump @framers/agentos to ^0.1.244 ([3c63a2e](https://github.com/framersai/paracosm/commit/3c63a2e88030ef3127891f518d763e98e0e4d2ff))
- sync dashboard content updates (about, reports, scenario hook) ([3aa0cb5](https://github.com/framersai/paracosm/commit/3aa0cb5f59e6271b69fd689e4c7d3d3aca144205))
- dashboard: remove SavedSessionsPicker (replaced by LoadMenu) ([9e4ce9d](https://github.com/framersai/paracosm/commit/9e4ce9d1e46f06f80dc7a634096b336e4079c1eb))
- server: guard tests for auto-save abort/short/double/error ([df27609](https://github.com/framersai/paracosm/commit/df276090c98af47e8ca75d9b96ed3bc66397b0a3))
- server: auto-save persists completed run ([94c556a](https://github.com/framersai/paracosm/commit/94c556ac9a458c98b62651a4283da57d5ed41f9e))
- plans: implementation plan for load menu + cached runs ([79ff70e](https://github.com/framersai/paracosm/commit/79ff70e3622ddbbde168a9addaac07c553adddc0))
- specs: correct testing approach (node:test, no RTL) ([1eb200a](https://github.com/framersai/paracosm/commit/1eb200abb866d1a8b2674c487dd244960de720b6))
- specs: design for load menu + cached runs surfacing ([17fa66c](https://github.com/framersai/paracosm/commit/17fa66c7c517d77b6eb6d2474f7d14ce08a3b1c7))
- demo: keep gpt-4o for demo departments ([fac2e8c](https://github.com/framersai/paracosm/commit/fac2e8c70a92c976f2270838ccc8533943ca591d))
- bump @framers/agentos to 0.1.232 for generateObject cache-token fix ([11683e1](https://github.com/framersai/paracosm/commit/11683e11a211109d891eb4345e76403ab0678315))
- sync package-lock.json for @framers/agentos 0.1.230 ([0f31956](https://github.com/framersai/paracosm/commit/0f31956133bd7e61fe99c1cecc9fec7bbc3b13ad))
- forge: delegate observability utilities to @framers/agentos 0.1.230 ([07e4f6e](https://github.com/framersai/paracosm/commit/07e4f6e43d55e38b3241aaebfa02afa457230e7b))
- comprehensive NEXT-SESSION-HANDOFF for 2026-04-18 session ([2c8bd31](https://github.com/framersai/paracosm/commit/2c8bd31c20f8f1faa5f609643a84e9a628d8239c))
- specs for viz panel rethink + AgentOS forge telemetry extraction ([e77bd65](https://github.com/framersai/paracosm/commit/e77bd65f3bca613bf6697a8f5b3482f026848332))
- scenario: unified catalog — no hardcoded IDs in switch/list ([c92a86e](https://github.com/framersai/paracosm/commit/c92a86e660f13922e9e35a9086c91bfdf1c495cd))
- refresh /retry-stats example + compile-before-run workflow ([518a7a8](https://github.com/framersai/paracosm/commit/518a7a8b4d8a268808d993c1e349b10829e9168a))
- audit(models): verify tier decisions + fix site-pricing fallback ([5f7d193](https://github.com/framersai/paracosm/commit/5f7d1937819dc544ac235a6aa12e2d8205cd2a1c))
- audit(hexaco): verify coverage + lift reaction cue cap 3 to 6 ([1eb8a8f](https://github.com/framersai/paracosm/commit/1eb8a8fbdefaba7301200ebcf43557cccebd3635))
- dashboard reliability panel spec ([7d70728](https://github.com/framersai/paracosm/commit/7d707285b135edba9f2504cc60d12f29c2808db5))
- forge telemetry rollup spec ([a3eec6d](https://github.com/framersai/paracosm/commit/a3eec6d3ca22f3869732f7eb06a455db01bd4b5b))
- implementation plan for compiler hook reliability ([5699dfe](https://github.com/framersai/paracosm/commit/5699dfe3b90cb7e8e4f8c9162d9ab2e84b1e20c7))
- compiler hook reliability + telemetry spec ([8bc2aa0](https://github.com/framersai/paracosm/commit/8bc2aa0a66026e1fa88b2cd3d4291577809e2603))
- document /retry-stats endpoint and schema retry telemetry ([4fa1bee](https://github.com/framersai/paracosm/commit/4fa1beec1e9b48830c8a98bbca60720a0be2aec1))
- bump @framers/agentos to 0.1.228 + schemaRetries in per-event _cost payload ([b1bcdc3](https://github.com/framersai/paracosm/commit/b1bcdc361573098f49fef429413a0571257e08ec))
- commander: move reasoning field into CommanderDecision type + prune unused imports ([f84721c](https://github.com/framersai/paracosm/commit/f84721c3506744e1e65d98f405db8a6bb03b82ad))
- forge: integration test for wrapForgeTool schema inference (regression guard for Apr-17 fix) ([1f40fd0](https://github.com/framersai/paracosm/commit/1f40fd03736bc5d763d1fbd2acf511343aa4a5c6))
- update ARCHITECTURE + README for Zod migration and full-trait drift ([5c41ab9](https://github.com/framersai/paracosm/commit/5c41ab99be0ee6d30c1dad2b7923c9abd57d9f88))
- reactions: delete legacy per-agent path ([e8708c7](https://github.com/framersai/paracosm/commit/e8708c7a95ecad5eea04652f6c7c190ac0532253))
- departments: delete dead DEPARTMENT_CONFIGS constant ([4db5198](https://github.com/framersai/paracosm/commit/4db5198f1c566e4e12b996c691e3ec0539f48fa1))
- promotions: migrate to sendAndValidate with PromotionsSchema ([be7939b](https://github.com/framersai/paracosm/commit/be7939b11c60c7858794a109ab4648b4b2dc2c29))
- commander: migrate to sendAndValidate with JSON reasoning field ([6b03f6d](https://github.com/framersai/paracosm/commit/6b03f6d613cd270c816bd84818b5264ac5629b45))
- departments: migrate dept reports to sendAndValidate ([badf1a5](https://github.com/framersai/paracosm/commit/badf1a551cdee5129649302d7ae3dac405a8f036))
- verdict: migrate to generateValidatedObject with reasoning schema field ([ce137ed](https://github.com/framersai/paracosm/commit/ce137edf719f69798c28ae3e62edb4b5d247ec43))
- reactions: migrate batched path to generateValidatedObject with cue translation ([3e3a299](https://github.com/framersai/paracosm/commit/3e3a2994064e170b66ceed3e14ff34b90a36f43c))
- director: migrate to generateValidatedObject with DirectorEventBatchSchema ([684e8ed](https://github.com/framersai/paracosm/commit/684e8eddb771fb2a2d78ac38d19655a221347b16))
- add zod dependency and schemas barrel ([00e9625](https://github.com/framersai/paracosm/commit/00e96259c15b902c69cadaaea52cd227de7a42f7))
- demo departments back to a cheap tier — gpt-4o-mini with tightened forge prompt ([5542bcc](https://github.com/framersai/paracosm/commit/5542bcc5d9d461ae23da3b7314512855ae3210ae))
- targeted tests for the automaton shared utilities and the pre-judge forge shape validator ([ba9565c](https://github.com/framersai/paracosm/commit/ba9565c0e35476cdd19ec30b77f9a9fa778c733c))
- refresh demo transcript to session 2 scope ([e6004ec](https://github.com/framersai/paracosm/commit/e6004ec50d054a807a7d17c75df6b8d7c00e4698))
- ui(stats-bar): per-render deltas on deaths/tools/reuse/cites ([c0ea7cf](https://github.com/framersai/paracosm/commit/c0ea7cfe07e4f902afed978c8e6f64223f9cee6e))
- ui(stats-bar): single row + horizontal scroll fallback (revert wrap) ([77c920c](https://github.com/framersai/paracosm/commit/77c920cff3e42559bcb89210d0f48f43f9b7e9eb))
- ui(sim): sharpen intro bar copy to name HEXACO + forge/reuse + drilldown ([f41e276](https://github.com/framersai/paracosm/commit/f41e276544d39621ae92fbf16b1b2b89124bdde4))
- ui: refresh tour + shortcuts overlay for current viz ([5827bef](https://github.com/framersai/paracosm/commit/5827bef44378d16e67fff4f5a33bf9a0d4104419))
- ui: footer status chip + shorter launch-stalled timeout ([c0b2b68](https://github.com/framersai/paracosm/commit/c0b2b68776545cbf75d1c3d5122c6e20668efdfd))
- ui: wrap instead of scroll, leader-color all stats, tools+reuse adjacency ([f16b2a0](https://github.com/framersai/paracosm/commit/f16b2a07a0011e771dab61563e988f3d271135ee))
- ui: complete-toast, green complete pill, demo-locked inputs, narrow topbar ([43012f6](https://github.com/framersai/paracosm/commit/43012f6f34c85c0b49c8611d6b9d8aa5e1c13323))
- ui(sim): leader-color forge badges + reset isRunning on complete ([c3691a7](https://github.com/framersai/paracosm/commit/c3691a71c68e11d39e6b35fb491d823ec8718f85))
- ui(sim): unify real-time forge stream badges to 'FORGED TOOL' ([4d7d3a8](https://github.com/framersai/paracosm/commit/4d7d3a8a5772e0b5a75c0516d736e02e4a0bc5a6))
- ui(sim): unify forged-tool label (FORGED TOOL badge + '+N tool' header) ([ed60d6a](https://github.com/framersai/paracosm/commit/ed60d6ac16ddd7d352d8fb3e5d1f2e153f6fe3e8))
- viz: retire canvas-era files (ColonyCanvas, CellRenderer, etc.) ([84bbf37](https://github.com/framersai/paracosm/commit/84bbf37b4261ee57a723def7e9abd2f11c76f0d8))
- types(viz): add ClusterMode, TileTier, LayoutTile, ViewLayout ([a40e686](https://github.com/framersai/paracosm/commit/a40e686b6a0f4bd2f516251d6855116c7e14fdbd))
- rename crisisTitle/crisisCategory -> eventTitle/eventCategory ([2249f66](https://github.com/framersai/paracosm/commit/2249f66627cc40acf727ba715e567bbdbe5c5d32))
- extract writeRunOutput + runReactionStep ([78d0ca5](https://github.com/framersai/paracosm/commit/78d0ca540b497deb54001e3c01c7d95559fa93cf))
- extract commander bootstrap + turn-0 promotions to commander-setup ([f5639f9](https://github.com/framersai/paracosm/commit/f5639f9bddadc1f4faf23cd85e498c7689b80462))
- extract cost tracker, forged toolbox builder, citations catalog ([5645bf4](https://github.com/framersai/paracosm/commit/5645bf445645ee549cddbdd57ca32d9c573b3809))
- extract forge ledger types + available-tools block builder ([31ad529](https://github.com/framersai/paracosm/commit/31ad529f98ce1959b61b0e5a12cd3de4848f6b0f))
- extract MODEL_PRICING + site-rate lookup to pricing.ts ([20f10e3](https://github.com/framersai/paracosm/commit/20f10e3e1ab8834ecf582b5625469b3e4419e0f4))
- extract parsers + report/decision helpers to parsers.ts ([77cf8bf](https://github.com/framersai/paracosm/commit/77cf8bf57f8eb64894397cc383ecf9f97308261c))
- extract emergent-engine setup from orchestrator.ts ([09682fc](https://github.com/framersai/paracosm/commit/09682fcca76c5a2bd78797fb0154a9dee46d39d5))
- extract IpRateLimiter into dedicated module ([b56a830](https://github.com/framersai/paracosm/commit/b56a83091968feef7bb268bb3d035b593aacdc0e))
- bump @framers/agentos ^0.1.222 -> ^0.1.225 ([4f08ecd](https://github.com/framersai/paracosm/commit/4f08ecd5efd0a2a64b3a675363a12247ab8eacbf))
- ui: crisis header now 2-line clamp instead of single-line ellipsis ([6a523f8](https://github.com/framersai/paracosm/commit/6a523f8f8818e6a52d17ac8c804f253821523390))
- tests/ folder + npm publish gating + WorldSystems/Politics indexable ([1c45ab1](https://github.com/framersai/paracosm/commit/1c45ab1b93ef45e80bda82149c399021ca5bcd07))

</details>

---

## 0.4.0 (2026-04-15)

First npm-published release series. Multi-event turns, Event Director with cross-turn planning, Zod schema validation on every structured LLM call, session-aware `sendAndValidate` wrapper preserving conversation memory across validation retries, cost tracking with per-call-site rollup, stored sessions with replay, seed enrichment and citation provenance, `costPreset` economy mode for cheap iteration, universal `e.data.summary` on every event, `createParacosmClient` factory with `PARACOSM_*` env-var config, discriminated `SimEvent` union with per-type payload narrowing.

### Features

- multi-event turns (1-3 events per turn, sequential pipeline, Event Director batch generation) ([560aebd](https://github.com/framersai/paracosm/commit/560aebde1ce67ed3f2d341132f33e8d40d271393))
- event timeline and memories in chat panel, eventNoun in client payload, clear event labels ([4f454c2](https://github.com/framersai/paracosm/commit/4f454c253737136b1f01c47fe0167c848aa37e6f))
- Conway's Game of Life square grid layout, delete hex grid and WebGL glow renderer ([428d4c4](https://github.com/framersai/paracosm/commit/428d4c4b45b366ab004deedfb713e0f75ccf2bf8))
- hex grid CA layout, kill floating tooltip, bottom-right legend, mid-sim chat, delete CellTooltip ([9118aa5](https://github.com/framersai/paracosm/commit/9118aa50170d0674a5ca1d469028f8a7e2acd49d))
- detailed API key resolution docs in settings with per-key descriptions ([c4f928e](https://github.com/framersai/paracosm/commit/c4f928e78ac8cc47a1627e4347403544f60103c8))
- hex-packed cellular automata grid layout, department labels, legend, kill erratic movement ([680428a](https://github.com/framersai/paracosm/commit/680428ad96df2beb73e5e7a07f293349b7ea89a1))
- color-coded crisis toasts with leader/side info, longer duration, dismiss button, dept analysis toasts ([ce80cb0](https://github.com/framersai/paracosm/commit/ce80cb0e0d5a28f9c1e8ad08fd7325eaea301b8e))
- auto-bump patch version on every push to master, publish every build ([6da26d2](https://github.com/framersai/paracosm/commit/6da26d28e6bc80e411941358730140ac41334745))
- bypass rate limit with user API keys, crisis toast notifications, kill empty dept badges, update FAQ ([af26dd3](https://github.com/framersai/paracosm/commit/af26dd3760c8fba2d5587642f6ae5a981626f971))
- department cards show full analysis with risks, recommendations, citations inline ([d515f00](https://github.com/framersai/paracosm/commit/d515f00554d47226236c7f6fbe3f4d611e466f7f))
- department cards show summary, risks, and stats inline instead of tooltip-only badges ([bc39517](https://github.com/framersai/paracosm/commit/bc39517616110ea4605841a02293fb4c7a98e987))
- show crisis summary + category in timeline cards, add cost tracking to footer, viz loading state ([13fcaab](https://github.com/framersai/paracosm/commit/13fcaabd3120e94490386ebf87bf9a9c1fbdd56b))
- responsive tab bar with SVG icons on mobile ([23054c7](https://github.com/framersai/paracosm/commit/23054c7b8d6d8bc3619e5d7f879d65dd54191082))
- add colony visualization tab with cellular automata grid view ([ec7bb73](https://github.com/framersai/paracosm/commit/ec7bb7384c5bbcb7af8b05fe9d3efc90edf9f3bc))
- live cost tracking - accumulate token usage and USD cost across all LLM calls, display in stats bar ([250cb48](https://github.com/framersai/paracosm/commit/250cb4845faac26d921e7f1d229aa1df61daead1))
- show simulation errors as inline toasts instead of silent console.error ([7527f45](https://github.com/framersai/paracosm/commit/7527f453acd164ca387f34ac41b992f582589be5))
- replace raw chat with AgentOS agent() instances (HEXACO personality, episodic memory, RAG, full history) ([e398526](https://github.com/framersai/paracosm/commit/e3985265612db793690a2b331911b3d779d5a387))
- verdict display component (sim + reports), /results API endpoint with verdict JSON ([0639aee](https://github.com/framersai/paracosm/commit/0639aeeacac48a9b1e442695661f2a56ce4b3896))
- add LLM-judged verdict after simulation, pass yearsPerTurn in quick RUN setup ([c88a2c4](https://github.com/framersai/paracosm/commit/c88a2c475186b7601fd0c4d6dca29f58d01cc988))
- add mobile hamburger menu to landing page, remove legacy dashboard fallback files ([29780c5](https://github.com/framersai/paracosm/commit/29780c59b2a69fcacc45c1b776bfdc046797e61f))
- Mars Genesis defaults to 6 turns at 8 years each (48-year arc) ([cfa25ff](https://github.com/framersai/paracosm/commit/cfa25ff0fc413bc065178f8adaced2aea67601b7))
- yearsPerTurn config, JSON-only department instructions, full model defaults ([ef72079](https://github.com/framersai/paracosm/commit/ef72079a051c63ec0fd52507d67694cd9e72de19))
- upgrade all roles to full models, add json_object response format to departments ([6b635c0](https://github.com/framersai/paracosm/commit/6b635c0c97eb4873272627603afa8638e9e7ed4c))
- expandable tool cards with input/output fields, tooltip layout, reports auto-scroll ([1fab4d5](https://github.com/framersai/paracosm/commit/1fab4d5436dc23ebc3fa027786ff7f24e2cdb982))
- rewrite README for custom scenarios, expandable tool cards, reports auto-scroll, tooltip layout fix ([76a289e](https://github.com/framersai/paracosm/commit/76a289e27714dc8060b5cf962130f96528c2200e))
- detailed event log with JSON expansion, docs links point to /docs ([1dd7127](https://github.com/framersai/paracosm/commit/1dd71270e5543c0a92e624b33e6cac7ab5388fda))
- hero tagline 'AI Agent Swarm Simulation Engine' with staggered word reveal ([c7010e5](https://github.com/framersai/paracosm/commit/c7010e551cea9cf5564eac7e7abc63008ce3efc5))
- hero tagline with reveal animation, PNG favicon fallback in docs ([f933a16](https://github.com/framersai/paracosm/commit/f933a16b7f0d9222a6a038981695a1140565a565))
- add About section with team, roadmap, vision, and contact ([8ce638b](https://github.com/framersai/paracosm/commit/8ce638bb3417bf501d8f639efaafec258c48ad30))
- add GitHub and npm icon links to landing page nav ([718f006](https://github.com/framersai/paracosm/commit/718f00602acee3c3953a397d3e804fb11a4f914e))
- dashboard narrative polish, guided tour, copy summary, landing page API docs ([7e090d6](https://github.com/framersai/paracosm/commit/7e090d62b0ced3117934303400d27ae1e236d0bd))
- generalize engine from crisis-specific to scenario-agnostic events ([b7539f3](https://github.com/framersai/paracosm/commit/b7539f365a2bae3c10cd20f708939b9898e09e88))
- Run Simulation button in TopBar and SIM empty state ([7443774](https://github.com/framersai/paracosm/commit/7443774665e1f8d408e836844601f8202410038d))
- allow compiler provider and model overrides ([5d3633a](https://github.com/framersai/paracosm/commit/5d3633a452c8c54431a7b91d3db192e696de8edf))
- expose full scenario compiler seed controls ([732df30](https://github.com/framersai/paracosm/commit/732df30a8593692b6cf8d2ecde55e3329e665f81))
- brand identity overhaul, compiler cache fix, scenario-agnostic engine ([4ba8601](https://github.com/framersai/paracosm/commit/4ba8601e9e68a36fe3ba124d639d3228ab8615c0))
- unified brand logo across all surfaces, docs favicon fix ([ca72375](https://github.com/framersai/paracosm/commit/ca72375e593b7a3f72a5e9ba02637fce7dc76a37))
- export all brand assets as SVG + PNG, serve at /brand/* ([d4c0e4a](https://github.com/framersai/paracosm/commit/d4c0e4a37aea9652c5a64b0e044956d2fd7e05de))
- unified branding across all surfaces ([9acad3a](https://github.com/framersai/paracosm/commit/9acad3afa920670f9c841d95582d72047b5eb810))
- brand identity system, proper favicon SVG, icon assets ([2cd7429](https://github.com/framersai/paracosm/commit/2cd74295e5730ee88c416137cebd40428856cf48))
- TypeDoc themed with Paracosm colors, nav header, footer ([d2a6f58](https://github.com/framersai/paracosm/commit/d2a6f583f198c9300e363de76943426d6fca7d77))
- serve TypeDoc API docs at /docs, add nav link ([c875bf8](https://github.com/framersai/paracosm/commit/c875bf88b9896eb6f05d423adc2f028cdd259a68))
- scenario editor with in-memory store, import/export, ADMIN_WRITE flag ([d59f85a](https://github.com/framersai/paracosm/commit/d59f85a57be958df5dd23ad1d85d647bfc0a3127))
- timeline tooltips with crisis details, decision text, outcome badges ([d836293](https://github.com/framersai/paracosm/commit/d8362934256c24b2ad3177f7cceb280959b30cf3))
- add install + API code blocks to landing, fix sandbox citation ([01bb212](https://github.com/framersai/paracosm/commit/01bb2129986ddca08fe59e193e10b08d21b5abe3))
- consolidate About into landing page, SEO rewrite with citations ([2a31483](https://github.com/framersai/paracosm/commit/2a31483f0fb05344d4a99d1878e87dea00169a03))
- landing page at /, dashboard moved to /sim ([1da6c32](https://github.com/framersai/paracosm/commit/1da6c3207f26bb1d9ff95f9cd3d8c4a567776b7a))
- dashboard responsive overhaul, WCAG AA light mode, SEO, accessibility ([d91fb3c](https://github.com/framersai/paracosm/commit/d91fb3c4e755b52486b104653476382314916ab7))
- scenario compiler, agent memory, seed ingestion, dashboard overhaul ([56a9c28](https://github.com/framersai/paracosm/commit/56a9c289baf2f9efbf1aadf5cfea5fd331d1536e))
- dashboard polish — About page overhaul, FAQ, footer, mobile responsive ([f071681](https://github.com/framersai/paracosm/commit/f071681d6bd20e87bb57a686e061cc2068c0fbbc))
- add Paracosm Enterprise banner on About page with team@frame.dev CTA ([386843f](https://github.com/framersai/paracosm/commit/386843f890065dc2a1b276d6705d0fddc43831f7))
- add GA4 + Clarity analytics to React dashboard (same IDs as agentos.sh) ([26cd6a0](https://github.com/framersai/paracosm/commit/26cd6a08bf87df545b8351ad777e51b780938a80))
- research memory reads from scenario.knowledge, golden-run fixtures, scenario template ([49a6f65](https://github.com/framersai/paracosm/commit/49a6f657918f4d482b3f5a110ed30f9b3f5ea150))
- React dashboard Sub-project D — polish ([b4904be](https://github.com/framersai/paracosm/commit/b4904be3821a455f54f38ddc8cdaefc8bb846b5e))
- React dashboard Sub-project C — settings, reports, chat ([3a445cc](https://github.com/framersai/paracosm/commit/3a445cce123ea5f4f3c9f1962143146eea80869b))
- React dashboard Sub-project B — core simulation view ([dd6a869](https://github.com/framersai/paracosm/commit/dd6a86949ef928fef869bc96b94389c83e84b034))
- React + Vite dashboard scaffold (Sub-project A) ([63d32f8](https://github.com/framersai/paracosm/commit/63d32f84d567e243ca1dc747559529aa4578bab5))
- Phase 5 — lunar outpost scenario, batch runner, README overhaul ([23c4bfe](https://github.com/framersai/paracosm/commit/23c4bfe9aeada46f91db6c15e36bd36e60494a44))
- Phase 4 engine package boundaries — publishable npm package ([e268666](https://github.com/framersai/paracosm/commit/e2686664cb5e507bf28f6b44a70ee568b986642f))
- Phase 3 dashboard generalization — scenario-driven UI ([7be0263](https://github.com/framersai/paracosm/commit/7be02630fa7229fde07f4dd515535ecab08960d3))
- Phase 2 scenario adapter — orchestrator is now scenario-agnostic ([302c31f](https://github.com/framersai/paracosm/commit/302c31fea12de24f1c9b57727d6ef24a7d9e920e))
- Phase 1 scenario engine generalization — internal abstraction seams ([f9f6482](https://github.com/framersai/paracosm/commit/f9f6482ddb4ebc53ec1aaa28e095a5d4a8847691))
- colony bulletin board, research memory (AgentOS RAG), causality inspector ([5e16fef](https://github.com/framersai/paracosm/commit/5e16fef00063fd4431b3db73c523780eac3ad3ba))
- major simulation overhaul - emergent research, personality memory, social dynamics, chat, rate limiting ([b1e8c78](https://github.com/framersai/paracosm/commit/b1e8c78e596371dcd60fad83554ae7dec56e6515))
- CSS popover tooltips on ALL cards - tools, departments, decisions ([89d3e7f](https://github.com/framersai/paracosm/commit/89d3e7f28b8465d93ad105bec4ab54fadbf3b887))
- replay speed slider, default 500ms (slow readable pace), progress counter ([18185b4](https://github.com/framersai/paracosm/commit/18185b48d5fe33a09443f8995c925e5623ca060f))
- CSS popover tooltips for colonist reactions and promotions ([95955bc](https://github.com/framersai/paracosm/commit/95955bc74f29c55c75576c5e45f4e90df23f428d))
- Mars-themed logo/favicon, fix colonist reaction tooltips ([65f3ce7](https://github.com/framersai/paracosm/commit/65f3ce794a048c1afb9cceb1324d27ac8f55a532))
- full research stack, citation hyperlinks, rich colonist tooltips ([3ac5fb2](https://github.com/framersai/paracosm/commit/3ac5fb2f73db857f8300e1beb1a13af5de292ad4))
- multi-provider search via AgentOS WebSearchService + Cohere reranking ([9a2a91c](https://github.com/framersai/paracosm/commit/9a2a91c35e5a7de66d605928e34f9f46e4021b84))
- hover tooltips on all cards - reactions, departments, decisions ([64e741a](https://github.com/framersai/paracosm/commit/64e741afdde1f320ce4fe84336c88373e8e92bae))
- 100 colonist agents with parallel gpt-4o-mini reactions per turn ([b6712f6](https://github.com/framersai/paracosm/commit/b6712f6ff7ffa8a3c32c818425f6f612a61cc4f4))
- localStorage cache survives refresh, deduplicate tools, clear on new run ([64d6661](https://github.com/framersai/paracosm/commit/64d6661fe483d2d27bbe1293c60b85c3816c8af9))
- food reserves and citations in stats bar, richer success metrics ([9a02894](https://github.com/framersai/paracosm/commit/9a028944746a5813bbe042bb09bf755bfada178f))
- rich tool cards with input/output types, why context, department attribution ([47e1ab0](https://github.com/framersai/paracosm/commit/47e1ab0afbef2bd46fa022db1b899461bcc04f74))
- custom tooltip popovers, progress bar, bigger quotes, taller timeline ([d1e8225](https://github.com/framersai/paracosm/commit/d1e8225234b691a4b76519bb8b62bb7195755a9e))
- rich multi-line tooltips on leader badges, names, colonies ([75923b9](https://github.com/framersai/paracosm/commit/75923b9bcb8e7d1e490329b958fc468a35d0ed0a))
- dynamic leader bars populated from SSE config, not hardcoded HTML ([c0322e2](https://github.com/framersai/paracosm/commit/c0322e2696f93e997c817acc0b4b6d816c4c0786))
- distinctive visual effects for forge, decision, and severity cards ([b6c4e31](https://github.com/framersai/paracosm/commit/b6c4e3115717a148407c5e4a1e6a9188d17b8f19))
- featured colonist card, replay scrubber, turn dimming ([cebf25b](https://github.com/framersai/paracosm/commit/cebf25b71cd517c6890bdbce773ad17991483807))
- Reports tab, tool output display, decision text untruncated, tooltips ([9a4d37a](https://github.com/framersai/paracosm/commit/9a4d37a6386507d001ca841cb31cd7ba81edb2fe))
- per-column crisis headers and divergence rail ([0909b70](https://github.com/framersai/paracosm/commit/0909b701e10783669f8bfeeddd311c5e4435dfea))
- Anthropic provider support, Claude models in settings dropdowns ([8333776](https://github.com/framersai/paracosm/commit/8333776de0a1a8170d9fe13d374ea4c3f4e02517))
- emergent Crisis Director replaces hardcoded scenarios for turns 2+ ([64ef543](https://github.com/framersai/paracosm/commit/64ef54308174c17c69eb86f58f7ea2740939df00))
- share config via URL params, save/load game data, dynamic leader names ([9780167](https://github.com/framersai/paracosm/commit/9780167c53066bc42506dab39191af63f6911181))
- Settings tab in dashboard with full config, leaders compact to 1 row ([3920e1a](https://github.com/framersai/paracosm/commit/3920e1a3e8f7c4e755cb478305d1ec9a107c0194))
- setup page with leader config, HEXACO sliders, presets, model selection ([3ad1b98](https://github.com/framersai/paracosm/commit/3ad1b9893a6ee4e0747c0dbd6886635e8beb0f9c))
- typed policy effects, governance promotion, parser rewrite ([5434706](https://github.com/framersai/paracosm/commit/5434706fbed9da1e5db1a4272c0f121a39e61607))
- about page, config.example.yaml, fix empty dept cards ([c827d32](https://github.com/framersai/paracosm/commit/c827d325a1f10e8b9a842a4ffffdaaca43074bf9))
- parallel simulation, tool descriptions, tabbed debug view ([ac68163](https://github.com/framersai/paracosm/commit/ac68163594d6dae864a6e1e19d44e4f60fd25ece))
- wire live SSE event streaming to dashboard DOM ([d483746](https://github.com/framersai/paracosm/commit/d483746509ab1c13fba85e54981a09c98a007763))
- SSE server for live dashboard streaming ([202dfd3](https://github.com/framersai/paracosm/commit/202dfd3c26b790bc3be74fe7f3db78ab1256fcef))
- live dashboard with Mars theme (onyx/rust/amber/teal) ([aed813f](https://github.com/framersai/paracosm/commit/aed813f1a9867ec8d09dcfd17c1e8bbbb8d3639c))
- entry points for Visionary and Engineer simulations ([4c8ef4c](https://github.com/framersai/paracosm/commit/4c8ef4c541ca27337dd84e615e03defa4d82797d))
- multi-agent orchestrator with department routing and tool forging ([1c49b81](https://github.com/framersai/paracosm/commit/1c49b8137eba5df95721736a10b2a7cbf5554d87))
- 12 crisis scenarios with curated research packets ([27938df](https://github.com/framersai/paracosm/commit/27938df514a41fc24ec7b7201e6fd4c59892bbee))
- deterministic simulation kernel ([2cdeaf4](https://github.com/framersai/paracosm/commit/2cdeaf4f6b2106f42ec43b45fdffd483d4e8e5d1))

### Bug Fixes

- hover offset from canvas wrapper ref, accurate cost tracking per model, explicit agentReactions model defaults ([9d792b3](https://github.com/framersai/paracosm/commit/9d792b3bcd34b5947aada14b118e69580218d0af))
- hover info bar replaces invisible canvas text, fix chat model mismatch for anthropic provider ([004763b](https://github.com/framersai/paracosm/commit/004763bc1eac8c1228699a913b87b7fb413eb287))
- fully opaque toast backgrounds ([856245a](https://github.com/framersai/paracosm/commit/856245a3f7f9ada1666047651a8f89570eb7aa13))
- use github.run_number for npm version to avoid publish collisions ([21a3bdc](https://github.com/framersai/paracosm/commit/21a3bdcbdefd1360613346d555011dd9961d9176))
- viz loading state detects running sim from leaders/events, not just isRunning flag ([f1bb812](https://github.com/framersai/paracosm/commit/f1bb81244dc78d0c4a369ea595f126afa7fcd4d7))
- footer cost tracking shows when totalTokens > 0, not just llmCalls ([9141f2a](https://github.com/framersai/paracosm/commit/9141f2aec0eee0fb3826b9f18003509fb58d11ed))
- resolve all dashboard TypeScript errors (React 19 type strictness, missing vite-env.d.ts, useSSE errors field) ([d01a760](https://github.com/framersai/paracosm/commit/d01a760a0c472728c8c0a4926e3d28babf329eee))
- import extractJson from @framers/agentos@0.1.222, delete local copy ([e418467](https://github.com/framersai/paracosm/commit/e41846755e64b45417a9ab732e00359bf19bc0f9))
- use local extractJson, fix reactions scope for colony_snapshot ([0f2e870](https://github.com/framersai/paracosm/commit/0f2e87009d77969e26de54cbad0adcfd48956f76))
- HEXACO sliders - visible filled thumb with box shadow, remove radio-button appearance ([bbe0ce7](https://github.com/framersai/paracosm/commit/bbe0ce74c836476cd37d3819c072daf2a42671a8))
- show full description in timeline tooltip, allow tooltip scrolling and interaction ([8caa6ac](https://github.com/framersai/paracosm/commit/8caa6ac41f3fd2c1461a78071a6e783f86576bf5))
- load saved simulation actually injects events into SSE state for rendering ([a306c78](https://github.com/framersai/paracosm/commit/a306c78f0485b936c03378e02e770645953ff75e))
- reports tab crash - read decision from commander_decided event, stringify policies safely ([4d8092c](https://github.com/framersai/paracosm/commit/4d8092c6216997e251c11ad5ae92189616118299))
- docs hamburger shows site nav links instead of API sidebar ([1af10d1](https://github.com/framersai/paracosm/commit/1af10d1ea592d177e9b19b9f7b6fec2e8cc04d3c))
- bump nav hamburger breakpoint to 1100px, reduce link gap, prevent wrapping ([0fdaf16](https://github.com/framersai/paracosm/commit/0fdaf1600c0aad66bfc4cf37c0d582acf5b1af81))
- add hamburger to Paracosm docs header, hide TypeDoc toolbar on mobile, toggle sidebar overlay ([33e32b2](https://github.com/framersai/paracosm/commit/33e32b2c3a7eb43030695d5f34c2de252c735ca1))
- inject mobile sidebar CSS inline in server HTML (survives TypeDoc rebuild) ([d710223](https://github.com/framersai/paracosm/commit/d710223a7e68585fe71909da9462fe74aae4f48f))
- restore TypeDoc mobile sidebar toggle with hamburger menu on small screens ([d6e73a3](https://github.com/framersai/paracosm/commit/d6e73a346aee931d1eb1ed5b04aca8edf2cf0943))
- bump landing.css cache buster to v2 ([3266e12](https://github.com/framersai/paracosm/commit/3266e12b82cefa5ac25cf248714bbfb634e21cd7))
- hamburger menu - move mobile nav outside flex container, use class toggle instead of aria ([f194a39](https://github.com/framersai/paracosm/commit/f194a39cbaab871291599665372d325170e1f813))
- set default maxTurns to 6 (was hardcoded to 12 in dashboard state and demo data) ([1ecae86](https://github.com/framersai/paracosm/commit/1ecae8682b8fba52e7e741712142473ad36e34eb))
- add PNG favicon fallback to dashboard index.html ([a046b80](https://github.com/framersai/paracosm/commit/a046b80cfb0876e797e2b7acbe1417b86b187f0c))
- exclude node_modules from rsync delete ([5b79446](https://github.com/framersai/paracosm/commit/5b79446c0a90e8c41111424234527f4a72759bc3))
- add sql-storage-adapter as direct dep (required by agentos at runtime) ([a50eecc](https://github.com/framersai/paracosm/commit/a50eecc589c9937fbcdf00f6c9c4aad403572491))
- exclude .env from rsync --delete so keys persist across deploys ([1b24c71](https://github.com/framersai/paracosm/commit/1b24c71dc56ed45a0393a489868caf84b09c7be5))
- reduce brand asset cache TTL so Cloudflare refreshes faster ([b06693c](https://github.com/framersai/paracosm/commit/b06693ca87f0b95f5e37ade1c8654b2b93f55cf4))
- strip query params from brand asset paths ([7304c23](https://github.com/framersai/paracosm/commit/7304c237618862cb4d3b48859cdd56c1b5c1d997))
- load preset leaders on async scenario fetch (depend on presets.length) ([7ea2ed7](https://github.com/framersai/paracosm/commit/7ea2ed7450e6d2693464fd136b9f84563a029232))
- clarify leaders are not limited to two, API supports any number ([988559c](https://github.com/framersai/paracosm/commit/988559c3266e5540f32c4dd03e94226e866523da))
- replace broken npm SVG icon with text link ([b309c78](https://github.com/framersai/paracosm/commit/b309c780e25f59ec1e5c871df6000d10b822bbe9))
- serve PNG for favicon.ico, add GitHub releases to CI, favicon fallback ([b1cfc33](https://github.com/framersai/paracosm/commit/b1cfc3349e311ee03de58a0e324db745d993df6e))
- preserve docs theme CSS after TypeDoc build, fix npm icon SVG ([4bcf67f](https://github.com/framersai/paracosm/commit/4bcf67f0ccf1dafc33f6e11ec3f84df6ab8d4446))
- deploy assets for favicons/OG images, absolute OG URLs, blog nav link ([6c37e6e](https://github.com/framersai/paracosm/commit/6c37e6e2651a0d188614e8a98cda29bae13e83b2))
- add description field to MilestoneEventDef, fix DirectorCrisis types ([1169162](https://github.com/framersai/paracosm/commit/1169162b01c79d0e2b0bea7900d3d3282d356ba4))
- loading state shows after 2s grace period, not on instant replay ([723a7d9](https://github.com/framersai/paracosm/commit/723a7d90eb79db5101209c9fba748d9fa489a852))
- TypeDoc docs single nav, sidebar layout, theme toggle, code block contrast ([8e07e71](https://github.com/framersai/paracosm/commit/8e07e7113f22fc69f2873061ec323eea2daa3ebc))
- tooltip above by default, crisis header tooltips, stats color-coded ([70180bb](https://github.com/framersai/paracosm/commit/70180bbb75db5fc7eff32699feca95b34f186a53))
- StatsBar message reflects actual state (waiting for metrics, not initializing) ([501031b](https://github.com/framersai/paracosm/commit/501031bc8b3714a754b33d482c7c377449d4fe52))
- server-app cleanup, scenario catalog source tags ([2bf331b](https://github.com/framersai/paracosm/commit/2bf331b808b246f09bd45b64640312c5c5c27273))
- empty state only shows when SSE disconnected, not during sim init ([d0b8573](https://github.com/framersai/paracosm/commit/d0b8573ba7b93051d7c22358a47ef0240943f266))
- persist runnable custom scenarios across restarts ([bc66763](https://github.com/framersai/paracosm/commit/bc66763d8e88d9cd131fd06ffbc06241167ccc04))
- docs header fixed positioning with inline style injection ([a94a4bc](https://github.com/framersai/paracosm/commit/a94a4bc1f36656083fbd53e940397ddf1d2376b8))
- TS errors, empty state UX, loading spinners, scenario indicator ([cf3d577](https://github.com/framersai/paracosm/commit/cf3d57717752604e2f0846eb08ea010c15502e11))
- stabilize landing icon motion ([3e89bba](https://github.com/framersai/paracosm/commit/3e89bba7f1d937253952b893704ccd186a524a69))
- clarify active scenario selection ([5ec281a](https://github.com/framersai/paracosm/commit/5ec281ae8922316d66683a3db46149399f623b51))
- tighten dashboard loading states ([5dcdc11](https://github.com/framersai/paracosm/commit/5dcdc1159c40e3662b4795111693ab0bc1f85294))
- polish sim empty state and loading affordances ([da82f4b](https://github.com/framersai/paracosm/commit/da82f4bfb8d1330e57cd99c6729d7432534aca62))
- finalize scenario runtime wiring ([5dac848](https://github.com/framersai/paracosm/commit/5dac848414b47ab32eba858b6de3d795cae41290))
- use brand-generated SVG files directly via img src, no more inline SVG ([28f9b29](https://github.com/framersai/paracosm/commit/28f9b29ee6eaca20ead70e34df3ffdc91265f2d0))
- solid line colors (#8a7e6c/#6b5f50), no opacity, visible on all backgrounds ([76dae48](https://github.com/framersai/paracosm/commit/76dae4871e8315a3b915a09389081a8204570732))
- use exact brand nodeIcon() coordinates everywhere ([9770ee6](https://github.com/framersai/paracosm/commit/9770ee6c41421a01ff1bfb9ad877b597b4135574))
- thicker logo lines (3px hub, 2px cross), bigger nodes, all surfaces + favicons ([a66018b](https://github.com/framersai/paracosm/commit/a66018b412a71d6527d297b431320767be2e87ce))
- moodColors scoping crash, deprecated meta tag, HEXACO bar spacing ([db129c6](https://github.com/framersai/paracosm/commit/db129c64ed2c384e998905e5952ccd8b167907dd))
- merge Toolbar into TopBar, remove empty bar, consolidate header ([aa75b02](https://github.com/framersai/paracosm/commit/aa75b02fa54a0fb63dbb4850efa478e9fc945565))
- rewrite all docs asset paths to absolute, improve code syntax highlighting ([8ae816a](https://github.com/framersai/paracosm/commit/8ae816a7fb7d2653262f2c1388eb02360955e13b))
- rewrite landing code examples with real API shapes and complete flow ([8f58189](https://github.com/framersai/paracosm/commit/8f581894b52c1bf9b820160a8cb4c6c6adf0bfb5))
- docs route serves all assets, directories, media correctly ([25888fe](https://github.com/framersai/paracosm/commit/25888fe498edf04e3d161d9c7bd9f7a4644cdd33))
- toolbar button tooltips, scenario editor, loading states ([2df58a3](https://github.com/framersai/paracosm/commit/2df58a3b78695e3c337f4b15ff93108882a06206))
- About tab navigates to landing (same window), footer links to manic.agency ([2dc645f](https://github.com/framersai/paracosm/commit/2dc645ff74f864f179f8741935eddad08d84ef30))
- landing code examples show JSON-first workflow, not hardcoded scenarios ([9085590](https://github.com/framersai/paracosm/commit/90855901575aef374e49137b2012ba61b817bdf0))
- replace all CSS alias vars with direct vars for light mode ([271b8c5](https://github.com/framersai/paracosm/commit/271b8c58d9e1b7d30723ae2a237395ef6d38eea6))
- landing page light/dark mode, CTA contrast, dashboard readability ([8a66007](https://github.com/framersai/paracosm/commit/8a66007512292668ed9d6f75daa6e59cad5803c3))
- resolve duplicate TurnOutcome export in engine barrel ([0335fdb](https://github.com/framersai/paracosm/commit/0335fdb850818b92d279b6947aa35e675d78520a))
- architecture audit — break circular deps, TSDoc on all public APIs, clean types ([c4b1b46](https://github.com/framersai/paracosm/commit/c4b1b46890b5911daa22907f430d1503904ab728))
- scenario-aware research pipeline, citation links in dashboard ([b483ae3](https://github.com/framersai/paracosm/commit/b483ae38b161cf620f56bee7ab83d65077f826c4))
- move shared types to engine layer, fix package boundary violations ([47e1aff](https://github.com/framersai/paracosm/commit/47e1aff37e4f4813d65386fd5e4cf4fff742f991))
- 7 bugs from Codex review + generalization spec + @types/node ([2ba7729](https://github.com/framersai/paracosm/commit/2ba772935b0a12ecf8a2074a7871fa19e34c2012))
- all tooltips consistent 640px/18px/22px, JS positioned, fixed z-index ([82a559a](https://github.com/framersai/paracosm/commit/82a559a2dcc4085ed577d308e199e09258e0c075))
- tooltips measured off-screen, JS show/hide, no layout disruption ([7493361](https://github.com/framersai/paracosm/commit/7493361e4e8028a8b024efc0d187d4f5b0cc83f1))
- tooltips fully opaque, properly positioned above/below, never clipped ([e2f43a1](https://github.com/framersai/paracosm/commit/e2f43a19eb079c912e45b4f8f559f2833051c749))
- tooltips use position:fixed with JS positioning, never clipped ([87f9506](https://github.com/framersai/paracosm/commit/87f95063e77736d70a6848425e5d65dd97e149a2))
- tool card compact layout, crisis header bigger, quotes expanded by default ([e7c0db8](https://github.com/framersai/paracosm/commit/e7c0db835648c15917a29ce1c1391688773cc964))
- intro and diverge rail only show on Simulation tab ([6e00fd5](https://github.com/framersai/paracosm/commit/6e00fd5a1aa8090b3bbb928813c155a399851a26))
- timeline popover UP, decision 2-line clamp, bigger reactions, no icon ([d5c9831](https://github.com/framersai/paracosm/commit/d5c9831356fb1c5a54554c556f94177891de1381))
- remove redundant featured colonist card, bigger text, timeline popovers ([ad5d1cb](https://github.com/framersai/paracosm/commit/ad5d1cbde33109b85281112a1468d887cafc0364))
- favicon and nav use AgentOS node graph shape with Mars rust/amber colors ([32ae6da](https://github.com/framersai/paracosm/commit/32ae6dad9d4d31cd18b0f0e0e707ba9aa801f55f))
- tooltips actually work now - use HTML entities for newlines, proper escaping ([d08a35a](https://github.com/framersai/paracosm/commit/d08a35adcc76091fd4b3ef6ba8fdd3be94159d5b))
- syntax error in web search fallback (double catch block) ([292df65](https://github.com/framersai/paracosm/commit/292df651c1aadd0fafe12e7283cef64ce7f9b576))
- report skips 'Director generating...' placeholder, better dedup ([ce6697b](https://github.com/framersai/paracosm/commit/ce6697beb0f0edbabc0ede86e6f1e72f93dd39e4))
- rewrite report generator with deduplication, better layout, colonist quotes ([1bb97c5](https://github.com/framersai/paracosm/commit/1bb97c56ecfa59bfd50f03de5ed05bf9592db170))
- smooth scroll, deduplicate timeline, skip cached events from SSE ([6929649](https://github.com/framersai/paracosm/commit/69296499e148e78ecd19eb71a834d7824ad6a385))
- DOI hyperlinks throughout About page, updated FAQ for colonist agents + citations ([0b9406e](https://github.com/framersai/paracosm/commit/0b9406efac81c69a1ea82da758cdeaedfd79b1cb))
- use agentos-icon.png as favicon instead of broken inline SVG ([21f7bd3](https://github.com/framersai/paracosm/commit/21f7bd3ef945ac6d4445a49c8add7bb66c7c06ce))
- colony name separated from leader name with left border + margin ([647651b](https://github.com/framersai/paracosm/commit/647651bc8ed64c6af4f253c047715f5270d2053b))
- dynamic tagline and turn count from SSE config, not hardcoded ([40c0f5b](https://github.com/framersai/paracosm/commit/40c0f5bef4e5fb8596f1771bbc568acd62680f67))
- bigger personnel inputs, add/remove rows, tool I/O schema display ([70680b3](https://github.com/framersai/paracosm/commit/70680b36090022f471744411a376c7622f1571a0))
- restore default leader content as fallback, dynamic SSE overrides on top ([5d9efea](https://github.com/framersai/paracosm/commit/5d9efea647c6c403e7b1c864d12a4dc189bd3a3c))
- remove 375 lines of dead inline JS, add loading states, stats deltas, intro overlay ([d95cbe5](https://github.com/framersai/paracosm/commit/d95cbe5784efd7c4937aa2f07ba0182ead36e306))
- settings panel full width, no clipping on right side ([913aa9b](https://github.com/framersai/paracosm/commit/913aa9b439cd7fe5bcced5578c812d0bfe694a40))
- tool output box constrained to 40px height with scroll, word-break ([ef63af3](https://github.com/framersai/paracosm/commit/ef63af3b516b4d34eea713cb8d0347ddcd66b5e7))
- null check featuredColonistUpdates to prevent crash on LLM partial responses ([316c712](https://github.com/framersai/paracosm/commit/316c712b37dbbc80a2a54429cfdbdf29ef6a2d44))
- constrain director to valid department names, filter invalid ones ([72e36cd](https://github.com/framersai/paracosm/commit/72e36cda4075129da4bfa51b03fe9d20798bdb95))
- custom scrollbars, stats color-coded, trait label spacing, bottom action bar ([f223643](https://github.com/framersai/paracosm/commit/f22364378d9005653d7d898ba66bcd1c91b62a69))
- trait bars rendering vertically due to .tl class name collision with timeline ([477c7e7](https://github.com/framersai/paracosm/commit/477c7e7ce864552e1c44874c6c559f7663665262))
- shorter trait bars, more settings controls, test connection, departments toggles ([276eabe](https://github.com/framersai/paracosm/commit/276eabecb7a9c057c6311774c403d5ccb2d6c5a7))
- tab bar fixed at bottom, settings constrained to viewport, stats bar bigger ([9e3a2e4](https://github.com/framersai/paracosm/commit/9e3a2e400bd3beb4bea7acc9543fc73e6e8f26e0))
- space trait labels from bars, inline sparklines, color-code labels, explain turns ([068e435](https://github.com/framersai/paracosm/commit/068e435bc1128604c1cde37a1f73afac129e2164))
- tab bar stays at bottom when switching views ([5ea20b7](https://github.com/framersai/paracosm/commit/5ea20b7599321a0f9e733b6e70c427aec24b7937))
- dashboard deaths tracking, crisis banner, SSE error handling, 12-turn default ([def2562](https://github.com/framersai/paracosm/commit/def256258e79341320961795facefa14b2846f05))
- shared seed, turn/year stamping, structured option IDs, type dedup ([2e04ee2](https://github.com/framersai/paracosm/commit/2e04ee28c6f1a9eee8542a0286a13cb9c44d98ea))
- split crisis and stats into separate rows, bigger gauge labels with spacing ([6d849e0](https://github.com/framersai/paracosm/commit/6d849e0b46e95dade616e7d220a4730b0c53787c))
- truncate dept summaries, filter unnamed tools, add dept icons and recommendations ([0388bf0](https://github.com/framersai/paracosm/commit/0388bf0dfb71212be870da39169ef8050298c3be))
- rebuild dashboard from scratch with proper SSE data binding ([44f1303](https://github.com/framersai/paracosm/commit/44f13037758be75b3d54aee0ee144d8b397fe9d6))
- add AgentOS logo assets locally, fix README image paths ([e3074a1](https://github.com/framersai/paracosm/commit/e3074a12f8cf384a7876ff0758e30cac643047d9))

### Performance

- parallelize department analysis (5x speedup per turn) ([34f9942](https://github.com/framersai/paracosm/commit/34f9942cdcda330ff1788e8e347b895d26b51b74))

<details>
<summary>Other</summary>

- bump to 0.4.0 for multi-event turns, force API docs rebuild ([e9a71c3](https://github.com/framersai/paracosm/commit/e9a71c397c5ee0282ee7e82f047c37abf3f08183))
- plan: multi-event turns implementation (8 tasks) ([84c8512](https://github.com/framersai/paracosm/commit/84c85127933d4fc075f32493c226f21a74f1ef5a))
- spec: multi-event turns design (1-3 events per turn, sequential pipeline) ([33ddb55](https://github.com/framersai/paracosm/commit/33ddb558de8404e317f10bb5ede4fd423ea4c311))
- add full turn loop explanation, promotions, department heads, architecture detail ([bf49063](https://github.com/framersai/paracosm/commit/bf490638a3e0a6769ba008b9f8f5a0126dd9ce12))
- rename Crisis Director to Event Director everywhere, add eventNoun/eventNounSingular to ScenarioLabels ([c315eff](https://github.com/framersai/paracosm/commit/c315effefe86b47d422eeb0a5895ca8ac7e2f3fd))
- add open source vs hosted comparison, fleet orchestration roadmap, enterprise scaling messaging ([8354f3f](https://github.com/framersai/paracosm/commit/8354f3f75d5242a47c8e5c62379589d8d6dd9430))
- reframe leaders as abstract decision makers, add domain examples, update FAQ and about page ([1476dde](https://github.com/framersai/paracosm/commit/1476dde8ea090456c95cf182b971312a0a61349e))
- bump version to 0.3.0 for colony viz, audit fixes, dashboard overhaul ([2a18b2a](https://github.com/framersai/paracosm/commit/2a18b2acd38df9aa7450173b3d7d42adfa3e462c))
- add colony visualization spec (cellular automata, WebGL, force-directed layout) to enterprise roadmap ([763f63e](https://github.com/framersai/paracosm/commit/763f63e5a20e4a9150a04553b1dd48e093fd7449))
- fix Mars Genesis turn count, add enterprise roadmap (alternate timelines, form editor) ([68cba07](https://github.com/framersai/paracosm/commit/68cba07dccf7af194ceb9256925574898f4543f0))
- add comprehensive ARCHITECTURE.md covering engine, runtime, tool forging, chat memory, API ([ae8bb7e](https://github.com/framersai/paracosm/commit/ae8bb7ea5c0d8df1a79d528bee5e6e974301f614))
- release: v0.2.0 - remove deprecated types, make health fields generic, mobile hamburger menus, 6-turn default ([5d5aac0](https://github.com/framersai/paracosm/commit/5d5aac08b0c3cb845830f5f943bc291ca42eba79))
- remove deprecated CrisisOptionDef/MilestoneCrisisDef aliases, make boneDensityPct and cumulativeRadiationMsv optional scenario-specific health fields ([8817442](https://github.com/framersai/paracosm/commit/88174421e54047712e2db09a1ef8e2a4430e9a19))
- config: re-enable rate limiter (video capture complete) ([31e8d76](https://github.com/framersai/paracosm/commit/31e8d76d47f8a94d01fbf96a813f339f3fa12262))
- config: disable rate limiter to allow video capture ([3439430](https://github.com/framersai/paracosm/commit/3439430298656555479431cfc9098334268f0095))
- config: bump default rate limit from 3 to 10 sims per day ([0b44b14](https://github.com/framersai/paracosm/commit/0b44b140eec3c3bbcf728ba1f5820798f37fa511))
- remove cache buster from landing.css link ([79003c0](https://github.com/framersai/paracosm/commit/79003c087fe1b14c6a99604ec35ddb2ae5939736))
- format landing.css from minified to readable, bump cache buster ([ead43c8](https://github.com/framersai/paracosm/commit/ead43c8f4f0e08e4c093002f67c099feb4a1720c))
- extract landing page CSS to external file, cache-bust SVG icons ([a0d7b26](https://github.com/framersai/paracosm/commit/a0d7b26be2e81e7cc8e81118cb39ddf1457682d2))
- deploy TypeDoc to GitHub Pages, nginx for paracosm.agentos.sh ([bb4f5e9](https://github.com/framersai/paracosm/commit/bb4f5e945486b56ad18706d3e55c7236094b0c76))
- install dashboard deps before vite build ([5aec6d0](https://github.com/framersai/paracosm/commit/5aec6d08f14c2d5999610346a6fc176c0cabcf22))
- add deploy workflow (Linode + npm + TypeDoc) ([ebf0cd3](https://github.com/framersai/paracosm/commit/ebf0cd39d56e6e34dc4dcf100943e401786b43db))
- remove stale custom scenario component ([ce766a6](https://github.com/framersai/paracosm/commit/ce766a6f6c8335d2a0b7ce1388731c3579fed943))
- align compiler availability messaging ([6a00851](https://github.com/framersai/paracosm/commit/6a0085127d52aaeca9f7e903dd6859918eccb464))
- adopt swarm terminology across all surfaces ([34f3853](https://github.com/framersai/paracosm/commit/34f3853ad85ffd6502aa77c2e3fd94f19bdbbfca))
- session handoff ([ba2b881](https://github.com/framersai/paracosm/commit/ba2b881292b55c8a966fdea8cae3757f12921fdc))
- Phase 6 emergent scenario generation spec — LLM compiles hooks from JSON ([4dc7119](https://github.com/framersai/paracosm/commit/4dc7119740b27d7857bae273a71595b3e885b5b2))
- scenarios load from JSON + hooks, not hardcoded TS files ([8fb8ed6](https://github.com/framersai/paracosm/commit/8fb8ed625043c1141f86057844692c2b296511da))
- comprehensive React + Vite dashboard overhaul spec with agentos.sh theme system ([edf34a4](https://github.com/framersai/paracosm/commit/edf34a42fd3d7babc95edaf50e3c782f1ef1e59e))
- standardize README header/footer with AgentOS + Frame.dev logos, team@frame.dev, copyright ([719be64](https://github.com/framersai/paracosm/commit/719be647fe3534576810c8f6669f3653e08fd7de))
- Phase 3 dashboard generalization design spec ([608e2d3](https://github.com/framersai/paracosm/commit/608e2d3bafb8d1438a788970f1fccd65cbf532c9))
- Phase 2 scenario adapter design spec ([dc7725f](https://github.com/framersai/paracosm/commit/dc7725fcec5e639a36bdc09d37bfd9c0d296bc06))
- rename package to paracosm, update repo URL ([4f17721](https://github.com/framersai/paracosm/commit/4f17721e982c6f832f4346424b9e3fd83fde8cc0))
- massive tooltips: 640px, 18px body, 22px titles, 17px stats, 28px padding ([7fe06d5](https://github.com/framersai/paracosm/commit/7fe06d5c2e37034a4d36eee3a9d2bca3f282533e))
- bigger tooltips: 540px, 16px body, 18px titles, 15px hexaco/stats, more spacing ([8af7d37](https://github.com/framersai/paracosm/commit/8af7d3741e65c3ec96de2fc4d5715acee31ec715))
- bigger tooltips: 480px wide, 14px body, 15px titles, 70vh max, scrollable ([fb4ca82](https://github.com/framersai/paracosm/commit/fb4ca8298726377f73941210548159b8a1975a96))
- overhaul: story feed visual redesign with collapsible details and mood bars ([dc18668](https://github.com/framersai/paracosm/commit/dc18668db70e9cf96f421356c760b36d1d20bf0a))
- bump: higher contrast text colors for accessibility ([e77f250](https://github.com/framersai/paracosm/commit/e77f250aa0b72803dfeed65bcaf76a7a88ebd8a0))
- bigger: stats bar 16px centered, tool cards 14px, timeline 12px, outcomes 11px ([28d801e](https://github.com/framersai/paracosm/commit/28d801e7d8d9cc28d2a53db93146dac2a9c95846))
- compact: colonist reactions single-line per quote, promotions show reason ([df674d1](https://github.com/framersai/paracosm/commit/df674d1070604e2943be1307abb7dbca2e688cf5))
- compact: stats bar single row, inline deltas, server event buffer for late joiners ([73a9f40](https://github.com/framersai/paracosm/commit/73a9f4044fa018bb1a73401239bd4fddecc46c3c))
- rewrite: comprehensive About page with architecture/mechanics/FAQ, settings save/reset ([4ac9dcf](https://github.com/framersai/paracosm/commit/4ac9dcf7cb0b9b362a2ef919e8ec6ba874166cb8))
- compact: all promotions in single card list instead of 5 separate cards ([15c8003](https://github.com/framersai/paracosm/commit/15c8003c7ac900bddaebd846ed5fd6af40c9c979))
- audit: fix all type errors, clean artifacts, error boundaries, auto-report ([3d2cdf3](https://github.com/framersai/paracosm/commit/3d2cdf3f09a74758052a5f88b1ea79c53f36d082))
- update Discord invite link ([c50e612](https://github.com/framersai/paracosm/commit/c50e612363219b14a9c40313df60778e6f80a75a))
- remove: redundant column headers, leader bar already shows names/badges ([b1a8315](https://github.com/framersai/paracosm/commit/b1a83154bdae2a5cd1c18269eef79ba1139b0894))
- remove: duplicate gauge widgets, stats bar is the single source of truth ([09441ee](https://github.com/framersai/paracosm/commit/09441eebf892068312f2bd01d517b0ea0eec8a7e))
- add: MIT license file ([d5222f8](https://github.com/framersai/paracosm/commit/d5222f86beadcc51f4bec81425984b5da0bde801))
- rewrite README for v4 with emergent director, dashboard, settings, reports ([5d30c4f](https://github.com/framersai/paracosm/commit/5d30c4f13356ef9e1d457c80ec3fe3a5fe8947a7))
- rewrite: About page with SEO content, FAQ, GitHub links, meta tags ([d893f57](https://github.com/framersai/paracosm/commit/d893f5725e1141a9983e031f51e2ca63351fcd3d))
- extract inline script to src/dashboard/main.js ([85e351a](https://github.com/framersai/paracosm/commit/85e351aef4ba6eb34c9a9e9c362da3f8338cc4c6))
- add: AgentOS favicon using inline SVG data URI ([1f1f261](https://github.com/framersai/paracosm/commit/1f1f26197eeddf2f4302e60d084e24905675b011))
- compact: single-viewport setup page with import/export, no scrolling ([4fdc88d](https://github.com/framersai/paracosm/commit/4fdc88d32b41705fc2cc36239c67b7042b8182b8))
- compact: merge crisis banner and stats bar into single row ([f24c70e](https://github.com/framersai/paracosm/commit/f24c70e194c71288f19b707505859edab926bc33))
- compact: tighter layout, shorter trait bars, smaller chrome, denser cards ([abb226d](https://github.com/framersai/paracosm/commit/abb226d3bbdd3538538a5699929c516ff569f79a))
- overhaul: dashboard readability, Inter font, higher contrast, consolidated layout ([961bc0a](https://github.com/framersai/paracosm/commit/961bc0ae3a404716a534935e908674795253fc70))
- phase 0+1 spec, implementation plan, codex audit ([789cbb7](https://github.com/framersai/paracosm/commit/789cbb7edc3939c5a69e63717f9a57c72062a63d))
- comprehensive next-session handoff with all context, bugs, features, and priorities ([65013cb](https://github.com/framersai/paracosm/commit/65013cb5d52bf8f6ed7b1a55607370dfed7f8751))
- wip: dashboard fixes (summary cleanup, parallel sims, gauge placeholders) ([476fb8d](https://github.com/framersai/paracosm/commit/476fb8dcc3d147f3899af21970f920a901553c36))
- comprehensive README with architecture, crisis table, personality drift, and AgentOS ecosystem links ([1f960bd](https://github.com/framersai/paracosm/commit/1f960bd411e1060cc36bad77e6686afb3a4c9961))
- project scaffolding (package.json, tsconfig, gitignore) ([27b88b9](https://github.com/framersai/paracosm/commit/27b88b953e56971f4a6122efd286aa1c58a2820b))

</details>
