Skip to content

Commit d263105

Browse files
authored
Merge pull request #4617 from Ivy-Interactive/development
Release: Merge development into main
2 parents 84446d6 + add93d9 commit d263105

159 files changed

Lines changed: 7897 additions & 4068 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 59 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,69 +1,69 @@
1-
name: E2E Docs Tests
2-
on:
3-
push:
4-
branches: [main, development]
5-
pull_request:
6-
branches: [main, development]
7-
permissions:
8-
contents: read
9-
jobs:
10-
test:
11-
timeout-minutes: 60
12-
runs-on: ubuntu-latest
13-
steps:
14-
- uses: actions/checkout@v4
1+
# name: E2E Docs Tests
2+
# on:
3+
# push:
4+
# branches: [main, development]
5+
# pull_request:
6+
# branches: [main, development]
7+
# permissions:
8+
# contents: read
9+
# jobs:
10+
# test:
11+
# timeout-minutes: 60
12+
# runs-on: ubuntu-latest
13+
# steps:
14+
# - uses: actions/checkout@v4
1515

16-
# Setup Node.js (needed for integrated frontend build in dotnet build)
17-
- uses: voidzero-dev/setup-vp@v1
16+
# # Setup Node.js (needed for integrated frontend build in dotnet build)
17+
# - uses: voidzero-dev/setup-vp@v1
1818

19-
# Setup Java (needed for ANTLR4)
20-
- name: Setup Java
21-
uses: actions/setup-java@v4
22-
with:
23-
distribution: 'microsoft'
24-
java-version: '17'
19+
# # Setup Java (needed for ANTLR4)
20+
# - name: Setup Java
21+
# uses: actions/setup-java@v4
22+
# with:
23+
# distribution: 'microsoft'
24+
# java-version: '17'
2525

26-
# Setup .NET and build backend (triggers frontend build automatically)
27-
- name: Setup .NET
28-
uses: actions/setup-dotnet@v4
29-
with:
30-
dotnet-version: "10.0.x"
26+
# # Setup .NET and build backend (triggers frontend build automatically)
27+
# - name: Setup .NET
28+
# uses: actions/setup-dotnet@v4
29+
# with:
30+
# dotnet-version: "10.0.x"
3131

32-
- name: Generate HTTPS dev certificate
33-
run: dotnet dev-certs https
32+
# - name: Generate HTTPS dev certificate
33+
# run: dotnet dev-certs https
3434

35-
- name: Build backend
36-
run: dotnet build src/Ivy.Docs/Ivy.Docs.csproj
35+
# - name: Build backend
36+
# run: dotnet build src/Ivy.Docs/Ivy.Docs.csproj
3737

38-
- name: Start backend server
39-
run: |
40-
dotnet run --project src/Ivy.Docs/Ivy.Docs.csproj -- --port 5010 --silent &
41-
echo $! > backend.pid
42-
# Wait for server to be ready
43-
timeout 30 bash -c 'until curl -fk https://localhost:5010/ > /dev/null 2>&1; do sleep 1; done'
38+
# - name: Start backend server
39+
# run: |
40+
# dotnet run --project src/Ivy.Docs/Ivy.Docs.csproj -- --port 5010 --silent &
41+
# echo $! > backend.pid
42+
# # Wait for server to be ready
43+
# timeout 30 bash -c 'until curl -fk https://localhost:5010/ > /dev/null 2>&1; do sleep 1; done'
4444

45-
- name: Install Playwright Browsers
46-
working-directory: ./src/frontend
47-
run: npx playwright install chromium --with-deps
45+
# - name: Install Playwright Browsers
46+
# working-directory: ./src/frontend
47+
# run: npx playwright install chromium --with-deps
4848

49-
- name: Run Playwright tests for Docs
50-
working-directory: ./src/frontend
51-
run: npm run e2e:docs
52-
env:
53-
PLAYWRIGHT_BASE_URL: https://localhost:5010
49+
# - name: Run Playwright tests for Docs
50+
# working-directory: ./src/frontend
51+
# run: npm run e2e:docs
52+
# env:
53+
# PLAYWRIGHT_BASE_URL: https://localhost:5010
5454

55-
# Cleanup backend server
56-
- name: Stop backend server
57-
if: always()
58-
run: |
59-
if [ -f backend.pid ]; then
60-
kill $(cat backend.pid) || true
61-
rm backend.pid
62-
fi
55+
# # Cleanup backend server
56+
# - name: Stop backend server
57+
# if: always()
58+
# run: |
59+
# if [ -f backend.pid ]; then
60+
# kill $(cat backend.pid) || true
61+
# rm backend.pid
62+
# fi
6363

64-
- uses: actions/upload-artifact@v4
65-
if: ${{ !cancelled() }}
66-
with:
67-
name: playwright-report-docs
68-
path: src/frontend/playwright-report/
69-
retention-days: 30
64+
# - uses: actions/upload-artifact@v4
65+
# if: ${{ !cancelled() }}
66+
# with:
67+
# name: playwright-report-docs
68+
# path: src/frontend/playwright-report/
69+
# retention-days: 30
Lines changed: 59 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,69 +1,69 @@
1-
name: E2E Samples Tests
2-
permissions:
3-
contents: read
4-
on:
5-
push:
6-
branches: [main, development]
7-
pull_request:
8-
branches: [main, development]
9-
jobs:
10-
test:
11-
timeout-minutes: 60
12-
runs-on: ubuntu-latest
13-
steps:
14-
- uses: actions/checkout@v4
1+
# name: E2E Samples Tests
2+
# permissions:
3+
# contents: read
4+
# on:
5+
# push:
6+
# branches: [main, development]
7+
# pull_request:
8+
# branches: [main, development]
9+
# jobs:
10+
# test:
11+
# timeout-minutes: 60
12+
# runs-on: ubuntu-latest
13+
# steps:
14+
# - uses: actions/checkout@v4
1515

16-
# Setup Node.js (needed for integrated frontend build in dotnet build)
17-
- uses: voidzero-dev/setup-vp@v1
16+
# # Setup Node.js (needed for integrated frontend build in dotnet build)
17+
# - uses: voidzero-dev/setup-vp@v1
1818

19-
# Setup Java (needed for ANTLR4)
20-
- name: Setup Java
21-
uses: actions/setup-java@v4
22-
with:
23-
distribution: 'microsoft'
24-
java-version: '17'
19+
# # Setup Java (needed for ANTLR4)
20+
# - name: Setup Java
21+
# uses: actions/setup-java@v4
22+
# with:
23+
# distribution: 'microsoft'
24+
# java-version: '17'
2525

26-
# Setup .NET and build backend (triggers frontend build automatically)
27-
- name: Setup .NET
28-
uses: actions/setup-dotnet@v4
29-
with:
30-
dotnet-version: "10.0.x"
26+
# # Setup .NET and build backend (triggers frontend build automatically)
27+
# - name: Setup .NET
28+
# uses: actions/setup-dotnet@v4
29+
# with:
30+
# dotnet-version: "10.0.x"
3131

32-
- name: Generate HTTPS dev certificate
33-
run: dotnet dev-certs https
32+
# - name: Generate HTTPS dev certificate
33+
# run: dotnet dev-certs https
3434

35-
- name: Build backend
36-
run: dotnet build src/Ivy.Samples/Ivy.Samples.csproj
35+
# - name: Build backend
36+
# run: dotnet build src/Ivy.Samples/Ivy.Samples.csproj
3737

38-
- name: Start backend server
39-
run: |
40-
dotnet run --project src/Ivy.Samples/Ivy.Samples.csproj -- --port 5010 --silent &
41-
echo $! > backend.pid
42-
# Wait for server to be ready
43-
timeout 30 bash -c 'until curl -fk https://localhost:5010/ > /dev/null 2>&1; do sleep 1; done'
38+
# - name: Start backend server
39+
# run: |
40+
# dotnet run --project src/Ivy.Samples/Ivy.Samples.csproj -- --port 5010 --silent &
41+
# echo $! > backend.pid
42+
# # Wait for server to be ready
43+
# timeout 30 bash -c 'until curl -fk https://localhost:5010/ > /dev/null 2>&1; do sleep 1; done'
4444

45-
- name: Install Playwright Browsers
46-
working-directory: ./src/frontend
47-
run: npx playwright install chromium --with-deps
45+
# - name: Install Playwright Browsers
46+
# working-directory: ./src/frontend
47+
# run: npx playwright install chromium --with-deps
4848

49-
- name: Run Playwright tests for Samples
50-
working-directory: ./src/frontend
51-
run: npm run e2e:samples
52-
env:
53-
PLAYWRIGHT_BASE_URL: https://localhost:5010
49+
# - name: Run Playwright tests for Samples
50+
# working-directory: ./src/frontend
51+
# run: npm run e2e:samples
52+
# env:
53+
# PLAYWRIGHT_BASE_URL: https://localhost:5010
5454

55-
# Cleanup backend server
56-
- name: Stop backend server
57-
if: always()
58-
run: |
59-
if [ -f backend.pid ]; then
60-
kill $(cat backend.pid) || true
61-
rm backend.pid
62-
fi
55+
# # Cleanup backend server
56+
# - name: Stop backend server
57+
# if: always()
58+
# run: |
59+
# if [ -f backend.pid ]; then
60+
# kill $(cat backend.pid) || true
61+
# rm backend.pid
62+
# fi
6363

64-
- uses: actions/upload-artifact@v4
65-
if: ${{ !cancelled() }}
66-
with:
67-
name: playwright-report-samples
68-
path: src/frontend/playwright-report/
69-
retention-days: 30
64+
# - uses: actions/upload-artifact@v4
65+
# if: ${{ !cancelled() }}
66+
# with:
67+
# name: playwright-report-samples
68+
# path: src/frontend/playwright-report/
69+
# retention-days: 30

src/.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -403,7 +403,7 @@ FodyWeavers.xsd
403403
**/.idea/*
404404

405405

406-
*\bin\Debug\
406+
**/bin/Debug/
407407

408408
# Possible Playwright test results in root folder
409409
test-results/
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# Ivy Framework Weekly Notes - Week of 2026-06-03
2+
3+
> [!NOTE]
4+
> We usually release on Fridays every week. Sign up on [https://ivy.app/](https://ivy.app/auth/sign-up) to get release notes directly to your inbox.
5+
6+
## New Features
7+
8+
### Activity Heatmap Builder API
9+
We have introduced a powerful new `ActivityHeatmapBuilder<TSource>` to simplify binding and aggregating structured data sources into a GitHub-style activity calendar. Instead of manually constructing arrays of `Activity` records, you can now use fluent builder methods to perform server-side grouping and aggregation.
10+
11+
Key capabilities include:
12+
- **Fluent Aggregation**: Support for standard aggregation metrics via `ToActivityHeatmap` (e.g., Sum, Count, Average, Min, Max).
13+
- **Auto-detected Granularity**: Automatically groups timestamps into daily or hourly calendar cells.
14+
- **Hourly Granularity**: Full support for hourly interval rendering (`ActivityInterval.Hourly`), displaying activity distributions across hours of the day.
15+
16+
#### Example Usage
17+
```csharp
18+
using Ivy;
19+
using Ivy.Widgets.ActivityHeatmap;
20+
21+
public class MyHeatmapApp : ViewBase
22+
{
23+
private IQueryable<UserAction> _actions;
24+
25+
public override object Build() =>
26+
_actions.ToActivityHeatmap(
27+
dimension: action => action.Timestamp,
28+
measure: action => action.PayloadSize
29+
)
30+
.ColorScheme(Colors.Emerald)
31+
.ShowTooltip(true)
32+
.ValueLabel("Bytes Transferred")
33+
.OnDayClick(action => {
34+
Console.WriteLine($"Day clicked: {action.Date}, Value: {action.Value}");
35+
});
36+
}
37+
```
38+
39+
## Bug Fixes and Improvements
40+
41+
### Desktop Window Icon Extraction Console Noise
42+
Removed redundant console debug logs generated when extracting embedded window icons in `DesktopWindow.cs` (#4559), resulting in cleaner startup logs for desktop-deployed applications.
43+
44+
### Activity Heatmap Pivot Aggregations
45+
Fixed an issue where multiple timestamps falling on the same day/hour cell were improperly flattened. The builder now groups pivots by granular cell timestamps before performing the selected aggregation (Average/Min/Max/Count), and eliminates duplicate date entries in the data grid.
46+
47+
### Markdown Spacings
48+
Resolved a spacing bug in `MarkdownRenderer.tsx` that caused incorrect layout gaps when rendering nested media elements (like images or videos inside list items or customized block layouts).

src/Ivy.Agent.EfQuery.Test/Ivy.Agent.EfQuery.Test.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@
1212
<PrivateAssets>all</PrivateAssets>
1313
</PackageReference>
1414
<PackageReference Include="Microsoft.Extensions.AI.OpenAI" Version="10.4.1" />
15-
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="10.0.5" />
16-
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.5" />
15+
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="10.0.9" />
16+
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.9" />
1717
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
18-
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="10.0.5" />
19-
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="10.0.5" />
18+
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="10.0.9" />
19+
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="10.0.9" />
2020
<PackageReference Include="xunit" Version="2.9.3" />
2121
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.5">
2222
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>

src/Ivy.Agent.EfQuery/Ivy.Agent.EfQuery.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
<ItemGroup>
1313
<PackageReference Include="Microsoft.Extensions.AI" Version="10.4.1" />
1414
<PackageReference Include="Microsoft.Extensions.AI.Abstractions" Version="10.4.1" />
15-
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="10.0.5" />
16-
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="10.0.5" />
15+
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="10.0.9" />
16+
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="10.0.9" />
1717
<PackageReference Include="System.Security.Cryptography.Xml" Version="10.0.7" />
1818
</ItemGroup>
1919
<ItemGroup>

src/Ivy.Agent.Filter.Eval.Console/Ivy.Agent.Filter.Eval.Console.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
1+
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
44
<OutputType>Exe</OutputType>
@@ -10,9 +10,9 @@
1010

1111
<ItemGroup>
1212
<PackageReference Include="Microsoft.Extensions.AI.OpenAI" Version="10.4.1" />
13-
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="10.0.5" />
14-
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="10.0.5" />
15-
<PackageReference Include="Microsoft.Extensions.Hosting" Version="10.0.5" />
13+
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="10.0.9" />
14+
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="10.0.9" />
15+
<PackageReference Include="Microsoft.Extensions.Hosting" Version="10.0.9" />
1616
<PackageReference Include="Spectre.Console.Cli" Version="0.53.1" />
1717
<PackageReference Include="YamlDotNet" Version="16.3.0" />
1818
</ItemGroup>

src/Ivy.Agent.Filter.Tests/Ivy.Agent.Filter.Tests.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
<PrivateAssets>all</PrivateAssets>
1515
</PackageReference>
1616
<PackageReference Include="Microsoft.Extensions.AI.OpenAI" Version="10.4.1" />
17-
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="10.0.5" />
18-
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.5" />
17+
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="10.0.9" />
18+
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.9" />
1919
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
2020
<PackageReference Include="xunit" Version="2.9.3" />
2121
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.5">

src/Ivy.Agent.Filter/Ivy.Agent.Filter.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
<PackageReference Include="Google.Protobuf" Version="3.33.2" />
3939
<PackageReference Include="Microsoft.Extensions.AI" Version="10.4.1" />
4040
<PackageReference Include="Microsoft.Extensions.AI.Abstractions" Version="10.4.1" />
41-
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.5" />
41+
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.9" />
4242
<PackageReference Include="YamlDotNet" Version="16.3.0" />
4343
</ItemGroup>
4444

0 commit comments

Comments
 (0)