<feed xmlns='http://www.w3.org/2005/Atom'>
<title>progmaweb, branch ci/docfx</title>
<subtitle>The site and account service of Progmasoft: a Next.js frontend and an ASP.NET Core API.</subtitle>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/progmaweb/'/>
<entry>
<title>Merge remote-tracking branch 'origin/main' into ci/docfx</title>
<updated>2026-10-03T12:42:08+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-03T12:42:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/progmaweb/commit/?id=549b164464855ae3605c03b58497f91d26555418'/>
<id>549b164464855ae3605c03b58497f91d26555418</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #16 from Progmasoft/feature/hebrew-locale</title>
<updated>2026-10-03T12:41:40+00:00</updated>
<author>
<name>Leitwolf</name>
</author>
<published>2026-10-03T12:41:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/progmaweb/commit/?id=282b015e23474c3bb78fe303af627248f5bd2d7a'/>
<id>282b015e23474c3bb78fe303af627248f5bd2d7a</id>
<content type='text'>
Add Hebrew and follow the browser language by default</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add Hebrew and follow the browser language by default</pre>
</div>
</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'origin/main' into ci/docfx</title>
<updated>2026-10-03T10:48:29+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-03T10:48:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/progmaweb/commit/?id=715953aeaa98ba977e694e8897ccd40151ee0ac0'/>
<id>715953aeaa98ba977e694e8897ccd40151ee0ac0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'origin/main' into feature/hebrew-locale</title>
<updated>2026-10-03T10:48:23+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-03T10:48:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/progmaweb/commit/?id=328ef42c31b5127b8e5b24e00bbeca5360acd2e8'/>
<id>328ef42c31b5127b8e5b24e00bbeca5360acd2e8</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #18 from Progmasoft/ci/audit-braces-exception</title>
<updated>2026-10-03T10:48:18+00:00</updated>
<author>
<name>Leitwolf</name>
</author>
<published>2026-10-03T10:48:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/progmaweb/commit/?id=7b51cee94448139988a4843eb5598d69016451bf'/>
<id>7b51cee94448139988a4843eb5598d69016451bf</id>
<content type='text'>
Accept the unfixable braces advisory in the dependency audit</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Accept the unfixable braces advisory in the dependency audit</pre>
</div>
</content>
</entry>
<entry>
<title>Accept the unfixable braces advisory in the dependency audit</title>
<updated>2026-10-03T10:45:34+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-03T10:45:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/progmaweb/commit/?id=7d89667081342ee39e41e1ad948a6a5bf3a31275'/>
<id>7d89667081342ee39e41e1ad948a6a5bf3a31275</id>
<content type='text'>
The dependency audit fails on every branch since GHSA-vfj7-8cjw-p6xm was
published: braces &lt;= 3.0.3 can exhaust the stack on deeply nested brace
patterns. There is no fixed release; 3.0.3 is the latest version, and the
latest fast-glob and micromatch still depend on it.

braces is reached only through the lint toolchain (eslint-config-next &gt;
@next/eslint-plugin-next &gt; fast-glob &gt; micromatch). It is not part of the
built or deployed application, and it only receives the glob patterns of
this repository.

The audit now ignores this one advisory by its identifier. Every other
advisory of high severity still fails the check, and the entry carries the
reason and the condition for removing it.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The dependency audit fails on every branch since GHSA-vfj7-8cjw-p6xm was
published: braces &lt;= 3.0.3 can exhaust the stack on deeply nested brace
patterns. There is no fixed release; 3.0.3 is the latest version, and the
latest fast-glob and micromatch still depend on it.

braces is reached only through the lint toolchain (eslint-config-next &gt;
@next/eslint-plugin-next &gt; fast-glob &gt; micromatch). It is not part of the
built or deployed application, and it only receives the glob patterns of
this repository.

The audit now ignores this one advisory by its identifier. Every other
advisory of high severity still fails the check, and the entry carries the
reason and the condition for removing it.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Revise the Hebrew wording</title>
<updated>2026-10-03T10:38:29+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-03T10:38:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/progmaweb/commit/?id=ef8875267978042cf91a16062630ec583cac8eba'/>
<id>ef8875267978042cf91a16062630ec583cac8eba</id>
<content type='text'>
A second pass over the Hebrew text replaced words a Hebrew reader would
misread or that are not used for the concept:

- "native" was rendered with the word for "local"; it is now machine code
  for output and the Latin term for the native parts of the toolchain.
- Typed boundaries, the ecosystem, the dedicated account area and the
  first-party infrastructure use the usual terms instead of literal ones.
- The greetings and the new-visitor prompt no longer address one gender.

The text is still not reviewed by a native speaker.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A second pass over the Hebrew text replaced words a Hebrew reader would
misread or that are not used for the concept:

- "native" was rendered with the word for "local"; it is now machine code
  for output and the Latin term for the native parts of the toolchain.
- Typed boundaries, the ecosystem, the dedicated account area and the
  first-party infrastructure use the usual terms instead of literal ones.
- The greetings and the new-visitor prompt no longer address one gender.

The text is still not reviewed by a native speaker.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add a DocFX documentation gate for the API</title>
<updated>2026-10-03T10:04:35+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-03T10:04:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/progmaweb/commit/?id=ca41877fafbac6cffc3e78db1d3306112e8acc60'/>
<id>ca41877fafbac6cffc3e78db1d3306112e8acc60</id>
<content type='text'>
The backend workflow now builds the API reference with DocFX and treats
every warning as an error, so an unresolved reference or a broken link
fails the check.

- docs/api holds the DocFX project: it reads apps/api/Progmaweb.Api.csproj
  and includes internal members, because the service is an application and
  most of its types are internal.
- .config/dotnet-tools.json pins docfx 2.81.0, so CI and a local run use the
  same version through `dotnet tool restore`.
- The workflow also runs when the DocFX project or the tool manifest change.
- `just api-docs` runs the same two commands locally.
- The generated site and metadata are ignored.

The gate does not require documentation comments: the API has none yet, and
DocFX does not report an undocumented member. Requiring them is a separate
change to the C# sources.

Verified locally with docfx 2.81.0 on the .NET 10 SDK: the build passes with
no warnings, and a broken link in the overview page makes it fail.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The backend workflow now builds the API reference with DocFX and treats
every warning as an error, so an unresolved reference or a broken link
fails the check.

- docs/api holds the DocFX project: it reads apps/api/Progmaweb.Api.csproj
  and includes internal members, because the service is an application and
  most of its types are internal.
- .config/dotnet-tools.json pins docfx 2.81.0, so CI and a local run use the
  same version through `dotnet tool restore`.
- The workflow also runs when the DocFX project or the tool manifest change.
- `just api-docs` runs the same two commands locally.
- The generated site and metadata are ignored.

The gate does not require documentation comments: the API has none yet, and
DocFX does not report an undocumented member. Requiring them is a separate
change to the C# sources.

Verified locally with docfx 2.81.0 on the .NET 10 SDK: the build passes with
no warnings, and a broken link in the overview page makes it fail.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Add Hebrew and follow the browser language by default</title>
<updated>2026-10-03T10:00:20+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-03T10:00:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/progmaweb/commit/?id=5a321c2eb1c691bdb7cc96bbab1e28b88ef92aab'/>
<id>5a321c2eb1c691bdb7cc96bbab1e28b88ef92aab</id>
<content type='text'>
Hebrew (he-IL) joins English, German and Russian with a complete message
tree and its own entry in the language menu.

A visitor who has not chosen a language now gets the language their browser
prefers. The Accept-Language header is negotiated by quality, only the
primary language is compared, and `iw` is accepted as the former code for
Hebrew. A browser that prefers no published language gets en-US, as before.
A language chosen in the menu is still stored in the cookie and always wins.

Hebrew does not mirror the page. The layout, the navigation and code keep
their left-to-right arrangement; only text follows the language. Blocks of
prose run right to left, short pieces such as links and buttons take the
direction of their own first letter, and inputs and code stay left to right.
The onward arrow points left in Hebrew, and a left-to-right mark keeps
"Visual X#" intact inside right-to-left text.

The Hebrew text was not reviewed by a native speaker.

Verified locally: node tests, type check, lint, prettier and a production
build; language selection per Accept-Language header against the dev server;
the Hebrew home and registration pages in a browser.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Hebrew (he-IL) joins English, German and Russian with a complete message
tree and its own entry in the language menu.

A visitor who has not chosen a language now gets the language their browser
prefers. The Accept-Language header is negotiated by quality, only the
primary language is compared, and `iw` is accepted as the former code for
Hebrew. A browser that prefers no published language gets en-US, as before.
A language chosen in the menu is still stored in the cookie and always wins.

Hebrew does not mirror the page. The layout, the navigation and code keep
their left-to-right arrangement; only text follows the language. Blocks of
prose run right to left, short pieces such as links and buttons take the
direction of their own first letter, and inputs and code stay left to right.
The onward arrow points left in Hebrew, and a left-to-right mark keeps
"Visual X#" intact inside right-to-left text.

The Hebrew text was not reviewed by a native speaker.

Verified locally: node tests, type check, lint, prettier and a production
build; language selection per Accept-Language header against the dev server;
the Hebrew home and registration pages in a browser.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #15 from Progmasoft/feature/instant-locale-switch</title>
<updated>2026-10-03T02:59:21+00:00</updated>
<author>
<name>Leitwolf</name>
</author>
<published>2026-10-03T02:59:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/progmaweb/commit/?id=8ba8d26ec4e6e900275fd5cd94e37a7aac701a1f'/>
<id>8ba8d26ec4e6e900275fd5cd94e37a7aac701a1f</id>
<content type='text'>
Switch language in place and add Russian</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Switch language in place and add Russian</pre>
</div>
</content>
</entry>
</feed>
