The agent read the engine's generated credential file once, at startup. On a brand new install that file does not exist yet: the agent starts the engine, and the engine writes its credential seconds later. So the agent held an empty credential for the life of the process and every call it makes - health, stats, camera sync, the embedding for a visit - came back 401, with a tray showing a red engine that was running perfectly. Measured on a fresh state directory today: three 401s, no camera ever reconciled, and the engine left running the YAML-seeded main stream instead of the sub-stream head office holds. The install script hid this on Windows because setup runs the engine once before the app starts. config.Creds resolves lazily and re-reads on a rejection; the camera client, the supervisor and the desktop app's engine client all retry once when it changes. A configured BEHAVISION_API_USER is never re-read - an operator who set one means it. Tests pin the actual first-run ordering. Also adds demo/, a one-screen live console for showing the whole chain: camera, the six steps with a measured camera-to-cloud latency, the customer editable in place, and the raw JSON a phone and a dashboard receive from production side by side. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KGcjxF1cNLcuwc3DAPcnfj
70 lines
2.5 KiB
Plaintext
70 lines
2.5 KiB
Plaintext
__pycache__/
|
|
*.pyc
|
|
.venv/
|
|
venv/
|
|
.pytest_cache/
|
|
*.log
|
|
# macOS Finder metadata and rotated engine logs.
|
|
.DS_Store
|
|
*.log.[0-9]
|
|
node_modules/
|
|
|
|
# --------------------------------------------------------------------------
|
|
# Everything below is ANCHORED with a leading slash on purpose.
|
|
#
|
|
# An unanchored pattern matches at every level, and `spool/` therefore excluded
|
|
# `agent/pkg/spool/` - the durable queue, source code - so a fresh clone did not
|
|
# compile at all. Found by cloning the repository and building it, which is the
|
|
# only way this class of mistake is ever found. `data/` and `agent.json` have
|
|
# exactly the same shape and are anchored for the same reason.
|
|
# --------------------------------------------------------------------------
|
|
|
|
# Camera credentials. Copied between machines by hand, never committed.
|
|
/.env
|
|
|
|
# The engine's writable state: the biometric database, the camera list, logs.
|
|
/data/
|
|
|
|
# Downloaded models, ~200 MB, fetched by `setup-models`.
|
|
/models/*.onnx
|
|
/models/*.caffemodel
|
|
/models/*.prototxt
|
|
|
|
# run-local.sh's working directory: the built binary, the encryption key and
|
|
# the broker's password file. Nothing here belongs in a repository.
|
|
/.local/
|
|
|
|
# The agent's local state when BEHAVISION_DATA_DIR points at a checkout.
|
|
# agent.json holds this PC's broker password and its API token.
|
|
/agent.json
|
|
/spool/
|
|
|
|
# Build output. The Windows package is ~400 MB unpacked and is rebuilt from
|
|
# source by installer/build.ps1; the WebView2 bootstrapper is Microsoft's
|
|
# redistributable, fetched at build time rather than vendored into history.
|
|
/dist/
|
|
/build/
|
|
/desktop/build/bin/
|
|
/installer/vendor/
|
|
|
|
# NOT ignored, deliberately: server/internal/web/dist and
|
|
# desktop/frontend/dist. Both are `go:embed`ed at COMPILE time, so without them
|
|
# in the tree `go build ./...` fails on a fresh checkout - on a machine that may
|
|
# have no npm at all. They are ~200 KB and regenerating them is one command; a
|
|
# repository that does not compile is the more expensive problem.
|
|
|
|
# Backups of .env made when editing camera credentials.
|
|
/.env.bak-*
|
|
|
|
# Generated by the wails CLI on every dev run and build, not source.
|
|
# NOT /desktop/build/ as a whole: appicon.png, darwin/ and windows/ under it
|
|
# are the Wails project scaffolding (icon, Info.plist, manifest) that a
|
|
# reproducible Windows build needs. Only the compiled output is ignored.
|
|
/desktop/frontend/wailsjs/
|
|
/desktop/frontend/package.json.md5
|
|
|
|
# Left behind by `pip install .` of the engine (setuptools metadata), not source.
|
|
/behavision.egg-info/
|
|
/.prod/
|
|
/.demo/
|