Open Trading Surface

Changelog

All notable changes to Open Trading Surface. Versions follow semantic versioning. This page is generated from CHANGELOG.md.

5.205.0 — the structural search could not see a cascade, and said nothing

5.204.0 — fifteen negative controls were counting distance and calling it cost

5.203.0 — a spec may not claim nothing is built while naming the release that built it

5.202.0 — query by example (P6.5), and §2 is five of five

5.201.0 — what a class can TOUCH, before it runs (P6.4, the fourth of the five)

5.200.0 — what this class BACKS, and whether the two agree (P6.3, the third of the five)

5.199.2 — the yield guard was green over eight arms, because its own shape could not see a ternary

5.199.1 — the seeder's rule was fixed and its trigger was not

5.199.0 — a tag FILTERS, and the two kinds are told apart on sight

5.198.0 — the Packages column holds packages, exclusively (owner ruling)

5.197.0 — the seed declared a rule and implemented its opposite, and a suite was reading a live image

5.196.0 — time-travel browsing, and the manifest 5.195.0 shipped empty

5.195.0 — why, as a browsing axis: the first thing this browser does that no other Smalltalk can

5.194.0 — the cross-reference walk moves into the image, and there is no JavaScript walk left

5.193.0 — the cross-reference could not see a cascade, and the field that would have said so was on every answer

5.192.0 — one surface may not carry two denominators, and a dialog that built 142 rows and attached none

5.191.0 — the percentage is computed, and 118 institutions were invisible

5.190.2 — the loader called the bound instead of the door, and now a browser checks

5.190.1 — the ownership route threw on every request, and the suite was green

5.190.0 — the finder's ranking moves into the image (P3)

5.189.0 — ownership as a percentage of the shares the company actually filed

5.188.0 — the 13F numerator is checked, not trusted

5.187.2 — the vertical sliders: a circular floor, and two units for one number

5.187.1 — THE SPLITTER COLLAPSED THE PANE IT WAS MEANT TO SIZE

5.187.0 — SUnit IN THE IMAGE, TESTING THE BROWSER

5.186.0 — THE HIERARCHY MOVES INTO THE IMAGE

5.185.0 — THE BROWSER IS WRITTEN IN THE LANGUAGE IT BROWSES

5.184.0 — THE BROWSER'S BOUNDARIES BECOME SPLITTERS

5.183.1 — THE STATE MOVED AND THE SCREEN DID NOT

5.183.0 — THE TWO COLUMNS NEST

5.182.1 — A DISPLAY FORMATTER WAS USED AS A NUMERIC ACCESSOR

5.182.0 — THE OWNERSHIP PANE SORTS, AND THE RATIO NAMES ITS DENOMINATOR

5.181.2 — THE REPAINT THAT LANDED IN A HIDDEN NODE

5.181.1 — THE VERB THAT HAD NEVER BEEN CALLED

5.181.0 — THE FINDER (SYSTEM-BROWSER-SPEC P4)

5.180.0 — PROTOCOL MANAGEMENT (SYSTEM-BROWSER-SPEC P3)

5.179.0 — THE SYSTEM BROWSER STOPS BEING OPAQUE TO AN AGENT

5.178.1 — THE SPREAD THAT DESTROYED A SENTENCE

5.178.0 — THE HIERARCHY PANE (SYSTEM-BROWSER-SPEC P2)

5.177.0 — THE INSPECTOR PANE (SYSTEM-BROWSER-SPEC P1)

5.176.0 — THE SCREEN CAN REACH THE REMEDY THE REFUSAL NAMES, AND THE LEDGER FILTERS

5.175.0 — THE VERSIONS BROWSER (SYSTEM-BROWSER-SPEC P0)

5.174.0 — A RUN THAT FIRES AND PRODUCES NOTHING MUST LEAVE A TRACE

5.173.0 — UNTRUSTED NETWORK INPUT MAY NOT CRASH THE DAEMON

5.172.0 — THE HONEST ZERO WAS THE ARM THAT THREW

5.171.0 — AGREEMENT AND COVERAGE ARE DIFFERENT NUMBERS, AND ONLY ONE WAS PRINTED

5.170.0 — THE MEASUREMENT THE OWNER'S OWN RULES MADE POSSIBLE, AND THE STAGED PLAN

5.169.0 — PHASE 3b: THREE MORE PROCESSES, AND THE RUN OUTCOME BECOMES THE IMAGE'S JUDGMENT

5.168.0 — THE REMEDY IS REACHABLE FROM WHERE THE DIVERGENCE IS STATED

5.167.0 — THE IMAGE IS THE DEFINITION FOR FIELDS AND SCREENS TOO

5.166.0 — D1 RESOLVED: a condition is a class of named parts, and the image is the definition

5.165.0 — PHASE 3a: the Process package, and the strategy walk order is ruled

5.164.0 — PHASE 2b: the switch exists, and it defaults to off

5.163.0 — PHASE 2a: the disclosure moves into the image

5.162.0 — PHASE 1c: the constructs Phase 1 refused, and one that was never a limit

5.161.0 — PHASE 1b: the condition operators go host-backed, and the slowness is explained

5.160.0 — PHASE 1 OF THE UNIFIED-EXECUTION ARC: the condition, in the image

5.159.0 — PHASE 0 OF THE UNIFIED-EXECUTION ARC: the seam, and nothing moves

5.158.0 — PHASE 6 OF THE DEVELOPER-JOURNEY ARC: XMPP symmetry, and a request is a proposal

5.157.0 — PHASE 5 OF THE DEVELOPER-JOURNEY ARC: the package as an entity

5.156.0 — PHASE 4 OF THE DEVELOPER-JOURNEY ARC: rename, with the senders updated

5.155.0 — PHASE 3 OF THE DEVELOPER-JOURNEY ARC: the stack, and the inspector

5.154.0 — PHASE 2 OF THE DEVELOPER-JOURNEY ARC: SUnit in the image

5.153.0 — PHASE 1 OF THE DEVELOPER-JOURNEY ARC: senders, implementors, references, search

5.152.0 — PHASE 0 OF THE DEVELOPER-JOURNEY ARC: two lifecycle defects, both in shipped code

5.151.0 — THE REPOSITORIES BROWSER: git integration, and the way out of the image trap

5.150.0 — PROGRAMS COMPILE INTO THE IMAGE, and an EDIT IS A DEPLOY (SMALLTALK-SPEC §12.6)

5.149.0 — SCREENS COMPILE INTO THE IMAGE (D7 resolved — SMALLTALK-SPEC §12.5)

5.148.0 — THE FACADE COMPILES INTO THE IMAGE: cf_ fields and ci_ indicators are Smalltalk-backed by construction (SMALLTALK-SPEC §12.5)

5.147.0 — THE CHARTS SECTION: each palette themes the chart drawing surface (TERMINAL-WORKSPACE-SPEC §48)

5.146.0 — VISUAL COLOR PALETTES: Appearance in the Settings Browser (TERMINAL-WORKSPACE-SPEC §47)

5.145.0 — THE SETTINGS BROWSER: the Pharo model, one settings surface, floating (TERMINAL-WORKSPACE-SPEC §46)

5.144.0 — D-ARC D-C + D-D: XMPP package transit under the trust confirm, and the lean distribution artifact (SMALLTALK-SPEC §14.4 — THE D-ARC IS COMPLETE)

5.143.0 — D-ARC D-B: the package quarantine (the trust-confirm layer)

5.142.0 — D-ARC D-A: the source-tree projection (git role of the distribution thesis)

5.141.0 — PERF ARC P3+P4: the measured verdicts (SMALLTALK-SPEC §12.1.1)

5.140.0 — PERF ARC P2: hop-resolved lexical addressing

5.139.0 — PERF ARC P1: the CiSeries accelerator (owner: "we should do all of those")

5.138.0 — THE INTERPRETER PERFORMANCE REVIEW (task #77 taken; SMALLTALK-SPEC §12.1.1)

5.137.0 — VOCABULARY PHASE D: the condition sugar becomes the trigger index (D1 RESOLVED)

5.136.0 — VOCABULARY PHASE C: ci_ chart indicators in Smalltalk (SMALLTALK-SPEC §12.3)

5.135.0 — VOCABULARY PHASE B: cf_ fields in Smalltalk (SMALLTALK-SPEC §12.3)

5.134.0 — VOCABULARY PHASE A: interpreter completeness + the pure-evaluation door (SMALLTALK-SPEC §12)

5.133.0 — SMALLTALK P5+P6: MIGRATION, THE BROWSER'S AGENT, THE SUPERSESSION (the arc completes)

5.132.0 — SMALLTALK P4: THE SYSTEM BROWSER (SMALLTALK-SPEC §7, Pharo canonical)

5.131.0 — SMALLTALK P3: THE CEP ENGINE SENDS MESSAGES (SMALLTALK-SPEC §6)

5.130.0 — SMALLTALK P2: THE CAPABILITY BOUNDARY (SMALLTALK-SPEC §5)

5.129.0 — SMALLTALK P1: THE IMAGE IS THE STORE (SMALLTALK-SPEC §4)

5.128.0 — SMALLTALK P0: THE LANGUAGE (SMALLTALK-SPEC, owner directive)

5.127.0 — THE DOCK FOLLOWS CHAT CONVENTIONS (owner UX directives)

5.126.0 — THE EDITOR FILLS THE PANEL, AND THE CARET IS GUARANTEED

5.125.0 — THE EMBEDDED CODING AGENT (the IDE critique's third item)

5.124.0 — THE BUFFER (owner directive, 2026-08-21)

5.123.0 — THE IDE SHELL (owner critique, 2026-08-21)

5.122.1 — SIX EQUAL WEIGHTS SUM UNDER 100 (found by the first live init)

5.122.0 — THE CONVERGENCE MONITOR (P6): the portfolio-program arc completes

5.121.0 — THE PRODUCTION CONVERGENCE BINDING (P5)

5.120.0 — THE PROGRAM PATCH DOOR: propose_program_patch (P3b, LAW C)

5.119.0 — THE QA DOSSIER: run_program_suite (P4b)

5.118.0 — THE UNIFIED init(): establishment through the pipeline (P4a)

5.117.0 — THE PHASE-4 VOCABULARY: lot-level facts (plan-of-record gap 4)

5.116.0 — TCA: THE PIPELINE GRADES ITSELF (plan-of-record gap 3)

5.115.0 — SUPERSESSION + AMENDMENT LINEAGE (plan-of-record gap 2)

5.114.0 — PARTIAL FILLS: a working order fills in tranches (plan of record, gap 1)

5.113.0 — STAGED-QUANTITY RESOLUTION (owner, 2026-08-21)

5.112.0 — ONE PATH, TWO CLASSIFICATIONS (owner elaboration, 2026-08-20)

5.111.0 — THE OPEN ORDER BOOK (owner directive, 2026-08-20)

5.110.0 — THE ALLOCATION/EXECUTION SPLIT: the foundation (owner directives, 2026-08-20)

5.109.0 — THE UNIVERSE HAS FOUR FORMS: the inline screen (owner directive, mid-review of 5.108.0)

5.108.0 — THE IDE GETS ITS VERBS: create, edit, retract, test, execute — from the panel

5.107.0 — THE PROGRAMS IDE: code, not text (owner directive, 2026-08-20)

5.106.0 — PORTFOLIO-PROGRAM-SPEC P3c: THE PROGRAMS SURFACE — measured in a real browser, real clicks, all nine readings PASS

5.105.0 — PORTFOLIO-PROGRAM-SPEC P3a: THE PROGRAM ENTITY — the organizing principle becomes a visible object

5.104.0 — PORTFOLIO-PROGRAM-SPEC P2c: fields injection and playbook promotion — P2 COMPLETE

5.103.0 — PORTFOLIO-PROGRAM-SPEC P2b: escalate, the approval queue, and book state at the tick (LAW C)

5.102.0 — the book leaf: portfolio-plane rules become expressible (PORTFOLIO-PROGRAM-SPEC P2a)

5.101.0 — limit vs actual everywhere the series lives, and the mandate outranks the strategy (PORTFOLIO-PROGRAM-SPEC P1b — P1 complete)

5.100.0 — the mandate: the program gets its spec, and real money gets its gate (PORTFOLIO-PROGRAM-SPEC P1a)

5.99.0 — the monitors get their clocks (PORTFOLIO-PROGRAM-SPEC P0b — P0 complete)

5.98.0 — the ledger made sound: the lock, the cause vocabulary, and retraction deletes (PORTFOLIO-PROGRAM-SPEC P0a)

5.97.0 — the governed board: the Worldview mode rebuilt as the adjudication surface (GOVERNED-WORLDVIEW-SPEC Phase 4, the arc complete)

5.96.0 — the worldview discussions: the argument becomes part of the record (GOVERNED-WORLDVIEW-SPEC Phase 3)

5.95.0 — the worldview refresh batch: the fifteenth declared process, proposing and never writing (GOVERNED-WORLDVIEW-SPEC Phase 2)

5.94.0 — the worldview becomes governed: proposals, adjudication, and the owner's prompts (GOVERNED-WORLDVIEW-SPEC Phases 0+1)

5.93.2 — the thesis strip reads as the journey is walked

5.93.1 — the thesis modes get their way back

5.93.0 — the body stops repeating the title bar

5.92.0 — Reader is the one renderer, and the split is yours to set

5.91.0 — Reader view: the route around publisher bot-walls

5.90.2 — the story frame grants everything an embedder can grant

5.90.1 — the description fits through the installer's own door

5.90.0 — the News view is a reader

5.89.1 — the published MCP metadata stops lying

5.89.0 — the agent contract stops rotting: the action vocabulary is derived

5.88.0 — the tab is called Community

5.87.0 — the security context follows the focus

5.86.0 — IRC is removed, totally: the chat layer speaks XMPP only

5.85.4 — the scrollback follows the conversation, and the documentation catches up

5.85.3 — both delay dialects, because the live server falsified one

5.85.2 — the join backlog is a replay too

5.85.1 — the tab is called Surface

5.85.0 — the share is a registry

5.84.0 — distributed cut and paste, the chart first

5.83.0 — browse, not recall

5.82.0 — the surface speaks the person's language

5.81.1 — room creation, confirmed

5.81.0 — the competitive client

5.80.15 — XEP-0313: the client stops missing messages

5.80.14 — the conversation panel polls too

5.80.13 — the door refused the view the renderer was built for

5.80.12 — the reconnect that dialed the wrong socket, and the say that sent nothing

5.80.11 — the poll that never existed

5.80.10 — the flight recorder, and the agent verbs the diagnosis needed

5.80.9 — a ghost socket cannot kill its successor

5.80.8 — the first live session, and the panel that did not follow it

5.80.7 — the reader restarts with EVERY stream restart, and there are two

5.80.6 — the certificate decision: allow self-signed, per account, disclosed

5.80.5 — the close that follows an error must not erase the error

5.80.4 — XMPP encryption is STARTTLS, not a socket kind

5.80.3 — every POST on /chat was broken, and the owner found it with one button

5.80.2 — three changes from looking at the Chat accounts panel

5.80.1 — two defects the owner found in the first minute of looking

5.80.0 — the chat layer: XMPP and IRC, boundary first

5.79.1 — two defects the owner's own screen found, minutes after publishing

5.79.0 — the portfolio report becomes a tearsheet, and the analysis behind it

5.78.0 — the Screens panel, a dead cohort click, and a Support page that crashed

5.77.0 — a book is marked at the prior close, and says so

5.76.1 — one screenshot, three defects

5.76.0 — named workspaces

5.75.0 — one terminal, not two

5.74.3 — the order of the bar becomes data

5.74.2 — the tab that took itself back

5.74.1 — a panel that could not say which book it was

5.74.0 — the tab bar stops growing with the data, and a book becomes a panel

5.73.4 — a blank terminal, and the guard that finally runs the code

5.73.3 — visible and dead

5.73.2 — the guard that cried wolf

5.73.1 — a disclosure an agent cannot reach is not a disclosure

5.73.0 — a panel bound to a book

5.72.0 — the renderers stop asking what is selected

5.71.0 — the portfolio rail stops growing with the data

5.70.2 — the fix that crashed, and the test that could not see it

5.70.1 — a refusal names its obstacle, and a moved panel is an obstacle with an address

5.70.0 — Analysis is data, events and processes

5.69.1 — the horizon toggle, and a sort that reaches the server

5.69.0 — two verticals, four tabs

5.68.0 — one calendar

5.67.0 — the Research tab: what is out there, and when

5.66.2 — the journey leads, the instruments follow

5.66.1 — nine dead panels, and the question that killed them

5.66.0 — the journey gets a tab

5.65.4 — one table, filtered, rather than eight shelves

5.65.3 — the trap at the far end of the ceiling

5.65.2 — the surface that hangs was the one that could not say what on

5.65.1 — four characters, four days, and three layers that made it worse

5.65.0 — the run beside the tally, and debt as a level

5.64.0 — two readings off the ladder the aggregates could not make

5.63.0 — one guard, two registries, and a place to see them

5.62.0 — derive, promoted to global scope

5.61.3 — an absence is not a fact to cache

5.61.2 — a tool nothing can invoke is a library

5.61.1 — the guards were red and the release went out anyway

5.61.0 — a vendor is a time series, not a verdict

5.60.0 — the evidence, not the count

5.59.0 — adjudication: the first release that can move a number

5.58.0 — the routing seam never ran, and the catch hid it

5.57.0 — governance over ingestion, not quality over it

5.56.0 — the tenth mapping, and the one that agreed twice before it refuted

5.55.0 — a download cannot fix a load failure, and four sentences that outlived their release

5.54.0 — one column, two names

5.53.0 — every entry point is a skill, and six of them may not fire themselves

5.52.0 — the seed that downloaded 113 MB and admitted none of it

5.51.0 — one saved record per security, and two banners removed

5.50.0 — the save that was real and was never seen again

5.49.0 — the refusal that was half false

5.48.0 — the price above the chart, and the build below it

5.47.0 — the second source, and a deletion somebody could swear to

5.46.0 — the notice that was owed, and the store that nothing reads

5.45.0 — Sharadar, rebuilt against the publisher; and §29 as a dated correction

5.44.0 — Sharadar, the point-in-time fundamentals source, and nothing reads it

Also in 5.44.0 — the documentation, recaptured from a live terminal

5.43.1 — a read never waits for a model call, and a refusal that stopped guessing

5.43.0 — analyst rating changes, sliced by firm

5.42.0 — scroll in a size the machine chose, fit a size you chose; and one house table

5.41.0 — the panes divide the height the panel gives them

5.40.0 — discovery is a job with a poll, and the budget stops starving the evidence

5.39.0 — the thesis journey: four stages, one panel, and the screen as a reviewable candidate

5.38.1 — the retrofit plan called a criterion unrecoverable while folding four of them in

5.38.0 — the superset thesis: one model for a built and a discovered view

5.37.0 — zero is an error, the timeout was ours, and the gate rejected on the wrong axis

5.36.0 — the bound that was sent and rejected, and the report written in parts

5.35.0 — the whole token budget went to reasoning, and prompts are now editable in one place

5.34.0 — the thesis discovery agent, and the adversarial gate that never bound

5.33.0 — every portfolio table sorts, and the chart default stops being a secret

5.32.0 — three lenses, a prompt library, and a bundle that says what it could not establish

5.30.1 — what the cohort pass costs, and the refusal that quoted the provider

5.30.0 — the same events on the chart, under the same provenance

5.29.0 — the owner's own calendar events, merged under visible provenance

5.28.0 — knowability: a DATED METHODOLOGY BREAK on every EDGAR series

5.27.0 — the disclosure that reached nobody, and two deferrals closed by measurement

5.26.1 — the guard that manufactured a measurement

5.26.0 — the vintages we were already paying for, and the contact you could not test

5.25.0 — the picker stops having a list

5.24.0 — one identity, one boundary, one door

5.23.0 — the chart button asks where, and a security pane answers

5.22.0 — the lane was firing and had nothing to reach, and the calendar became a calendar

5.21.0 — the economic calendar, and the rate that was measured before it was assumed

5.20.6 — one nesting behaviour, declared by whoever owns the children

5.20.5 — the file and the program were two different texts

5.20.4 — the measurement nobody had taken, and the stack that was an accident

5.20.3 — the controls were under the resize strips

5.20.2 — the adopter list that rotted twice, and a wait that says what it is waiting for

5.20.1 — the window that was never established (and the nine calls a panel paid for a pack it never reads)

5.20.0 — a sign test is not a floor, and a threshold that can only fire one way

5.19.11 — thirteen refusals nobody re-asked, and a screen that could not see what it could not see

5.19.10 — the stale record that was a lock

5.19.9 — five of every six requests were for bytes we already had

5.19.8 — four claims the code did not honour

5.19.7 — the documentation caught up with the software

5.19.6 — the drag that committed perfectly and was invisible

5.19.5 — the drag that never ran, the charts that could not get a socket, and the count that was not accumulating

5.19.4 — the bar that spanned the wrong region, and the menu that looked like it never cleared

5.19.3 — the panels drew their frames and nothing else

5.19.2 — the workspace on a 49-inch screen

5.19.1 — the live read, and the five things it found

5.19.0 — the pane becomes a workspace

5.18.0 — the clocks start

5.17.2 — the log that could be made to lie

5.17.1 — the panel that never came back

5.17.0 — the backtest results surface

5.16.0 — the running engine, made visible

5.15.0 — the drop-top-names re-run

5.14.1 — the id a run reports is the id the store holds

5.14.0 — Wave 5: the backtester

5.13.0 — Wave 4: the strategy layer

5.12.0 — Wave 3: actions, and the paper book

5.11.0 — the producers, because the engine was inert

5.10.0 — the rule engine

5.9.0 — the condition language

5.8.0 — the clock starts, and the limits go up before the engine does

5.7.0 — disclosure became noise

5.6.0 — five dialogs asked the same question five ways

5.5.1 — the merged dialog, measured

5.5.0 — two dialogs for one question, and now one door

5.4.0 — the chart knew a vocabulary the screen did not

5.3.0 — the standard, named and asked

5.2.0 — the standard, retranslated

5.1.0 — a nightly pass planned five hundred refreshes for groups nobody asked for

5.0.1 — the delete button answers, and the row stays deleted (patch)

5.0.0 — a cohort served a list its own screen forbade, because a cache outlived its source (major)

4.99.1 — a two-thousand-character description met a nowrap cell and pushed the controls off the screen

4.99.0 — a model read our own data and found the screen admitting a bank on a ratio that means two different things

4.98.1 — a thinking model answered and we called it empty: every vendor parser now reads past the reasoning to the text

4.98.0 — the top bar gets its shape back: the top-down surfaces gather under macro-economic, support joins administration, and a vestigial tab retires

4.97.0 — one vendor at a time, chosen and introspected rather than assumed: every assessment now remembers which model answered

4.96.0 — the utility surfaces move under one roof: administration, a left rail built to grow

4.95.1 — the watcher answers while the night works: the daemon yields between chunks, and the tab says so instead of staring

4.95.0 — the night's work gets a face: every OTS batch, its light, its reason, and the controls beside them

4.94.0 — the cost moves to the night: panels built once, screens answer instantly, coverage stated — eleven deferred field families arrive

4.93.0 — custom screens stop being write-once: edit in place with history, examples stay shipped truth, duplicate to diverge

4.92.0 — the screen learns the full vocabulary: every computable field of the reference taxonomy, one derivation and a refusal each — and what cannot be computed yet is named, not hidden

4.91.0 — the assessment gains a shape: six canon axes, scored with their reasons, drawn with the numbers beside them — and a malformed score refuses the chart, never invents one

4.90.0 — the second opinion becomes evidence: the prompt is yours to shape, and every report keeps the exact prompt and the exact data that produced it, forever

4.89.0 — the terminal gains a second opinion: a configured model reads everything the server knows about a name and writes the value-discipline assessment

4.88.0 — the portfolio's cohort stops being a copy: membership derives live from the ledger, so synchronization is structural

4.87.0 — the ledger vocabulary reaches the hands: a real transaction dialog, corrections with an audit trail, and the corporate actions become visible

4.86.0 — the corporate-action vocabulary completes: every action is a lot transform that must reconcile or refuse

4.85.0 — the report learns what practice pairs with brinson: factor attribution, ex-ante risk and stress — and refuses where history is too short to know

4.84.0 — ledger completeness: the ledger learns income, fees and corporate actions; the benchmark stops flattering; the statement reconciles or refuses

4.83.0 — full cost basis accounting: the method stops being a silent default

4.82.0 — the report meets the factsheet standard

4.81.0 — the book becomes a subject: CFA performance and attribution, and a report you can hand across a desk

4.80.1 — the population lens found three engine defects; all fixed before any note was written

4.80.0 — batches run against dynamically derived cohorts (owner directive)

4.79.0 — the cohort predicate builder's field pickers become the modal (owner UX)

4.78.0 — four closures: the chart's vocabulary reaches the screen (owner directive)

4.77.1 — the rival index stage retired same-day: in_index was already the mechanism

4.77.0 — model values become screener vocabulary, and the green rule becomes a screen (owner directive)

4.76.2 — chip tooltips: the abbreviation gets its full story (owner UX)

4.76.1 — group rows select like every other row (owner bug report)

4.76.0 — the heat-map lens picker becomes the modal (owner direction), Phase A

4.75.1 — the rename must not strand saved layouts (owner live-run report)

4.75.0 — derivation takes the headline (owner decision: "modeling by agreement rather than derivation" is not a way to price a security)

4.74.1 — the fair-value line renames: a ref must never collide with its own suffix grammar (owner live-run defect)

4.74.0 — the fair value gets its fan (owner: "there should be [a dispersion] if we were doing it correctly")

4.73.2 — the fan refuses what it cannot draw; the band rides its base (owner live-run defects)

4.73.1 — the staged commit actually fetches (owner defect report: "nothing was displayed")

4.73.0 — dialog semantics: OK commits, Cancel discards (owner direction)

4.72.0 — the third column: nav | list | config (owner UX principle)

4.71.0 — the nav filters, it does not scroll (owner correction)

4.70.0 — the Displayed set is a first-class category in both modals (owner direction)

4.69.0 — the Indicators library gets the modal shell (owner direction: consistency)

4.68.0 — the series picker becomes a modal (owner UX direction)

4.67.0 — the substrate lands (Phase 0) and the fan looks like a distribution

4.66.0 — the Model of Models page catches up with the vertical (owner review)

4.65.0 — the stale banner acts (owner UX direction)

4.64.0 — the final loop closes: the old approach clears away (owner direction)

4.63.0 — the cascade closes its four stated gaps (owner direction: "let's begin fixing all of these gaps")

4.62.0 — Phase 2b: the drawn scenario reaches company drivers (INDUSTRY-DEPENDENCY-SPEC §3)

4.61.0 — the industry rung charts exactly like the economy rung (owner direction)

4.60.0 — every economic indicator gets its honest history (owner defect report)

4.59.0 — the fan is a switch on the overlay row (owner UX direction)

4.58.0 — forward series actually render forward (the orange-dot defect)

4.57.0 — the picker renders FROM the catalog (owner direction: centralize)

4.56.0 — the Monte Carlo visual grammar reaches the upper rungs

4.55.0 — container paths chart as overlays, and the Macro/Data catalog is cleaned

4.54.0 — an elasticity is a SERIES (owner correction), and Monte Carlo at every layer is the design

4.53.0 — lineage in the grid, and the accumulated hand-down

4.52.0 — the dependency model becomes a spreadsheet, not an editorial

4.51.0 — expert-level sector models as dependencies (INDUSTRY-DEPENDENCY-SPEC Phase 2a)

4.50.0 — two levels, from the industry's own classification (owner direction)

4.49.0 — Sectors becomes a top-level tab (owner UX direction)

4.48.0 — priors beside fitted drivers (INDUSTRY-CONTAINER-SPEC Phase 1)

4.47.0 — the middle rung becomes a container (INDUSTRY-CONTAINER-SPEC Phase 0)

4.46.0 — scenarios reach Monte Carlo (ECONOMY-MODEL-SPEC Phase 3): the economy is drawn first

4.45.0 — the terminal-growth ceiling reaches the perpetuity (ECONOMY-MODEL-SPEC Phase 2)

4.44.0 — Phase 1 complete: the discount-rate family inherits (1c + 1d)

4.43.0 — the adoption is a TOGGLE, not a hardcoded flip (ECONOMY-INHERITANCE-SPEC Phase 1b)

4.42.0 — the economy reaches a valuation, gated (ECONOMY-INHERITANCE-SPEC Phase 1a)

4.41.0 — the economy panel edits a PATH, not a point

4.40.0 — operational state that survives a session boundary (CONTINUITY-SPEC Phase 0)

4.39.0 — the economy becomes reachable: a container the agent can fill and the terminal can show

4.38.0 — literals promoted, and a measurement of how far the UX fell behind

4.37.0 — two numbers for one quantity

4.36.0 — a median describing a company that no longer exists

4.35.0 — limited liability, and a view carrying no view

4.34.2 — the fourth time, and an accessor instead of a fifth patch

4.34.1 — a wrong argument wearing missing data's clothes

4.34.0 — reachable is not usable

4.33.0 — the panels were never plugged in

4.32.1 — three guards on the publisher

4.32.0 — the loop closes

4.31.0 — expected shortfall, risk budgets, and one refusal

4.30.0 — Black-Litterman: a view with a confidence, not an assertion

4.29.0 — the market-implied distribution: the right-hand curve

4.28.0 — bottom-up beta: the first real consumer of the industry rung

4.27.0 — the equity risk premium, resolved by professional practice

4.26.0 — the last rung: the joint distribution reaches the portfolio

4.25.0 — the first joint distribution: a book is not its names

4.24.0 — the layered cascade: the pipeline actually connects

4.23.0 — discovery becomes a process, and three defects the live read exposed

4.22.0 — the release gate tests the artifact it ships

4.21.0 — the inversion, and a hole in the gate that hid five suites

4.20.0 — two signs, one computed and one asserted

4.19.0 — the financing layer

4.18.0 — the fan

4.17.0 — a move with a cause

4.16.0 — two bugs that were telling the truth

4.15.0 — a distribution, not a number

4.14.0 — a line to the right of the present

4.13.0 — the pro forma becomes a series

4.12.0 — attribute the cost structure; the model changes as the company invests

4.11.1 — a rate divided by the wrong period

4.11.0 — quarters, and a term structure instead of a number

4.10.1 — what a live reading found in eight hours

4.10.0 — an initiative stops being a coupon

4.9.2 — a guard belongs where the value is derived

4.9.1 — a percentage of a vanishing residual, and three releases made visible

4.9.0 — the projection stops being seeded and starts being fitted

4.8.1 — a signal that fires everywhere is not a signal

4.8.0 — the anchor: TTM from filed quarterlies, computed beside the annual one

4.7.3 — a row that claimed a measurement nobody made

4.7.2 — a comment that became a regex, and an absent parameter that became zero

4.7.1 — an increment cannot sit against the whole price

4.7.0 — the top-down half, Phase 1: what must be believed

4.6.0 — the census was slow because nothing cached the provider

4.5.4 — the census fix routed itself to the wrong router (patch)

4.5.3 — a deleted cohort killed the heat map; the census hard-coded its set and could hang (patch)

4.5.2 — toast() was called 23 times and defined nowhere (patch)

4.5.1 — the Create button read a field from a different panel (patch)

4.5.0 — the right-hand side of a predicate can be a field

4.4.0 — the system's own valuations become screenable

4.3.2 — the pack list was still curated by hand, and SpaceX paid for it (patch)

4.3.1 — the liveness check cried wolf (patch)

4.3.0 — four ways the system knew something was wrong and could not say so

4.2.0 — valuation structure, Phase 1: both numbers side by side, and the belief dial finds its anchor

4.1.2 — three numbers that did not name their own basis (patch)

4.1.1 — the equal-weight headline is retired; the two panels are made to agree (patch)

4.1.0 — the census gets a door, a compact contract, and a correctness fix (minor)

4.0.1 — the tracked-frame diagnostic inherits the price-anchor exclusion (patch)

4.0.0 — valuation structure, Phase 0: the classification becomes visible and not one number moves (major)

3.99.0 — the dead control, and the owner's own path to identity (minor)

3.98.0 — the unweighted benchmark, and three views that agree (minor)

3.97.0 — identity resolution as owner-grade judgment (minor)

3.96.2 — Wikipedia title variants (patch)

3.96.1 — Wikipedia rate-limit honesty + the roster on-demand gap (patch)

3.96.0 — Full executive reports

3.95.0 — Executive drill-down + executive-change alerting

3.94.0 — User-journey integration: the four analyst journeys as click paths

3.93.0 — Unified calendar: everything the feed knows, on one time axis

3.92.0 — Alerts feed redesign: the typed stream is the attention-focusing instrument

3.91.0 — Alert subscriptions: deliberate control over which alert types fire on which securities

3.90.0 — Judgment-edit propagation, loading states everywhere, private-name reference inputs

3.89.0 — Divergence bubble-up: new ledger activity surfaces centrally

3.88.0 — Ingestion breadth: the external stream enters the intake, injection-hardened

3.87.0 — UX parity for the four thesis instruments

3.86.0 — the event-impact loop + the belief-dial series (thesis gaps 5+6)

3.85.0 — the frames wave (thesis gap 4): mid-cycle + regime-median frames, holding-vehicle refusals, data-defect classes

3.84.0 — the rerating hypothesis test (thesis gap 2)

3.83.0 — the divergence ledger + three disclosure debts (thesis gaps 1 + 3)

3.82.0 — the hardening wave (alignment review P0.1 + P0.2)

3.81.0 — the Repricing scan view (UX parity for the daily scan)

3.80.0 — the daily repricing scan

3.79.0 — the live now-point, and the as-believed-now replay

3.78.0 — the normalized-earnings frame, and two hard-codings retired

3.77.0 — surface-native filters: the query that makes observations actionable

3.76.1 — the cohort slice: reviewing the middle of the distribution

3.76.0 — marketplace versioning: immutable artifacts, latest pointer, any version by name

3.75.0 — Marketplace UX parity: browse, install, and the ledger in the terminal

3.74.0 — the marketplace is the system (and the only channel)

3.73.0 — the image layer: the digital twin becomes shareable (IMAGE-SPEC Wave 1)

3.72.0 — the SI frame learns from its first real book (owner direction)

3.71.1 — clean-pass completion signal counted staleness the wrong way

3.71.0 — iteration three: scale identity, fundamental regime, and the clean pass

3.70.0 — iteration two of the tail audit: regime, staleness, hygiene, evidence

3.69.0 — the per-share basis rebase: the green tail was unit errors, not opportunity

3.68.0 — reconstructed history: 30 days of heat map, honestly labeled

3.67.0 — heat-map lenses: every model, every unit, any recorded day

3.66.0 — the Market tab: the heat map arrives in the terminal

3.65.0 — surface_fill: the overnight job becomes a tool call

3.64.0 — /ots:automate: one command installs the schedules

3.63.0 — the Opportunity Surface batch: every NYSE + NASDAQ common stock

3.62.0 — the Pricing panel headlines the earned number

3.61.1 — pre-record replay uses the current book

3.61.0 — precision weighting: the Model of Models rewards closeness

3.60.1 — the Model of Models blends the initiative book

3.60.0 — Strategic Initiatives: waterfall, tornado, probability cone (Wave 5)

3.59.0 — Strategic Initiatives: maturation and the closed scoring loop (Wave 4)

3.58.0 — Strategic Initiatives: the event journal and immutable snapshots (Wave 3)

3.57.0 — Strategic Initiatives: the risk register (Wave 2)

3.56.0 — Strategic Initiatives: capital programs on dated cash-flow lattices (Wave 1)

3.55.0 — Wave B: the review's structural batch

3.54.0 — Wave A: the review's correctness batch, and a properly named signing key

3.53.4 — the terms name the product, and history is history

3.53.3 — understanding, not work

3.53.2 — dependency claims, stated precisely

3.53.1 — a tagline the product can stand behind

3.53.0 — Open Trading Surface

3.52.1 — the site catches up with the terminal

3.52.0 — every judgment model gets hands, and the terms say whose opinions these are

3.51.0 — the venture book gets hands

3.50.0 — the venture book: what the statements cannot see

3.49.0 — every overlay carries its relationship to the price

3.48.0 — the rotation itself, charted

3.47.1 — the plot is always a snapshot

3.47.0 — the model of models: what the market is looking at

3.46.1 — the frame holds every pane

3.46.0 — the pricing engine reaches the screen

3.45.2 — the daemon that could not come back

3.45.1 — the ledger outgrew its reader

3.45.0 — the pricing engine: every model, one interface, on the chart

3.44.1 — three panels, one computation

3.44.0 — the interpretation pane: the model explains itself

3.43.2 — one headline valuation: the legacy blend says what it is

3.43.1 — the sweep that could not advance

3.43.0 — realtime tailing for 1-minute charts, opt-in

3.42.0 — back-calculated bands for the index, and on demand

3.41.1 — the band back-fills its own history

3.41.0 — one model on the chart: the superseded overlays retired

3.40.0 — the patient foundation, the investment phase, and the stance-first panels

3.39.0 — the valuation band: normal variation bounded, degree not judgment

3.38.0 — the fundamental trend: trend correlation without autocorrelation

3.37.1 — the accuracy test projects, it does not price

3.37.0 — the fundamental-accuracy test: the level adoption criterion, run rather than cited

3.36.0 — the level upgrade surfaces: v2 becomes visible, and its risk-free rate becomes real

3.35.0 — the widened leave-one-out set needs a cache, not a timeout

3.34.0 — the sector cohort preference never fired: a kind the producer doesn't emit

3.33.0 — horizon models, spiral loop 3a: the per-name loading, fitted walk-forward

3.32.0 — horizon models, spiral loop 2: the short leg earns its coefficient, and the double-count is gone

3.31.0 — horizon models, spiral loop 1: three duration models, a class registry, and the composite tracking line

3.30.0 — the value line is a native model series, not a separate chart

3.29.0 — the Valuation overlay: the earnings-justified chart, from the price identity

3.28.1 — fix overlapping transcripts in a multi-panel view

3.28.0 — name your views

3.27.0 — a tab is a view, not a security

3.26.0 — a premium only compares like with like

3.25.0 — the cohort re-rating enters the attribution

3.24.0 — one comparable set, used everywhere

3.23.0 — peer groups enter the decomposition, and shed their cap

3.22.0 — a peer group is a cohort with a subject

3.21.0 — the Screener tab is retired; there is one thing now

3.20.0 — the full screening machinery, inside Cohorts

3.19.0 — the screen builder lives in Cohorts (step 2)

3.18.0 — a cohort is a screen (step 1: every cohort is expressible)

3.17.0 — nothing is auto-excluded; exclusion is your choice

3.16.0 — a cohort declares whether it prices its members

3.15.0 — the watchlist tool surface is retired

3.14.0 — Watchlists becomes Alerts; lists live in Cohorts

3.13.0 — a custom cohort is an editable list

3.12.0 — a saved screen is a cohort

3.11.0 — a cohort no longer needs a shadow watchlist

3.10.0 — you can open a cohort

3.9.0 — a watchlist can hold an index

3.8.3 — the reseed can finish

3.8.2 — the reseed can reach the names it was protecting

3.8.1 — the self-check reaches every model

3.8.0 — the model now checks itself against what was reported

3.7.1 — 3.7.0 broke calibration, and the test said it was fine

3.7.0 — the rate on debt is reported, not invented

3.6.3 — a missing valuation no longer disables feature selection

3.6.2 — four bugs the first live run exposed

3.6.1 — the Attribution picker points at returns

3.6.0 — Attribution now selects features against price CHANGES

3.5.0 — Standing removed

3.4.2 — the Standing tab never rendered

3.4.1 — the level registry was dead in the shipped build

3.4.0 — two panels, two valuations, no warning

3.3.0 — the sector models face the gate

3.2.1 — equity cannot be cheaper than debt

3.2.0 — the prediction held, and the third model

3.1.1 — one function was answering two questions

3.1.0 — the study was reading a second definition of substantiated value

3.0.3 — the block version named the wrong model

3.0.2 — a zero that meant "not reported" arrived as a measurement

3.0.1 — the routing table was never being asked

3.0.0 — the routing table finally has somewhere to route

2.99.0 — a dead end that knows the detour should mention it

2.98.0 — the picker was baking the open tab's ticker into every candidate

2.97.0 — the time axis, which most of the catalogue lives on

2.96.0 — "insufficient_overlap" was hiding two category errors

2.95.0 — the picker was calling a route that had never been called

2.94.0 — the picker could not express the analysis it was calling

2.93.0 — the probabilities, as distinct from the weights

2.92.0 — feature selection analysis, and the gravitational family

2.91.0 — the Attribution view actually attributes

2.90.0 — Attribution reaches the UI, and Operating Model becomes a parent

2.89.0 — the attribution panel, and the tool's contract

2.88.0 — camps F and G: the investigation loop, and forecasting both sides apart

2.87.1 — cross-sectionality is a property of the top layer, not of the model

2.87.0 — multiple top-level models, routed by applicability

2.86.0 — the cost rate mattered more than the discount rate, and camp C had left it broken

2.85.0 — the thresholds are judgment, a short page is not a complete band, and the ledger fill is resumable

2.84.1 — the census, and the relevance floor

2.84.0 — joint uncertainty, the claim axis, and compositional submodels

2.83.0 — coefficients belong to the version, or history cannot be recomputed honestly

2.82.0 — the residual is the product: persistence, regime, and what a move actually means

2.81.0 — the cohort and macro candidates, and the two variables that would have fooled us

2.80.0 — the gate gets a second axis: revalidatable beats lucky

2.79.0 — the security block, rebuilt: no price in the level, a real cost of capital, and advantage that has a duration

2.78.0 — the admission gate: nothing enters the known block without earning it

2.77.0 — the model now resolves to the price, and reports what it cannot explain

2.76.0 — is the within-cohort spread the market, or is it us?

2.75.0 — Camp 4 completed: equilibrium is reachable, and carries what we now know

2.74.0 — Camp 4: Equilibrium as an Operating Model

2.73.1 — a cache written under an old schema is stale even when it is fresh

2.73.0 — per-name applicability, and the variance study generalised across cohort axes

2.72.0 — the standard valuation declares where it does not apply

2.71.1 — the study now warns when the between-sector term is measuring US

2.71.0 — the sector variance decomposition becomes a tool

2.70.0 — Camp 3: the Relationship Operating Model

2.69.0 — membership was filtered by liquidity, and by nothing that checked whether a company still exists

2.68.0 — Camp 2: Security and Peer Group on the contract

2.67.0 — Camp 1: the Operating Model contract

2.66.0 — Camp 0: the substrate repair

2.65.1

2.65.0

2.64.0

2.63.1

2.63.0

2.62.2

2.62.1

2.62.0

[2.61.0] — Peer groups become real: a bug fix, a Cohorts tab, cohort-driven comps, and weighted groups

[2.60.1] — Fix: the decomposition was reachable as a tool but invisible in the UI

[2.60.0] — Value decomposition, camp 6: absolute or relative, but say which. VALUE-DECOMPOSITION-SPEC complete.

[2.59.0] — Value decomposition, camp 4: the negative results become part of the product

[2.58.0] — Value decomposition, camp 3b: the decomposition becomes queryable

[2.57.0] — Value decomposition, camp 2: premium bands, without lookahead

[2.56.0] — Value decomposition, camp 3a: the premium panel, and history without waiting three years

[2.55.0] — Value decomposition, camp 1: the gap was never an error

[2.54.0] — Value decomposition, camp 0: the cohort lattice

[2.53.0] — Model honesty, camp 6: a point-in-time track record, or none at all

[2.52.0] — Model honesty, camp 5: scope — the model says what it cannot see

[2.51.0] — Model honesty, camp 4: calibration coherence and driver fade

[2.50.0] — Model honesty, camp 3: the influence map stops flattering itself

[2.49.0] — Model honesty, camp 2: fair value stops pretending to be a number

[2.48.0] — Model honesty, camp 1: elasticities reconciled with the influence graph

[2.47.0] — EV roll-forward bands and continuous crosshair linking

[2.46.0] — Charting arc, camp 4: multi-chart layouts

[2.45.0] — Charting arc, camp 5: the performance envelope, measured

[2.44.0] — Charting arc, camp 3: valuation bands

[2.43.0] — Charting arc, camp 2: expression series and the accountability chart

[2.42.0] — Charting arc, camp 1: series transforms

[2.41.4] — Chart isolation: overlays and indicators are scoped per symbol

[2.41.3] — Support view Guide/What's-new crash fixed

[2.41.2] — Statement series are one click, not a magic search term

[2.41.1] — Diagnostics fix its own first false alarm

[2.41.0] — Self-support complete: the Support view

[2.40.0] — Self-support, camp 3 (agent side): education that executes

[2.39.0] — Self-support, camp 2: troubleshooting as behavior

[2.38.0] — Self-support, camp 1: the knowledge base is generated from the code it describes

[2.37.6] — The chart fits its window again

[2.37.5] — Fair value belongs on the price axis

[2.37.4] — A model saved on Saturday is no longer invisible on the chart

[2.37.3] — Model conclusions visible in the Macro/Data panel, not hidden behind a search term

[2.37.2] — Model conclusions in the chart's own overlay picker

[2.37.1] — Forecast & attribution: no more zeros, and no more garbage either

[2.37.0] — The deflation is live; the mountain is documented

[2.36.0] — Ascent 3: three-statement articulation. The mountain is climbed.

[2.35.0] — Ascent 2 complete: the scoreboard accrues quarterly

[2.34.0] — Ascent 2, first camp: quarterly frequency

[2.33.0] — Ascent 1 complete: factor edges reach individual segments

[2.32.0] — Ascent 1, third camp: disclosure wired into the model

[2.31.0] — Ascent 1, second camp: segment-scoped growth drivers

[2.30.0] — Ascent 1 begins: segment-level revenue history

[2.29.1] — Fix: a confident 0.00% that actually meant "no data"

[2.29.0] — Attribution runs are time series, and chart like them

[2.28.1] — The model view can build chains by hand

[2.28.0] — The operating model becomes a real causal graph, and starts keeping its own score

[2.27.1] — Fix: the CI UI check assumed a portfolio existed

[2.27.0] — The strategy reaches the screen: graded visuals, honest rebalance costs, CI-verified UI

[2.26.0] — Phase 6: the adversarial pass, and scoring decisions instead of luck

[2.25.0] — Phase 5: the push half — re-underwriting when it matters, sizing by what you know

[2.24.0] — Phase 4: the discovery surface stops flattering you

[2.23.1] — Fix: the agreement test hardcoded an absolute path and broke CI

[2.23.0] — Honest confidence, the reference class, and the valuation run backwards

[2.22.0] — The operating model gets its real data foundation, and events finally have a home

[2.21.1] — The breadcrumb reaches the top: worldview → thesis, with drift detection

[2.21.0] — The workflow breadcrumb: every holding traces back to the view that produced it

[2.20.1] — Documentation and test coverage catch up with the features

[2.20.0] — Event markers you can interrogate: hover, click through, and see the operating-model link

[2.19.1] — Fix: spurious "No FMP API key embedded" warning on every chart

[2.19.0] — Custom indicators on the chart + backtests painted on price (specs complete)

[2.18.0] — PIT bar replay: replay without lookahead (Spec B: part 2)

[2.17.0] — Rule backtesting over the series DSL (Spec B: part 1)

[2.16.0] — Detection on the chart (Spec A complete: world-model contract met)

[2.15.0] — Automated pattern & trendline detection (Spec A: engine + tool)

[2.14.0] — Series-valued DSL + user-defined indicators (charting specs: shared foundation + C-foundation)

[2.13.0] — Forecast-attribution calculator in the Operating Model view

[2.12.0] — Event markers, events pane & Analysis sentiment (event overlays, part 2)

[2.11.0] — Unified event + sentiment engine (event overlays, part 1)

[2.10.0] — Operating-model attribution + self-healing daemon on upgrade

[2.9.2] — Fix: Compare overlay drew nothing

[2.9.1] — Fix: charts failed to load on a clean install (ENOENT engine.js)

[2.9.0] — Full external-series coverage: FMP economic, treasury & indices

[2.8.0] — Cross-series chart overlays (chart overlays, part 2)

[2.7.0] — Cross-series analysis engine (chart overlays, part 1)

[2.6.1] — Documentation accuracy pass

[2.6.0] — Rich operating models: data-driven calibration (phase c)

[2.5.0] — Rich operating models: graphical influence view (phase b)

[2.4.0] — Rich operating models: external factors (phase a)

[2.3.5] — Screener responsiveness

[2.3.4] — Auto-refresh after key setup

[2.3.3] — Terminal reliability

[2.3.2] — Feedback loop, quality & hardening

[2.3.1] — Rebrand to Orrery

[2.3.0] — Distribution & legal

[2.2.0] — Hardening

[2.1.0] — Worldview & thesis probability

[2.0.0] — Company operating models

[1.9.0] — The fully-leveraged agent

[1.8.0] — Thesis engine

[1.7.0] — Institutional portfolio operations

[1.6.0] — Research memory

[1.5.0] — Surveillance & relative analysis

[1.4.0] — Professional screener & portfolio analytics

[1.3.0] — Foundation