version-matrix
Pure decision layer for running a suite against every supported Obsidian version.
Support is the range [latest public, latest catalyst] and both ends must be verified (G99). The two ends are moving targets, and they periodically coincide — when public catches up to catalyst, both specifiers provision the same build, so running the suites twice re-runs the same build and buys nothing. Worse, a consumer that ran both still reports “green on public AND catalyst”, a two-end claim it never verified.
The decision therefore lives here rather than in every consuming repo: a list of version specifiers is resolved to concrete versions, de-duplicated on the resolved version (never on the specifier string, so an explicit 1.13.4 and catalyst-latest collapse when catalyst is 1.13.4), and the suites run once per distinct version.
Everything here is pure and unit-tested; the manifest fetch and the logging live in the integration-time run-version-matrix.ts glue.
Interfaces
Section titled “Interfaces”| Interface | Description |
|---|---|
| ObsidianVersionMatrixEntry | One distinct Obsidian version the suites will run against. |
Variables
Section titled “Variables”| Variable | Description |
|---|---|
| DEFAULT_OBSIDIAN_VERSION_SPECS | The version specifiers a matrix run defaults to: both ends of the supported range (G99). They are de-duplicated on their resolved versions, so when public has caught up to catalyst this yields a single run. |