Files
Behavision/.gitignore
Suriyakumarvijayanayagam 9521cb986b The shop PC's UI had never once been run
`wails build` had never been executed against this project - CLAUDE.md
says so plainly - so every screen the shop floor actually touches was
unreviewed. Running it found why nobody had.

fyne.io/systray's nativeLoop must own the main thread on macOS, a Cocoa
requirement, and Wails already holds it. Starting both kills the process
with a SIGTRAP inside cgo before a single pixel is drawn. On Windows,
which is what ships, a tray on its own goroutine is fine - so the one
platform the whole team develops on was the one platform that could not
open the app, and the UI went unlooked-at as a result.

BEHAVISION_NO_TRAY runs the window without the tray, the same escape
hatch BEHAVISION_ALLOW_PLAINTEXT_MQTT already is for the broker.
Deliberately an environment variable and NOT a GOOS check: a build that
quietly drops the tray is how a shop PC ends up with no control surface
at all, and it would fail where nobody is watching. The guard is on stop()
as well, because systray.Quit() on a systray that never started is not a
no-op in v1.12.2 - it would turn closing the window into a crash on exit,
the failure most likely to be shrugged off as "it closed, fine".

go.mod gains the indirect dependencies the darwin build pulls in. No
version moved: the committed list was written by a windows-only build,
which never resolves that part of the Wails tree.

Verified: GOOS=windows build, go vet, and the agent suite all still pass,
and the packaged .app runs.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Qiy5iKfz4L8S4vRaYPBdaU
2026-09-09 13:06:51 +05:30

65 lines
2.3 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