<feed xmlns='http://www.w3.org/2005/Atom'>
<title>progmaweb, branch feature/plugin-identity-from-command</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>Anchor the identity patterns at the end of the text</title>
<updated>2026-11-05T23:45:48+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-11-05T23:45:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/progmaweb/commit/?id=4dbeff2eea0fd2e0ad4c6da3d41f902dcdcf50ce'/>
<id>4dbeff2eea0fd2e0ad4c6da3d41f902dcdcf50ce</id>
<content type='text'>
In .NET, $ also matches before a final line break, so a name or version
ending in one passed the check and was kept with it, giving a catalog entry
and a JAR path the public route never matches. The patterns end in \z.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In .NET, $ also matches before a final line break, so a name or version
ending in one passed the check and was kept with it, giving a catalog entry
and a JAR path the public route never matches. The patterns end in \z.
</pre>
</div>
</content>
</entry>
<entry>
<title>Take who a Tazel plugin is from the publish command</title>
<updated>2026-11-05T13:49:57+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-11-05T13:49:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/progmaweb/commit/?id=4a00a68309a3605dafedbc522569fc1b2c8aca1e'/>
<id>4a00a68309a3605dafedbc522569fc1b2c8aca1e</id>
<content type='text'>
Tazel no longer puts a publisher, a name or a version into the
descriptor of a plugin JAR (plugin API 3): who a plugin is comes from
ViGet, which records it when the plugin is pushed, or from the path of
a localPlugin.

- viget publish-tazel-plugin takes &lt;Publisher&gt; &lt;Name&gt; &lt;Version&gt; &lt;jar&gt;.
- TazelPluginDescriptor.TryRead and TazelPluginPublishing.PublishAsync
  take the three from the caller and check them as before: one
  identifier each for publisher and name, an exact version of three to
  five numbers.
- A descriptor that holds publisher, name or version is refused, with
  the keys it names.
- ops/README.md shows the new command line.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Tazel no longer puts a publisher, a name or a version into the
descriptor of a plugin JAR (plugin API 3): who a plugin is comes from
ViGet, which records it when the plugin is pushed, or from the path of
a localPlugin.

- viget publish-tazel-plugin takes &lt;Publisher&gt; &lt;Name&gt; &lt;Version&gt; &lt;jar&gt;.
- TazelPluginDescriptor.TryRead and TazelPluginPublishing.PublishAsync
  take the three from the caller and check them as before: one
  identifier each for publisher and name, an exact version of three to
  five numbers.
- A descriptor that holds publisher, name or version is refused, with
  the keys it names.
- ops/README.md shows the new command line.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #53 from Progmasoft/feature/five-part-versions</title>
<updated>2026-11-01T17:20:46+00:00</updated>
<author>
<name>Leitwolf</name>
</author>
<published>2026-11-01T17:20:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/progmaweb/commit/?id=35e09214817585007308bdbc26d877791843ab29'/>
<id>35e09214817585007308bdbc26d877791843ab29</id>
<content type='text'>
Accept plugin versions of up to five numbers</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Accept plugin versions of up to five numbers</pre>
</div>
</content>
</entry>
<entry>
<title>Accept plugin versions of up to five numbers</title>
<updated>2026-11-01T17:16:35+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-11-01T17:16:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/progmaweb/commit/?id=e85e2b2359518f83354c09f9f4a101b7779e6e9c'/>
<id>e85e2b2359518f83354c09f9f4a101b7779e6e9c</id>
<content type='text'>
Tazel takes A.B.C, then .D, .E and -METADATA if needed, so the descriptor
check follows it.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Tazel takes A.B.C, then .D, .E and -METADATA if needed, so the descriptor
check follows it.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #52 from Progmasoft/feature/four-part-versions</title>
<updated>2026-11-01T15:43:38+00:00</updated>
<author>
<name>Leitwolf</name>
</author>
<published>2026-11-01T15:43:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/progmaweb/commit/?id=8323e428c021642aaf898bfdefe3b3f4f8f1824b'/>
<id>8323e428c021642aaf898bfdefe3b3f4f8f1824b</id>
<content type='text'>
Accept plugin versions of four numbers</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Accept plugin versions of four numbers</pre>
</div>
</content>
</entry>
<entry>
<title>Accept plugin versions of four numbers</title>
<updated>2026-11-01T13:09:24+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-11-01T13:09:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/progmaweb/commit/?id=02662c79c1f2bcda974da9e1b0ed8c5ac92ee127'/>
<id>02662c79c1f2bcda974da9e1b0ed8c5ac92ee127</id>
<content type='text'>
Progmasoft's releases move to four numbers, and the plugins publish here.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Progmasoft's releases move to four numbers, and the plugins publish here.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #51 from Progmasoft/feature/site-icons</title>
<updated>2026-10-29T15:56:15+00:00</updated>
<author>
<name>Leitwolf</name>
</author>
<published>2026-10-29T15:56:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/progmaweb/commit/?id=1d99f81ec96e05337e474dc84555def3a1bcf954'/>
<id>1d99f81ec96e05337e474dc84555def3a1bcf954</id>
<content type='text'>
Serve the Progmasoft mark as the site icon</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Serve the Progmasoft mark as the site icon</pre>
</div>
</content>
</entry>
<entry>
<title>Serve the Progmasoft mark as the site icon</title>
<updated>2026-10-29T15:25:16+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-29T15:25:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/progmaweb/commit/?id=6a87306ec5b972cbf18d76836a6df5d7828575ea'/>
<id>6a87306ec5b972cbf18d76836a6df5d7828575ea</id>
<content type='text'>
The sites declared no icon and /favicon.ico answered 404, so search
engines and assistants that show a site's icon (DuckDuckGo, ChatGPT)
fell back to a gray placeholder; the only copy of the mark was the BIMI
logo for mail.

The app now has the Next.js icon files, so every page links them:

- app/icon.svg: the four squares of the BIMI logo, cropped to the mark
  so it fills a browser tab, on a transparent field.
- app/favicon.ico: the same mark at 16, 32 and 48 pixels (PNG entries),
  for clients that ask for /favicon.ico without reading the page.
- app/apple-icon.png: 180 pixels on the white field of the BIMI logo,
  since iOS fills transparency with black.

The proxy rewrites paths per host, which would send /icon.svg on the
account, ViGet and the other hosts into their own page trees; the
matcher now skips the two new files as it already skipped favicon.ico,
so every Progmasoft host serves the same icons.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The sites declared no icon and /favicon.ico answered 404, so search
engines and assistants that show a site's icon (DuckDuckGo, ChatGPT)
fell back to a gray placeholder; the only copy of the mark was the BIMI
logo for mail.

The app now has the Next.js icon files, so every page links them:

- app/icon.svg: the four squares of the BIMI logo, cropped to the mark
  so it fills a browser tab, on a transparent field.
- app/favicon.ico: the same mark at 16, 32 and 48 pixels (PNG entries),
  for clients that ask for /favicon.ico without reading the page.
- app/apple-icon.png: 180 pixels on the white field of the BIMI logo,
  since iOS fills transparency with black.

The proxy rewrites paths per host, which would send /icon.svg on the
account, ViGet and the other hosts into their own page trees; the
matcher now skips the two new files as it already skipped favicon.ico,
so every Progmasoft host serves the same icons.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #50 from Progmasoft/feature/provision-reserved-accounts</title>
<updated>2026-10-29T13:34:29+00:00</updated>
<author>
<name>Leitwolf</name>
</author>
<published>2026-10-29T13:34:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/progmaweb/commit/?id=6b4e5e403875d3648be383395f1dad50f0d6503d'/>
<id>6b4e5e403875d3648be383395f1dad50f0d6503d</id>
<content type='text'>
Provision the reserved accounts on the server</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Provision the reserved accounts on the server</pre>
</div>
</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'origin/main' into feature/provision-reserved-accounts</title>
<updated>2026-10-29T12:52:11+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-29T12:52:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/progmaweb/commit/?id=3749e30da561652a226017d9360b84e34a8b74fc'/>
<id>3749e30da561652a226017d9360b84e34a8b74fc</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
