Skip to content

Move the Editor, app-ui and MCP to SDK 0.1.0-beta.188 - #1488

Merged
callumalpass merged 7 commits into
mainfrom
feat/sdk-polish-consumers
Nov 12, 2026
Merged

callumalpass merged 7 commits into
mainfrom
feat/sdk-polish-consumers

Conversation

@callumalpass

@callumalpass callumalpass commented Nov 12, 2026 •

Copy link
Copy Markdown
Contributor

What

Moves the Editor, the shared app UI and the MCP service to @mdbase-dev/sdk@0.1.0-beta.188, whose API changed in #1486. The first commit is the automation's Editor repin from #1417, unchanged; the rest moves the code. #1417 cannot pass by itself.

Changes

  • Editor, API move, behaviour unchanged: Mdbase is the only entry; reads take one options object; frontmatter, settings and contract values are plain JSON; the offline mapping reads snapshot.sync. "Offline" means what it meant before: no network, or the service unreachable. A busy or rate-limited service is not offline.
  • app-ui: CollectionSaveWarning reads the storage warning from snapshot.sync.attention instead of snapshot.saveWarning. The SDK derives both from the same flag, so the warning shows and clears as before.
  • MCP: it makes its own connection, so its imports move to @mdbase-dev/sdk/thin-client; mapping reads plain values.
  • Editor test flakes: the round5 peek and arrival tests read the note's text while an image embed was still loading. Both now wait for the embed. The peek test failed intermittently on main and on chore: vendor verified production SDK 0.1.0-beta.189 #1417; the arrival test failed on this PR's first rerun.

Pins

  • app-ui's development SDK goes from 0.1.0-beta.160 to 0.1.0-beta.188, with the matching minimumReleaseAgeExclude entry.
  • app-ui's optional SDK peer goes from * to >=0.1.0-beta.188, the first release with sync.attention. An app on an older SDK would lose the storage warning without a word; now the install says so.
  • MCP took a vendored 0.0.0-bd131b16 build from packages/app-ui/vendor. It now takes 0.1.0-beta.188 from the registry. The registry tarball is byte-identical to the Editor's vendored production original (same sha512).
  • Removed: packages/app-ui/vendor/sdk-0.0.0-bd131b16.tgz and mdbase-dev-sdk-0.0.0-b1c47a32.tgz (nothing referenced the second). The server and MCP images no longer copy that directory, and the MCP image drops its check-vendored-sdk step, which has no file: dependency left to check.

The SDK repin automation does not touch app-ui or MCP. They stay on beta.188 until someone moves them.

Checks

  • pnpm ci:local: every selected Server CI gate passed, including the Rust gates. Tests: Editor 1039 + 13, app-ui 250, MCP 160.
  • I built deploy/docker/Dockerfile.mcp locally. The image resolves @mdbase-dev/sdk@0.1.0-beta.188 and thin-client imports. PR CI does not build this image; publish-images.yml does after merge.
  • I did not build the server image locally; the container lane builds it here.
  • I did not run pnpm e2e (the runtime daemon suite): nothing on the daemon's request path changed.
  • I did not run the Editor's Playwright suites on this final commit. They passed on this code against the pre-release build of the same SDK source; CI runs them here.

Not done

  • snapshot.saveWarning stays in the SDK until every app ships an app-ui release that reads sync.attention.
  • The legacy @mdbase-dev/connect use in the Editor is untouched.

The round5 peek test read the opening demo note's text while its image
embed was still loading ("Opening frontmatter.svg") and compared it with
the settled text ("…frontmatterOpenCopy path…") after the peek. When the
embed resolved between the two reads the test failed. It failed this way
on main (run 43139208951) and on the SDK repin PR #1417 (run 43240842089),
so the Editor's test job blocked that repin intermittently.

It now waits for the embed through the helper #1351 introduced for the
same race in the tests that replace that note's body.
- Editor: `Mdbase` is the only entry (no `application`), reads take one
  trailing options object, frontmatter/settings/contract values are plain
  JSON (the `toPlain`/`plain` unwrapping is gone), `MdbaseSnapshot`
  replaces `MdbaseApplicationSnapshot`, and the offline mapping reads
  `snapshot.sync.connection`. Test fixtures use `replica.client()` and
  `createApplicationFixture().mdbase` instead of a hand-built front door.
- app-ui: the test fake drops the removed `addPrivateCollection`.
- MCP: it makes its own connection, so imports move to
  `@mdbase-dev/sdk/thin-client`; mapping reads plain values directly.
CollectionSaveWarning read `snapshot.saveWarning`, which the SDK keeps only
until app-ui reads `storage_may_be_evicted` in `sync.attention`. The SDK
derives both from the same flag (pending changes on nonpersistent storage),
so the warning shows and clears exactly as before.

An app-ui release with this needs an SDK whose snapshot has
`sync.attention` (published SDKs up to beta.187 do not).
The old offline status is no network or an unreachable service; a busy or
rate-limited service is not offline.
The MCP service resolved a vendored 0.0.0 SDK build kept under
packages/app-ui/vendor, and app-ui's development copy was 0.1.0-beta.160.
Both now take the published release from the registry, whose tarball is
byte-identical to the Editor's vendored production original. The two old
tarballs go, and with them the image steps that existed only to carry and
check them. app-ui's optional SDK peer names the first release that has
snapshot.sync.attention.
…ttles

The round5 arrival test read the opening demo note's text while its image
embed was still loading ("Opening frontmatter.svg") and compared it with
the settled text after j/k. It failed this way on this branch's CI (run
43324245513, attempt 2). Same race and same helper as the peek test below
it.
@callumalpass
callumalpass added this pull request to the merge queue Nov 12, 2026
Merged via the queue into main with commit df838d5 Nov 12, 2026
42 checks passed
@callumalpass
callumalpass deleted the feat/sdk-polish-consumers branch November 12, 2026 23:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant