<feed xmlns='http://www.w3.org/2005/Atom'>
<title>website/backend, branch ops/cloudflare-analytics</title>
<subtitle>The site of tala.run: a Vue frontend and an ASP.NET Core API.</subtitle>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/website/'/>
<entry>
<title>Serve the site API from ASP.NET Core 10</title>
<updated>2026-10-15T14:36:58+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-15T14:36:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/website/commit/?id=9d1b19bc01d5d3d08e3528d69924a86e7e2bfc2a'/>
<id>9d1b19bc01d5d3d08e3528d69924a86e7e2bfc2a</id>
<content type='text'>
The language website ran a Spring Boot application on JVM 25 for two
endpoints, and it was the only JVM on the server: a quarter of a
gigabyte of resident memory for /api/v1/site and /health. The server
already runs ASP.NET Core 10 for Progmaweb.

The API is now Progmasoft.Tala.Website.Api, a minimal ASP.NET Core 10
application under the namespace Progmasoft.Tala.Website. It answers as
before: /api/v1/site returns the site's own state as the same JSON,
POST is not allowed there, /health answers with an empty 200, and every
other path is 404. It listens on 127.0.0.1, port 5086 unless PORT says
otherwise, as the Spring process did, so Nginx is unchanged.

- Progmasoft.Tala.Website.slnx, Directory.Build.props and global.json
  set up the solution with warnings as errors, documentation comments
  required and NuGet lock files.
- Progmasoft.Tala.Website.Api.Tests runs the endpoints in an in-memory
  host with xUnit v3 on Microsoft.Testing.Platform.
- ops/systemd/tala-site-api.service runs the published DLL on the shared
  runtime from /srv/xsharp/website/current/site-api, with the hardening
  of the unit it replaces.
- CI builds, tests, publishes and reports coverage with dotnet; CodeQL
  analyzes C# instead of Kotlin; Renovate watches NuGet instead of
  Gradle.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The language website ran a Spring Boot application on JVM 25 for two
endpoints, and it was the only JVM on the server: a quarter of a
gigabyte of resident memory for /api/v1/site and /health. The server
already runs ASP.NET Core 10 for Progmaweb.

The API is now Progmasoft.Tala.Website.Api, a minimal ASP.NET Core 10
application under the namespace Progmasoft.Tala.Website. It answers as
before: /api/v1/site returns the site's own state as the same JSON,
POST is not allowed there, /health answers with an empty 200, and every
other path is 404. It listens on 127.0.0.1, port 5086 unless PORT says
otherwise, as the Spring process did, so Nginx is unchanged.

- Progmasoft.Tala.Website.slnx, Directory.Build.props and global.json
  set up the solution with warnings as errors, documentation comments
  required and NuGet lock files.
- Progmasoft.Tala.Website.Api.Tests runs the endpoints in an in-memory
  host with xUnit v3 on Microsoft.Testing.Platform.
- ops/systemd/tala-site-api.service runs the published DLL on the shared
  runtime from /srv/xsharp/website/current/site-api, with the hardening
  of the unit it replaces.
- CI builds, tests, publishes and reports coverage with dotnet; CodeQL
  analyzes C# instead of Kotlin; Renovate watches NuGet instead of
  Gradle.
</pre>
</div>
</content>
</entry>
<entry>
<title>Call the language Tala in the API, the documents and the templates</title>
<updated>2026-10-12T03:16:43+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-12T03:16:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/website/commit/?id=1bb833c4b98f5cd7343ae7b227c0fc39ee44deca'/>
<id>1bb833c4b98f5cd7343ae7b227c0fc39ee44deca</id>
<content type='text'>
The pages were renamed; the rest of the repository still said Visual X#:
- the site API answered with the name Visual X#, and its test expected it;
- the documents, the issue and pull request templates, the support address
  and the name of the code scanning configuration.

The documents also said that a left-to-right mark follows the name of the
language in Hebrew text. That was for the `#` of the old name; the sentence
now speaks of names that end in a symbol, such as C#.

Not changed: host names, paths and unit names on the server, the name of the
backend artifact, the Kotlin package of the backend, and the keys of the
browser storage.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The pages were renamed; the rest of the repository still said Visual X#:
- the site API answered with the name Visual X#, and its test expected it;
- the documents, the issue and pull request templates, the support address
  and the name of the code scanning configuration.

The documents also said that a left-to-right mark follows the name of the
language in Hebrew text. That was for the `#` of the old name; the sentence
now speaks of names that end in a symbol, such as C#.

Not changed: host names, paths and unit names on the server, the name of the
backend artifact, the Kotlin package of the backend, and the keys of the
browser storage.
</pre>
</div>
</content>
</entry>
<entry>
<title>Record the checksums the Dokka plugin classpath needs on a clean machine</title>
<updated>2026-10-03T10:44:56+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-03T10:44:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/website/commit/?id=35d4b930ceea4353650be59372dcfe9ce0972788'/>
<id>35d4b930ceea4353650be59372dcfe9ce0972788</id>
<content type='text'>
The backend job failed dependency verification for three metadata files of
the build script classpath: jackson-base 2.15.3 and junit-bom 5.9.2. The
verification metadata had been written from a warm local cache, where
Gradle did not download those files again and so did not record them.

The metadata is regenerated with --refresh-dependencies, which resolves
everything as a clean machine does. Only the missing entries are added.

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 job failed dependency verification for three metadata files of
the build script classpath: jackson-base 2.15.3 and junit-bom 5.9.2. The
verification metadata had been written from a warm local cache, where
Gradle did not download those files again and so did not record them.

The metadata is regenerated with --refresh-dependencies, which resolves
everything as a clean machine does. Only the missing entries are added.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Add Hebrew, follow the browser language, and gate the backend docs</title>
<updated>2026-10-03T10:00:49+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-03T10:00:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/website/commit/?id=3173a6a2bfe1975542c8c9cc0707071daa55b587'/>
<id>3173a6a2bfe1975542c8c9cc0707071daa55b587</id>
<content type='text'>
Language

Hebrew (he-IL) joins English, German and Russian on the language site, in
the page metadata and in the list the backend reports.

A visitor who has not chosen a language now starts in the language of their
browser: the first preferred language that is published, compared by primary
language, with `iw` accepted as the former code for Hebrew. A browser that
prefers no published language gets en-US. A choice made in the menu is kept
under a new storage key and always wins. The earlier key was written on every
visit, so it could not tell a choice from the former English default; it is
no longer read, which resets an earlier explicit choice once.

Hebrew does not mirror the page. The layout, the navigation and code keep
their left-to-right arrangement; only text follows the language. The onward
arrow points left in Hebrew, and a left-to-right mark keeps "Visual X#"
intact inside right-to-left text.

The forum placeholder no longer has a language menu. It shows its one notice
in the language of the browser, with English as the fallback, and stores no
language. Its assets get a new cache key.

The single documentation column may now shrink below its widest code line.
Before, a long command widened the page on narrow screens, which cut
right-aligned text off.

The Hebrew text was not reviewed by a native speaker.

Documentation gate

The backend applies Dokka 2.2.0 with reportUndocumented and failOnWarning,
its public declarations have KDoc, and CI runs dokkaGenerate. The dependency
lock file and the verification metadata include the new artifacts.

Verified locally: frontend tests, type check, prettier and build; backend
test, bootJar and dokkaGenerate, which was also shown to fail on an
undocumented declaration; the Hebrew pages in a browser. The forum page was
exercised by its tests only.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Language

Hebrew (he-IL) joins English, German and Russian on the language site, in
the page metadata and in the list the backend reports.

A visitor who has not chosen a language now starts in the language of their
browser: the first preferred language that is published, compared by primary
language, with `iw` accepted as the former code for Hebrew. A browser that
prefers no published language gets en-US. A choice made in the menu is kept
under a new storage key and always wins. The earlier key was written on every
visit, so it could not tell a choice from the former English default; it is
no longer read, which resets an earlier explicit choice once.

Hebrew does not mirror the page. The layout, the navigation and code keep
their left-to-right arrangement; only text follows the language. The onward
arrow points left in Hebrew, and a left-to-right mark keeps "Visual X#"
intact inside right-to-left text.

The forum placeholder no longer has a language menu. It shows its one notice
in the language of the browser, with English as the fallback, and stores no
language. Its assets get a new cache key.

The single documentation column may now shrink below its widest code line.
Before, a long command widened the page on narrow screens, which cut
right-aligned text off.

The Hebrew text was not reviewed by a native speaker.

Documentation gate

The backend applies Dokka 2.2.0 with reportUndocumented and failOnWarning,
its public declarations have KDoc, and CI runs dokkaGenerate. The dependency
lock file and the verification metadata include the new artifacts.

Verified locally: frontend tests, type check, prettier and build; backend
test, bootJar and dokkaGenerate, which was also shown to fail on an
undocumented declaration; the Hebrew pages in a browser. The forum page was
exercised by its tests only.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add Russian to the language site and the forum placeholder</title>
<updated>2026-10-02T22:43:43+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-02T22:43:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/website/commit/?id=f25c01f1d173b9e206565207472b58ca51f90803'/>
<id>f25c01f1d173b9e206565207472b58ca51f90803</id>
<content type='text'>
Russian (ru-RU) is the third locale of the language site: the shell, the
home, overview and getting-started pages, and the page metadata are fully
translated, and the language menu offers it. The documentation sidebar reads
its labels from the page messages instead of a two-way locale test, and the
stored preference is accepted only when it names a supported locale.

The forum placeholder gets the same three languages. Its language control
is now a menu instead of a two-state button, and an unknown stored or
selected value keeps the current language.

The site API lists the new locale. Verified locally: prettier, the frontend
tests, vue-tsc and the Vite build, the backend tests, and a browser run of
the home and overview pages in Russian.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Russian (ru-RU) is the third locale of the language site: the shell, the
home, overview and getting-started pages, and the page metadata are fully
translated, and the language menu offers it. The documentation sidebar reads
its labels from the page messages instead of a two-way locale test, and the
stored preference is accepted only when it names a supported locale.

The forum placeholder gets the same three languages. Its language control
is now a menu instead of a two-state button, and an unknown stored or
selected value keeps the current language.

The site API lists the new locale. Verified locally: prettier, the frontend
tests, vue-tsc and the Vite build, the backend tests, and a browser run of
the home and overview pages in Russian.
</pre>
</div>
</content>
</entry>
<entry>
<title>Complete Gradle dependency verification metadata</title>
<updated>2026-09-27T22:27:47+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-09-27T22:27:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/website/commit/?id=136cc768d35354fbef7847d5f230a0d50308c248'/>
<id>136cc768d35354fbef7847d5f230a0d50308c248</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Pin website dependencies and isolate Codecov credentials</title>
<updated>2026-09-27T22:10:53+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-09-27T22:10:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/website/commit/?id=252ca8eae71faf1e4e4d00dc7a0489998df12f04'/>
<id>252ca8eae71faf1e4e4d00dc7a0489998df12f04</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add website code scanning, dependency updates and frontend and Kotlin coverage</title>
<updated>2026-09-26T13:57:14+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-09-26T13:57:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/website/commit/?id=5d960b7b8a4164964e28e299d2b66cd795badf0a'/>
<id>5d960b7b8a4164964e28e299d2b66cd795badf0a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Rebuild Visual XSharp language website with Vue and Kotlin Spring; add leopard identity, bilingual docs, forum placeholder, site-only API, strict CSP, 21 frontend tests, deployment runbooks, and preserve legacy ViGet redirect during maintenance</title>
<updated>2026-09-25T21:30:28+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-09-25T21:30:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/website/commit/?id=fdc9a91dec3433ebc3eae480cf6b57153d0972fb'/>
<id>fdc9a91dec3433ebc3eae480cf6b57153d0972fb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Separate ViGet from Progmasoft Account infrastructure</title>
<updated>2026-09-07T18:30:40+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-09-07T18:30:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/website/commit/?id=c0cd5f4699e44899956c19176ca47ede27a21a8f'/>
<id>c0cd5f4699e44899956c19176ca47ede27a21a8f</id>
<content type='text'>
Move the Progmasoft mail operations baseline to its owning Progmaweb repository, remove the retired Astro account UI and duplicate identity backend, keep only the ViGet health boundary, add canonical sitemap signals, strengthen dependency CI, and adopt Patent Grant 1.1 across project-owned files.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Move the Progmasoft mail operations baseline to its owning Progmaweb repository, remove the retired Astro account UI and duplicate identity backend, keep only the ViGet health boundary, add canonical sitemap signals, strengthen dependency CI, and adopt Patent Grant 1.1 across project-owned files.
</pre>
</div>
</content>
</entry>
</feed>
