frigate/web
Josh Hawkins 729ee86043
Some checks are pending
CI / AMD64 Build (push) Waiting to run
CI / ARM Build (push) Waiting to run
CI / Jetson Jetpack 6 (push) Waiting to run
CI / AMD64 Extra Build (push) Blocked by required conditions
CI / ARM Extra Build (push) Blocked by required conditions
CI / Synaptics Build (push) Blocked by required conditions
CI / Assemble and push default build (push) Blocked by required conditions
Miscellaneous fixes (#23619)
* fix stale active object indicators on the live dashboard

The camera_activity/<camera> snapshot cache is only written when a client sends onConnect, and object "end" events only update the local state of mounted useCameraActivity hooks, never the cache. As a result, a hook that seeded from a stale cache or missed an "end" event while disconnected showed objects that had already left, with no path to correct itself short of a full page reload.

This change will re-request the snapshot on hook mount (collapsed to one onConnect per task across camera cards), and always re-notify camera_activity topics so hooks reconcile against their own local state instead of relying on snapshot-vs-snapshot comparison, and clear the payload dedup cache on reconnect and resync so byte-identical snapshots still apply.

* docs tweaks

* fix mqtt log message

* use consistent values for lpr debug frame filenames

with millisecond resolution

* apply object events through a functional updater to prevent lost updates

The events effect derived a new objects list from the value captured at render time and wrote the whole list back. When events arrived close
together, a run derived from a stale list erased a concurrent run's removal; the resurrected object then had no remaining "end" event to clear it, and the add branch could mint a duplicate entry that no splice could ever remove, leaving the live dashboard showing active objects the backend had already cleared, until a page reload.

The fix is to apply each event inside setObjects so it operates on the true current list exactly once. Unchanged results return the same reference so React bails out of re-rendering, and the label rewrite is hoisted so added objects get the sub_label/verified label directly instead of relying on the effect re-running against its own state update.
2026-07-04 00:25:22 -06:00
..
.vscode
e2e Add go2rtc stream selection to camera configuration (#23496) 2026-06-16 16:12:39 -06:00
images llc to inc and 2025 to 2026 (#21484) 2026-01-01 09:56:09 -06:00
patches Replace react-tracked and react-use-websocket with useSyncExternalStore (#22386) 2026-03-11 09:02:51 -05:00
public Merge remote-tracking branch 'origin/master' into dev 2026-06-28 15:04:01 +02:00
src Miscellaneous fixes (#23619) 2026-07-04 00:25:22 -06:00
themes UI tweaks (#23492) 2026-06-16 08:56:52 -05:00
.eslintrc.cjs
.gitignore Fix chat tool calling and prompt breaking (#23457) 2026-06-12 07:48:43 -05:00
.prettierrc
components.json Add shadcn sidebar component (#20292) 2025-09-30 15:02:35 -06:00
i18next.config.ts i18n workflow improvements and tweaks (#22586) 2026-03-23 08:48:02 -05:00
index.html Mobile UI/UX improvements (#23402) 2026-06-04 09:56:11 -06:00
login.html Miscellaneous fixes (#23394) 2026-06-04 12:48:58 -06:00
package-lock.json Bump fast-uri from 3.1.0 to 3.1.2 in /web (#23137) 2026-05-10 12:10:23 -05:00
package.json Bump lodash from 4.17.23 to 4.18.1 in /web (#22787) 2026-04-22 14:39:08 -05:00
postcss.config.js
README.md
site.webmanifest Update webmanifest to use /BASE_PATH/ (#17310) 2025-03-23 05:34:33 -06:00
tailwind.config.cjs Tweaks (#22965) 2026-04-22 09:19:30 -06:00
tsconfig.json
tsconfig.node.json
vite.config.ts Full UI configuration (#22151) 2026-02-27 08:55:36 -07:00

This is the Frigate frontend which connects to and provides a User Interface to the Python backend.

Web Development

Installing Web Dependencies Via NPM

Within /web, run:

npm install

Running development frontend

Within /web, run:

PROXY_HOST=<ip_address:port> npm run dev

The Proxy Host can point to your existing Frigate instance. Otherwise defaults to localhost:5000 if running Frigate on the same machine.

Extensions

Install these IDE extensions for an improved development experience:

  • eslint