Missing APIs and compatibility
What's explicitly not in the current contract, and how that affects integration planning.
What follows is about the embedding contract — what’s available to your application from the outside: session commands and the browser surface. Inside the desktop SumDoc application itself, its shell can do more, but that’s its internal exchange, and you can’t rely on it for integration.
| What’s missing | What to use instead |
|---|---|
| Click and double-click | Not in the public surface contract. Inside the product, text, tables, borders, and autofit width are handled — what of this will make it into the contract |
| Right-click and custom menu items | Not in the contract. Inside the product, the text and table menus work over their own internal channel, but a way to plug in your own hasn’t been settled yet — Readiness and boundaries |
| A public “what’s under this point” call | Not in the session or the surface; available as a separate processor command: hit-test-docx |
| Editing an arbitrary node | There’s no single universal command |
| Stable version numbering | No: the contract is marked 1.0.0-draft |
| WebSocket from outside, without a token | Not allowed: only a local interface, with a token |
| Binary WebSocket frames | Requests travel only as UTF-8 text frames. A binary frame gets the refusal “session WebSocket requests must be UTF-8 text frames”, and the connection stays open |
| Your own copy of the document in the editor window | Not allowed: the model, history, and file writing belong to the core |
While the contract is marked 1.0.0-draft, pin the checksum and version of the executable together with the type declarations, and on startup check the schema of the greeting message and the supported_commands list — both arrive in the very first line of the session.