* conditionally display actions for admin role only
* only allow admins to save annotation offset
* Fix classification reset filter
* fix explore context menu from blocking pointer events on the body element after dialog close
applying modal=false to the menu (not to the dialog) to fix this in the same way as elsewhere in the codebase
* add select all link to face library, classification, and explore
* Disable iOS image dragging for classification card
* add proxmox ballooning comment
* lpr docs tweaks
* yaml list
* clarify tls_insecure
* Improve security summary format and usefulness
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* Remove source_type from API
* Don't require state classification models to select all classes
* Specifically validate provided end_time for manual events
* Remove yolov9 specification for warning
* Remove warning for coral
* clarify zone name tip
* clarify replace rules in lpr docs
* remove periods
* Add explanation for review report
* adjust HLS gap controller params
defaults to false, should help to recover from hangs and stalling in tracking details videos on chrome
* only redirect to login page once on 401
attempt to fix ios pwa safari redirect storm
* Use contextual information from other cameras to inform report summary
* Formatting and prompt improvements for review summary report
* More improvements to prompt
* Remove examples
* Don't show admin action buttons on export card
* fix redirect race condition
Coordinate 401 redirect logic between ApiProvider and ProtectedRoute using a shared flag to prevent multiple simultaneous redirects that caused UI flashing. Ensure both auth error paths check and set the redirect flag before navigating to login, eliminating race conditions where both mechanisms could trigger at once
---------
Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
* Don't add to history when opening search dialog
* Update caniuse
* Revamp the history handling for dialog components
* clarify audio transcription docs
* Use titlecase helper
* Allow running object clasasification on stationary objects
* small spacing tweaks for tablets
* require admin role to delete users
* explicitly prevent deletion of admin user
---------
Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
* fix wording in reference config
* spacing tweaks
* make live view settings drawer scrollable
* clarify audio transcription docs
* change audio transcription icon to activity indicator when transcription is in progress
the backend doesn't implement any kind of queueing for speech event transcription
* tracking details tweaks
- Add attribute box overlay and area
- Add score
- Throttle swr revalidation during video component rerendering
* add mse codecs to console debug on errors
* add camera name
* don't flatten the search result cache when updating
this would cause an infinite swr fetch if something was mutated and then fetch was called again
* Properly sort keys for recording summary in StorageMetrics
* tracked object description box tweaks
* Remove ability to right click on elements inside of face popup
* Update reprocess message
* don't show object track until video metadata is loaded
* fix blue line height calc for in progress events
* Use timeline tab by default for notifications but add a query arg for customization
* Try and improve notification opening behavior
* Reduce review item buffering behavior
* ensure logging config is passed to camera capture and tracker processes
* ensure on demand recording stops when browser closes
* improve active line progress height with resize observer
* remove icons and duplicate find similar link in explore context menu
* fix for initial broken image when creating trigger from explore
* display friendly names for triggers in toasts
* lpr and triggers docs updates
* remove icons from dropdowns in face and classification
* fix comma dangle linter issue
* re-add incorrectly removed face library button icons
* fix sidebar nav links on < 768px desktop layout
* allow text to wrap on mark as reviewed button
* match exact pixels
* clarify LPR docs
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* Don't warn when event ids have expired for trigger sync
* Import faster_whisper conditinally to avoid illegal instruction
* Catch OpenVINO runtime error
* fix race condition in detail stream context
navigating between tracked objects in Explore would sometimes prevent the object track from appearing
* Handle case where classification images are deleted
* Adjust default rounded corners on larger screens
* Improve flow handling for classification state
* Remove images when wizard is cancelled
* Improve deletion handling for classes
* Set constraints on review buffers
* Update to support correct data format
* Set minimum duration for recording based review items
* Use friendly name in review genai prompt
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* Fix filtering for classification
* Adjust prompt to account for response tokens
* Correctly return response for reprocess
* Use API response to update data instead of trying to re-parse all of the values
* Implement rename class api
* Fix model deletion / rename dialog
* Remove camera spatial context
* Catch error
* remove frigate+ icon from explore grid footer
* add margin
* pointer cursor on event menu items in detail stream
* don't show submit to plus for non-objects and if plus is disabled
* tweak spacing in annotation settings popover
* Fix deletion of classification images and library
* Ensure after creating a class that things are correct
* Fix dialog getting stuck
* Only show the genai summary popup on mobile when timeline is open
* fix audio transcription embedding
* spacing
* hide x icon on restart sheet to prevent closure issues
* prevent x overflow in detail stream on mobile safari
* ensure name is valid for search effect trigger
* add trigger to detail actions menu
* move find similar to actions menu
* Use a column layout for MobilePageContent in PlatformAwareSheet
This is so the header is outside the scrolling area and the content can grow/scroll independently. This now matches the way it's done in classification
* Skip azure execution provider
* add optional ref to always scroll to top
the more filters in explore was not scrolled to the top on open due to the use of framer motion
* fix title classes on desktop
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* Update docs for review descriptions
* Add logging for context tokens used
* Incrase number of images due to lower than expected context usage
* Re-balance the suspicious activity checks
* Adjustments to context sizing
* optimize context usage
* Adjust context usage
* Make title more direct
* Update docs
* Adjust for commutes
* Tweaks
* Don't show no models view in grid
* Add text-md to inputs
* Adjust train title for mobile
* Cleanup prompt more
* Use i18n functions for tooltip
* Fix model complexity causing crash
* Cleanup
* Make prompt more fair and reduce time extension
* Adjust naming of unrecognized objects
* Improve object naming behavior
* Add more context image levels
* Map verified objects to their sub label directly
* Simplify access
* Cleanup
* Add protection for mismatched object and index
* Keep track of verified objects separately
* Make sequence details human-readable so they are used in natural language response
* Cleanup
* Improve prompt and image selection
* Adjust
* Adjust sligtly
* Format time
* Adjust frame selection logic
* Debug save response
* Ignore extra fields
* Adjust docs
* Generate review item summaries with requests
* Adjust logic to only send important items
* Don't mention ladder
* Adjust prompt to be more specific
* Add more relaxed nature for normal activity
* Cleanup summary
* Update ollama client
* Add more directions to analyze the frames in order
* Remove environment from prompt
* Don't default to openai
* Improve UI
* Allow configuring additional concerns that users may want the AI to note
* Formatting
* Add preferred language config
* Remove unused
* Include extra level for normal activity
* Add dynamic toggling
* Update docs
* Add different threshold for genai
* Adjust webUI for object and review description feature
* Adjust config
* Send on startup
* Cleanup config setting
* Set config
* Fix config name
* semantic trigger test
* database and model
* config
* embeddings maintainer and trigger post-processor
* api to create, edit, delete triggers
* frontend and i18n keys
* use thumbnail and description for trigger types
* image picker tweaks
* initial sync
* thumbnail file management
* clean up logs and use saved thumbnail on frontend
* publish mqtt messages
* webpush changes to enable trigger notifications
* add enabled switch
* add triggers from explore
* renaming and deletion fixes
* fix typing
* UI updates and add last triggering event time and link
* log exception instead of return in endpoint
* highlight entry in UI when triggered
* save and delete thumbnails directly
* remove alert action for now and add descriptions
* tweaks
* clean up
* fix types
* docs
* docs tweaks
* docs
* reuse enum
* install new packages for transcription support
* add config options
* audio maintainer modifications to support transcription
* pass main config to audio process
* embeddings support
* api and transcription post processor
* embeddings maintainer support for post processor
* live audio transcription with sherpa and faster-whisper
* update dispatcher with live transcription topic
* frontend websocket
* frontend live transcription
* frontend changes for speech events
* i18n changes
* docs
* mqtt docs
* fix linter
* use float16 and small model on gpu for real-time
* fix return value and use requestor to embed description instead of passing embeddings
* run real-time transcription in its own thread
* tweaks
* publish live transcriptions on their own topic instead of tracked_object_update
* config validator and docs
* clarify docs
* Fix the `Any` typing hint treewide
There has been confusion between the Any type[1] and the any function[2]
in typing hints.
[1] https://docs.python.org/3/library/typing.html#typing.Any
[2] https://docs.python.org/3/library/functions.html#any
* Fix typing for various frame_shape members
Frame shapes are most likely defined by height and width, so a single int
cannot express that.
* Wrap gpu stats functions in Optional[]
These can return `None`, so they need to be `Type | None`, which is what
`Optional` expresses very nicely.
* Fix return type in get_latest_segment_datetime
Returns a datetime object, not an integer.
* Make the return type of FrameManager.write optional
This is necessary since the SharedMemoryFrameManager.write function can
return None.
* Fix total_seconds() return type in get_tz_modifiers
The function returns a float, not an int.
https://docs.python.org/3/library/datetime.html#datetime.timedelta.total_seconds
* Account for floating point results in to_relative_box
Because the function uses division the return types may either be int or
float.
* Resolve ruff deprecation warning
The config has been split into formatter and linter, and the global
options are deprecated.
* Send tracked object updates for face and license_plate objects
* Update docs
* Add to type enum
* Add camera to object description update
* Formatting
* Consolidate yue-Hant
* Add missing
* recordings data pub/sub
* function to process recording stream frames
* model runner
* lpr model runner
* refactor to mixin class and use model runner
* separate out realtime and post processors
* move model and mixin folders
* basic postprocessor
* clean up
* docs
* postprocessing logic
* clean up
* return none if recordings are disabled
* run postprocessor handle_requests too
* tweak expansion
* add put endpoint
* postprocessor tweaks with endpoint