Skip to content

Commit 4b00bbb

Browse files
committed
feat: update default models and resolve key system bugs
- Add `Qwen3.5-9B-DeepSeek-V4-Flash` to default Local AI models list (Lailama) - Improve Widget Genie system instructions - Update default model for Gemini-based AI Genies to `gemini-flash-latest` (Gemini 3.5 Flash) - Fix Program ID collision bug in `GeneratePid` using a robust LINQ max-address check - Fix custom widget module filtering by applying strict AND logic for type and field filters - Apply minor UI fixes
1 parent 5de6ab4 commit 4b00bbb

10 files changed

Lines changed: 47 additions & 40 deletions

File tree

assets/build/all/app/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,6 @@
5656

5757
</div>
5858

59-
<script src="runtime.b92e2ca178ebbf4a.js" type="module"></script><script src="polyfills.a360d6e45b80c065.js" type="module"></script><script src="scripts.a80ff7b9db93add6.js" defer></script><script src="main.80699d7286f2c3b9.js" type="module"></script>
59+
<script src="runtime.b92e2ca178ebbf4a.js" type="module"></script><script src="polyfills.a360d6e45b80c065.js" type="module"></script><script src="scripts.a80ff7b9db93add6.js" defer></script><script src="main.75f1978d791e72ca.js" type="module"></script>
6060

6161
</body></html>

assets/build/all/app/main.80699d7286f2c3b9.js renamed to assets/build/all/app/main.75f1978d791e72ca.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

assets/build/all/app/ngsw.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"configVersion": 1,
3-
"timestamp": 1779188797983,
3+
"timestamp": 1780256015900,
44
"index": "/app/index.html",
55
"assetGroups": [
66
{
@@ -15,7 +15,7 @@
1515
"/app/613.16b9c52c0ae74833.js",
1616
"/app/859.0f150be9c99a6b5a.js",
1717
"/app/index.html",
18-
"/app/main.80699d7286f2c3b9.js",
18+
"/app/main.75f1978d791e72ca.js",
1919
"/app/manifest.webmanifest",
2020
"/app/polyfills.a360d6e45b80c065.js",
2121
"/app/runtime.b92e2ca178ebbf4a.js",
@@ -2698,8 +2698,8 @@
26982698
"/app/assets/widgets/weather/images_alt/thunder.svg": "2ace7038dfd663330cecc350d680ef08206d62ff",
26992699
"/app/assets/widgets/weather/images_alt/weather.svg": "c719c09048977fd40688272316b35ddf1bdf89e8",
27002700
"/app/assets/workers/typings-worker.js": "8df10d867c12d36cdebfb7e16caacd0020db301f",
2701-
"/app/index.html": "ea0644d9af3b8f11fa569f90beb90c024712b47e",
2702-
"/app/main.80699d7286f2c3b9.js": "c7b1655ee6056d2cc74b9f0d22d9045194f4585c",
2701+
"/app/index.html": "4343930de6e8391512f9eed44cfa36b467721633",
2702+
"/app/main.75f1978d791e72ca.js": "9e275918e9195479b61654ab2f688d96425cd412",
27032703
"/app/manifest.webmanifest": "519d8ee6b3b82c1add66c43f8ca2cf632326f342",
27042704
"/app/material-symbols-outlined.f0999ac98285ec5d.woff2": "5e09a294eee959c4c036596eac4474acad069ae5",
27052705
"/app/material-symbols-rounded.5ad4d570450b797e.woff2": "676252fdfc8dce42d98f435b7c4b9c1cfdee97bb",
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"repository":"homegenie","id":"homegenie-ml-ai","version":"1.0.4","description":"Machine Learning and Artificial Intelligence","programs":[{"repository":"homegenie","packageId":"homegenie-ml-ai","packageVersion":"1.0.5","hid":"578","id":"context-engine","required":true,"version":"1.0.4","checksum":"48B0C25346A7C81CD6A7158515780BB8","installed":false},{"repository":"homegenie","packageId":"homegenie-ml-ai","packageVersion":"1.0.4","hid":"932","id":"gemini-automan","required":true,"version":"1.0.3","checksum":"A2C670BB89DCFF8789C23BD089D09B36","installed":false},{"repository":"homegenie","packageId":"homegenie-ml-ai","packageVersion":"1.0.4","hid":"930","id":"gemini-intent-handler","required":true,"version":"1.0.15","checksum":"22030EF1B999BDF3A3F5A0CEF8EB1AEF","installed":false},{"repository":"homegenie","packageId":"homegenie-ml-ai","packageVersion":"1.0.4","hid":"931","id":"gemini-widget-genie","required":true,"version":"1.0.12","checksum":"C01D076F20DD9CE05790FD4FDE8825ED","installed":false},{"repository":"homegenie","packageId":"homegenie-ml-ai","packageVersion":"1.0.4","hid":"912","id":"instance-segmentation","required":true,"version":"1.0.4","checksum":"3528F3E52DBF04D625ADB9BCA5DDE645","installed":false},{"repository":"homegenie","packageId":"homegenie-ml-ai","packageVersion":"1.0.4","hid":"940","id":"lailama","required":true,"version":"1.0.10","checksum":"71202C02B1AEEEB0FB2EC673285869E5","installed":false},{"repository":"homegenie","packageId":"homegenie-ml-ai","packageVersion":"1.0.4","hid":"910","id":"object-detection","required":true,"version":"1.0.4","checksum":"543179FB402664F2184C5E4545D458D5","installed":false},{"repository":"homegenie","packageId":"homegenie-ml-ai","packageVersion":"1.0.4","hid":"911","id":"pose-estimation","required":true,"version":"1.0.4","checksum":"E14D24AB2677F4CBCB5DCBC2D022DD9F","installed":false},{"repository":"homegenie","packageId":"homegenie-base","packageVersion":"1.0.6","hid":"577","id":"chat-history-service","required":true,"version":"1.0.2","checksum":"58CDCA16DD78D66E781A38AA9254FEF1","installed":false},{"repository":"homegenie","packageId":"homegenie-base","packageVersion":"1.0.6","hid":"575","id":"download-manager","required":true,"version":"1.0.2","checksum":"7B4D4B9DFF27ADE38B697F7C5DA1852A","installed":false},{"repository":"homegenie","packageId":"homegenie-base","packageVersion":"1.0.6","hid":"576","id":"file-manager","required":true,"version":"1.0.0","checksum":"45A509656A53CC9D1A38F8301A04FCD6","installed":false}],"modules":null,"groups":[],"schedules":[]}
1+
{"repository":"homegenie","id":"homegenie-ml-ai","version":"1.0.4","description":"Machine Learning and Artificial Intelligence","programs":[{"repository":"homegenie","packageId":"homegenie-ml-ai","packageVersion":"1.0.4","hid":"578","id":"context-engine","required":true,"version":"1.0.5","checksum":"48B0C25346A7C81CD6A7158515780BB8","installed":false},{"repository":"homegenie","packageId":"homegenie-ml-ai","packageVersion":"1.0.4","hid":"932","id":"gemini-automan","required":true,"version":"1.0.4","checksum":"05BDE67BD7432A1491D9F03FAED1899E","installed":false},{"repository":"homegenie","packageId":"homegenie-ml-ai","packageVersion":"1.0.4","hid":"930","id":"gemini-intent-handler","required":true,"version":"1.0.16","checksum":"DA2C87D3E2682B3B0FAC29C3701D9F83","installed":false},{"repository":"homegenie","packageId":"homegenie-ml-ai","packageVersion":"1.0.4","hid":"931","id":"gemini-widget-genie","required":true,"version":"1.0.13","checksum":"D5762297431812A848F81E3F31EE5CF8","installed":false},{"repository":"homegenie","packageId":"homegenie-ml-ai","packageVersion":"1.0.4","hid":"912","id":"instance-segmentation","required":true,"version":"1.0.4","checksum":"3528F3E52DBF04D625ADB9BCA5DDE645","installed":false},{"repository":"homegenie","packageId":"homegenie-ml-ai","packageVersion":"1.0.4","hid":"940","id":"lailama","required":true,"version":"1.0.10","checksum":"71202C02B1AEEEB0FB2EC673285869E5","installed":false},{"repository":"homegenie","packageId":"homegenie-ml-ai","packageVersion":"1.0.4","hid":"910","id":"object-detection","required":true,"version":"1.0.4","checksum":"543179FB402664F2184C5E4545D458D5","installed":false},{"repository":"homegenie","packageId":"homegenie-ml-ai","packageVersion":"1.0.4","hid":"911","id":"pose-estimation","required":true,"version":"1.0.4","checksum":"E14D24AB2677F4CBCB5DCBC2D022DD9F","installed":false},{"repository":"homegenie","packageId":"homegenie-base","packageVersion":"1.0.6","hid":"577","id":"chat-history-service","required":true,"version":"1.0.2","checksum":"58CDCA16DD78D66E781A38AA9254FEF1","installed":false},{"repository":"homegenie","packageId":"homegenie-base","packageVersion":"1.0.6","hid":"575","id":"download-manager","required":true,"version":"1.0.2","checksum":"7B4D4B9DFF27ADE38B697F7C5DA1852A","installed":false},{"repository":"homegenie","packageId":"homegenie-base","packageVersion":"1.0.6","hid":"576","id":"file-manager","required":true,"version":"1.0.0","checksum":"45A509656A53CC9D1A38F8301A04FCD6","installed":false}],"modules":null,"groups":[],"schedules":[]}

assets/build/all/data/packages/homegenie/homegenie-ml-ai/programs.xml

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,7 @@ Program.Setup(() =&gt; {
325325
"@AI:Automan",
326326
"AI.Automan/Gemini"
327327
).AddOption("ApiKey", "", "1. Google Gemini AI API key", "password")
328-
.AddOption("ModelId", "gemini-2.5-flash", "2. Model ID", "text")
328+
.AddOption("ModelId", "gemini-flash-latest", "2. Model ID", "text")
329329
.AddOption("EnableDeepKnowledge", "On", "3. Enable Deep Knowledge (Read programs &amp; widgets)", "checkbox")
330330
.AddOption("SystemInstructions", "", "4. System Instructions", $"editor:file:{systemPromptFile}:markdown");
331331
});
@@ -772,16 +772,16 @@ public class ChatMessage {
772772
};
773773
}
774774
}</ScriptContext>
775-
<ScriptErrors />
775+
<ScriptErrors>[]</ScriptErrors>
776776
<Data />
777777
<PackageInfo>
778778
<Repository>homegenie</Repository>
779779
<PackageId>homegenie-ml-ai</PackageId>
780780
<PackageVersion>1.0.4</PackageVersion>
781781
<Id>gemini-automan</Id>
782-
<Version>1.0.3</Version>
782+
<Version>1.0.4</Version>
783783
<Required>true</Required>
784-
<Checksum>A2C670BB89DCFF8789C23BD089D09B36</Checksum>
784+
<Checksum>05BDE67BD7432A1491D9F03FAED1899E</Checksum>
785785
</PackageInfo>
786786
<Domain>HomeAutomation.HomeGenie.Automation</Domain>
787787
<Address>932</Address>
@@ -944,7 +944,7 @@ Api.Handle($"{API_URL}/{API_PROMPT_SUBMIT}", (userCommand) =&gt;
944944
}
945945
else if (functionName == "get_time")
946946
{
947-
toolExecutionResult = DateTime.UtcNow.ToString();
947+
toolExecutionResult = DateTimeOffset.Now.ToString("yyyy-MM-dd HH:mm:ss zzz");
948948
}
949949
else
950950
{
@@ -1090,7 +1090,7 @@ const string OPTION_MODEL_ID = "ModelId";
10901090
const string OPTION_SEND_CONTEXT_DATA = "SendContextData";
10911091
const string OPTION_SYSTEM_INSTRUCTIONS = "SystemInstructions";
10921092

1093-
const string DEFAULT_MODEL_ID = "gemini-2.5-flash-lite";
1093+
const string DEFAULT_MODEL_ID = "gemini-flash-latest";
10941094

10951095

10961096
// POJO
@@ -1109,16 +1109,16 @@ public class ChatMessage {
11091109
}
11101110
}
11111111
</ScriptContext>
1112-
<ScriptErrors />
1112+
<ScriptErrors>[]</ScriptErrors>
11131113
<Data />
11141114
<PackageInfo>
11151115
<Repository>homegenie</Repository>
11161116
<PackageId>homegenie-ml-ai</PackageId>
11171117
<PackageVersion>1.0.4</PackageVersion>
11181118
<Id>gemini-intent-handler</Id>
1119-
<Version>1.0.15</Version>
1119+
<Version>1.0.16</Version>
11201120
<Required>true</Required>
1121-
<Checksum>22030EF1B999BDF3A3F5A0CEF8EB1AEF</Checksum>
1121+
<Checksum>DA2C87D3E2682B3B0FAC29C3701D9F83</Checksum>
11221122
</PackageInfo>
11231123
<Domain>HomeAutomation.HomeGenie.Automation</Domain>
11241124
<Address>930</Address>
@@ -1143,7 +1143,7 @@ Program.Setup(() =&gt; {
11431143
"@AI:WidgetGenie",
11441144
"AI.WidgetGenie/Gemini"
11451145
).AddOption("ApiKey", "", "1. Google Gemini AI API key", "password")
1146-
.AddOption("ModelId", "gemini-2.5-flash", "2. Model ID", "text")
1146+
.AddOption("ModelId", "gemini-flash-latest", "2. Model ID", "text")
11471147
.AddOption("EnableDeepKnowledge", "On", "3. Enable Deep Knowledge (Read programs &amp; widgets)", "checkbox")
11481148
.AddOption("SystemInstructions", "", "4. System Instructions", $"editor:file:{systemPromptFile}:markdown");
11491149
});
@@ -1477,16 +1477,16 @@ public class ChatMessage {
14771477
};
14781478
}
14791479
}</ScriptContext>
1480-
<ScriptErrors />
1480+
<ScriptErrors>[]</ScriptErrors>
14811481
<Data />
14821482
<PackageInfo>
14831483
<Repository>homegenie</Repository>
14841484
<PackageId>homegenie-ml-ai</PackageId>
14851485
<PackageVersion>1.0.4</PackageVersion>
14861486
<Id>gemini-widget-genie</Id>
1487-
<Version>1.0.12</Version>
1487+
<Version>1.0.13</Version>
14881488
<Required>true</Required>
1489-
<Checksum>C01D076F20DD9CE05790FD4FDE8825ED</Checksum>
1489+
<Checksum>D5762297431812A848F81E3F31EE5CF8</Checksum>
14901490
</PackageInfo>
14911491
<Domain>HomeAutomation.HomeGenie.Automation</Domain>
14921492
<Address>931</Address>

assets/build/all/data/programs/931/gemini_system_prompt.txt

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,14 @@ class MyWidget extends ControllerInstance {
6767
// - 'Color' = Color LED light (RGB/HSB)
6868
typeFilter: 'Light,Dimmer,Color'
6969
},
70-
defaultSize: 'medium', // Leave it blank '' to allow any custom widget size
71-
sizeOptions: ['small', 'medium', 'big'] // small=289.5x148, medium=289.5x296, big=460x296
70+
/**
71+
* @type {'' | 'small' | 'medium' | 'big'}
72+
* @description The default widget size. Use an empty string '' for an unconstrained,
73+
* CSS-driven size. Standard sizes: small (289.5x148), medium (289.5x296), big (460x296).
74+
*/
75+
defaultSize: 'medium',
76+
// Allowed user presets. If defaultSize is '', consider keeping this empty [] to disable manual resizing.
77+
sizeOptions: ['small', 'medium', 'big']
7278
};
7379
}
7480
```

assets/build/all/data/programs/940/models.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,12 @@
2020
Url: https://huggingface.co/unsloth/Qwen3.5-4B-GGUF/resolve/main/Qwen3.5-4B-Q8_0.gguf?download=true
2121
Template: chatml
2222

23+
"Jackrong/Qwen3.5-9B-DeepSeek-V4-Flash-Q5_K_M.gguf":
24+
Name: Jackrong/Qwen3.5-9B-DeepSeek-V4-Flash-GGUF
25+
Repository: https://huggingface.co/Jackrong/Qwen3.5-9B-DeepSeek-V4-Flash-GGUF
26+
Url: https://huggingface.co/Jackrong/Qwen3.5-9B-DeepSeek-V4-Flash-GGUF/resolve/main/Qwen3.5-9B-DeepSeek-V4-Flash-Q5_K_M.gguf?download=true
27+
Template: chatml
28+
2329
"khazarai/Qwen3-4B-Thinking-2507.Q8_0.gguf":
2430
Name: khazarai/Qwen3-4B-Qwen3.6-plus-Reasoning-Distilled-GGUF
2531
Repository: https://huggingface.co/khazarai/Qwen3-4B-Qwen3.6-plus-Reasoning-Distilled-GGUF

src/HomeGenie.Tests/HomeGenie.Tests.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
</PropertyGroup>
1818

1919
<ItemGroup>
20-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.5.1" />
20+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.6.0" />
2121
<PackageReference Include="NUnit" Version="4.6.1" />
2222
<PackageReference Include="NUnit3TestAdapter" Version="6.2.0" />
2323
</ItemGroup>

src/HomeGenie/Automation/ProgramManager.cs

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -108,22 +108,17 @@ public List<ProgramError> ProgramCompile(ProgramBlock program)
108108

109109
public int GeneratePid()
110110
{
111-
int pid = USERSPACE_PROGRAMS_START;
112-
var userPrograms = automationPrograms
113-
.FindAll(p => p.Address >= USERSPACE_PROGRAMS_START)
114-
.OrderBy(p => p.Address);
115-
foreach (ProgramBlock program in userPrograms)
116-
{
117-
if (pid == program.Address)
118-
pid = program.Address + 1;
119-
else
120-
break;
121-
}
122-
if (hgService.SystemConfiguration.HomeGenie.ProgramIdNext < pid)
123-
{
124-
hgService.SystemConfiguration.HomeGenie.ProgramIdNext = pid;
125-
}
126-
return hgService.SystemConfiguration.HomeGenie.ProgramIdNext++;
111+
int maxAddress = automationPrograms
112+
.Where(p => p.Address >= USERSPACE_PROGRAMS_START)
113+
.Select(p => p.Address)
114+
.DefaultIfEmpty(USERSPACE_PROGRAMS_START - 1)
115+
.Max();
116+
117+
int pid = Math.Max(USERSPACE_PROGRAMS_START, hgService.SystemConfiguration.HomeGenie.ProgramIdNext);
118+
pid = Math.Max(pid, maxAddress + 1);
119+
120+
hgService.SystemConfiguration.HomeGenie.ProgramIdNext = pid + 1;
121+
return pid;
127122
}
128123

129124
public void ProgramAdd(ProgramBlock program)

src/HomeGenie/HomeGenie.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
<PackageReference Include="SharpZipLib" Version="1.4.2" />
4747
<PackageReference Include="SolarCalculator" Version="3.6.1" />
4848

49-
<PackageReference Include="CronExpressionDescriptor" Version="2.45.0" />
49+
<PackageReference Include="CronExpressionDescriptor" Version="2.48.0" />
5050
<PackageReference Include="LiteDB" Version="5.0.21" />
5151

5252
<PackageReference Include="MQTTnet" Version="4.3.7.1207" />

0 commit comments

Comments
 (0)