Work on appliance search engine
In Orca choose appliance, a new workspace, and Run on shipyard. The recorded base search-worktree-setup contains the development lifecycle in draft appliance PR 2925. The adapter waits for runtime health before agent startup. Other appliance services are not covered.
Commands on Shipyard
Section titled “Commands on Shipyard”From the appliance worktree root:
python3 app/svc/search-engine/scripts/worktree.py statuspython3 app/svc/search-engine/scripts/worktree.py setuppython3 app/svc/search-engine/scripts/worktree.py testpython3 app/svc/search-engine/scripts/worktree.py test -- integration_tests::insertion_testspython3 app/svc/search-engine/scripts/worktree.py archiveSetup builds and restarts only this task; Rust does not hot reload. Arguments after test -- are Rust test filters/options, not Cargo flags. Do not use raw cargo test or the fixed-port test Compose file for this isolated workflow.
Isolation and build behavior
Section titled “Isolation and build behavior”Each task has TimescaleDB, Redis and RabbitMQ for runtime. Tests create three separate services and recreate only test_db; ordinary test failure cleans their containers in a finally block. Runtime data is not test data.
Cargo builds share a repository cache, serialize on a build lock, use four jobs and disable dev/test debug symbols. Each task runs its own copied executable. A failed build preserves the previous running service. Use a separate target/profile when native debugger symbols are required.
Ports are allocated on loopback. status prints the URL and stateDirectory; read those rather than hardcoding a previous port. State/config/logs live beneath the primary repository’s common Git directory, outside the worktree.
Archive and boundaries
Section titled “Archive and boundaries”Normal archive stops the task and retains volumes, configuration and logs. Identity derives from the absolute worktree path: archive before moving/renaming a task, and explicitly plan state migration. Recreating the same path reuses state.
Real-camera ingestion, RTSP pipelines, GPU inference, cloud forwarding, custom-runner doctests and macOS lifecycle are not validated by this workflow. For the separate physical test bed, see the build server and edge NVR.
The personal repository preserves the adapter but does not yet replace the company-repository implementation. Port-configurable test code is a real dependency; see open decisions. Recovery.