Skip to content

Commit b34a01d

Browse files
authored
Merge branch 'main' into repo-assist/fix-issue-1251-http-response-default-utf8-rebase-9c637d7c2e08fb9f
2 parents 4bd675c + cf73a9c commit b34a01d

37 files changed

Lines changed: 2877 additions & 599 deletions

.github/aw/actions-lock.json

Lines changed: 41 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,52 @@
55
"version": "v6.0.2",
66
"sha": "de0fac2e4500dabe0009e67214ff5f5447ce83dd"
77
},
8-
"actions/github-script@v8": {
8+
"actions/github-script@v9.0.0": {
99
"repo": "actions/github-script",
10-
"version": "v8",
11-
"sha": "ed597411d8f924073f98dfc5c65a23a2325f34cd"
10+
"version": "v9.0.0",
11+
"sha": "3a2844b7e9c422d3c10d287c895573f7108da1b3"
1212
},
13-
"github/gh-aw-actions/setup@v0.66.1": {
13+
"github/gh-aw-actions/setup@v0.71.5": {
1414
"repo": "github/gh-aw-actions/setup",
15-
"version": "v0.66.1",
16-
"sha": "73ae9ce231580f337133352d321d42b6bf54b6a9"
15+
"version": "v0.71.5",
16+
"sha": "b8068426813005612b960b5ab0b8bd2c27142323"
1717
},
18-
"github/gh-aw/actions/setup@v0.66.1": {
18+
"github/gh-aw/actions/setup@v0.71.5": {
1919
"repo": "github/gh-aw/actions/setup",
20-
"version": "v0.66.1",
21-
"sha": "d688a4a5fa8aa96ad18fa13f0b187c38548a275c"
20+
"version": "v0.71.5",
21+
"sha": "19ac811a4a85389c33b15128e1d7b7d4507f814a"
22+
}
23+
},
24+
"containers": {
25+
"ghcr.io/github/gh-aw-firewall/agent:0.25.20": {
26+
"image": "ghcr.io/github/gh-aw-firewall/agent:0.25.20",
27+
"digest": "sha256:9161f2415a3306a344aca34dd671ee69f122317e0a512e66dc64c94b9c508682",
28+
"pinned_image": "ghcr.io/github/gh-aw-firewall/agent:0.25.20@sha256:9161f2415a3306a344aca34dd671ee69f122317e0a512e66dc64c94b9c508682"
29+
},
30+
"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.20": {
31+
"image": "ghcr.io/github/gh-aw-firewall/api-proxy:0.25.20",
32+
"digest": "sha256:6971639e381e82e45134bcd333181f456df3a52cd6f818a3e3d6de068ff91519",
33+
"pinned_image": "ghcr.io/github/gh-aw-firewall/api-proxy:0.25.20@sha256:6971639e381e82e45134bcd333181f456df3a52cd6f818a3e3d6de068ff91519"
34+
},
35+
"ghcr.io/github/gh-aw-firewall/squid:0.25.20": {
36+
"image": "ghcr.io/github/gh-aw-firewall/squid:0.25.20",
37+
"digest": "sha256:5411d903f73ee597e6a084971c2adef3eb0bd405910df3ed7bf5e3d6bd58a236",
38+
"pinned_image": "ghcr.io/github/gh-aw-firewall/squid:0.25.20@sha256:5411d903f73ee597e6a084971c2adef3eb0bd405910df3ed7bf5e3d6bd58a236"
39+
},
40+
"ghcr.io/github/gh-aw-mcpg:v0.2.19": {
41+
"image": "ghcr.io/github/gh-aw-mcpg:v0.2.19",
42+
"digest": "sha256:44d4d8de7e6c37aaea484eba489940c52df6a0b54078ddcbc9327592d5b3c3dd",
43+
"pinned_image": "ghcr.io/github/gh-aw-mcpg:v0.2.19@sha256:44d4d8de7e6c37aaea484eba489940c52df6a0b54078ddcbc9327592d5b3c3dd"
44+
},
45+
"ghcr.io/github/github-mcp-server:v0.32.0": {
46+
"image": "ghcr.io/github/github-mcp-server:v0.32.0",
47+
"digest": "sha256:2763823c63bcca718ce53850a1d7fcf2f501ec84028394f1b63ce7e9f4f9be28",
48+
"pinned_image": "ghcr.io/github/github-mcp-server:v0.32.0@sha256:2763823c63bcca718ce53850a1d7fcf2f501ec84028394f1b63ce7e9f4f9be28"
49+
},
50+
"node:lts-alpine": {
51+
"image": "node:lts-alpine",
52+
"digest": "sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f",
53+
"pinned_image": "node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"
2254
}
2355
}
2456
}

.github/workflows/pull-requests.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ jobs:
1313
timeout-minutes: 10
1414
steps:
1515
- uses: actions/checkout@v6
16-
- name: Setup .NET 10
16+
- name: Setup .NET
1717
uses: actions/setup-dotnet@v5
1818
with:
19-
dotnet-version: 10.0.201
19+
dotnet-version-file: global.json
2020
- name: Cache NuGet packages
2121
uses: actions/cache@v5
2222
with:
@@ -37,10 +37,10 @@ jobs:
3737
timeout-minutes: 40
3838
steps:
3939
- uses: actions/checkout@v6
40-
- name: Setup .NET 10
40+
- name: Setup .NET
4141
uses: actions/setup-dotnet@v5
4242
with:
43-
dotnet-version: 10.0.201
43+
dotnet-version-file: global.json
4444
- name: Cache NuGet packages
4545
uses: actions/cache@v5
4646
with:
@@ -63,10 +63,10 @@ jobs:
6363
timeout-minutes: 40
6464
steps:
6565
- uses: actions/checkout@v6
66-
- name: Setup .NET 10
66+
- name: Setup .NET
6767
uses: actions/setup-dotnet@v5
6868
with:
69-
dotnet-version: 10.0.201
69+
dotnet-version-file: global.json
7070
- name: Cache NuGet packages
7171
uses: actions/cache@v5
7272
with:

.github/workflows/push-master.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ jobs:
1717

1818
steps:
1919
- uses: actions/checkout@v6
20-
- name: Setup .NET 10
20+
- name: Setup .NET
2121
uses: actions/setup-dotnet@v5
2222
with:
23-
dotnet-version: 10.0.201
23+
dotnet-version-file: global.json
2424
- name: Cache NuGet packages
2525
uses: actions/cache@v5
2626
with:
@@ -45,7 +45,7 @@ jobs:
4545
run: ls -r bin
4646
- name: Obtain NuGet key
4747
# this hash is v1.1.0
48-
uses: NuGet/login@d22cc5f58ff5b88bf9bd452535b4335137e24544
48+
uses: NuGet/login@8d196754b4036150537f80ac539e15c2f1028841
4949
id: login
5050
with:
5151
user: dsyme

.github/workflows/repo-assist.lock.yml

Lines changed: 813 additions & 444 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.github/workflows/repo-assist.md

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ description: |
1414
Always polite, constructive, and mindful of the project's goals.
1515
1616
on:
17-
schedule: daily
17+
schedule: weekly
1818
workflow_dispatch:
1919
slash_command:
2020
name: repo-assist
@@ -186,7 +186,7 @@ steps:
186186
json.dump(result, f, indent=2)
187187
EOF
188188
189-
source: githubnext/agentics/workflows/repo-assist.md@7ee2b60744abf71b985bead4599640f165edcd93
189+
source: githubnext/agentics/workflows/repo-assist.md@fc4ab36dedc44e2a1cdc195cecce262f06c81230
190190
---
191191

192192
# Repo Assist
@@ -230,7 +230,20 @@ Read memory at the **start** of every run; update it at the **end**.
230230

231231
Each run, the deterministic pre-step collects live repo data (open issue count, unlabelled issue count, open Repo Assist PRs, other open PRs), computes a **weighted probability** for each task, and selects **two tasks** for this run using a seeded random draw. The weights and selected tasks are printed in the workflow logs. You will find the selection in `/tmp/gh-aw/task_selection.json`.
232232

233-
**Read the task selection**: at the start of your run, read `/tmp/gh-aw/task_selection.json` and confirm the two selected tasks in your opening reasoning. Execute **those two tasks** (plus the mandatory Task 11). If there's really nothing to do for a selected task, do not force yourself to do it - try any other different task instead that looks most useful.
233+
**Read the task selection**: at the start of your run, read `/tmp/gh-aw/task_selection.json` and confirm the two selected tasks in your opening reasoning. Execute **those two tasks** (plus the mandatory Task 11). If a selected task is not applicable to the current repo state, substitute its fallback task rather than doing nothing. Record the substitution in the Task 11 run history entry.
234+
235+
| Selected task | Not applicable when… | Fallback |
236+
|---|---|---|
237+
| Task 1 (Issue Labelling) | All open issues already labelled | Task 2 |
238+
| Task 2 (Issue Comment) | All open issues already have a recent Repo Assist comment and no new human activity | Task 1 |
239+
| Task 3 (Issue Fix) | No issues labelled `bug`, `help wanted`, or `good first issue` that are fixable | Task 2 |
240+
| Task 4 (Engineering Investments) | No actionable dependency updates, CI gaps, or build improvements identifiable | Task 5 |
241+
| Task 5 (Coding Improvements) | No clearly beneficial, low-risk improvements identifiable after reviewing the codebase | Task 9 |
242+
| Task 6 (Maintain Repo Assist PRs) | No open Repo Assist PRs exist | Task 2 |
243+
| Task 7 (Stale PR Nudges) | No non-Repo-Assist PRs stale 14+ days, or all already nudged | Task 2 |
244+
| Task 8 (Performance Improvements) | No measurable performance opportunities identifiable | Task 9 |
245+
| Task 9 (Testing Improvements) | Test coverage is already comprehensive and no gaps identified | Task 5 |
246+
| Task 10 (Take Repo Forward) | In-progress work from memory is blocked or complete; no valuable next step | Task 2 |
234247

235248
The weighting scheme naturally adapts to repo state:
236249

RELEASE_NOTES.md

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,41 @@
11
# Release Notes
22

3-
## 9.0.0 - Apr 01 2026
3+
## 9.0.0 - May 09 2026
44

55
- Change HTTP response default encoding from ISO-8859-1 to UTF-8 to match `System.Net.Http.HttpClient` behaviour (closes #1251)
66

7+
## 8.1.13 - May 08 2026
8+
9+
- Performance: `HtmlNode.serialize` no longer allocates a temporary `string` on each newline/indentation step; uses `StringBuilder.Append(char, int)` overload directly. `isVoidElement` set is now computed once at module initialisation instead of being re-created on every `HtmlNode.ToString()` call. `HtmlDocument.ToString()` uses a single `StringBuilder` for the whole document instead of `List.map … |> String.Concat`.
10+
11+
## 8.1.12 - Apr 29 2026
12+
13+
- Fix: `JsonValue.WriteTo` now always uses `CultureInfo.InvariantCulture` when serializing `Number` (decimal) values, preventing invalid JSON output (e.g. `1,5` instead of `1.5`) when called with a `TextWriter` configured with a non-English culture.
14+
- Perf: `JsonValue.WriteTo` no longer allocates an intermediate `System.String(' ', n)` per indentation level; spaces are written directly to the writer.
15+
16+
## 8.1.11 - Apr 22 2026
17+
18+
- Code: `HtmlParser` `EmitTag` removes dead code in the `else` branch (the expression `x.HasFormattedParent || x.IsFormattedTag` was always equivalent to `x.HasFormattedParent` since `x.IsFormattedTag` is always `false` in that branch). Uses `name` directly to avoid re-computing `CurrentTagName()` for formatted/script tag checks. Also removes redundant `.ToLowerInvariant()` calls in `IsFormattedTag` and `IsScriptTag` since tag names are already lowercased at read time.
19+
20+
## 8.1.10 - Apr 20 2026
21+
22+
- Performance: `HtmlCharRefs` entity lookup now uses a `Dictionary<string, string>` instead of an F# `Map`, giving O(1) lookups instead of O(log n) for ~2230 HTML named-entity entries. Also avoids a repeated `char[]` allocation in the `TrimEnd` call inside the active pattern.
23+
24+
## 8.1.9 - Apr 18 2026
25+
26+
- Fix: `Caching.hashString` now disposes the `SHA1` instance after use; on .NET 5+ uses `SHA1.HashData` (static, pool-backed) to avoid allocation entirely (PR #1745)
27+
- Fix: WorldBank type provider now waits 2 seconds between HTTP retries, making it resilient to transient 502 errors from the WorldBank API (PR #1749)
28+
- Eng: update `FSharp.TypeProviders.SDK` to latest master (`75ac6119`), pulling in a bug fix for the SDK logger and O(1) field/event/property lookups (PR #1741)
29+
30+
## 8.1.8 - Apr 13 2026
31+
32+
- Code: `NameUtils.niceCamelName` now short-circuits with zero allocations when the result already starts with a lower-case letter; the general case now uses `StringBuilder.Append(string, int, int)` to avoid creating an intermediate `Substring`. `capitalizeFirstLetter` similarly short-circuits when the first letter is already upper-case. Also fixes `Pluralizer` to avoid `Substring(0,1)` in its capitalize path.
33+
- Performance: JSON parser avoids one `Substring` allocation per `\uXXXX` escape by directly indexing into the source string; also uses span-based `Decimal.TryParse`/`Double.TryParse` for number tokens on .NET 8 to avoid a `Substring` allocation per number
34+
35+
## 8.1.7 - Apr 7 2026
36+
37+
- Performance: HTML parser avoids `ToCharArray()` allocations in several code paths: `EmitToAttributeValue` now iterates the substituted string directly; `Cons(char[])` and `Cons(string)` use `StringBuilder.Append` directly; `Pop(count)` uses `Array.init` instead of creating an integer range array; CDATA opening marker no longer creates a temporary `char[]`.
38+
739
## 8.1.6 - Apr 5 2026
840

941
- Performance: `NameUtils.nicePascalName` now writes directly to a `StringBuilder` instead of using lazy sequences and intermediate string allocations per segment; also removes a redundant per-segment `ToCharArray()` call. `NameUtils.trimHtml` no longer allocates an intermediate `char[]` for string iteration.

paket.dependencies

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@ group Test
5555
nuget NUnit3TestAdapter
5656
nuget FsUnit 4.2.0
5757
nuget FsCheck 2.16.6
58-
nuget GitHubActionsTestLogger
58+
nuget GitHubActionsTestLogger 3.0.3
59+
nuget OpenTelemetry.Api >= 1.15.1
5960

6061
group Benchmarks
6162
frameworks: net8.0

paket.lock

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ NUGET
2424
NETStandard.Library.NETFramework (2.0.0-preview2-25405-01)
2525
GITHUB
2626
remote: fsprojects/FSharp.TypeProviders.SDK
27-
src/ProvidedTypes.fs (ce34c1cc71096857b8342f1dedf93391addc9df6)
28-
src/ProvidedTypes.fsi (ce34c1cc71096857b8342f1dedf93391addc9df6)
29-
tests/ProvidedTypesTesting.fs (ce34c1cc71096857b8342f1dedf93391addc9df6)
27+
src/ProvidedTypes.fs (75ac6119896431f6573bfcfb663bac2fe3d3df63)
28+
src/ProvidedTypes.fsi (75ac6119896431f6573bfcfb663bac2fe3d3df63)
29+
tests/ProvidedTypesTesting.fs (75ac6119896431f6573bfcfb663bac2fe3d3df63)
3030
GROUP Benchmarks
3131
RESTRICTION: == net8.0
3232
NUGET
@@ -440,7 +440,7 @@ NUGET
440440
FSharp.Core (>= 5.0.2)
441441
NETStandard.Library (>= 2.0.3)
442442
NUnit (>= 3.13.2 < 3.14)
443-
GitHubActionsTestLogger (3.0.1)
443+
GitHubActionsTestLogger (3.0.3)
444444
Microsoft.ApplicationInsights (3.0)
445445
Azure.Monitor.OpenTelemetry.Exporter (>= 1.6)
446446
Microsoft.Bcl.AsyncInterfaces (10.0.3)
@@ -528,7 +528,7 @@ NUGET
528528
Microsoft.Extensions.Diagnostics.Abstractions (>= 8.0)
529529
Microsoft.Extensions.Logging.Configuration (>= 8.0)
530530
OpenTelemetry.Api.ProviderBuilderExtensions (>= 1.15)
531-
OpenTelemetry.Api (1.15)
531+
OpenTelemetry.Api (1.15.3)
532532
System.Diagnostics.DiagnosticSource (>= 10.0)
533533
OpenTelemetry.Api.ProviderBuilderExtensions (1.15)
534534
Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0)

src/FSharp.Data.Csv.Core/FSharp.Data.Csv.Core.fsproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<PackageIcon>logo.png</PackageIcon>
1010
<!-- always have tailcalls on for design time compiler add-in to allow repo to compile in DEBUG, see https://github.com/fsprojects/FSharp.Data/issues/1410 -->
1111
<Tailcalls>true</Tailcalls>
12-
<IsTrimmable>true</IsTrimmable>
12+
<IsTrimmable Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net6.0'))">true</IsTrimmable>
1313
</PropertyGroup>
1414
<ItemGroup>
1515
<Compile Include="CsvRuntime.fs" />

src/FSharp.Data.Html.Core/FSharp.Data.Html.Core.fsproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22
<Project Sdk="Microsoft.NET.Sdk">
33
<PropertyGroup>
44
<OutputType>Library</OutputType>
5-
<TargetFramework>netstandard2.0</TargetFramework>
5+
<TargetFrameworks>netstandard2.0;net8.0</TargetFrameworks>
66
<OtherFlags>$(OtherFlags) --warnon:1182 --nowarn:10001 --nowarn:44</OtherFlags>
77
<GenerateDocumentationFile>true</GenerateDocumentationFile>
88
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
99
<PackageIcon>logo.png</PackageIcon>
1010
<!-- always have tailcalls on for design time compiler add-in to allow repo to compile in DEBUG, see https://github.com/fsprojects/FSharp.Data/issues/1410 -->
1111
<Tailcalls>true</Tailcalls>
12-
<IsTrimmable>true</IsTrimmable>
12+
<IsTrimmable Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net6.0'))">true</IsTrimmable>
1313
<DefineConstants>$(DefineConstants);HIDE_REPRESENTATION</DefineConstants>
1414
</PropertyGroup>
1515
<ItemGroup>

0 commit comments

Comments
 (0)