Cut the stale README and check.ps1 claims
README no longer tells the reader to run `brokkr-daemon -- serve`, a subcommand that does not exist; it lists the real subcommands and says the daemon is a CLI over cache files. The Unity install path is F:/. check.ps1 takes -CultLibRoot (default F:\Projects\CultLib) and fails, instead of skipping, when the CultLib packages directory is absent; the Blender CultMesh smoke loads the three Python packages through blender_target._load_cultmesh. Cut M2 of docs/brokkr-adoption-cut.md. check.ps1 is a Starfire check. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
ae19d4e7e0
commit
404237a8ef
2 changed files with 26 additions and 14 deletions
29
README.md
29
README.md
|
|
@ -32,8 +32,8 @@ broker.
|
|||
- `surfaces/blender/brokkr_bridge`: Blender add-on target backed by
|
||||
CultLib's Python CultMesh node/server, with optional debug export/import
|
||||
probes.
|
||||
- `brokkr-daemon`: Rust daemon skeleton that emits Brokkr's provider
|
||||
advertisement and command policy.
|
||||
- `brokkr-daemon`: Rust CLI that emits Brokkr's provider advertisement and
|
||||
command policy and runs the Unity/Blender sync pass.
|
||||
|
||||
## First Smoke
|
||||
|
||||
|
|
@ -55,17 +55,26 @@ timeline bindings, and receipts. Unity and Blender editor plugins publish those
|
|||
documents through CultMesh so a daemon sync loop can translate them into
|
||||
host-owned command intents without stealing scene truth.
|
||||
|
||||
## Unity Smoke
|
||||
## Commands
|
||||
|
||||
```powershell
|
||||
cargo run -p brokkr-daemon -- serve
|
||||
```
|
||||
`brokkr-daemon` is a command-line tool over cache files, not a running service.
|
||||
It has four subcommands:
|
||||
|
||||
Add the Unity package by local path:
|
||||
- `provider` (alias `smoke`): print the provider advertisement.
|
||||
- `sync-contract`: print the sync contract.
|
||||
- `sync-once --unity-cache PATH --blender-cache PATH [--dry-run]`: run one sync
|
||||
pass between the two editor caches.
|
||||
- `sync-loop --unity-cache PATH --blender-cache PATH [--interval-ms N]
|
||||
[--max-passes N] [--dry-run]`: repeat the sync pass.
|
||||
|
||||
## Unity Install
|
||||
|
||||
Add the Unity package by local path, alongside `org.gamecult.cultlib` (see
|
||||
`surfaces/unity/README.md`):
|
||||
|
||||
```json
|
||||
"com.gamecult.brokkr": "file:E:/Projects/Brokkr/surfaces/unity/Packages/com.gamecult.brokkr"
|
||||
"com.gamecult.brokkr": "file:F:/Projects/Brokkr/surfaces/unity/Packages/com.gamecult.brokkr"
|
||||
```
|
||||
|
||||
Then open `GameCult > Brokkr` in Unity and publish a snapshot to the local
|
||||
daemon.
|
||||
Then open `GameCult > Brokkr` in Unity. The window mirrors editor state to a
|
||||
CultMesh cache file in the project.
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
param([string]$CultLibRoot = "F:\Projects\CultLib")
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
function Assert-NativeSuccess {
|
||||
|
|
@ -80,11 +82,12 @@ try {
|
|||
& $pythonExe -m py_compile surfaces\blender\brokkr_bridge\blender_target.py surfaces\blender\brokkr_bridge\__init__.py
|
||||
Assert-NativeSuccess "Blender adapter Python compile"
|
||||
|
||||
$cultLibPySrc = "E:\Projects\CultLib-main-work\packages\cultcache-py\src"
|
||||
if (Test-Path $cultLibPySrc) {
|
||||
& $pythonExe -c "import sys, tempfile; sys.path.insert(0, r'$cultLibPySrc'); sys.path.insert(0, r'surfaces\blender\brokkr_bridge'); import blender_target; cultmesh, cultcache = blender_target._load_cultmesh(r'$cultLibPySrc'); doc = cultcache.define_document_type('brokkr.check.v0'); node = cultmesh.CultMesh.start_node(tempfile.NamedTemporaryFile(suffix='.ccmp').name, runtime_id='brokkr-check'); node.database.register_document(doc); node.database.put(doc, 'check', {'ok': True}); assert node.database.snapshot()['brokkr.check.v0']['check']['ok'] is True; server = cultmesh.CultMesh.serve_node(node, host='127.0.0.1', port=0); assert server.port > 0; server.stop()"
|
||||
Assert-NativeSuccess "Blender adapter CultMesh import"
|
||||
$cultLibPackages = Join-Path $CultLibRoot "packages"
|
||||
if (-not (Test-Path $cultLibPackages)) {
|
||||
throw "CultLib packages directory not found: $cultLibPackages (pass -CultLibRoot)."
|
||||
}
|
||||
& $pythonExe -c "import sys, tempfile; sys.path.insert(0, r'surfaces\blender\brokkr_bridge'); import blender_target; cultmesh, cultcache = blender_target._load_cultmesh(r'$cultLibPackages'); doc = cultcache.define_document_type('brokkr.check.v0'); node = cultmesh.CultMesh.start_node(tempfile.NamedTemporaryFile(suffix='.ccmp').name, runtime_id='brokkr-check'); node.database.register_document(doc); node.database.put(doc, 'check', {'ok': True}); assert node.database.snapshot()['brokkr.check.v0']['check']['ok'] is True; server = cultmesh.CultMesh.serve_node(node, host='127.0.0.1', port=0); assert server.port > 0; server.stop()"
|
||||
Assert-NativeSuccess "Blender adapter CultMesh import"
|
||||
}
|
||||
finally {
|
||||
Pop-Location
|
||||
|
|
|
|||
Loading…
Reference in a new issue