README: the plugin API line it builds against, and the stand-in backend
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
aec0ddb8d7
commit
ab81ec8988
1 changed files with 23 additions and 4 deletions
27
README.md
27
README.md
|
|
@ -11,12 +11,18 @@ byte-for-byte what the DECAL plugin sent and accepted; the golden tests under
|
||||||
|
|
||||||
## Building
|
## Building
|
||||||
|
|
||||||
The plugin contract comes from the OpenAC release of the version named in
|
The plugin contract is `AcDream.Plugin.Abstractions` of the version named in
|
||||||
`Directory.Build.props` (`PluginApiPackageVersion`). Put that release's
|
`Directory.Build.props` (`PluginApiPackageVersion`), currently 0.1.19-mm.1:
|
||||||
`AcDream.Plugin.Abstractions.<version>.nupkg` in `packages-local/`:
|
the OpenAC branch `claude/mm-plugin-api` (peer relay, status board, object
|
||||||
|
headers and the other additions this plugin needs) packed with
|
||||||
|
`dotnet pack src/AcDream.Plugin.Abstractions -c Release -p:Version=0.1.19-mm.1`.
|
||||||
|
The package sits in `packages-staging/`; copy it to `packages-local/`.
|
||||||
|
Once that branch is released the package comes from the OpenAC release
|
||||||
|
instead. The client must be built from the same line (with
|
||||||
|
`-p:Version=0.1.19-mm.1` when built from source), or it refuses the plugin.
|
||||||
|
|
||||||
```
|
```
|
||||||
gh release download v0.1.18 -R eriknihlen/OpenAC -p "AcDream.Plugin.Abstractions.0.1.18.nupkg" -D packages-local
|
cp packages-staging/*.nupkg packages-local/
|
||||||
dotnet build OpenAC.MosswartMassacre.slnx
|
dotnet build OpenAC.MosswartMassacre.slnx
|
||||||
dotnet test OpenAC.MosswartMassacre.slnx
|
dotnet test OpenAC.MosswartMassacre.slnx
|
||||||
```
|
```
|
||||||
|
|
@ -37,3 +43,16 @@ Streaming is off until you turn it on. The shared secret is never compiled in:
|
||||||
```
|
```
|
||||||
|
|
||||||
`/mm help` lists every command.
|
`/mm help` lists every command.
|
||||||
|
|
||||||
|
## Testing against a stand-in backend
|
||||||
|
|
||||||
|
`tools/FrameRecorder` accepts the plugin's socket like the backend does,
|
||||||
|
records every frame to a JSON-lines file, relays `share_*` frames between
|
||||||
|
subscribed clients as the backend does, and compares two recordings by
|
||||||
|
frame shape:
|
||||||
|
|
||||||
|
```
|
||||||
|
dotnet run --project tools/FrameRecorder -- record 18765 frames.jsonl
|
||||||
|
/mm ws url ws://localhost:18765/websocket/
|
||||||
|
dotnet run --project tools/FrameRecorder -- compare decal.jsonl port.jsonl
|
||||||
|
```
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue