neoagent 2.3.1-beta.90 → 2.3.1-beta.91

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.env.example CHANGED
@@ -26,6 +26,10 @@ NEOAGENT_DEPLOYMENT_MODE=self_hosted
26
26
  # prod -> multi-user / isolated per-user VM runtime
27
27
  NEOAGENT_PROFILE=prod
28
28
 
29
+ # Allow new user sign-ups. Set to false to disable registration (the first user
30
+ # can always register regardless of this setting).
31
+ # NEOAGENT_ALLOW_SIGNUP=false
32
+
29
33
  # VM runtime settings used by `prod`.
30
34
  # Set these before switching NEOAGENT_PROFILE=prod.
31
35
  # The app can cache a shared base image automatically from a URL, then create
@@ -1064,6 +1064,7 @@ class _HomeViewState extends State<HomeView> {
1064
1064
  bool _blockedDialogOpen = false;
1065
1065
  SidebarGroup? _expandedSidebarGroup;
1066
1066
  AppSection? _lastSelectedSection;
1067
+ final GlobalKey _devicesPanelKey = GlobalKey();
1067
1068
 
1068
1069
  @override
1069
1070
  void initState() {
@@ -1221,7 +1222,7 @@ class _HomeViewState extends State<HomeView> {
1221
1222
  key: ValueKey<AppSection>(
1222
1223
  controller.selectedSection,
1223
1224
  ),
1224
- child: _SectionBody(controller: controller),
1225
+ child: _SectionBody(controller: controller, devicesPanelKey: _devicesPanelKey),
1225
1226
  ),
1226
1227
  ),
1227
1228
  ),
@@ -1271,7 +1272,7 @@ class _HomeViewState extends State<HomeView> {
1271
1272
  switchOutCurve: Curves.easeInCubic,
1272
1273
  child: KeyedSubtree(
1273
1274
  key: ValueKey<AppSection>(controller.selectedSection),
1274
- child: _SectionBody(controller: controller),
1275
+ child: _SectionBody(controller: controller, devicesPanelKey: _devicesPanelKey),
1275
1276
  ),
1276
1277
  ),
1277
1278
  ),
@@ -2096,9 +2097,10 @@ class _MobileDrawer extends StatelessWidget {
2096
2097
  }
2097
2098
 
2098
2099
  class _SectionBody extends StatelessWidget {
2099
- const _SectionBody({required this.controller});
2100
+ const _SectionBody({required this.controller, this.devicesPanelKey});
2100
2101
 
2101
2102
  final NeoAgentController controller;
2103
+ final GlobalKey? devicesPanelKey;
2102
2104
 
2103
2105
  @override
2104
2106
  Widget build(BuildContext context) {
@@ -2108,7 +2110,7 @@ class _SectionBody extends StatelessWidget {
2108
2110
  case AppSection.voiceAssistant:
2109
2111
  return VoiceAssistantPanel(controller: controller);
2110
2112
  case AppSection.devices:
2111
- return DevicesPanel(controller: controller);
2113
+ return DevicesPanel(key: devicesPanelKey, controller: controller);
2112
2114
  case AppSection.recordings:
2113
2115
  return RecordingsPanel(controller: controller);
2114
2116
  case AppSection.messaging:
@@ -4560,6 +4560,7 @@ class NeoAgentController extends ChangeNotifier {
4560
4560
 
4561
4561
  Future<void> saveSettings({
4562
4562
  required String browserBackend,
4563
+ required String cliBackend,
4563
4564
  required bool smarterSelector,
4564
4565
  required List<String> enabledModels,
4565
4566
  required String defaultChatModel,
@@ -4588,6 +4589,7 @@ class NeoAgentController extends ChangeNotifier {
4588
4589
  final payload = <String, dynamic>{
4589
4590
  'headless_browser': true,
4590
4591
  'browser_backend': browserBackend,
4592
+ 'cli_backend': cliBackend,
4591
4593
  'smarter_model_selector': smarterSelector,
4592
4594
  'enabled_models': enabledModels,
4593
4595
  'default_chat_model': defaultChatModel,
@@ -6122,6 +6124,9 @@ class NeoAgentController extends ChangeNotifier {
6122
6124
  String get browserBackend =>
6123
6125
  settings['browser_backend']?.toString().trim().toLowerCase() ?? 'vm';
6124
6126
 
6127
+ String get cliBackend =>
6128
+ settings['cli_backend']?.toString().trim().toLowerCase() ?? 'vm';
6129
+
6125
6130
  String get cloudBrowserBackend {
6126
6131
  final browser = browserBackend;
6127
6132
  final profile = settings['runtime_profile']