Skip to content

Work on appliance search engine

workflowobservedEvidence reviewed 2026-10-06

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.

From the appliance worktree root:

Terminal window
python3 app/svc/search-engine/scripts/worktree.py status
python3 app/svc/search-engine/scripts/worktree.py setup
python3 app/svc/search-engine/scripts/worktree.py test
python3 app/svc/search-engine/scripts/worktree.py test -- integration_tests::insertion_tests
python3 app/svc/search-engine/scripts/worktree.py archive

Setup 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.

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.

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.